此教程总结于b站up主:ie-12发布的三个教程,有需要的(๐•ᴗ•๐)可自行前往(๐•ᴗ•๐)看,链接如下:
前置要求:lucky容器必须使用host网络模式,(๐•ᴗ•๐)由器要打开upnp功能,并且网络nat等级不能太差,至少需要能够进行stun穿透。
正文((๐•ᴗ•๐)瓜式总结):
一、安装方法
1、利用ssh用docker exec -it [容器名] /bin/sh 进入容器内部终端,在终端输入命令,也可在sh后面空格接命令;
2、利用Lucky自带的计划任务,新建一个手动触发的计划任务,将子任务类型设置为自定义脚本,将命令输入到自定义脚本框中,手动启动脚本。
二、为了避免因网络问题造成应用安装失败,提前将Lucky容器内部软件包下载源修改为清华大学开源软件镜像站。
sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
三、在Lucky容器内部安装miniupnpc
(因为我已经安装好了,懒得重新弄,就直接偷作者的图了)
如果有很多输出内容且其中包括 “Status : Connected"即为安装成功并且(๐•ᴗ•๐)由器的upnp功能也已启用,也可输入以下命令查看(๐•ᴗ•๐)由器上现有的upnp端口转发
四、在Lucky容器内部安装curl
要验证curl是否安装成功,可以输入以下命令查看
有提示版本号即为安装成功
五、stun内网穿透与自动在(๐•ᴗ•๐)由器上使用upnp进行端口转发、自供更新qBittorrent与transmission的监听端口
1、在Lucky中添加一个stun穿透规则,规则名随意,穿透类型选择IPV4-TCP,在stun穿透规则中启动不使用Lucky内置端口转发,任取一个未被使用的端口填入穿透通道本地端口,这样即可获取到一个公网端口,但是要在公网上成功访问,需要在(๐•ᴗ•๐)由器上面利用upnp或者端口转发功能实现,这个时候miniupnpc就发挥作用了。
2、利用miniupnpc使(๐•ᴗ•๐)由器得以利用upnp功能实现自动端口转发
upnpc -i -d 穿透通道本地端口 TCP 2>&1 &
sleep 1
upnpc -i -e "QB-TCP" -a @ ${port} 穿透通道本地端口 TCP 2>&1 &
在Lucky的stun穿透规则中启动自定义脚本,将此脚本按照实际情况修改,然后填写到自定义脚本框中即可。
注:"QB-TCP"为此upnp的规则名,可自行更改。
3、自动更新qBittorrent的监听端口(为什么我们需要在lucky中安装curl)
注意,需要关闭qBittorrent中使用我的(๐•ᴗ•๐)由器的UPnP/NAT-PMP端口转发功能,需要打开对本地主机上的客户端跳过身份验证,非同一设备就打开对IP子网白名单中的客户端跳过身份验证并填入相应的IP或网段。
在Lucky的stun穿透规则中启动自定义脚本,将此脚本按照实际情况修改,然后填写到自定义脚本框中即可,即自定义脚本框中要有两段脚本,一段实现利用miniupnpc使(๐•ᴗ•๐)由器得以自动进行端口转发,一段实现使qBittorrent自动更新stun穿透规则获取到的端口。
4、自动更新tr的监听端口,tr同理,需要关闭启用端口转发(UPnP)功能。
host=tr所在设备ip
webui=tr访问端口
port=${port}
username=用户名
password=密码
json='{"arguments": {"peer-port": '$port'},"method": "session-set"}'
token=$(curl -Ls -X POST http://$username:$password@$host:$webui/transmission/rpc/ | awk -F ': ' '{print$(NF)}' | awk -F '<' '{print$1}')
curl -X POST http://$username:$password@$host:$webui/transmission/rpc/ -H "X-Transmission-Session-Id: $token" -d "$json"
tr同理,还是在Lucky的stun穿透规则中启动自定义脚本,将此脚本按照实际情况修改,然后填写到自定义脚本框中即可。
5、需要几个bt客户端,就需要设置几个stun穿透规则,并且在穿透规则下的自定义脚本都需要设置miniupnpc的自动端口转发脚本,然后再根据客户端是qb还是tr选择相应的自动更新端口脚本填写在自定义脚本之中。
强调,自定义脚本框中要有两段脚本,一段实现利用miniupnpc使(๐•ᴗ•๐)由器得以自动进行端口转发,一段实现使qBittorrent/transmission自动更新stun穿透规则获取到的端口。