iovxw

在 Merlin 上配置 rTorrrent 需要注意的

笔记备用

之前买的 RT-AC56U 一直没放什么东西,空转到现在

今天终于有了需求,拿它来挂 BT

这篇文章作为笔记,记一下遇到的坑,以后备用


安装

Merlin 支持 Entware,按照 Wiki 装好

然后 opkg install rtorrent-easy-install 会自动安装 rtorrent-rpcrutorrent 以及 lighthttpd

安装过程中会询问几个常用配置

需要注意的是如果启用了密码登录网页面板,需要手动安装 lighttpd-mod-authn_file,不然 lighthttpd 起不来会提示缺少模块

还要手动修改 /opt/etc/lighttpd/conf.d/99-rtorrent-fastcgi-scgi-auth.conf,把里面重复加载的模块注释掉,或者把重复模块的 .conf 删掉也行


配置

我的 Entware 是装在 U盘 里的,下载文件夹设置在了移动硬盘,为了 U盘 寿命考虑,需要编辑 /opt/etc/rtorrent/rtorrent.conf 将 session 和 watchdir 文件夹也改在移动硬盘,这两个在安装时修改下载文件夹是不会一块跟着变的

session = /mnt/sdb5/download/session
schedule = watch_directory,5,5,load_start=/mnt/sdb5/download/watchdir/*.torrent

session 文件夹是用来放各种临时信息,比如 DHT 的节点之类

watchdir 里的 torrent 文件会自动添加到新任务,当然本质是一个定时器定时检测指定路径而已

修改之前记得先 /opt/etc/init.d/S85rtorrent stop

端口

在安装完成的时候会提示开启端口,虽然不开也能运行,但是将很难找到 peer

iptables -I INPUT -p tcp --destination-port 51411 -j ACCEPT
iptables -I INPUT -p udp --destination-port 51412 -j ACCEPT

51411 是 port_range 的默认值,这是一个端口范围,全闭区间,用于与其他 peer 的连接

51412 是 dht_port 的默认值,字面意思

为了下次启动不需要手动再开端口,在 /jffs/scripts/firewall-start 里加入上面两条

如果不存在就手动创建,记得 chmod +x 和加 shebang #!/bin/sh

(啊当然别忘了在设置里启用自定义 jffs 脚本)

DHT

默认 dht = auto,是指只有当种子的 tracker 里有设置 dht 的时候才会启用

不过众所周知的原因在国内 tracker 服务器并不是那么好访问,这里直接设置为 on 强制启用就行

DHT 在启动的时候需要先连接几个 bootstrap 节点才能初始化,配置里加入如下几行

schedule2 = dht_node0,30,0,dht.add_node=dht.transmissionbt.com
schedule2 = dht_node1,30,0,dht.add_node=router.bittorrent.com
schedule2 = dht_node2,30,0,dht.add_node=router.utorrent.com

用 schedule 是因为需要延时一下,等待 DHT 启动完成,详见 rtorrent#383

开机启动

启动的时候第一次肯定会失败,因为分区还没挂载

/jffs/scripts/post-mount 里加入

if [ "$1" = "/tmp/mnt/sdb5" ] ; then
  /opt/etc/init.d/S85rtorrent start
fi

/tmp/mnt/sdb5 替换为你的下载文件夹的挂载点

就能在分区挂载后再次尝试启动了


下载完成校验 hash 时,提示 Hash check on download completion found bad chunks, consider using "safe_sync"

不过就算开了 safe_sync 也是没用的,因为这玩意是 降低 USB 3.0 干扰 这功能导致的玄学问题

解决方案当然就是进 高级设置 -> 无线网络 -> 专业设置 -> 2.4 Ghz 里把它关掉

虽然说是会干扰到 2.4 Ghz 的 wifi,不过实际体验好像没差,真要在意的话可以给数据线和设备包点锡箔纸


温度

之前就说过,这个路由器的温度一直在 70 度左右,还是 0 负载

但这次 100% 的 CPU 使用率,仍然是 70 度左右……嗯……