Ubuntu 配置 OpenSSH 使其支持内网穿透

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 [email protected] -i .ssh/yourkey.pem -gCfN

其中8000代表的是在服务器(wonld.com)开放的端口,192.168.1.190:8001代表8000这个端口应该吧数据包传到哪里。用一句人话来说,所有访问(有-g参数的时候)wonld.com:8000 都会通过这个ssh隧道传输到与你的电脑一个局域网内的192.168.1.190机器上的8001端口。[email protected]代表的就是你的服务器。最后四个参数分别是:-g 允许所有地址可以访问这个端口(需要在之前的步骤配置了 GatewayPorts),-C 代表压缩数据,-f 代表会在后台执行,-N 代表不执行远程命令,用于转发端口,-i 的话,后面跟着一个文件地址,代表这是公钥私钥认证的(推荐这样,更加安全)

最后,这个东西的用处?

在你开发的时候,想要让小伙伴们看见,但是讨厌部署麻烦;或者说在家里有一台强大的电脑可以用来搭建(minecraft)服务器,但是又没有公网地址。就可以使用这种方式来进行。一个内网穿透,解决所有问题。而且,ssh的话更加通用一些(相比于一些服务商提供的内网穿透服务)。

就酱紫,审核员求通过啊,求通过。

你可能感兴趣的:(ubuntu,openssh)