一種通過SSH協(xié)議構造隧道達成數(shù)據(jù)加密傳輸?shù)姆椒?/h1>
更新時間:2015年01月06日 15:33:35 投稿:mdxy-dxy
這篇文章主要介紹了一種通過SSH協(xié)議構造隧道達成數(shù)據(jù)加密傳輸?shù)姆椒?需要的朋友可以參考下
OpenSSH在實現(xiàn)時,給我們提供一個簡單好用的Geek功能——端口轉(zhuǎn)發(fā)。說是一個功能,其實是兩個用法,一稱之為本地端口轉(zhuǎn)發(fā),一稱之為遠程端口轉(zhuǎn)發(fā)。
SSH端口轉(zhuǎn)發(fā)其實就是類似iptables的端口數(shù)據(jù)轉(zhuǎn)發(fā)功能,也即是將請求在某一個指定端口的數(shù)據(jù),轉(zhuǎn)發(fā)到另外一個指定的端口上。呵呵,很抽象啊~
下面說具體的用法:
下文的兩個注解:本地:指執(zhí)行SSH命令的發(fā)起端;遠程:SSH命令的連接端。執(zhí)行命令的環(huán)境要基于*nix或者是可以實現(xiàn)SSH命令效果的工具(如putty相關),服務所在的環(huán)境不限服務類型、不限操作系統(tǒng)。
SSH端口轉(zhuǎn)發(fā)之一:本地端口轉(zhuǎn)發(fā)
本地端口轉(zhuǎn)發(fā)是指通過SSH命令,在本地服務器Listen一個端口(如8000),然后將訪問這個端口的數(shù)據(jù)請求,轉(zhuǎn)發(fā)到遠程服務器的某一個服務端口上(如3306)。
有人也許會說廢話,難道我不能直接連接么?還用你這個?
其實這個有兩個場景也許你沒有想到:1、當需要數(shù)據(jù)加密傳輸時;2、當服務端口只能通過跳板機不能直接訪問時,如有些主機是沒有外網(wǎng)IP的。這兩個場景,直接連接是不可以的。
舉例說明:
假設我有本地虛擬機host1(192.168.1.100)工作機器,服務器host2(54.100.1.2)用作跳板機,服務器host3(10.0.0.9)上面部署得有MySQL服務(端口為3306)。host3是對外不開放。host1與host2可以通過ssh直連。host2與host3之間局域網(wǎng),防火墻互通。
當我在host1上面的web服務器想訪問host3上面的MySQL服務時,直接訪問是肯定不行的。因為不通。此時,我們就可以通過SSH的端口轉(zhuǎn)發(fā)功能實現(xiàn)。
在host1上面執(zhí)行如下命令:
#ssh -CNfg -L 8000:10.0.0.9:3306 dbfen@54.100.1.2
然后輸入host2上dbfen賬號的SSH密碼。此時,我們在host1上,通過訪問本地的192.168.1.100:8000端口,即是訪問的host3上面的3306端口。host3上的MySQL授權,針對host3(10.0.0.9)進行授權即可。
因為是通過的SSH長鏈接,這樣就可能達到數(shù)據(jù)的轉(zhuǎn)發(fā)及數(shù)據(jù)的加密傳輸。
怎么樣?是不是非常贊~
PS:大家用的myentunnel翻墻工具,就是用的plink工具來實現(xiàn)的本地端口轉(zhuǎn)發(fā)~~~
SSH端口轉(zhuǎn)發(fā)之二:遠程端口轉(zhuǎn)發(fā)
遠程端口轉(zhuǎn)發(fā)是指通過SSH命令,在遠程服務器Listen一個端口(如8000),然后將訪問這個端口的數(shù)據(jù)請求,轉(zhuǎn)發(fā)到本地的某一個服務端口上(如3306)。
跟本地端口轉(zhuǎn)發(fā)剛好反著~
舉例說明:
假設我有本地虛擬機host1(192.168.1.100)工作機器,服務器host2(54.100.1.2)用作跳板機,公司開發(fā)機host3(192.168.117.100)上面部署得有MySQL服務(端口為3306)。host3是開發(fā)機,無公網(wǎng)IP,可訪問外網(wǎng)。host1與host2可以通過ssh直連。host3可以直連上host2。
現(xiàn)在我在家里,當我想訪問公司的開發(fā)機時,開發(fā)、測試時,摳門的老板又沒有部署VPN,絕逼是不可能的。。。是的。。。不可能的。。??墒窃撍赖睦习?小編別讓DBfen老板看見了哈)又要求解決問題~~~淚奔啊~~~苦逼的攻城獅~~~腫么辦~~~難道要我半夜爬去公司嗎??????
天不滅我!我有SSH遠程端口轉(zhuǎn)發(fā)!
在離開公司前,在公司開發(fā)機host3上執(zhí)行命令如下:
#ssh -CNfg -R 8022:192.168.117.100:22 dbfen@54.100.1.2
然后輸入host2上dbfen賬號的SSH密碼。此時,我在家、我在出差、我在飛機上、我在海上,只要我能夠上網(wǎng)、能夠上host2,哈哈,直接SSH去host2,然后在host2上,輸入下面的命令:
# ssh root@127.0.0.1 -p 8022
輸入host3上root賬號的SSH密碼~開發(fā)機,我來啦~~~老板,我正在解決問題,我不用去公司的,我可以很快解決問題的啦~~~
有沒有很開心?
額,等等,你這個,還有一點兒問題啊,我host2服務器上面還得開放host2的SSH端口,host2上面還有重要數(shù)據(jù)~現(xiàn)在黑闊蟈蟈好兇的~好危險的喲~~~親,有解決辦法,附加一條我們的本地端口轉(zhuǎn)發(fā)馬上解決問題,在host2上執(zhí)行下面的命令
# ssh -CNfg -L 8024:127.0.0.1:8022 dbfen@54.100.1.2
然后輸入host2上dbfen賬號的SSH密碼。以后在家里、在海里、在天上,我只需要直接訪問54.100.1.2:8024即可自動訪問上host3上面的22端口,不再需要再登陸上host2(可以把host2上除8024外的所有端口全封了),然后登陸host3了~~~
怎么樣,有沒有很屌?咦,感覺這個功能在哪兒見過啊~這個東西我在哪兒見過。沒錯,花生殼代理!這就是不同實現(xiàn)啦!
下班回家~~~偶們也可以在家工作了~~~
等等…
既然大家這么嗨,我再給大家說一個應用場景,出過差的蟈蟈,有沒有遇到這樣的情況:當某個功能或者東西你不熟悉時,你需要求助于相關同事,而客戶的服務器又不讓遠程登陸,這個同事在遙遠的天邊。。。咋辦呢,讓丫飛過來?估計老板不讓。哈,我有QQ協(xié)助~~~
哈~你真2,QQ遠程協(xié)助也是人用的么?延遲得想讓人發(fā)瘋~
有辦法的~
帶上你的筆記本電腦(host1),去客戶的機房,一根網(wǎng)線接入客戶的服務器(host2),wifi連接上外網(wǎng),找一臺臨時的外網(wǎng)服務器(host3),操作如下:
在host3上面執(zhí)行如下命令:
# ssh -CNfg -L 8022:127.0.0.1:8021 root@127.0.0.1
輸入host3的root密碼
在host1上面執(zhí)行如下命令:
# ssh -CNfg -R 8021:host2:22 root@host3
輸入host3的root密碼
然后讓同事丫的趕緊連接host3:8022客戶服務器,給客戶解決問題!??!
相關文章
-
git多人協(xié)作_動力節(jié)點Java學院整理
這篇文章主要介紹了git多人協(xié)作,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧 2017-08-08
-
網(wǎng)站加速之CDN、SCDN、DCDN區(qū)別在哪?如何選擇?
阿里云CDN(內(nèi)容分發(fā)網(wǎng)絡)是用戶比較熟悉的,那么什么是SCDN?SCDN和CDN有什么區(qū)別? 2020-01-01
-
搭建hMailServer服務實現(xiàn)遠程發(fā)送郵件的圖文教程
hMailServer是一個郵件服務器,通過它我們可以搭建自己的郵件服務,本文主要介紹了搭建hMailServer服務實現(xiàn)遠程發(fā)送郵件的圖文教程,具有一定的參考價值,感興趣的可以了解一下 2023-08-08
-
HTTP常見的狀態(tài)碼HTTP Status Code
這篇文章主要介紹了HTTP常見的狀態(tài)碼HTTP Status Code 2017-01-01
-
服務器Apache與Tomcat和Nginx的理解和對比分析詳解
今天小編就為大家分享一篇關于服務器Apache與Tomcat和Nginx的理解和對比分析詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧 2019-04-04
最新評論
OpenSSH在實現(xiàn)時,給我們提供一個簡單好用的Geek功能——端口轉(zhuǎn)發(fā)。說是一個功能,其實是兩個用法,一稱之為本地端口轉(zhuǎn)發(fā),一稱之為遠程端口轉(zhuǎn)發(fā)。
SSH端口轉(zhuǎn)發(fā)其實就是類似iptables的端口數(shù)據(jù)轉(zhuǎn)發(fā)功能,也即是將請求在某一個指定端口的數(shù)據(jù),轉(zhuǎn)發(fā)到另外一個指定的端口上。呵呵,很抽象啊~
下面說具體的用法:
下文的兩個注解:本地:指執(zhí)行SSH命令的發(fā)起端;遠程:SSH命令的連接端。執(zhí)行命令的環(huán)境要基于*nix或者是可以實現(xiàn)SSH命令效果的工具(如putty相關),服務所在的環(huán)境不限服務類型、不限操作系統(tǒng)。
SSH端口轉(zhuǎn)發(fā)之一:本地端口轉(zhuǎn)發(fā)
本地端口轉(zhuǎn)發(fā)是指通過SSH命令,在本地服務器Listen一個端口(如8000),然后將訪問這個端口的數(shù)據(jù)請求,轉(zhuǎn)發(fā)到遠程服務器的某一個服務端口上(如3306)。
有人也許會說廢話,難道我不能直接連接么?還用你這個?
其實這個有兩個場景也許你沒有想到:1、當需要數(shù)據(jù)加密傳輸時;2、當服務端口只能通過跳板機不能直接訪問時,如有些主機是沒有外網(wǎng)IP的。這兩個場景,直接連接是不可以的。
舉例說明:
假設我有本地虛擬機host1(192.168.1.100)工作機器,服務器host2(54.100.1.2)用作跳板機,服務器host3(10.0.0.9)上面部署得有MySQL服務(端口為3306)。host3是對外不開放。host1與host2可以通過ssh直連。host2與host3之間局域網(wǎng),防火墻互通。
當我在host1上面的web服務器想訪問host3上面的MySQL服務時,直接訪問是肯定不行的。因為不通。此時,我們就可以通過SSH的端口轉(zhuǎn)發(fā)功能實現(xiàn)。
在host1上面執(zhí)行如下命令:
#ssh -CNfg -L 8000:10.0.0.9:3306 dbfen@54.100.1.2
然后輸入host2上dbfen賬號的SSH密碼。此時,我們在host1上,通過訪問本地的192.168.1.100:8000端口,即是訪問的host3上面的3306端口。host3上的MySQL授權,針對host3(10.0.0.9)進行授權即可。
因為是通過的SSH長鏈接,這樣就可能達到數(shù)據(jù)的轉(zhuǎn)發(fā)及數(shù)據(jù)的加密傳輸。
怎么樣?是不是非常贊~
PS:大家用的myentunnel翻墻工具,就是用的plink工具來實現(xiàn)的本地端口轉(zhuǎn)發(fā)~~~
SSH端口轉(zhuǎn)發(fā)之二:遠程端口轉(zhuǎn)發(fā)
遠程端口轉(zhuǎn)發(fā)是指通過SSH命令,在遠程服務器Listen一個端口(如8000),然后將訪問這個端口的數(shù)據(jù)請求,轉(zhuǎn)發(fā)到本地的某一個服務端口上(如3306)。
跟本地端口轉(zhuǎn)發(fā)剛好反著~
舉例說明:
假設我有本地虛擬機host1(192.168.1.100)工作機器,服務器host2(54.100.1.2)用作跳板機,公司開發(fā)機host3(192.168.117.100)上面部署得有MySQL服務(端口為3306)。host3是開發(fā)機,無公網(wǎng)IP,可訪問外網(wǎng)。host1與host2可以通過ssh直連。host3可以直連上host2。
現(xiàn)在我在家里,當我想訪問公司的開發(fā)機時,開發(fā)、測試時,摳門的老板又沒有部署VPN,絕逼是不可能的。。。是的。。。不可能的。。??墒窃撍赖睦习?小編別讓DBfen老板看見了哈)又要求解決問題~~~淚奔啊~~~苦逼的攻城獅~~~腫么辦~~~難道要我半夜爬去公司嗎??????
天不滅我!我有SSH遠程端口轉(zhuǎn)發(fā)!
在離開公司前,在公司開發(fā)機host3上執(zhí)行命令如下:
#ssh -CNfg -R 8022:192.168.117.100:22 dbfen@54.100.1.2
然后輸入host2上dbfen賬號的SSH密碼。此時,我在家、我在出差、我在飛機上、我在海上,只要我能夠上網(wǎng)、能夠上host2,哈哈,直接SSH去host2,然后在host2上,輸入下面的命令:
# ssh root@127.0.0.1 -p 8022
輸入host3上root賬號的SSH密碼~開發(fā)機,我來啦~~~老板,我正在解決問題,我不用去公司的,我可以很快解決問題的啦~~~
有沒有很開心?
額,等等,你這個,還有一點兒問題啊,我host2服務器上面還得開放host2的SSH端口,host2上面還有重要數(shù)據(jù)~現(xiàn)在黑闊蟈蟈好兇的~好危險的喲~~~親,有解決辦法,附加一條我們的本地端口轉(zhuǎn)發(fā)馬上解決問題,在host2上執(zhí)行下面的命令
# ssh -CNfg -L 8024:127.0.0.1:8022 dbfen@54.100.1.2
然后輸入host2上dbfen賬號的SSH密碼。以后在家里、在海里、在天上,我只需要直接訪問54.100.1.2:8024即可自動訪問上host3上面的22端口,不再需要再登陸上host2(可以把host2上除8024外的所有端口全封了),然后登陸host3了~~~
怎么樣,有沒有很屌?咦,感覺這個功能在哪兒見過啊~這個東西我在哪兒見過。沒錯,花生殼代理!這就是不同實現(xiàn)啦!
下班回家~~~偶們也可以在家工作了~~~
等等…
既然大家這么嗨,我再給大家說一個應用場景,出過差的蟈蟈,有沒有遇到這樣的情況:當某個功能或者東西你不熟悉時,你需要求助于相關同事,而客戶的服務器又不讓遠程登陸,這個同事在遙遠的天邊。。。咋辦呢,讓丫飛過來?估計老板不讓。哈,我有QQ協(xié)助~~~
哈~你真2,QQ遠程協(xié)助也是人用的么?延遲得想讓人發(fā)瘋~
有辦法的~
帶上你的筆記本電腦(host1),去客戶的機房,一根網(wǎng)線接入客戶的服務器(host2),wifi連接上外網(wǎng),找一臺臨時的外網(wǎng)服務器(host3),操作如下:
在host3上面執(zhí)行如下命令:
# ssh -CNfg -L 8022:127.0.0.1:8021 root@127.0.0.1
輸入host3的root密碼
在host1上面執(zhí)行如下命令:
# ssh -CNfg -R 8021:host2:22 root@host3
輸入host3的root密碼
然后讓同事丫的趕緊連接host3:8022客戶服務器,給客戶解決問題!??!
相關文章
git多人協(xié)作_動力節(jié)點Java學院整理
這篇文章主要介紹了git多人協(xié)作,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08網(wǎng)站加速之CDN、SCDN、DCDN區(qū)別在哪?如何選擇?
阿里云CDN(內(nèi)容分發(fā)網(wǎng)絡)是用戶比較熟悉的,那么什么是SCDN?SCDN和CDN有什么區(qū)別?2020-01-01搭建hMailServer服務實現(xiàn)遠程發(fā)送郵件的圖文教程
hMailServer是一個郵件服務器,通過它我們可以搭建自己的郵件服務,本文主要介紹了搭建hMailServer服務實現(xiàn)遠程發(fā)送郵件的圖文教程,具有一定的參考價值,感興趣的可以了解一下2023-08-08HTTP常見的狀態(tài)碼HTTP Status Code
這篇文章主要介紹了HTTP常見的狀態(tài)碼HTTP Status Code2017-01-01服務器Apache與Tomcat和Nginx的理解和對比分析詳解
今天小編就為大家分享一篇關于服務器Apache與Tomcat和Nginx的理解和對比分析詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04