Linux iptables 从 ip1:port1 转发到 ip2:port2

Linux iptables 从 ip1:port1 转发到 ip2:port2

我将思想隧道连接到其他机器,如下所示: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 会将该规则置于表的开头而不是结尾。

相关内容