Ubuntu 配置 OpenSSH 使其支援內網穿透

lookas2001發表於2017-02-27

ssh是一個很強的東西,我們可以利用他來實現代理、fq、內網穿透等很多東西。在這篇文章裡,我會講講如何使用ssh來進行內網穿透。

首先,看這篇文章可能需要一些基礎知識,這是我推薦的幾篇文章
最基礎:
http://www.ruanyifeng.com/blo…
http://www.ruanyifeng.com/blo…
提升:
https://www.ibm.com/developer…
中文man文件(可以簡單看一下):
http://www.cnblogs.com/nuke/a…

解決完這些就可以開始了^_^

配置伺服器

你需要在伺服器上配置 GatewayPorts 使其可以正常工作(如果不配置這一項會導致你在之後執行的命令後會發現只有在伺服器上才可以訪問)

編輯 sudo vi /etc/ssh/sshd_config
在最後一行新增 GatewayPorts yes

重新啟動服務 sudo service sshd restart

在本地使用ssh命令
ssh -R 8000:192.168.1.190:8001 ubuntu@wonld.com -i .ssh/yourkey.pem -gCfN

其中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 的話,後面跟著一個檔案地址,代表這是公鑰私鑰認證的(推薦這樣,更加安全)

最後,這個東西的用處?

在你開發的時候,想要讓小夥伴們看見,但是討厭部署麻煩;或者說在家裡有一臺強大的電腦可以用來搭建(minecraft)伺服器,但是又沒有公網地址。就可以使用這種方式來進行。一個內網穿透,解決所有問題。而且,ssh的話更加通用一些(相比於一些服務商提供的內網穿透服務)。

就醬紫,稽核員求通過啊,求通過。

相關文章