ssh端口轉(zhuǎn)發(fā)是什么?有什么用?
前言
一開始我對 ssh 端口轉(zhuǎn)發(fā)這個名詞概念很模糊,聽起來也很晦澀難懂,不知道它的作用到底是什么,有什么用處,于是便開始查找相關(guān)資料、理解、運用,后來發(fā)現(xiàn)其實也沒那么復(fù)雜,理解和用起來異常簡單。
首先,ssh 端口轉(zhuǎn)發(fā)可分為:本地端口轉(zhuǎn)發(fā)、遠(yuǎn)程端口轉(zhuǎn)發(fā)、動態(tài)端口轉(zhuǎn)發(fā)
下面我會單獨給每種端口轉(zhuǎn)發(fā)類型進(jìn)行講解。
1. 本地端口轉(zhuǎn)發(fā)
首先在本地主機運行:
格式 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)識符
local-port 本地端口號
target-host 目標(biāo)主機
target-port 目標(biāo)端口號
tunnel-host 作為轉(zhuǎn)發(fā)的服務(wù)器
-N 表示只作為轉(zhuǎn)發(fā),不登錄進(jìn)入服務(wù)器
此時本地訪問 locahost:8080 就相當(dāng)于遠(yuǎn)程訪問 www.example:com:80
應(yīng)用場景:
假如遠(yuǎn)程主機在 9888 端口部署了一個服務(wù)器,但是防火墻并沒有開放這個端口,
如果本地想要訪問這個 9888 ,就可以用上面的案例來繞過防火墻進(jìn)行 ssh 訪問。假如遠(yuǎn)程主機是國外的,你也可以綁定遠(yuǎn)程主機的 80 / 443 的來進(jìn)行科學(xué)訪問。
2. 遠(yuǎn)程端口轉(zhuǎn)發(fā)
首先在本地主機運行:
格式 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)識符
remote-port 遠(yuǎn)程端口號
target-host 目標(biāo)主機
target-port 目標(biāo)端口號
tunnel-host 作為轉(zhuǎn)發(fā)的服務(wù)器
-N 表示只作為轉(zhuǎn)發(fā),不登錄進(jìn)入服務(wù)器
此時遠(yuǎn)程訪問 www.example:com:8888 就相當(dāng)于本地訪問 locahost:8080
應(yīng)用場景:
假如本地主機在 9888 端口部署了一個服務(wù)器,如果遠(yuǎn)程主機想要訪問本地的 9888,就可以用上面的案例
3. 動態(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)識符
local-port 本地端口號
tunnel-host 作為轉(zhuǎn)發(fā)的服務(wù)器
-N 表示只作為轉(zhuǎn)發(fā),不登錄進(jìn)入服務(wù)器
注意,這種轉(zhuǎn)發(fā)采用了 SOCKS5 協(xié)議,不能像本地/遠(yuǎn)程端口轉(zhuǎn)發(fā)那樣來直接訪問
我們得將 http 請求轉(zhuǎn)成 SOCKS5 才能轉(zhuǎn)發(fā)出去,下面是請求使用案例
curl -x socks5://localhost:7999 https://www.baidu.com curl -x socks5://localhost:7999 https://www.weibo.com
此時本地訪問 socks5://localhost:7999 https://www.baidu.com 等同于讓遠(yuǎn)程服務(wù)器www.example.com 去訪問 https://www.baidu.com / https://www.weibo.com
你也可以通過瀏覽器設(shè)置 socks5 代理綁定 7999,此時瀏覽任何網(wǎng)站都會走向這個代理,然后再由這個代理詢問遠(yuǎn)程機請求再把請求結(jié)果返回到 socks5 代理然后在返回到瀏覽器。
應(yīng)用場景:
假如你的服務(wù)器是國外的,那么此時本地訪問國外鏈接就相當(dāng)于是科學(xué)訪問。支持代理 qq 數(shù)據(jù)、使無網(wǎng)主機變成有網(wǎng)。
4. 本地端口轉(zhuǎn)發(fā) 和 動態(tài)端口轉(zhuǎn)發(fā)有啥區(qū)別
本地端口在一開始就明確了遠(yuǎn)程機端口號,而動態(tài)端口轉(zhuǎn)發(fā)對應(yīng)遠(yuǎn)程機端口是未知的,
你也可以理解動態(tài)端口實際上就是請求什么樣的類型,就自動給我們綁定對應(yīng)的端口,它們的區(qū)別如下:
本地端口 L:8080 => R:80
動態(tài)端口 L:8080 ? R:N
動態(tài)端口轉(zhuǎn)發(fā)的作用是很強大的,它不僅可以處理 http,還可以自動適配其它協(xié)議并進(jìn)行綁定對應(yīng)端口。
比如有一臺沒有網(wǎng)絡(luò)的電腦想要上 qq,用過 qq 的都知道有個代理設(shè)置,所以我們就可以通過動態(tài)端口轉(zhuǎn)發(fā)方式實現(xiàn)有網(wǎng),
你可以在里面設(shè)置 socks 類型并寫上代理地址及端口號,這樣 qq 產(chǎn)生的數(shù)據(jù)就會通過對應(yīng)的 111.222.333:1080 轉(zhuǎn)發(fā)出去
從而實現(xiàn)本地機沒網(wǎng)但可以借助111.222.333:1080 來幫我轉(zhuǎn)發(fā)數(shù)據(jù)變成有網(wǎng)。
再比如下面這種情況也是一樣通過代理方式讓沒網(wǎng)的主機變成有網(wǎng)。
5. 多級端口轉(zhuǎn)發(fā)
你可以在本地啟動多個端口轉(zhuǎn)發(fā),比如我們有本地機 A 和兩個遠(yuǎn)程機 B,C
此時你想通過本地機 A 訪問 B 來間接訪問 C, 即 A -> B > C
那么就可以用借助多級轉(zhuǎn)發(fā)來實現(xiàn),我們來看案例:
本地機搭建第一個 ssh 隧道
ssh -L 7000:localhost:3000 root@www.example.com -N
遠(yuǎn)程機 www.example.com 自己搭建第二個 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ā):本地請求 === 遠(yuǎn)程請求遠(yuǎn)程端口轉(zhuǎn)發(fā):遠(yuǎn)程請求 === 本地請求動態(tài)端口轉(zhuǎn)發(fā):本地訪問外部所有請求 === 遠(yuǎn)程代替訪問外部所有請求
以上端口轉(zhuǎn)發(fā)類型可以混合使用,不限于同一種類型,想要轉(zhuǎn)發(fā)玩的6得靠實踐應(yīng)用才行。
到此這篇關(guān)于ssh端口轉(zhuǎn)發(fā)是什么?有什么用?的文章就介紹到這了,更多相關(guān)ssh端口轉(zhuǎn)發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux系統(tǒng)下Nginx支持ipv6配置的方法
這篇文章主要介紹了Linux系統(tǒng)下Nginx支持ipv6的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12CentOS-NAT模式下(DHCP)聯(lián)網(wǎng)成功案例
這篇文章主要為大家詳細(xì)介紹了CentOS-NAT模式下(DHCP)聯(lián)網(wǎng)成功,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11Linux下的crontab定時執(zhí)行任務(wù)命令詳解
cron的配置文件稱為“crontab”,是“cron table”的簡寫。這篇文章主要介紹了Linux下的crontab定時執(zhí)行任務(wù)命令詳解,需要的朋友可以參考下2018-09-09windows下安裝PEAR php5.3.1下解決出錯的方法
在配置好了Apache2.2.14和PHP5.3.1后,最近想安裝PEAR(PHP Extension and Application Repository),但是在執(zhí)行批處理文件go-pear.bat的時候出現(xiàn)了錯誤2010-02-02CentOS 6.3 安裝配置Apache2.2.6的方法(源碼編譯安裝)
這篇文章主要介紹了CentOS 6.3 安裝配置Apache2.2.6的方法,需要的朋友可以參考下2014-11-11Ubuntu/Linux 有關(guān)權(quán)限修改的命令解析
這篇文章主要介紹了Ubuntu/Linux 有關(guān)權(quán)限修改的命令的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-11-11