![Linux iptables 从 ip1:port1 转发到 ip2:port2](https://linux22.com/image/1355810/Linux%20iptables%20%E4%BB%8E%20ip1%3Aport1%20%E8%BD%AC%E5%8F%91%E5%88%B0%20ip2%3Aport2.png)
我将思想隧道连接到其他机器,如下所示:ssh user@ip -L2000:192.168.64.88:80
因此,我希望在本地计算机上以这样的方式配置 iptables,就像我对 192.168.64.88 地址具有“本机”访问权限一样。我的意思是,当我在 Web 浏览器中输入 http:// 192.168.64.88 时,iptables 将重定向到连接到远程计算机的本地主机端口 2000。
如何配置 iptables 从 192.168.64.88 端口 80 重定向到本地主机端口 2000?
我尝试过这个,但没有成功:
sudo iptables -t nat -A PREROUTING -p tcp -d 192.168.64.88 --dport 80 -j DNAT --to-destination 127.0.0.1:2000
在 mac os x 机器上我这样做:
sudo ifconfig lo0 192.168.64.88 alias
sudo ipfw add fwd 127.0.0.1,2000 tcp from me to 192.168.64.88 dst-port 80
但我不知道如何在 Linux 机器上执行此操作。
答案1
iptables -t nat -I PREROUTING -p tcp -d 192.168.64.88 --dport 80 -j DNAT --to-destination 127.0.0.1:2000
即您的命令基本正确。我猜想另一条规则首先被匹配,因此该规则从未被命中。使用 -I 而不是 -A 会将该规则置于表的开头而不是结尾。