ssh端口轉(zhuǎn)發(fā)是什么?有什么用?
一開始我對(duì) ssh 端口轉(zhuǎn)發(fā)這個(gè)名詞概念很模糊,聽起來也很晦澀難懂,不知道它的作用到底是什么,有什么用處,于是便開始查找相關(guān)資料、理解、運(yùn)用,后來發(fā)現(xiàn)其實(shí)也沒那么復(fù)雜,理解和用起來異常簡(jiǎn)單。
首先,ssh 端口轉(zhuǎn)發(fā)可分為:本地端口轉(zhuǎn)發(fā)、遠(yuǎn)程端口轉(zhuǎn)發(fā)、動(dòng)態(tài)端口轉(zhuǎn)發(fā)
下面我會(huì)單獨(dú)給每種端口轉(zhuǎn)發(fā)類型進(jìn)行講解。
1. 本地端口轉(zhuǎn)發(fā)
首先在本地主機(jī)運(yùn)行:
格式 ssh -L local-port:target-host:target-port tunnel-host -N 案例 ssh -L 8080:wwww.example.com:80 root@wwww.example.com
-L 是本地端口轉(zhuǎn)發(fā)的標(biāo)識(shí)符
local-port 本地端口號(hào)
target-host 目標(biāo)主機(jī)
target-port 目標(biāo)端口號(hào)
tunnel-host 作為轉(zhuǎn)發(fā)的服務(wù)器
-N 表示只作為轉(zhuǎn)發(fā),不登錄進(jìn)入服務(wù)器
此時(shí)本地訪問 locahost:8080 就相當(dāng)于遠(yuǎn)程訪問 www.example:com:80
應(yīng)用場(chǎng)景:
假如遠(yuǎn)程主機(jī)在 9888 端口部署了一個(gè)服務(wù)器,但是防火墻并沒有開放這個(gè)端口,
如果本地想要訪問這個(gè) 9888 ,就可以用上面的案例來繞過防火墻進(jìn)行 ssh 訪問。假如遠(yuǎn)程主機(jī)是國(guó)外的,你也可以綁定遠(yuǎn)程主機(jī)的 80 / 443 的來進(jìn)行科學(xué)訪問。
2. 遠(yuǎn)程端口轉(zhuǎn)發(fā)
首先在本地主機(jī)運(yùn)行:
格式 ssh -R remote-port:target-host:target-port tunnel-host -N 案例 ssh -R 8888:localhost:8080 root@wwww.example.com -N
-R 是遠(yuǎn)程端口轉(zhuǎn)發(fā)的標(biāo)識(shí)符
remote-port 遠(yuǎn)程端口號(hào)
target-host 目標(biāo)主機(jī)
target-port 目標(biāo)端口號(hào)
tunnel-host 作為轉(zhuǎn)發(fā)的服務(wù)器
-N 表示只作為轉(zhuǎn)發(fā),不登錄進(jìn)入服務(wù)器
此時(shí)遠(yuǎn)程訪問 www.example:com:8888 就相當(dāng)于本地訪問 locahost:8080
應(yīng)用場(chǎng)景:
假如本地主機(jī)在 9888 端口部署了一個(gè)服務(wù)器,如果遠(yuǎn)程主機(jī)想要訪問本地的 9888,就可以用上面的案例
3. 動(dòng)態(tài)端口轉(zhuǎn)發(fā)(SOCKS5)
格式 ssh -D local-port tunnel-host -N 案例 ssh -D 7999 root@wwww.example.com -N
-D 是本地端口轉(zhuǎn)發(fā)的標(biāo)識(shí)符
local-port 本地端口號(hào)
tunnel-host 作為轉(zhuǎn)發(fā)的服務(wù)器
-N 表示只作為轉(zhuǎn)發(fā),不登錄進(jìn)入服務(wù)器
注意,這種轉(zhuǎn)發(fā)采用了 SOCKS5 協(xié)議,不能像本地/遠(yuǎn)程端口轉(zhuǎn)發(fā)那樣來直接訪問
我們得將 http 請(qǐng)求轉(zhuǎn)成 SOCKS5 才能轉(zhuǎn)發(fā)出去,下面是請(qǐng)求使用案例
curl -x socks5://localhost:7999 https://www.baidu.com curl -x socks5://localhost:7999 https://www.weibo.com
此時(shí)本地訪問 socks5://localhost:7999 https://www.baidu.com 等同于讓遠(yuǎn)程服務(wù)器www.example.com 去訪問 https://www.baidu.com / https://www.weibo.com
你也可以通過瀏覽器設(shè)置 socks5 代理綁定 7999,此時(shí)瀏覽任何網(wǎng)站都會(huì)走向這個(gè)代理,然后再由這個(gè)代理詢問遠(yuǎn)程機(jī)請(qǐng)求再把請(qǐng)求結(jié)果返回到 socks5 代理然后在返回到瀏覽器。
應(yīng)用場(chǎng)景:
假如你的服務(wù)器是國(guó)外的,那么此時(shí)本地訪問國(guó)外鏈接就相當(dāng)于是科學(xué)訪問。支持代理 qq 數(shù)據(jù)、使無網(wǎng)主機(jī)變成有網(wǎng)。
4. 本地端口轉(zhuǎn)發(fā) 和 動(dòng)態(tài)端口轉(zhuǎn)發(fā)有啥區(qū)別
本地端口在一開始就明確了遠(yuǎn)程機(jī)端口號(hào),而動(dòng)態(tài)端口轉(zhuǎn)發(fā)對(duì)應(yīng)遠(yuǎn)程機(jī)端口是未知的,
你也可以理解動(dòng)態(tài)端口實(shí)際上就是請(qǐng)求什么樣的類型,就自動(dòng)給我們綁定對(duì)應(yīng)的端口,它們的區(qū)別如下:
本地端口 L:8080 => R:80
動(dòng)態(tài)端口 L:8080 ? R:N
動(dòng)態(tài)端口轉(zhuǎn)發(fā)的作用是很強(qiáng)大的,它不僅可以處理 http,還可以自動(dòng)適配其它協(xié)議并進(jìn)行綁定對(duì)應(yīng)端口。
比如有一臺(tái)沒有網(wǎng)絡(luò)的電腦想要上 qq,用過 qq 的都知道有個(gè)代理設(shè)置,所以我們就可以通過動(dòng)態(tài)端口轉(zhuǎn)發(fā)方式實(shí)現(xiàn)有網(wǎng),
你可以在里面設(shè)置 socks 類型并寫上代理地址及端口號(hào),這樣 qq 產(chǎn)生的數(shù)據(jù)就會(huì)通過對(duì)應(yīng)的 111.222.333:1080 轉(zhuǎn)發(fā)出去
從而實(shí)現(xiàn)本地機(jī)沒網(wǎng)但可以借助111.222.333:1080 來幫我轉(zhuǎn)發(fā)數(shù)據(jù)變成有網(wǎng)。
再比如下面這種情況也是一樣通過代理方式讓沒網(wǎng)的主機(jī)變成有網(wǎng)。
5. 多級(jí)端口轉(zhuǎn)發(fā)
你可以在本地啟動(dòng)多個(gè)端口轉(zhuǎn)發(fā),比如我們有本地機(jī) A 和兩個(gè)遠(yuǎn)程機(jī) B,C
此時(shí)你想通過本地機(jī) A 訪問 B 來間接訪問 C, 即 A -> B > C
那么就可以用借助多級(jí)轉(zhuǎn)發(fā)來實(shí)現(xiàn),我們來看案例:
本地機(jī)搭建第一個(gè) ssh 隧道
ssh -L 7000:localhost:3000 root@www.example.com -N
遠(yuǎn)程機(jī) www.example.com 自己搭建第二個(gè) ssh 隧道,可以理解為監(jiān)聽自己。
ssh -L 3000:localhost:8000 root@www.example.com -N
結(jié)果就是
L:7000 --> R:3000
R:3000 --> R:8000
因此 L:7000 就可以間接訪問到 R:8000
6. 總結(jié)
本地端口轉(zhuǎn)發(fā):本地請(qǐng)求 === 遠(yuǎn)程請(qǐng)求遠(yuǎn)程端口轉(zhuǎn)發(fā):遠(yuǎn)程請(qǐng)求 === 本地請(qǐng)求動(dòng)態(tài)端口轉(zhuǎn)發(fā):本地訪問外部所有請(qǐng)求 === 遠(yuǎn)程代替訪問外部所有請(qǐng)求
以上端口轉(zhuǎn)發(fā)類型可以混合使用,不限于同一種類型,想要轉(zhuǎn)發(fā)玩的6得靠實(shí)踐應(yīng)用才行。
到此這篇關(guān)于ssh端口轉(zhuǎn)發(fā)是什么?有什么用?的文章就介紹到這了,更多相關(guān)ssh端口轉(zhuǎn)發(fā)內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。