先来说说什么是内网穿透,内网穿透是一种通过公共网络(通常是互联网)访问位于私有网络中的计算机或服务的技术
是否需要内网穿透?如果家里或公司的网络不能够被互联网直接访问(没有公网IP)那么就可能需要内网穿透。当然并不是说一定要做内网穿透,对于一些特定的服务,暴露到公网其实并不安全
今天介绍的是基于端口转发来实现内网穿透,所以需要一定的条件:
- 一台拥有公网IP的主机
- 有域名更好
GOST是一个开源软件,马上就发布3.0正式版了,可能只有小部分小伙伴听说过,但是很多小伙伴绝对使用过它提供的服务,今天只介绍它的端口转发功能,其它功能可以参阅HTTPS://gost.run/官方文档
这篇文章会先大致介绍下原理,后面再来进行实操。如果没有公网IP的网络环境就如下图一样,主机A可以访问互联网和云主机,互联网和云主机之间也是可以互相访问的,但是互联网是无法访问到主机A的,同样云主机也无法直接访问到主机A
而加上内网穿透,网络环境就变成如下图。主机A当然可以直接访问互联网,而互联网想要访问主机A,则需要先访问到云主机,而我们可以在云主机和主机A上打通一个通道(因为这两台机器我们都可以控制),通过这个通道,自然就可以访问到主机A了。这样就实现常说的内网穿透了
可以通过GOST非常简单的实现打通隧道的操作,只需要两行命令,在云主机上开启socks5协议的服务,再把主机A的5230的服务转发到云主机的3333端口上,这样就可以通过访问云主机的3333端口访问到主机A的5230的服务了,而6666端口就是云主机和主机A之间的通道端口
搭建接下来进行演示,这里的演示环境为:云主机(阿里云ECS)、主机A(群晖218) 首先去ECS安全组,把需要的端口放开,如果服务器开启了防火墙,也要放开相应的端口