00x0、相關介紹
OpenSSH(
OpenBSD Secure Shell)使用 SSH 通過計算機網絡加密通信的實現。
它是替換由 SSH Communications Security 所提供的商用版本的開放源代碼方案。目前 OpenSSH 是 OpenBSD 的子項目。
大家都只知道 SSH 可以基於密碼或密鑰登錄遠程主機使用,但是你知道嗎?其實 SSH 還可以在運用在
公網服務器連接私有IP虛擬機,還可以實現
命令行 SSH 代理。
00x1、公網服務器連接私有IP虛擬機
試驗環境為兩台 CentOS 系統:
一台為公網服務器 rabbit :45.xxx.xxx.212一台為 VirtualBox NAT 模式下的 CentOS 虛擬機 CentosA:10.0.2.15NAT 普遍使用在有多台主機但只通過一個公有 IP 地址訪問因特網的私有網絡中,它允許了多台主機共享一個公用 IP 地址(即虛擬機的所有數據包最後都由網絡中那台有公網 IP 地址主機轉發出互聯網)。
首先在 NAT 後面的虛擬機內建立端口轉發,通過如下命令:
ssh -gfN -R <公網映射端口>:127.0.0.1:<本地端口> <目標公網>
命令中“SSH”參數介紹:
-g:允許遠程主機連接到本地建立的轉發端口
-fN:不登錄不執行腳本或命令(經常連用)
-C:壓縮數據傳輸(小帶寬可用)
-R:程序級端口轉發 ,“port:host:hostport”方法(必須使用)
在我們的例子中,命令如下(處於安全的原因,隱藏了遠端公網地址):
# ssh -gfN -R 1111:127.0.0.1:22 45.xxx.xxx.212
接著,從公網服務器 45.xxx.xxx.212 上連接 NAT 後面的虛擬機,輸入命令:
ssh -p 1111 localhost
以上從公網服務器連接到[b]虛擬機私有 IP 實驗結束,下面是運用 SSH 建立 [/b]
Proxy 代理。00x2、建立 SSH 代理
代理(Proxy),也稱網絡代理,是一種特殊的網絡服務,允許一個網絡終端(一般為客戶端)通過這個服務與另一個網絡終端(一般為服務器)進行非直接的連接。一些網關、路由器等網絡設備具備網絡代理功能。一般認為代理服務有利於保障網絡終端的隱私或安全,防止攻擊。
圖解:左邊和右邊的電腦在通訊時候,需要經過中間的電腦中轉,而中間的那部電腦就是代理服務器。
簡單的說就是 A 要訪問 C,即便可以直接訪問 C,但是有倆個問題:一個是安全的問題,另外還有就是“過濾問題”。
於是我們有了“代理”就是讓我們 A 連接 B,由 B 去訪問 C,B 最後“加密”傳送給用戶,最後用戶就得到了想要的來自 C 的信息。
服務器端代理設置
本機輸入如下命令實現 SSH 代理:
ssh -nNT <user>@<ip> -D <port>
參數介紹:
-n:後台運行
-N:不執行遠程指令
-T:不分配 TTY ,只做代理用
-D:指定代理端口
上述命令的意思是,在本地監聽端口 1111,將訪問到該端口的流量轉發到遠程服務器,遠程服務器的用戶憑證由命令行指定。
至此,SSH 代理設置已經完成了。後面要用代理工具完成 SSH 代理。
客戶端配置
客戶端使用代理設置(本人這裡使用的是Chrome浏覽器下的 SwitchyOmega 工具,同類代理還可以用 Firefox 浏覽器下的工具 AutoProxy):
這裡我們通過了代理設置,我們的浏覽器和“阿裡雲”服務器連接完成~這樣我們就可以代理上網、加速上網。甚至還可以科學上網!
00x3、總結心得
第一節希望讓大家靈活運用 SSH,SSH 的功能不僅僅只是簡單的遠程連接部署。通過 SSH 設置,可以讓任何一台機器通過 SSH 相連接的!第二篇的意義在於享受遠程任何一台機器同時,還可以明白,能完成互連的 SSH。當然也可以完成代理~!
上述就是兩條 SSH 運用,僅僅只是拋磚引玉。更多好玩的,需要我們自己去發現去總結去設置去享受,也是希望大家不光有寬度更多的還要有“深度”。