場景
我們開發(fā)的時候經(jīng)常遇到一個問題侄泽,開發(fā)的web服務(wù)器或后臺服務(wù)在公司的服務(wù)器上,但是回到家或假期需要開發(fā)的時候颂暇,自己的筆記本無法連接這些服務(wù)酗洒,一種方法是用vagrant搞一套仿真的開發(fā)環(huán)境,但是這要求我們的筆記本內(nèi)存足夠大凛忿,并且還需要經(jīng)常進行同步澈灼,如何能夠在家里訪問呢?
ssh隧道是個不錯的選擇。
常用參數(shù)
- -N 告訴SSH客戶端叁熔,這個連接不需要執(zhí)行任何命令委乌。僅僅做端口轉(zhuǎn)發(fā)
- -C 表示壓縮數(shù)據(jù)傳輸
- -f 告訴SSH客戶端在后臺運行
- -q Quiet mode. 安靜模式,忽略一切對話和錯誤提示
- -g:允許遠程主機連接主機的轉(zhuǎn)發(fā)端口
- -L port:host:hostport 做本地映射端口(正向隧道,監(jiān)聽本地port)
- 需要使用的本地端口號(7001)
- 需要訪問的目標(biāo)機器IP地址
- 需要訪問的目標(biāo)機器端口(端口: 21)
- -R荣回。port:host:hostport 該參數(shù)的三個部分的含義分別(反向隧道,監(jiān)聽遠程port)
- 遠程機器使用的端口(8080)
- 需要映射的內(nèi)部機器的IP地址(127.0.0.1)
- 需要映射的內(nèi)部機器的端口(22)
- -R X:Y:Z 就是把我們內(nèi)部的Y機器的Z端口映射到遠程機器的X端口上
- -D port 指定一個本地機器 ``動態(tài)的 應(yīng)用程序端口轉(zhuǎn)發(fā)
- ssh正向代理
目的是從本地訪問遠程的服務(wù)
遠程是ssh server福澡, 本地是ssh client, 偵聽端口在本地
ssh -fCNg -L 7001:<遠程內(nèi)部服務(wù)器-ip>:<遠程內(nèi)部服務(wù)-port> <user>@<遠程網(wǎng)關(guān)IP> -p <遠程網(wǎng)關(guān)的ssh 服務(wù) port>
ftp localhost:7001 # 現(xiàn)在訪問本地7001端口驹马,就能連接在內(nèi)網(wǎng)的服務(wù)了
- SSH動態(tài)代理
目的是從本地訪問遠程的服務(wù)
遠程是ssh server革砸, 本地是ssh client, 偵聽端口在本地
ssh -fCNg -D 0.0.0.0:1080 <user>@<遠程網(wǎng)關(guān)IP> -p <遠程網(wǎng)關(guān)ssh的port># 將端口綁定在127.0.0.1上
在瀏覽器里設(shè)置代理糯累,用localhost和1080即可算利,訪問的時候直接用內(nèi)部的地址;
- SSH 反向代理
目的是從遠程訪問本地的服務(wù)
ssh server在本地,遠程是ssh client泳姐, 端口偵聽在遠程的服務(wù)器上
ssh -CfNg -R 7001:<本地內(nèi)部服務(wù)器-ip>:<本地內(nèi)部服務(wù)-port> <user>@<遠程網(wǎng)關(guān)IP> -p <遠程網(wǎng)關(guān)的ssh 服務(wù) port>
在遠程的服務(wù)器上可以通過7001端口訪問到本地的服務(wù)效拭,