双向传输数据包端口转发 (NAT) 的 iptables 规则(仍接受发往当前服务器的数据包)

双向传输数据包端口转发 (NAT) 的 iptables 规则(仍接受发往当前服务器的数据包)

我编写了这样的规则,用于将所有端口转发到另一台服务器并返回,但我不喜欢为此保留端口10000

如果您不指定端口,那么当收到来自62.105.38.7to 的请求时192.168.0.209,它们将自动重定向到“192.168.0.201”。

# The packet TO [from 192.168.0.201->to 192.168.0.209] turn into [from 192.168.0.209:10000->to 62.105.38.7]
iptables -t nat -A PREROUTING -i wlp1s0 -p tcp-s 192.168.0.201 -d 192.168.0.209 -j DNAT --to-destination 62.105.38.7
iptables -A FORWARD -o wlp1s0 -p tcp -s 192.168.0.201 -d 62.105.38.7 -j ACCEPT
iptables -t nat -A POSTROUTING -o wlp1s0 -p tcp -s 192.168.0.201 -d 62.105.38.7 -j SNAT --to-source 192.168.0.209:10000

# Package FROM [from 62.105.38.7->to 192.168.0.209:10000] turn into [from 192.168.0.209->to 192.168.0.201]
iptables -t nat -A PREROUTING -i wlp1s0 -p tcp -s 62.105.38.7 -d 192.168.0.209 --dport 10000 -j DNAT --to-destination 192.168.0.201:80
iptables -A FORWARD -o wlp1s0 -p tcp -s 62.105.38.7 -d 192.168.0.201 -j ACCEPT
iptables -t nat -A POSTROUTING -o wlp1s0 -p tcp -s 62.105.38.7 -d 192.168.0.201 -j SNAT --to-source 192.168.0.209

是否有可能以某种方式摆脱指定 port 10000,但使数据包从62.105.38.7get 发送到192.168.0.201需要时,以及192.168.0.209需要时发送到?

相关内容