1. 程式人生 > >利用反向SSH從外網訪問內網伺服器

利用反向SSH從外網訪問內網伺服器

學院的伺服器在學院的內網,出了學院就不能訪問,在宿舍、家裡學習很不方便沒有伺服器的話。之前一直用TeamViewer,但是用著不舒服。最近新找到一個辦法,就是利用外網伺服器以及反向SSH搭一條通道,使得可以利用外網的伺服器登入內網的伺服器。簡單理解,既然外網無法找到內網的伺服器的IP,那就內網伺服器自己尋找外網的伺服器,主動搭建SSH通道,這樣外網就可以通過這條通道連線到剛剛了。

 兩臺伺服器配置

IP 登入使用者名稱
內網伺服器 192.168.1.107 tao
外網伺服器 1.1.1.1.1 root

 外網伺服器我用的是阿里雲的學生伺服器。

在內網伺服器上執行操作

ssh -NfR 1234:localhost:22 [email protected] -p 22

其中,這條命令的意思是在後臺執行(-f),不實際連線而是做port forwarding(-N),做反向ssh(-R),將遠端伺服器的1234埠對映成連線本機與該伺服器的反向ssh的埠。root為外網伺服器的登入名,1.1.1.1為外網IP(這裡我瞎寫的IP)執行完這條命令後在外網伺服器就可以進行登入了。

ssh [email protected] -p1234

ssh連線中斷問題

autossh -M 2222 -NfR 1234:localhost:22 
[email protected]
-p 22

 ubuntu安裝autossh命令

sudo apt-get install autossh

 參考: