QNAP+Transmission
文章目录
QNAP+Transmission
目标
在QNAP
的TS-453Dmini
上安装Transmission
并进行设置。
硬件及系统
QNAP
的TS-453Dmini
- 8G内存
QTS 5.1.0.1986(2022/03/24)
安装 Transmission
- 下载:从QNAP商店下载架构为
TS-NASX86_64
的安装包QTransmission3_3.0.0.2_x86_64.qpkg;1 - 安装:
QTS
的APPCenter
,点击右上角的手动安装
,通过浏览
选定刚刚下载的qpkg
文件后点击安装,等待安装完成。2
安装 Transmission Web Control
- 下载:从QNAP商店下载架构为
TS-NASX86_64
的安装包TransmissionWC_1.6.1_x86_64.qpk;1 - 安装:
QTS
的APPCenter
,点击右上角的手动安装
,通过浏览
选定刚刚下载的qpkg
文件后点击安装,等待安装完成。2
启动 Transmission
在QTS
中启动Transmission
和 Transmission web control
。
登录 Transmission
在QTS
中点击左上角的主菜单
(三条横线)图标,找到Transmission
,单击打开,或者也可以直接通过网址nas ip:49092
打开,用户名和密码均为qnap
。
配置 Transmission
- 启用
QTS
的ssh
连接:主菜单
>>控制台
>>网络文件服务
>>Telnet/SSH
,勾选允许SSH连接(只有管理员群组可远程登陆)
后点击应用; - 建立
SSH
连接:通过CMD
或专门的ssh
连接管理软件,例如 finalshell,远程连接QTS
; - 停止运行
transmission
; - 使用
vim
打开配置文件:
sudo vim /share/CACHEDEV1_DATA/.qpkg/QTransmission3/etc/settings.json
其中各参数含义如下,注意:json 并不支持注释,下文代码块中的 #注释只是为了方便说明3
{
"alt-speed-down": 50, # 限速时段下载限速值
"alt-speed-enabled": false,
"alt-speed-time-begin": 540,
"alt-speed-time-day": 127, # 时段限速日期(星期几),127 表示每天,
# 更复杂配置参考官网。用 7 位二进制数表示,然后转换成十进制数,
# 0000001 表示周日,1000000 表示周六,0000010 表示周一,
# 0000100 表示周二。如果你只要在周末限速,该数应该 1000001,
# 转换为十进制就是 65
"alt-speed-time-enabled": false, # 启用限速,为 false 时,以上计划配置则不生效,
# 生效时会自动禁用 alt-speed-enabled 配置,二者只能选一个
"alt-speed-time-end": 1020, # 限速时段结束时间,这个配置表示的是凌晨零点到
# 开始时间的分钟数,比如 7:00(nas系统里的时间) 就是 7*60=420。
"alt-speed-up": 50, # 限速时段上传限速值,单位KB/S
"bind-address-ipv4": "0.0.0.0", # IPv4 地址绑定,一般不要改动
"bind-address-ipv6": "::", #IPv6 地址绑定,一般不要改动
"blocklist-enabled": false, # 启动白名单,默认不启动,需要启动改为 true
"blocklist-url": "http://www.example.com/blocklist",
"cache-size-mb": 1024, #缓存大小,以 MB 为单位,建议设大一些,
# 避免频繁读写硬盘而伤硬盘,建议设为内存大小的 1/6~1/4
"dht-enabled": true, #关闭 DHT(不通过 tracker 寻找节点)功能,
# 不少 PT 站的要求,但 BT 下载设置为 true 会使得下载更好
"download-dir": "/share/Public", #下载的内容存放的目录
"download-queue-enabled": true, # 下载队列开关
"download-queue-size": 5, # 下载队列数量
"encryption": 1, # 加密。指定节点的加密模式,默认 1。
# 0 表示关闭 , 0= 不加密,1= 优先加密,2= 必须加密
"idle-seeding-limit": 30,
"idle-seeding-limit-enabled": false,
"incomplete-dir": "/share/Public", # 临时文件路径
"incomplete-dir-enabled": true,
"lpd-enabled": false, #禁用 LDP(本地节点发现,用于在本地网络寻找节点), 不少 PT 站的要求
"message-level": 2,
"peer-congestion-algorithm": "",
"peer-id-ttl-hours": 6,
"peer-limit-global": 200, # 全局连接数
"peer-limit-per-torrent": 50, # 每个种子最多的连接数
"peer-port": 51413, # 传入端口,预设的 port 口
"peer-port-random-high": 65535, # 传入端口随机值范围上限
"peer-port-random-low": 49152, # 传入端口随机值范围下限
"peer-port-random-on-start": false, # 启用随机端口,默认关闭,不建议改为 true
"peer-socket-tos": "default",
"pex-enabled": true, # 是否启用用户交换,默认为 true,关于 PEX,
# 有兴趣的朋友可参考 http://en.wikipedia.org/wiki/Peer_exchange,对于只用 PT 的朋友,
# 可以设为 false, 禁用 PEX(节点交换,用于同已与您相连接的节点交换节点名单), 不少 PT 站的要求
"port-forwarding-enabled": false, # 启用端口转发(uPnP),如果路由支持并且也开启了 uPnP,
# 则路由会自动做端口映射,但是需要注意的是如果内网有几台机器同时使用 transmission,
# 就必须更改 peer-port 值为不一样
"preallocation": 1, # 预分配文件磁盘空间,0= 关闭,1= 快速,2= 完全。
# 建议取 1 开启该功能,防止下载大半了才发现磁盘不够。取 2 时,可以减少磁盘碎片,但速度较慢。
"prefetch-enabled": false,
"queue-stalled-enabled": true,
"queue-stalled-minutes": 30,
"ratio-limit": 1, # 分享率限制
"ratio-limit-enabled": true, # 启用分享率限制,默认不启用
"rename-partial-files": true, #在未完成的文件名后添加后缀.part,false= 禁用
"rpc-authentication-required": true, # 远程控制需要验证,默认为需要
"rpc-bind-address": "0.0.0.0", # 远程控制地址绑定,允许 IP 通过 RPC 访问,
# 默认值表示任何地址都可以访问
"rpc-enabled": true, # 启用远程控制,默认启用
"rpc-host-whitelist": "", # 白名单,如果需要远程访问,最好配置
"rpc-host-whitelist-enabled": true, # 是否开启主机白名单
"rpc-password": "{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", #web-ui 的密码,可直接修改,
# 重新运行或者 reload 服务的时候密码会自动 HASH 增加安全性
"rpc-port": 49092, # 默认 web-ui 的 port 口,也是远程控制端口,可自行更改
"rpc-url": "/transmission/",
"rpc-username": "qnap", #默认登入名称,也是远程控制用户名, 默认为 qnap
"rpc-whitelist": "127.0.0.1", # 远程控制白名单,默认值为所有地址,支持通配符*,如 192.168.2.*
"rpc-whitelist-enabled": false,
"scrape-paused-torrents-enabled": true,
"script-torrent-done-enabled": false,
"script-torrent-done-filename": "",
"seed-queue-enabled": false,
"seed-queue-size": 10,
"speed-limit-down": 100, #平时的下载限速,单位KB/s
"speed-limit-down-enabled": false, #启用平时下载限速
"speed-limit-up": 1000, #平时上传限速,单位KB/s
"speed-limit-up-enabled": true, #启用平时上传限速
"start-added-torrents": true,
"trash-original-torrent-files": false,
"umask": 2,
"upload-slots-per-torrent": 14,
"utp-enabled": true,
"watch-dir": "/share/Public/torrent", # 监听文件夹目录
"watch-dir-enabled": true # 是否监听文件夹,经测试无效
自定义限速时间
目标:每天定时(北京时间20:00
–23:59
)启动限速,上传限速2500 KB/s
,下载限速30000 KB/s
。
注意:json 并不支持注释,下文代码块中的 #注释只是为了方便说明
"alt-speed-up": 2500, # 限速时段上传限速值,单位KB/S
"alt-speed-down": 30000, # 限速时段下载限速值,单位KB/S
"alt-speed-enabled": false, # 启用全局限速
"alt-speed-time-day": 127, # 时段限速日期(星期几),127 表示每天,
# 更复杂配置参考官网。用 7 位二进制数表示,然后转换成十进制数,
# 0000001 表示周日,1000000 表示周六,0000010 表示周一,
# 0000100 表示周二。如果你只要在周末限速,该数应该 1000001,
# 转换为十进制就是 65
"alt-speed-time-begin": 1200, # 北京时间20点,20*60=1200
"alt-speed-time-end": 1439, # 北京时间23点59分,24*60-1=1439
# 限速时段结束时间,这个配置表示的是凌晨零点到
# 开始时间的分钟数,比如 7:00 就是 7*60=420。
# 经测试,该时间将同 NAS 当前时间直接进行比较,并不一定是 GMT 时间!!!
"alt-speed-time-enabled": true, # 启用限速,为 false 时,以上计划配置则不生效,
# true 表示开启自动限速,则在限速时间段内将会自动启动限速
# 生效时会自动禁用 alt-speed-enabled 配置,二者只能选一个
效果:在限速时间段内:
修改Transmission Web 端口号
- 启用
QTS
的ssh
连接:主菜单
>>控制台
>>网络文件服务
>>Telnet/SSH
,勾选允许SSH连接(只有管理员群组可远程登陆)
后点击应用; - 建立
SSH
连接:通过CMD
或专门的ssh
连接管理软件,例如 finalshell,远程连接QTS
; - 停止运行
Transmission
; - 使用
vim
打开配置文件:
sudo vim /share/CACHEDEV1_DATA/.qpkg/QTransmission3/etc/settings.json
- 修改
rpc-port
:
"rpc-port": xxxxx, # 修改xxxxx为自己的端口号
- 使用
vim
打开配置文件:
sudo vim /mnt/HDA_ROOT/.config/qpkg.conf
- 定位至
Transmission
并修改:
[QTransmission3]
Status = complete
Name = QTransmission3
Build = 20200626
Display_Name = Transmission
Version = 3.0.0.2
Author = QoolBox
QPKG_File = QTransmission3.qpkg
Date = 2022-01-16
Shell = /share/CACHEDEV1_DATA/.qpkg/QTransmission3/QTransmission3.sh
Service_Port = xxxxx # 修改xxxxx为自己的端口号
Volume_Select = 3
Install_Path = /share/CACHEDEV1_DATA/.qpkg/QTransmission3
WebUI = /transmission
Web_Port = xxxxx # 修改xxxxx为自己的端口号
RC_Number = 161
FW_Ver_Min = 4.2.6
FW_Ver_Max = 5.0.0
Enable = TRUE
[TransmissionWC]
Status = complete
Name = TransmissionWC
Build = 20201002
Display_Name = Transmission Web control
Version = 1.6.1
Author = QoolBox
QPKG_File = TransmissionWC.qpkg
Date = 2022-01-16
Shell = /share/CACHEDEV1_DATA/.qpkg/TransmissionWC/TransmissionWC.sh
Install_Path = /share/CACHEDEV1_DATA/.qpkg/TransmissionWC
RC_Number = 162
FW_Ver_Min = 4.2.6
FW_Ver_Max = 5.0.0
Enable = TRUE
使transmission 端口测试显示开启
问题描述
在上述配置文件中指定的"peer-port"
为transmission
同其他peer
通信的端口号,在transmission 3.0.0.2
中,在QNAP NAS
的QuFirewall
中添加该端口的IPV4
和IPV6
的通行规则后,并在路由器中配置端口转发后,transmission web UI
中的端口测试仍不通过,具体表现在网页端点击Test the port
后,一直显示testing
而没结果,而在windows的Transmission Remote GUI 中则会提示http error 400 bad request
。但在https://canyouseeme.org/中测试端口是开启的。
错误原因
端口测试会访问portcheck.transmissionbt
,但该域名的DNS
解析中IPV6
优先级高于IPV4
,而我们通过IPV4
访问会返回正确结果,而通过IPV6
访问则会返回HTTP/1.1 400 Bad Request
:4
$ curl -i -4 http://portcheck.transmissionbt.com/52955 # 我的 peer port 为52955
HTTP/1.1 200 OK
Server: nginx/1.10.3 (Ubuntu)
Date: Sat, 21 May 2022 08:40:37 GMT
Content-Type: text/html; charset=ISO-8859-1
Transfer-Encoding: chunked
Connection: keep-alive
$ curl -i -6 http://portcheck.transmissionbt.com/52955
HTTP/1.1 400 Bad Request
Server: nginx/1.10.3 (Ubuntu)
Date: Sat, 21 May 2022 08:40:50 GMT
Content-Type: text/html; charset=ISO-8859-1
Transfer-Encoding: chunked
Connection: keep-alive
解决办法:
- 启用
QTS
的ssh
连接:主菜单
>>控制台
>>网络文件服务
>>Telnet/SSH
,勾选允许SSH连接(只有管理员群组可远程登陆)
后点击应用; - 建立
SSH
连接:通过CMD
或专门的ssh
连接管理软件,例如 finalshell,远程连接QTS
; - 运行命令:
sudo vim /etc/hosts
- 在
hosts
文件尾部添加4
87.98.162.88 portcheck.transmissionbt.com
- 再次测试端口,验证结果:
利用反向代理配置HTTPS访问
登录威联通NAS
网页端,控制台
>>网络访问
>>反向代理
,点击添加
,规则名称可填写transmission
。
来源
这一部分表示我们从外部将通过哪个域名的哪个端口来经HTTPS
访问NAS
内部的Transmission
,故协议
选择HTTPS
,域名
填写访问NAS
用的域名,端口
填写一个未被NAS
内各种服务占用的端口(端口1),访问控制配置文件
选择允许所有连接
。
相反的,目标
这一部分表示是我们要通过这个代理来访问NAS
内部的哪个服务,这里我们是为了访问Transmission
,内部是没有SSL
的,故协议
选择HTTP
,主机名
保持默认,端口号
填写内网中访问Transmission Web UI
的端口号(端口2)。然后点击应用
,在反向代理
对话框中将列出新添加的Transmission
规则,状态
为已启用
。然后再在路由器中配置端口转发,将来源
部分填写的端口号(端口1)转发出去,便可通过外网https://domain:端口1
访问Transmission Web UI
。
ssl 证书验证问题
- 问题:黄种 could not connect to tracker
- 解决办法:
方法1. 从 qnapclub 依次安装 Qperl 和 CACert,无需重启 transmission
, 等待片刻便可连接 https
tracker
成功。5
方法26: 禁用transmission
的ssl
验证
在AppCenter中将TR停止掉,然后,
You just need to add 2 lines in the QTransmission3.sh file under the .qpkg folder QTransmission3:
(我的是这个文件:/share/CACHEDEV1_DATA/.qpkg/QTransmission3/Qtransmission3.sh
,需要通过ssh登入,使用sudo权限来写入)
TR_CURL_SSL_NO_VERIFY=1
export TR_CURL_SSL_NO_VERIFY
The file should look like this:
#!/bin/sh
CONF=/etc/config/qpkg.conf
QPKG_NAME="QTransmission3"
TR_CURL_SSL_NO_VERIFY=1
QPKG_ROOT=`/sbin/getcfg $QPKG_NAME Install_Path -f ${CONF}`
export QNAP_QPKG=$QPKG_NAME
export QPKG_ROOT QPKG_NAME
export TR_CURL_SSL_NO_VERIFY
...
更改好后重启transmission
即可。
参考: