2

192.168.1.34我想将端口 22 上进入我的 Linux ( ) 的所有流量重定向到另一个地址

所以我使用了以下 iptable 命令

sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination 192.168.1.239:22

该命令不返回错误。

但是,当我尝试从 PC ( 192.168.1.133) 到我的 linux ( 192.168.1.34) 打开 ssh 会话时,没有打开 ssh 会话。看起来 ssh 流量没有重定向到 ( 192.168.1.239)

如果我直接从PC(192.168.1.133)打开ssh会话到(192.168.1.239),那么会话就打开了

4

2 回答 2

2

首先,确保 NAT 主机启用了 IP 转发:

echo "1" > /proc/sys/net/ipv4/ip_forward

其次,您的所有主机都在同一个子网中,这意味着从192.168.1.239回您的客户端 ( 192.168.1.133) 的 SSH 流量不会通过192.168.1.34.

所以你可以:

  1. 同时使用 DNAT 和 SNAT,或者
  2. 为您的主机使用不同的子网。
于 2013-05-15T14:28:59.663 回答
1

您需要再添加两条规则:您的 Linux IP ( 192.168.1.34 ) 和另一台机器的 IP ( 192.168.1.239 ):

### \# prerouting
sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination 192.168.1.239:22

### \# postrouting
sudo iptables -t nat -A POSTROUTING -p tcp --dport 22 -j MASQUERADE

### \# forward
sudo iptables -A FORWARD -s 192.168.1.34 -d 192.168.1.239 -j ACCEPT

sudo iptables -A FORWARD -s 192.168.1.239 -d 192.168.1.34 -j ACCEPT
于 2014-02-17T21:50:02.893 回答