zfl9 / ipt2socks

将 iptables/nftables 传入的透明代理流量转为 socks5 流量的实用工具
GNU Affero General Public License v3.0
447 stars 103 forks source link

TCP可以正常連,但UDP無回應。 #13

Closed kousyougi closed 4 years ago

kousyougi commented 4 years ago

區網的電腦,TCP可以正常連出去。但UDP發出去都沒有回應。無法nslookup。

平台是OpenWrt X86-64 socks5 用的是NaiveProxy ipt2socks設定跟iptable設定如下。 ipt2socks跟iptable設定看起來都很單純。還是問題出在OpenWrt的TPROXY?

config ipt2socks option enable '1' option server_addr '127.0.0.1' option server_port '1080' option auth_username '' option auth_password '' option listen_addr4 '0.0.0.0' option listen_addr6 '::1' option listen_port '1234' option thread_nums '1' option nofile_limit '65535' option udp_timeout '300' option cache_size '256' option buffer_size '8192' option graceful '0' option redirect '0' option tcp_only '0' option udp_only '0' option ipv4_only '0' option ipv6_only '0'

设置策略路由 ip rule add fwmark 1 table 100 ip route add local 0.0.0.0/0 dev lo table 100

代理局域网设备 iptables -t mangle -N NAIVE iptables -t mangle -A NAIVE -d 127.0.0.1/32 -j RETURN iptables -t mangle -A NAIVE -d 224.0.0.0/4 -j RETURN iptables -t mangle -A NAIVE -d 255.255.255.255/32 -j RETURN iptables -t mangle -A NAIVE -d 192.168.0.0/16 -j RETURN iptables -t mangle -A NAIVE -p udp -j TPROXY --on-port 1234 --tproxy-mark 1 iptables -t mangle -A NAIVE -p tcp -j TPROXY --on-port 1234 --tproxy-mark 1 iptables -t mangle -A PREROUTING -j NAIVE

zfl9 commented 4 years ago

看你提供的资料,tcp和udp的tproxy规则是一样的,如果tcp正常被导入到后端的socks5代理,而udp不行,我认为是后端的socks5代理不支持udp请求导致的,具体还请检查后端socks5代理的详细日志。

zfl9 commented 4 years ago

另外,最好带上测试tcp和测试udp时的ipt2socks日志以及后端socks5代理的运行日志。

kousyougi commented 4 years ago

我測試用trojan架的socks5,可以正常傳udp。可能是naiveproxy的socks5穿透不過去。我聯絡一下naiveproxy的作者。 謝謝