ssh是用來遠程登錄主機的作用大家都知道,而且傳輸?shù)膬?nèi)容全部經(jīng)過加密處理也是大家喜歡其的主要因素。但其實ssh能做的更多,例如作為代理服務(wù)器。
通過ssh 的-D參數(shù),我們可以在本地搭建一個socks5服務(wù)器,具體使用方法如下:
ssh -qTNf -D 127.0.0.1:12345 test@222.333.444.555
其中-q表示該命令進入安靜模式
-T是指該命令不占用shell
-N是指該命令不執(zhí)行遠程命令
-f是指該命令在后臺運行
-D是該命令重要參數(shù),他的后面跟著socks5服務(wù)器的地址與端口
最后就是遠程服務(wù)器用戶名和地址
執(zhí)行完該命令后,我們需要在瀏覽器中設(shè)置代理服務(wù)器,地址和端口就是上面提到的,然后記得選擇socks5協(xié)議。那么以后每瀏覽一個頁面,都會先經(jīng)過代理服務(wù)器,然后再去請求頁面,接著頁面先到達代理服務(wù)器,最后才返回我們自己的瀏覽器。過程好像變得復(fù)雜了,但是這樣的作用是什么呢,很常見,例如有一些校園網(wǎng)是限制ipv4流量的,如果我們找到一臺支持ipv6的遠程服務(wù)器,而且校園網(wǎng)大部分都支持ipv6,那么我們就能通過建立ipv6代理服務(wù)器來無流量限制上網(wǎng)了。再者,如果我們能找到外國的免費服務(wù)器,能讓我們通過ssh登錄,那么我們通過建立代理服務(wù)器來翻墻了,翻墻后能做的事情就請讀者自行腦補吧。
接下來繼續(xù)講的是ssh的端口映射功能,這個也相當(dāng)好用,例如我們在家如果想訪問公司或?qū)W校的資源,我們需要先登錄一臺擁有公網(wǎng)ip的服務(wù)器,然后在訪問局域網(wǎng)的主機,譬如,我們是A主機,需要訪問學(xué)校的C主機,而只有學(xué)校B主機有公網(wǎng)ip,我們需要先登錄B主機,然后才能訪問C主機。過程很麻煩,這時我們就需要做一個端口映射了,而這個ssh也能幫我們完成。具體命令如下:
ssh -N -f -L 127.0.0.1:12345:10.21.0.34:22 test@12.3..4.5
其中-N,-f作用上面已經(jīng)講了,這里最重要的是-L命令,它作用是做本地映射,使得遠程服務(wù)器的端口相當(dāng)于本地某自定義的端口,如上面的命令,本地的12345端口就相當(dāng)于10.21.0.34的22端口,以后我只需要使用ssh user@127.0.0.1 -p 12345命令就能登錄10.21.0.34了,注意user是10.21.0.34的用戶,最后就是我們所使用的中間服務(wù)器,這個地址需要是我們直接訪問到的。其實上面所說的A主機就是127.0.0.1,B主機就是12.3.4.5,C主機就是10.21.0.34。當(dāng)然了,有本地映射肯定有遠程映射,就是把-L換成-R,這樣我們訪問遠程主機的端口就相當(dāng)于訪問本地的端口,但我沒發(fā)現(xiàn)該功能的更多用途。
如果你沒有什么中間服務(wù)器,只是想做個端口映射,那也很簡單,如下:
ssh -N -f -L 12345:12.3.4.5:22 test@12.3.4.5
就是把遠程服務(wù)器地址寫成中間服務(wù)器地址就完事了。
學(xué)習(xí)完ssh這些用法后有沒有對ssh產(chǎn)生無比崇敬的心情的,各種膜拜啊。