iptables端口转发一次后就不转发了
发布网友
发布时间:2022-05-03 04:38
我来回答
共1个回答
热心网友
时间:2023-10-09 19:16
SNAT ,当数据经过1.1.1.1发送到2.2.2.2 时,你指定了使用 80 端口作为源端口,
这样另一个请求转发时,80源端口就已经被占用,无法通过1.1.1.1发送出去
你配置的PC1数据包流动是这样
进 3.3.3.3:1111 1.1.1.1:80
出 1.1.1.1:80 2.2.2.2:8080
进 4.4.4.4:2222 1.1.1.1:80
出 1.1.1.1:80 2.2.2.2:8080 这里4.4.4.4这个连接就无法使用80端口发送出去,只有等待3.3.3.3请求结束,并且等待80端口回收后才能使用
这样配置
-A POSTROUTING -d 2.2.2.2/32 -p tcp -m tcp --dport 8080 -j SNAT --to-source 1.1.1.1
进 3.3.3.3:1111 1.1.1.1:80
出 1.1.1.1:1111 2.2.2.2:8080
进 4.4.4.4:2222 1.1.1.1:80
出 1.1.1.1:2222 2.2.2.2:8080
当2个请求ip端口一样时,系统会自动分配其他端口
进 3.3.3.3:1111 1.1.1.1:80
出 1.1.1.1:1111 2.2.2.2:8080
进 4.4.4.4:1111 1.1.1.1:80
出 1.1.1.1:1234 2.2.2.2:8080