如何将本地端口转发到远程主机/端口?
我尝试过使用:
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>