使用iptables TPROXY监听所有端口时无法建立出站连接的问题求助
iptables TPROXY监听所有端口时无法建立出站连接的问题求助
大家好,我最近在配置TPROXY透明代理时遇到了一个棘手的问题,想请各位帮忙分析下:
我的核心需求是把所有进入服务器的TCP连接都重定向到本地的一个监听程序(已开启IP_TRANSPARENT选项,入站连接处理一切正常),但现在当我尝试主动发起出站TCP连接时,出现了连接无法建立的情况——从抓包来看,SYN包能正常发送出去,对方也返回了SYN-ACK包,但我的系统始终没有回应ACK,看起来这些SYN-ACK包被TPROXY规则拦截并丢弃了。
我已经做的配置尝试
- 最初参考博客配置的iptables规则:
iptables -t mangle -I PREROUTING -i eth0 -p tcp -j TPROXY --on-port=1234 --on-ip=127.0.0.1
我把原博客中的-d 192.0.2.0/24改成了-i eth0,个人认为这个改动不会导致出站连接的问题。
- 后来看到有建议用路由策略来规避这个问题,于是做了以下配置:
- 添加自定义路由表:
echo "10 tproxy" >> /etc/iproute2/rt_tables- 配置路由规则,让本地IP(10.x.x.81)发起的流量走自定义路由表:
对应的路由规则和路由表状态:ip rule add from 10.x.x.81 table tproxy ip route add default via 10.x.x.80 dev ens2 table tproxy# ip rule show 0: from all lookup local 32764: from 10.x.x.81 lookup tproxy ... # ip route show table tproxy default via 10.64.70.80 dev ens2- 更新iptables规则,尝试排除本地IP发起的流量以及SSH端口:
-A PREROUTING ! -s 10.x.x.81/32 -i ens2 -p tcp -m tcp ! --dport 22 -j TPROXY --on-port 5000 --on-ip 127.0.0.1
抓包结果
执行tcpdump得到的关键报文如下:
11:42:28.172268 IP hostname.46324 > remote.https: Flags [S], seq 2783956497, win 64240, options [mss 1460,sackOK,TS val 1288228251 ecr 0,nop,wscale 7], length 0 11:42:28.173479 IP remote.https > hostname.46324: Flags [S.], seq 573845087, ack 2783956498, win 65160, options [mss 1460,sackOK,TS val 3249746343 ecr 1288227230,nop,wscale 7], length 0 11:42:29.202975 IP remote.https > hostname.46324: Flags [S.], seq 573845087, ack 2783956498, win 65160, options [mss 1460,sackOK,TS val 3249747372 ecr 1288227230,nop,wscale 7], length 0 11:42:29.620887 IP hostname.46334 > remote.https: Flags [S], seq 1774017241, win 64240, options [mss 1460,sackOK,TS val 1288229700 ecr 0,nop,wscale 7], length 0 11:42:29.621686 IP remote.https > hostname.46334: Flags [S.], seq 1078655880, ack 1774017242, win 65160, options [mss 1460,sackOK,TS val 3249747791 ecr 1288229700,nop,wscale 7], length 0
能看到对方的SYN-ACK包已经到达我的服务器,但系统没有回应,连接始终无法建立。
想请教各位,是不是我的路由策略或者iptables规则哪里配置有误?有没有其他方法可以让出站连接的响应包绕过TPROXY规则,正常传递到发起连接的进程?
备注:内容来源于stack exchange,提问作者Glaslos
相关产品推荐
相关产品推荐

