Closed t66y100 closed 3 years ago
我用socat中转一下: socat UDP4-LISTEN:1081,reuseaddr,fork UDP4:192.168.1.149:1081 udp通了,可以FullCone。 要是可以直接转发就好了。
iptables -t mangle -A FUCKGFW -p udp -j TPROXY --tproxy-mark 0x2333/0x2333 --on-port 12345
这句规则改为下面这句试试?
iptables -t mangle -A FUCKGFW -p udp -j TPROXY --tproxy-mark 0x2333/0x2333 --on-ip 192.168.1.1 --on-port 12345
我只能说是你的iptables规则或者是ipt2socks/redsocks2的监听地址问题,ss-tproxy一直都能正常代理tcp/udp的(tproxy方式和redirect都行)
我只能说是你的iptables规则或者是ipt2socks/redsocks2的监听地址问题,ss-tproxy一直都能正常代理tcp/udp的(tproxy方式和redirect都行)
我改了还是不行。 根据ipt2socks的运行命令/jffs/ipt2socks -b 192.168.1.1 -l 12345 -s 192.168.1.149 -p 1081 -R -4& 并结合netstat -nap|grep ipt2socks的结果:udp 0 0 0.0.0.0:12345 0.0.0.0:* 16749/ipt2socks ipt2socks是监听在0.0.0.0的,监听没有问题。
会不会是下面这两条规则问题啊,我完全不懂,都是照抄的v2和ss的规则。 v2和ss的教程都是转发到本机,以前用着也一直没问题,现在我转发到另一台机器,搞不懂了。
请大大帮忙测试一下,主路由实在跑不动v2ray啊,谢谢。
ip route add local 0/0 dev lo table 100 ip rule add fwmark 0x2333/0x2333 lookup 100
ipt2socks 监听地址改为 -b 0.0.0.0 -l 12345 iptables规则的tproxy改为 --on-ip 127.0.0.1 --on-port 12345
ipt2socks 监听地址改为 -b 0.0.0.0 -l 12345 iptables规则的tproxy改为 --on-ip 127.0.0.1 --on-port 12345
好的,感谢回复。现在离家要十多天,待回去后再改,谢谢。
ipt2socks 监听地址改为 -b 0.0.0.0 -l 12345 iptables规则的tproxy改为 --on-ip 127.0.0.1 --on-port 12345
如此修改后ipt2socks还是转发到了127.0.0.1。 还是靠socat转发吧,好像性能也没有损失。
只能说你的环境“特殊”吧,我自己测试完全ok,其他人也是都ok。
只能说你的环境“特殊”吧,我自己测试完全ok,其他人也是都ok。
恩,感谢耐心回复。 都没有xt_TPROXY.ko的,但是可以tproxy。 可能是内核太老了。
遇到同样的问题。。用的是ss-tproxy + ipt2proxy组合, tcp转发无问题, udp全都是
2020-08-11 19:19:57 ERR: [udp_socks5_recv_udpmessage_cb] recv from socks5 server: Connection refused
同样同的是V2RAY,会不会v2ray的问题呢,用的是QV2RAY,打开了UDP支持的。
## mode
mode='global' # global ...... (.........)
#mode='gfwlist' # gfwlist ...... (.........)
#mode='chnroute' # chnroute ...... (.........)
## ipv4/6
ipv4='true' # true:......ipv4............; false:......ipv4............
ipv6='false' # true:......ipv6............; false:......ipv6............
## tproxy
tproxy='true' # true:TPROXY+TPROXY; false:REDIRECT+TPROXY
## tcponly
tcponly='false' # true:.........TCP......; false:......TCP...UDP......
## selfonly
selfonly='false' # true:.....................; false:..............."......"......
## proxy
proxy_svraddr4=(192.168.10.10) # ............ IPv4 ..................................................................
proxy_svraddr6=() # ............ IPv6 ..................................................................
proxy_svrport='80,443' # ......................................................... ipts_proxy_dst_port
proxy_tcpport='60080' # ss/ssr/v2ray .................. TCP ..........................................
proxy_udpport='60080' # ss/ssr/v2ray .................. UDP ..........................................
proxy_startcmd='' # ................................. shell .............................................
proxy_stopcmd='' # ................................. shell .............................................
## dns
dns_direct='114.114.114.114' # ...... IPv4 DNS......................................................... DNS
dns_direct6='240C::6666' # ...... IPv6 DNS......................................................... DNS
dns_remote='8.8.8.8#53' # ...... IPv4 DNS............................................. DNS ............
dns_remote6='2001:4860:4860::8888#53' # ...... IPv6 DNS............................................. DNS ............
配置如上, 其他的没动, 会不会是我配置的问题呢
@zfl9 mention一下吧,挺郁闷的,等下试试redsocks2
连接被拒是因为socks5服务器的udp端口没有打开,连不上。
ss -anptu | grep socks5服务器监听端口
看下
显然可以确定,ipt2socks连不上socks5服务器的udp端口。收到了对端主机的icmp消息,然后提示连接被拒绝。
建议看下socks5服务器的监听地址和端口,是否正常。
怀疑是v2ray监听了::,而不是0.0.0.0。和ipv6only可能有关系。
# ss -natpu | grep 30990
udp UNCONN 0 0 *:30990 *:* users:(("v2ray",pid=476463,fd=8))
试过用SSR,UDP转发后倒是没有错误, 但是收不到答复,DNS请求发起之后就timeout。难道是V2ray不能运行在局域网内的另一架服务器上吗。似乎大部分人配置透明代理都是在同设备内完成iptables转发和v2ray/ssr处理的。
我再排查排查吧
测试过redsocks2,也是不能转发UDP, 和楼主一模一样。。。而且redsocks2性能比阁下的ipt2socks性能差很多(编译还要好多依赖)
udp local ip 改为 0.0.0.0 试下?)
同样遇到这个问题,运行ipt2socks的主机遇到up的透明代理请求就一直在访问本机127.0.0.1的1080,就不停refused
Update 10/11/2020
怎么试都不行, 最后效仿楼主用socat转发TCP+UDP, 就没问题了... DNS请求可以正常转发而且有Full-Cone NAT. 依然不知道为什么
还有就是请问-j TPROXY --on-ip
可以用非本机的ip吗, 我试过好像无法成功redirect过去, 是不是TPROXY本身不可以转发到外部ip呢? 还是我的配置有问题呢
-j TPROXY --on-ip可以用非本机的ip吗
不行的吧
我好像意识到一个点,可能会触发此 issue 中的错误。
我猜测是 socks5 服务器(v2ray)对于 udp assoc 请求的 response 有点问题(或者说不符合标准)
盲猜是 dst.ip 字段不对(可能被赋予了 0.0.0.0 或者 127.0.0.1 地址),导致 ipt2socks 在 udp assoc 时,连接到了本机(0.0.0.0 估计会被解释为本机 ip),然后因为本机没有对应的 udp 端口监听,所以提示连接被拒。而使用 socat 在本地监听对应的 udp 端口之后,数据链路就被打通了,于是就正常了。。。
这种情况感觉可以兼容下,那就是如果 dst.ip 是 0.0.0.0 或者 127.0.0.1,则强制修正为 -s 选项指定的 socks5 服务器 IP,兼容这种实现质量不佳的 socks5 服务器。
ea6200 运行ipt2socks,转发到局域网内跑v2ray的debian。
ea6200 192.168.1.1 Linux unknown 2.6.36.4brcmarm #17 PREEMPT Thu May 7 22:42:27 CEST 2020 armv7l Tomato
debian 192.168.1.149 Linux Debian 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux
不能转发udp到192.168.1.149,tcp是可以的。 我测试了redsocks和redsocks2,也是一样的结果。
运行命令: /jffs/ipt2socks -b 192.168.1.1 -l 12345 -s 192.168.1.149 -p 1081 -R -4&
在局域网内win10电脑运行 NAT 类型测试工具 后:
错误提示: 2020-07-15 13:44:11 ERR: [udp_socks5_recv_udpmessage_cb] recv from socks5 server: Connection refused 2020-07-15 13:44:11 ERR: [udp_socks5_recv_udpmessage_cb] recv from socks5 server: Connection refused 2020-07-15 13:44:12 ERR: [udp_socks5_recv_udpmessage_cb] recv from socks5 server: Connection refused 2020-07-15 13:44:14 ERR: [udp_socks5_recv_udpmessage_cb] recv from socks5 server: Connection refused 2020-07-15 13:44:16 ERR: [udp_socks5_recv_udpmessage_cb] recv from socks5 server: Connection refused 2020-07-15 13:44:18 ERR: [udp_socks5_recv_udpmessage_cb] recv from socks5 server: Connection refused 2020-07-15 13:44:20 ERR: [udp_socks5_recv_udpmessage_cb] recv from socks5 server: Connection refused 2020-07-15 13:44:22 ERR: [udp_socks5_recv_udpmessage_cb] recv from socks5 server: Connection refused 2020-07-15 13:44:24 ERR: [udp_socks5_recv_udpmessage_cb] recv from socks5 server: Connection refused 2020-07-15 13:44:26 ERR: [udp_socks5_recv_udpmessage_cb] recv from socks5 server: Connection refused 2020-07-15 13:44:28 ERR: [udp_socks5_recv_udpmessage_cb] recv from socks5 server: Connection refused 2020-07-15 13:44:30 ERR: [udp_socks5_recv_udpmessage_cb] recv from socks5 server: Connection refused
查看netstat -nap|grep ipt2socks udp 0 0 0.0.0.0:12345 0.0.0.0:* 16749/ipt2socks udp 0 0 127.0.0.1:24157 127.0.0.1:1081 ESTABLISHED 16749/ipt2socks udp 0 0 127.0.0.1:6012 127.0.0.1:1081 ESTABLISHED 16749/ipt2socks udp 0 0 127.0.0.1:61083 127.0.0.1:1081 ESTABLISHED 16749/ipt2socks udp 0 0 127.0.0.1:9646 127.0.0.1:1081 ESTABLISHED 16749/ipt2socks udp 0 0 127.0.0.1:39615 127.0.0.1:1081 ESTABLISHED 16749/ipt2socks
iptables规则: iptables -t mangle -N FUCKGFW ip route add local 0/0 dev lo table 100 ip rule add fwmark 0x2333/0x2333 lookup 100 iptables -t mangle -A FUCKGFW -d 0.0.0.0/8 -j RETURN iptables -t mangle -A FUCKGFW -d 10.0.0.0/8 -j RETURN iptables -t mangle -A FUCKGFW -d 127.0.0.0/8 -j RETURN iptables -t mangle -A FUCKGFW -d 169.254.0.0/16 -j RETURN iptables -t mangle -A FUCKGFW -d 172.16.0.0/12 -j RETURN iptables -t mangle -A FUCKGFW -d 192.168.0.0/16 -j RETURN iptables -t mangle -A FUCKGFW -d 224.0.0.0/4 -j RETURN iptables -t mangle -A FUCKGFW -d 240.0.0.0/4 -j RETURN iptables -t mangle -A FUCKGFW -s 192.168.1.149 -j RETURN iptables -t mangle -A FUCKGFW -p udp -j TPROXY --tproxy-mark 0x2333/0x2333 --on-port 12345 iptables -t mangle -A PREROUTING -p udp -s 192.168/16 -j FUCKGFW