我已经尝试了几个post来configuration此redirect,但不工作,这是我所需要的
我正在接收端口8080上的数据包,我想将数据包redirect到另一个IP在同一台服务器,为什么? 因为某些原因,它不会发送到互联网。
让我再详细一点。
服务器A正在将端口2525发送到服务器B,但它们不在同一个networking中。 我可以看到数据包进入服务器B,但他们不会去互联网。
服务器B有2个IP,一个是VPN服务器1,连接到服务器A,另一个IP有Internet访问。 我需要什么,或者我认为我需要的是将stream量从tun1redirect到具有Internet访问权限的IP,我尝试了不同的configuration,但是不起作用。
任何帮助将不胜感激。
欢迎来到Serverfault。
如果我理解正确,您正在尝试公开地址为167.114.185.238的10.0.10.172端口25,它由服务器10.0.9.6拥有
你有PREROUTING权利:
iptables -t nat -A PREROUTING -d 167.114.185.238 -p tcp --dport 25 -j DNAT --to 10.0.9.6
但是你也需要相应的POSTROUTING:
iptables -t nat -A POSTROUTING -d 10.0.9.6 -j SNAT --to 10.0.10.172
您还提到了以下FORWARD规则,这是正确的:
iptables -A FORWARD -d 10.0.9.6 -p tcp --dport 25 -j ACCEPT
但是,如果您在FORWARD表上有任何DROP规则或策略(-P),则只需要它,默认情况下不存在。 如果您有任何DROP规则,那么您需要将该ACCEPT 放在DROP规则之前 ,否则它将不起作用。
最后,您还需要启用IPv4转发:
sysctl -w net.ipv4.ip_forward=1
以下是不是真的需要,因为连接到端口25是源于您的服务器之外,他们已经包含您的公共IP为167.114.185.238作为目的地:
iptables -t nat -A POSTROUTING -o venet0:0 -j MASQUERADE
如果这回答你的问题,一定要点击左边的复选标记button✔。