Ssh
啟動從伺服器到客戶端的 ssh 連接
我們可以輕鬆地連接
ssh
到具有公共 IP 的遠端機器。但是現在我有一台沒有公共 IP 的遠端機器,我需要從有公共 IP 的機器連接到它。這樣,遠端機器應該啟動這個連接(添加一個客戶端)。
我需要它,因為我的祖父在沒有公共 IP 的電腦上,有時他的系統需要幫助。
在 Windows 上的類似情況下,我使用了 VNC 連接(通過 TightVNC),TightVNC 伺服器有一個選項“添加客戶端”:使用者剛剛輸入客戶端的 IP(即我的公共 IP),我的客戶端已經處於“偵聽模式”,並且當“伺服器”添加客戶端時,連接被初始化。
那麼,是否可以使用 SSH 連接執行相同的技巧?
根據定義,客戶端是發起連接的那個。
對於您的問題,我認為一個簡單的解決方案是建立一個反向隧道。
在沒有公網IP的電腦上:
ssh -R 2222:localhost:22 loginOfServerWithPublicIP@publicIP
這通過 SSH 連接到伺服器,並在埠 2222 上具有公共 IP 的伺服器與埠 22 (SSH) 上沒有公共 IP 的電腦建立隧道。
然後在伺服器上:
ssh -p 2222 loginOfComputerWithoutPublicIP@locahost
通過第一條隧道將連接從伺服器的2222埠重定向到電腦的22埠。您可能希望使用諸如
autossh
使隧道更具彈性的工具(即在它關閉時自動重新啟動它)。