本教程基于
打通大内网第二期 让BT下载畅通无阻 (基于Lucky的STUN穿透) 作者:qaz741wsd856
教程十分局限 可能局限到只适用于我自己 别骂 重在提供思(๐•ᴗ•๐)
要求:
1.(๐•ᴗ•๐)由器拨号
2.(๐•ᴗ•๐)由器固件为openwrt且防火墙是nftables
如下图:
![](https://invites.fun/assets/files/2024-11-22/1732274335-229187-image.png)
3.NAT1 如何判断自己是否是NAT1网上很多,不教
4.不面向小白,至少你要会ssh,能熟练使用搜索引擎
正文:
1.安装lucky>>>推荐使用全自动脚本安装
![](https://invites.fun/assets/files/2024-11-22/1732274441-138848-image.png)
按顺序复制执行即可
安装完就可以通过(๐•ᴗ•๐)由器ip:16601进入lucky管理界面
2.接着ssh操作创建两个防火墙规则
![](https://invites.fun/assets/files/2024-11-22/1732274493-956481-image.png)
输入vi /etc/config/firewall编辑防火墙规则滚轮滑动到最后一行按a即可编辑
以下为V4规则
config redirect 'test' #规则名(个人喜好可自定义)
option target 'DNAT'
option src 'wan'
option dest 'lan'
option src_dport '12345' #穿透通道本地端口,要求未被占用
option name 'test' #规则名
option dest_port '1239'
list proto 'tcp'
list proto 'udp'
option family 'ipv4'
option dest_ip '10.0.0.5' #QB或TR所在的设备的IP地址
以下为V6规则
config rule 'test_v6' #规则名(个人喜好可自定义)
option name 'test_v6' #规则名
option src 'wan'
option dest 'lan'
option dest_port '1239'
option target 'ACCEPT'
将以上两条规则粘贴上去
![](https://invites.fun/assets/files/2024-11-22/1732274679-703811-rs-at-0s7dvuys0k3m6d.png)
按一下esc输入:wq
![](https://invites.fun/assets/files/2024-11-22/1732274725-647946-image.png)
再按回车即可保存
然后登陆(๐•ᴗ•๐)由器查看防火墙是否有创建好的规则
![](https://invites.fun/assets/files/2024-11-22/1732274885-395010-ln6a97x65m0syhguvi(๐•ᴗ•๐).png)
![](https://invites.fun/assets/files/2024-11-22/1732274926-679531-vz2qkxd3p42-jdpl-kr4f.png)
![](https://invites.fun/assets/files/2024-11-22/1732274930-195993-prewrzuhrdkq36rgrvix0p.png)
3.使用(๐•ᴗ•๐)由器ip:16601登陆lucky 初始账号密码为666
![](https://invites.fun/assets/files/2024-11-22/1732274956-972129-zgsxk4lyt1ygsnpnoqtsy.png)
侧边栏选择STUN内网穿透
![](https://invites.fun/assets/files/2024-11-22/1732274981-197533-yrl9qgkwhkz-at-zliy.png)
添加一条新的穿透规则名称随意其他如图填写
![](https://invites.fun/assets/files/2024-11-22/1732275008-93974-pciji7qcwy-at-6fma-at-e.png)
点击添加
![](https://invites.fun/assets/files/2024-11-22/1732275041-702837-3uonwi-at-glcdg3euyeq.png)
以上操作没错的话应该能穿透成功了
然后再次修改该规则把“自定义脚本触发”打开
选择你的BT应用填入脚本
以下为QB的脚本
p(๐•ᴗ•๐)lic_port=${port}
qb_username="admin" #qb用户名
qb_password="123456" #qb密码
qb_addr="10.0.0.5:8989" #qb的内网地址
qb_cookie=$(curl -s -i --header "Referer: http://$qb_addr" --data "username=$qb_username&password=$qb_password" http://$qb_addr/api/v2/auth/login | grep -i set-cookie | cut -c13-48)
curl -X POST -b "$qb_cookie" -d 'json={"listen_port":"'$p(๐•ᴗ•๐)lic_port'"}' "http://$qb_addr/api/v2/app/setPreferences"
uci set firewall.test.dest_port=$p(๐•ᴗ•๐)lic_port
uci set firewall.test_v6.dest_port=$p(๐•ᴗ•๐)lic_port
uci commit firewall
/etc/init.d/firewall reload >/dev/null 2>&1
以下为TR的脚本
TR_USERNAME=admin #TR用户名
TR_PASSWORD=123456 #TR密码
TR_ADDR=10.0.0.5:9091 #TR的内网地址
TR_RPC_URL='http://'$(echo $TR_ADDR | sed 's/\/$//')
trauth="-u $TR_USERNAME:$TR_PASSWORD"
trsid=$(curl -s $trauth $TR_RPC_URL/transmission/rpc | sed 's/.*<code>//g;s/<\/code>.*//g')
curl -X POST \
-H "${trsid}" $trauth \
-d '{"method":"session-set","arguments":{"peer-port":'${port}'}}' \
"$TR_RPC_URL/transmission/rpc"
uci set firewall.tr_test.dest_port=${port}
uci set firewall.tr_test_v6.dest_port=${port}
uci commit firewall
/etc/init.d/firewall reload >/dev/null 2>&1
对应前文防火墙规则中的规则名
![](https://invites.fun/assets/files/2024-11-22/1732275172-982510-image.png)
填好后点击修改 自行查看防火墙规则中放行的端口以及QB或TR监听的端口是否修改
![](https://invites.fun/assets/files/2024-11-22/1732275198-991062-image.png)
![](https://invites.fun/assets/files/2024-11-22/1732275208-621166-image.png)
![](https://invites.fun/assets/files/2024-11-22/1732275302-975557-b6kmflghqbgib7qtv2dk.png)
点击穿透规则蓝色框中的IP:端口即可复制到itdog中测试>>>>测试网址V4
![](https://invites.fun/assets/files/2024-11-22/1732275370-75445-yrdsu-at-00n9zdlk2a5.png)
V6也同理”[ip]:穿透端口”自行测试>>>>>测试网址V6