如果兩個內網之間的linux服務器需要互相登錄,或需要互相訪問內網某個端口,擔憂沒有公網IP,可以使用的方法有ngrok(https://ngrok.com/),但並不方便,我們只需兩條 SSH 命令即可。
遠程端口轉發(由遠程服務器某個端口轉發到本地內網服務器端口)ssh -CfNg -R(命令行的關鍵) 2222(遠程服務器端口):127.0.0.1:22(本地端口) 123.45.67.8(遠程服務器)
本地端口轉發(由本地內網服務器某個端口轉發到遠程服務器端口)ssh -CfNg -L(命令行的關鍵) 2222(遠程服務器端口):0.0.0.0:4444(本地端口) 123.45.67.8(遠程服務器)命令行選項解釋:
-C:壓縮數據傳輸。-f :後台認證用戶/密碼,通常和-N連用,不用登錄到遠程主機。-N :不執行腳本或命令,通常與-f連用。-g :在-L/-R/-D參數中,允許遠程主機連接到建立的轉發的端口,如果不加這個參數,只允許本地主機建立連接。-L 本地端口:目標IP:目標端口-T 不分配 TTY 只做代理用-q 安靜模式,不輸出 錯誤/警告 信息
需要讓遠程機器能訪問的內部機器的端口號(端口:22)
在清楚了上面的參數後,我們使用下面的命令來建立一個遠程SSH隧道,在內網主機執行
ssh -CfNg -R 2222:127.0.0.1:22 123.45.67.8
現在,在IP是123.45.67.8的機器上我們用下面的命令就可以登陸內網IP為192.168.0.100的機器了。
ssh -p 2222 localhost
現在公網ip的 123.45.67.8 主機可以本地訪問內網服務端了,那內網客戶端要怎麼登陸呢?,我們只需要把內網客戶端的 4444 端口映射到 123.45.67.8 的 2222端口即可。
現在我們需要本地轉發了。
ssh -CfNg -L 2222:0.0.0.0:4444 123.45.67.8
執行完後,本地的內網客戶端 4444 端口已經和 123.45.67.8 的 2222 端口連接起來,然後 123.45.67.8 的 2222 端口 又和 內網服務端的 22 端口連接起來,成為一個完整的映射鏈。
本文轉載地址:http://www.linuxprobe.com/ssh-network.html
http://xxxxxx/Linuxjc/1134227.html TechArticle