Linux

在路由器上為反向 SSH 隧道設置埠轉發

  • April 18, 2016

我的家用電腦在 NAT 之後,但我的路由器有靜態 IP 地址。我的工作電腦使用 3G 棒上網(所以我想這就像在 NAT 後面)。

我想創建一個反向 SSH 隧道來連接到我的工作 PC。根據大量手冊,我在工作 PC 上創建了一個隧道:

ssh -R 33333:localhost:22 homeuser@135.142.205.131

135.142.205.131我的路由器的靜態 IP 地址在哪裡。嘗試在家連接工作時,我發出以下問題:

ssh -p 33333 localhost

但我得到“連接被拒絕”。我想我需要配置一些埠轉發,因為我認為我需要以某種方式讓 ssh 讓我將一些本地埠連接到路由器的 33333 埠以使隧道工作。我該怎麼做?

在我的工作電腦上輸出:

netstat -nap --inet --tcp

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:56789           0.0.0.0:*               LISTEN      1402/klient
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 10.0.85.14:56731        104.20.90.217:443       ESTABLISHED 1402/klient
tcp        0      1 10.0.85.14:52501        135.142.205.131:22      SYN_SENT    2366/ssh
tcp        0      0 10.0.85.14:56789        52.49.10.125:53633      ESTABLISHED 1402/klient
tcp        0      0 10.0.85.14:47118        104.20.89.217:443       ESTABLISHED 1402/klient

netstat - output在我的工作電腦上的輸出:

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 10.0.85.14:56731        104.20.90.217:https     ESTABLISHED
tcp        0      1 10.0.85.14:52501        135.142.205.131:ssh     SYN_SENT
tcp        0      0 10.0.85.14:56789        ec2-52-49-10-125.:53633 ESTABLISHED
tcp        0      0 10.0.85.14:47118        104.20.89.217:https     ESTABLISHED

這一行:

tcp 0 1 10.0.85.14:52501 135.142.205.131:22 SYN_SENT 2366/ssh

告訴我們,從工作電腦到家庭電腦的 ssh 連接尚未完成。所以要麼a)從路由器到家庭電腦的埠轉發不起作用,要麼b)家庭電腦上的ssh-d沒有監聽(正確的)地址

引用自:https://unix.stackexchange.com/questions/277254