在Windows上使用UPnP工具为BT客户端自动添加内外端口号不同的映射规则并自动更新BT端口
前言
前面我们已经使用lucky stun穿透成功的让TCP端口暴露到了公网,qb也处于联机状态了,但是遗憾的是我的是动态IP,当IP改变的时候又需要手动修改端口,非常不方便,所以我们可以使用lucky stun穿透规则的自定义脚本实现自动化。
软件下载
需要用到的软件有lucky Windows版、UPnP Wizard,UPnP Wizard绿色版
详细教程
环境准备
关闭BT软件中的UPnP映射功,防止其影响自定义规则的添加
在qbtorrent的设置➡️连接➡️监听端口,取消勾选“使用我的路由器的UPnP/NAT-PMP端口”转发
打开路由器的UPnP功能
软件设置
下载解压lucky,确保路径没有中文名,UPnP Wizard建议使用绿色版,解压后与lucky放在一个目录。
双击运行UPNPWizard.exe,可以看到本地IP地址 UPnP设备名和地址以及一些映射规则,这些说明光猫/路由器上的UPnP功能已经打开。否则请检查UPnP是否打开,若UPnP已经打开还是无法显示请尝试使用MiniUPnP Client
lucky设置
双击运行lucky.exe,任务栏会出现一个图标,右键设置一下开机自启,然后打开后台地址http://127.0.0.1:16601
点击左侧STUN内网穿透
点击添加穿透规则,名称随意,端口使用本地未占用端口,只勾选不使用Lucky内置端口转发,打开自定义脚本触发
自定义脚本如下:
1 | C:\Users\anyaer\programs\lucky\UPnPWizardC.exe -remove -extport 2389 -protocol TCP -legacy |
脚本说明:
- 第一条命令用于移除之前的映射规则
C:\Users\anyaer\programs\lucky\UPnPWizardC.exe为UPnP软件的位置,2389是穿透通道监听端口,就是刚刚设置的本地端口,TCP为穿透类型
- 第二条命令表示延迟1秒
在lucky目录创建脚本
1 | WScript.sleep 1000 |
- 第三条命令用于添加映射规则(各参数详见UPnPWizard的帮助文件)
“IPV4-TCP”是添加规则的名称,2389是穿透通道监听端口,TCP为穿透类型
如果目录中有空格的话要用 英文引号 “” 引起来 不然无法运行
目录中不能有中文不然会报错
检查设置
填写完成后保存一下并打开开关,查看是否能够获取到外网地址和端口
自动更新端口
编辑刚刚添加的穿透规则,拉到最后打开webhook功能,填写以下内容:
接口地址:
1 | http://[IP和webUI端口]/api/v2/app/setPreferences |
请求方法:POST
请求头:
1 | Content-type:application/x-www-form-urlencoded |
请求体:
1 | json={"listen_port":#{port}} |
打开 禁用Webhook接口调用成功字符串检测
如图所示:
接口地址中的 IP和端口 按照实际情况修改
如果lucky和 qb运行在同一设备上IP使用127.0.0.1即可
勾选上qb webUI设置中的 “对本地主机上的客户端跳过身份验证”
如果lucky和qb不运行在同一设备上运行则
这里的IP端口填写qb所运行在的设备上的IP和以及对应的端口
并勾选 “对IP子网白名单中的客户端跳过身份验证”,将运行lucky的设备IP的IP段添加到这个白名单上
填写完成后点击webhook手动触发测试来验证各项参数填写是否正确,或者直接点击保存,参数正确显示成功
至此我们就完成了使用webhook自动修改 qbittorrent 的监听端口的设置














