ssh是一個很強的東西,咱們能夠利用他來實現代理、fq、內網穿透等不少東西。在這篇文章裏,我會講講如何使用ssh來進行內網穿透。html
首先,看這篇文章可能須要一些基礎知識,這是我推薦的幾篇文章
最基礎:
http://www.ruanyifeng.com/blo...
http://www.ruanyifeng.com/blo...
提高:
https://www.ibm.com/developer...
中文man文檔(能夠簡單看一下):
http://www.cnblogs.com/nuke/a...linux
解決完這些就能夠開始了^_^ubuntu
配置服務器安全
你須要在服務器上配置 GatewayPorts 使其能夠正常工做(若是不配置這一項會致使你在以後運行的命令後會發現只有在服務器上才能夠訪問)服務器
編輯 sudo vi /etc/ssh/sshd_config
在最後一行添加 GatewayPorts yesssh
從新啓動服務 sudo service sshd restart代理
在本地使用ssh命令
ssh -R 8000:192.168.1.190:8001 ubuntu@wonld.com -i .ssh/yourkey.pem -gCfNrest
其中8000表明的是在服務器(wonld.com)開放的端口,192.168.1.190:8001表明8000這個端口應該吧數據包傳到哪裏。用一句人話來講,全部訪問(有-g參數的時候)wonld.com:8000 都會經過這個ssh隧道傳輸到與你的電腦一個局域網內的192.168.1.190機器上的8001端口。ubuntu@wonld.com表明的就是你的服務器。最後四個參數分別是:-g 容許全部地址能夠訪問這個端口(須要在以前的步驟配置了 GatewayPorts),-C 表明壓縮數據,-f 表明會在後臺執行,-N 表明不執行遠程命令,用於轉發端口,-i 的話,後面跟着一個文件地址,表明這是公鑰私鑰認證的(推薦這樣,更加安全)htm
最後,這個東西的用處?blog
在你開發的時候,想要讓小夥伴們看見,可是討厭部署麻煩;或者說在家裏有一臺強大的電腦能夠用來搭建(minecraft)服務器,可是又沒有公網地址。就可使用這種方式來進行。一個內網穿透,解決全部問題。並且,ssh的話更加通用一些(相比於一些服務商提供的內網穿透服務)。
就醬紫,審覈員求經過啊,求經過。