根据这里的说法

openwrt上的luci ss有一个ipt_ext,再选项中添加
option ip_ext "--dport 21:1024"
,就可以只代理21到1024端口。

但是openwrt上的luci shadowsockr阉割了这个选项,直接在/etc/config/shadowsocksr中添加上述的代码是没有用的。
于是我们需要直接去修改ssr的启动脚本(/etc/init.d/ssr-redir.sh),手动在脚本的iptables命令后面添加参数。

找到所有含有--to $SS_REDIR_PORT的iptables命令,比如
local subnet
for subnet in covered_subnets; do
iptables -t nat -A shadowsocksr_pre -s
subnet -p tcp -j REDIRECT --to $SS_REDIR_PORT
done

将其修改为
local subnet
for subnet in covered_subnets; do
iptables -t nat -A shadowsocksr_pre -s
subnet -p tcp -j REDIRECT --to $SS_REDIR_PORT --dport 21:1024
done

我找到的还有
case "mode" in
disable)
iptables -t nat -A shadowsocksr_pre -s
ip -j RETURN
;;
global)
iptables -t nat -A shadowsocksr_pre -s ip -p tcp -j REDIRECT --toSS_REDIR_PORT --dport 21:1024
iptables -t nat -A shadowsocksr_pre -s ip -j RETURN
;;
game)
iptables -t nat -A shadowsocksr_pre -p tcp -s
ip -m set ! --match-set china dst -j REDIRECT --to SS_REDIR_PORT
ipset add gameuser
ip
;;
esac

上面明显对应了luci界面中的访问控制部分

因为我自己基本不用这个访问控制所以只在全局后面加了端口限制。
那么上面的subnet应该就是除了访问控制限定的ip之外所有的内网ip。

然后保存,执行
/etc/init.d/ssr-redir.sh stop
/etc/init.d/ssr-redir.sh start

重启ssr
然后ssr就只会代理21到1024端口了!

————更新—————
看了下 github上有的luci shadowsocksr都是支持ipt_ext参数的
务必先试一试添加ipt_ext参数

3 thoughts to “在openwrt路由器上设置ssr绕过bt下载(只代理指定端口)

Leave a comment

您的电子邮箱地址不会被公开。