Ssh

使用本地 IP 地址從 ssh 伺服器連接到遠端電腦

  • May 17, 2018

我有一台遠端 Linux 電腦連接到本地 ssh 伺服器,在埠 5051 上創建反向 ssh 隧道。在 ssh 伺服器本身上,我執行以下兩個命令,以便為遠端電腦提供本地 IP 地址。

ip addr add 192.168.1.51/24 dev eth0
iptables -t nat -A PREROUTING -d 192.168.1.51 -p tcp --dport 22 -j REDIRECT --to-port 5051

在 ssh 伺服器上,我還在 sshd_conf 中配置了 GatewayPorts

如果我在 192.168.1.51 上 ssh,則從網路上的第三台電腦直接連接到遠端 Linux 電腦。

但是如果我從 ssh 伺服器 ssh 192.168.1.51 我再次連接到 ssh 伺服器。我不在遠端電腦上連接。從 ssh 伺服器連接遠端電腦的唯一方法是使用ssh root@localhost -p 5051

但我不想那樣做。我希望能夠從 ssh 伺服器 ssh 192.168.1.51,並在遠端電腦上連接。

IPTables NAT 表的 PREROUTING 鏈規則僅適用於通過連接到網路的網路適配器從其他系統到達的 IP 數據包。

如果要將規則應用於本地生成的數據包,則需要將規則添加到 OUTPUT 鏈。

所以,你需要這樣做:

iptables -t nat -A OUTPUT -d 192.168.1.51 -p tcp --dport 22 -j REDIRECT --to-port 5051

引用自:https://serverfault.com/questions/912726