我想将端口22上的所有流量信息重定向到我的Linux(192.168.1.34
)到另一个地址
所以我使用了以下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
)打开ssh会话到我的linux(192.168.1.34
)时,ssh会话没有打开。看起来ssh trafic没有重定向到(192.168.1.239
)
如果我直接从PC(192.168.1.133
)打开ssh会话到(192.168.1.239
),那么会话就会打开
答案 0 :(得分: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 :(得分: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