SSH 內網端口轉發實戰
阿新 • • 發佈:2017-06-28
服務器 linux 密碼 用戶 認證
導讀 | 大家都知道SSH是一種安全的傳輸協議,用在連接服務器上比較多。不過其實除了這個功能,它的隧道轉發功能更是吸引人。 |
如果兩個內網之間的linux服務器需要互相登錄,或需要互相訪問內網某個端口,擔憂沒有公網IP,可以使用的方法有ngrok(https://ngrok.com/),但並不方便,我們只需兩條 SSH 命令即可。
先給出本文主角,兩條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://coderhsf.blog.51cto.com/12629645/1942582
SSH 內網端口轉發實戰