![将端口转发到远程服务器?](https://linux22.com/image/188181/%E5%B0%86%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E5%88%B0%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
如何将本地端口转发到远程主机/端口?
我尝试过使用:
sudo iptables -t nat -A PREROUTING -p tcp --dport <PORT> -j DNAT --to-destination <DESTINATION_SERVER>:<DESTINATION_PORT>
答案1
端口转发有一个重要的警告DNAT
:
转发流量来自外部来源对于远程端口,iptables
DNAT
规则应该位于PREROUTING
链中,与您指定的完全相同。但要转发本地起源的
OUTPUT
流量到远程端口时,您将需要在表链中使用类似的规则nat
。
因此,如果您希望将前往特定本地端口的所有流量(本地生成的流量和传入流量)转至远程服务器,则需要两个规则:
iptables -t nat -A PREROUTING -p tcp --dport <PORT> -j DNAT --to-destination <DESTINATION_SERVER>:<DESTINATION_PORT>
iptables -t nat -A OUTPUT -p tcp --dport <PORT> -j DNAT --to-destination <DESTINATION_SERVER>:<DESTINATION_PORT>