Ssh

啟動從伺服器到客戶端的 ssh 連接

  • January 11, 2022

我們可以輕鬆地連接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使隧道更具彈性的工具(即在它關閉時自動重新啟動它)。

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