使用 ssh 登錄A機器(IP:1.1.1.1) 的 2333 端口,可以自動跳轉到 B機器(IP:2.2.2.2)上,其中B機器的 ssh 登錄端口就是默認的 22。
首先確保幾個條件:
1. iptables 端口轉發打開了, 改 /etc/sysctl.conf 這個文件,把 net.ipv4.ip_forward=1 這句話的注釋取消。
2. 兩台機器可以聯通
3. iptables 的 filter 下面的 FORWARD 默認策略要是 ACCEPT
然后在 A機器上運行下面兩個命令:
1 iptables -t nat -A PREROUTING -d 1.1.1.1 -p tcp --dport 2333 -j DNAT --to-destination 2.2.2.2:22 2 3 iptables -t nat -A POSTROUTING -d 2.2.2.2 -p tcp --dport 22 -j SNAT --to 1.1.1.1
數據包首先進入 PREROUTING 鏈,更改數據包的目標地址,然后在 POSTROUTING 上再把源地址改成本機IP。關於數據包進入這幾個鏈的順序,搜一搜就可以知道了,值得了解一下。
注意,在A機器上配置時不要自作聰明把本機IP寫成 127.0.0.1 或者 192.168.0.1,就寫成實際的 IPv4 地址就行。
