文章目录
- 一、什么叫内网穿透
- 1、内网穿透技术的描述
- 2、内网穿透技术的工作方式通常包括以下几个步骤
- 二、用内网穿透解决了什么问题
- 三、常见的内网穿透解决方式
- 1、FRP (`开源`)
- 2、花生壳(`商业`)
- 3、ZeroTier(`开源` `商业`)
- 四、内网穿透实战
- 1、FRP
一、什么叫内网穿透
1、内网穿透技术的描述
内网穿透
是指通过一种技术手段,将内部网络
或者本地计算机服务
暴露在公网网络
上,从而实现公网网络
可以访问内部网络
或者本地计算机服务
的目的。内网穿透
通常用于远程办公
、局域网内部服务访问
等场景,可以便捷地实现内外网的互通
,提高工作效率。
2、内网穿透技术的工作方式通常包括以下几个步骤
- ① 内网穿透服务器启动:内网穿透服务器作为一个中介,需要先启动并等待内网穿透客户端连接;
- ② 内网穿透客户端连接:内网穿透客户端通过连接内网穿透服务器,将内部网络或本地计算机服务注册到内网穿透服务器上,并且将公网用户的请求转发到相应的服务上;
- ③ 公网用户访问:公网用户通过访问内网穿透服务器的公网地址,将请求发送到内网穿透服务器上;
- ④ 内网穿透服务器转发请求:内网穿透服务器接收到公网用户的请求后,将请求转发到相应的内部网络或本地计算机服务上;
- ⑤ 内部网络或本地计算机服务响应:内部网络或本地计算机服务接收到请求后,进行相应的处理,并将响应返回到内网穿透服务器;
- ⑥ 内网穿透服务器转发响应:内网穿透服务器接收到内部网络或本地计算机服务的响应后,将响应转发给公网用户。
通过以上步骤,公网用户可以直接访问内部网络或本地计算机服务,实现内外网的互通。
二、用内网穿透解决了什么问题
我们需要知道一个前提:内部网络
中的主机可以访问公网网络
主机,反之不可以访问;公网网络
可以和公网网络
双向访问
;内部网络
中的主机和另一个内部网络
中的主机互相无法访问。那么内部网络
中的客户机和公网网络
中的客户机如何访问另一个内部网络
中的服务器呢?这里就需要用到内网穿透
技术。
三、常见的内网穿透解决方式
1、FRP (开源
)
FRP 使用 Go 语言开发,可以支持 Windows、Linux、macOS、ARM 等多平台部署。FRP内网穿透无需多复杂的配置就可以达到比较好的穿透效果,具有较强的扩展性,支持tcp, udp, http, https 协议,并且 Web 服务支持根据域名进行路由转发。此外,FRP 提供了一种新的代理类型 XTCP ,可以在传输大量数据时让流量不经过服务器中转,用于实现点对点穿透,当然,此功能并不能保证在你的网络环境 100% 可用,成功率较低,而且还要求访问端也得运行 FRP 客户端 (目前手机端ios没有frp客户端软件)。由于实现条件较多,所以有文件传输需求的朋友但必须用frp的朋友还是建议买带宽稍大一点的 VPS 会比较省心。frp适合有linux基础的个人,且需要自购一个云主机做中转,企业追求稳定可以考虑其他方式。
2、花生壳(商业
)
花生壳既是内网穿透软件、端口映射软件。功能比较齐全,比较简单,也是大家比较耳熟了,支持tcp,udp.https.http,socket5应用。流量还是得走传说中的rootnode,所以是限流1G,分的等级比较多商业版、旗舰版、铂金版,需要根据不同需求付费开通相关功能。安装使用门槛低,无需自购云主机做中转,企业商用追求稳定可以选择花生壳付费版本。
3、ZeroTier(开源
商业
)
ZeroTier官方解释为将整个世界转变为单个数据中心或云区域,将所有设备,虚拟机和应用程序联接起来,就像在同一个交换机接入所有设备一样。ZeroTier类似VPN,为内网服务器所在NAT网络和客户机所在NAT网络各虚拟出一个VLAN,这样俩个VLAN就可以通过ZeroTier建立连接,在通过UDP打洞技术就可以实现内网服务器和内网客户机直接交互数据。目前ZeroTier提供的点对点穿透技术成功率还是比较高的,可以应付大多数网络,国内长城宽带无法点对点穿透。而zerotier因为是国外的项目,官方提供的中转服务器在国外,国内连接延迟高甚至连不上,所以官方给出了moons概念,可以自己搭建中转服务器。另外ZeroTier 支持 Windows、macOS、Linux 三大主流平台,iOS、Android 两大移动平台,以及 QNAP(威连通)、Synology(群晖)、Western Digital MyCloud NAS(西部数据)三个 NAS 平台,还支持 LEDE 开源路由器项目,支持客户端真的很多。ZeroTier适合有Linux基础的个人,一般用于NAS,为了稳定性需要自购一个云主机做中转,服务器和客户机都需要安装ZeroTier。
商业付费版暂不具体阐述,只能说花钱的就是好,有专业团队维护,且使用简单方便,但要注意由于数据包会流经第三方,因此对数据安全也是一大隐患。那么对于个人有动手能力的用户或者中小型企业小规模使用可以选择开源方式,综合软件配置复杂度、穿透能力等因素,个人觉得目前最好的选择就是FRP用于对流量转发不大的场景,而需要大量udp传输的场景选择ZeroTier。
四、内网穿透实战
1、FRP
可以通过有公网IP的的服务器将内网的主机暴露给互联网,从而实现通过外网能直接访问到内网主机;FRP有服务端和客户端,服务端需要装在有公网IP的服务器上,客户端装在内网主机上。
- 服务端
服务端配置点我查看
- 客户端
客户端配置点我查看