SSH内网穿透

   免费的内网穿透,内网端口映射工具,无需设置路由器,公网IP,不限流量,不限连接数
了解更多  立即下载
FinalShell最好用的国产SSH客户端,一体化服务器管理软件,点击获取

现在各大网盘都已经凋零,曾经能跑满400M光纤的百度网盘,现在也变成了百度超慢盘。

所以很多同学都选择用NAS自建云存储,自建云存储就会碰到外网无法正常访问的问题。我们还会遇到如下问题:
时常在技术群里看到有人在问:“怎么连接上家里电脑的虚拟机”?
没远程连接权限,怎么连接进公司内网自己的机器呢?
归根结底,这些问题都是内网穿透的问题。SSH能解决这些问题,原理之类的东西自行谷歌,直接上实例。

外网访问内网web服务


如图,内网B上有web服务,用户想直接访问是不可能的,通过SSH的反向端口转发能轻松搞定这事。
在内网B机器上执行如下命令:

ssh -f -NR  "*:8080:localhost:80" root@waiwangA

命令解释:
f参数,表示SSH连接成功后,转入后台运行;N参数,表示只连接远程主机,不打开远程shell;R参数,表示远程转发。双引号里面的*:8080:localhost:80,很多人都搞不清怎么写,特别是有的大牛只写三段,那就更让人看不懂了,这里建议大家都写全,写四段,IP、端口、IP、端口写全。哪个写前面,哪个写后面,又有很多人搞不清楚,把流量从远端转发到本地,“从”写在前面,“到”写后面。如图:

执行上面的命令后,通过访问外网机器8080端口,就能访问到内网web。

然而8080端口跑的却是ssh服务。

稳定性改进
若觉得上面的命令不够稳定的话,可以使用autossh。

autossh -M 5678 -NR *:8080:localhost:80" root@waiwangA  -p22  

比之前的命令添加的一个-M 5678参数,负责通过5678端口监视连接状态,连接有问题时就会自动重连,去掉了一个-f参数,因为autossh本身就会在background运行。
此时,数据是这么走的:

内网访问外网web服务

如下图所示,位于旧金山的主机C的IP地址是45.55.25.21,很明显这台主机能上谷歌,如果将主机C端口8080上的流量转发到www.google.com的端口443上,美好的事情即将发生。

在内网B上执行命令:

ssh -L *:8080:google.com:443 root@45.55.25.21

现在,流量是这么走的:

然而现实是残酷的,我们访问114.115.158.225:8080并不能访问谷歌。因为这样转发,发往google.com的请求头里面的host字段是“114.115.158.225”,而不是google.com,所以失败。

SSH端口转发的另外一些用法

将本地主机端口8000上的流量转发到nginx.org的端口80上:

ssh -L 8000:nginx.org:80 user@localhost

将远程主机端口8000上的流量转发到nginx.org的端口80上:

ssh -L 8000:nginx.org:80 user@REMOTE_MACHINE

动态转发

ssh -D 23456 user@USA_host

然后本地设SOCKS5代理,美好的事情已然发生。

未经允许,不得转载本站任何文章:内网穿透 » SSH内网穿透
分享到: 更多 (0)
   免费的内网穿透,内网端口映射工具,无需设置路由器,公网IP,不限流量,不限连接数
了解更多  立即下载
FinalShell最好用的国产SSH客户端,一体化服务器管理软件,点击获取

评论 抢沙发

评论前必须登录!