原来的网关的上网协议配置是 tcp 走 SS 通道,其他协议全走 open vpn 。
因为原来 SS 的 tcp 连接都是配置成随机端口,最近也计划把 udp 协议也走 SS 随机端口。
按照 wiki 进行了配置,可是在进行 udp 连接的时候 客户机可以成功发送数据到目标,但是目标在成功返回数据到网关的时候就停住了,怎么都不到客户机。
使用设备如下:
客户机:( 192.168.1.100 )
debian/默认网关:(192.168.1.254)
无线路由:(192.168.1.1)
SS 服务器:( 123.123.123.123 )
网关的 iptables 和 iproute2 等配置如下:
//SS 的 IP ,内网保留地址和国内 IP 都存放在 ipset 的 chnroutes 列表
//创建 ip rule
ip rule add fwmark 0x01/0x01 table 100
ip route add local 0.0.0.0/0 dev lo table 100
iptables -t mangle -A PREROUTING -p udp -m set ! --match-set chnroutes dst -j TPROXY --on-port 1080 --tproxy-mark 0x01/0x01
翻看了 openwrt 版本的 SS 也是一样的配置,有遇过这个问题而又成功解决的来说说吗?:)
1
d33n99 OP 😢问题已经解决,原来问题出现在 ip rule 和 iptables 的顺序上,导致包劫持不了。
|
2
JerningChan 2017-06-05 17:21:28 +08:00
@d33n99 dalao,请问可以再详细点出个教程之类吗?我最近也在搞这个,但是,总觉得我这边的 udp 包,还不是弄得很好
|