博主原文链接:https://www.yourmetaverse.cn/nlp/268
1. 内网穿透介绍
1.1 本人对内网穿透的理解
一般来说,如果在公网环境是无法访问到内网的设备,如在学校或者公司是无法访问到家里的设备的,但是有时候往往有需要远程访问家里设备的需求,如远程访问家里的NAS存储,远程访问家里的一些智能设备等。一般来说家里的网络设备是没有固定的公网IP的(听说可以跟运营商申请公网IP,如果能申请到公网IP的话,可以在路由器端设置端口映射即可访问家里的一些设备了),所以想要公网环境访问内网资源的话,就需要一台具有公网IP的服务器作为媒介(或者说是信使),利用内网穿透技术,将内网的一些设备的数据包进行转发,从而实现公网环境访问内网的设备。公网服务器充当的是一个数据交换的作用,我们访问公网IP,然后公网服务器将我们访问的数据转发到内网设备的IP,内网设备将数据在转发给公网服务器,公网服务器将数据转发给本地客户机,从而实现内网穿透,在任何地方访问内网设备。
1.2 百度百科介绍
内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。下面就相互通信的主机在网络中与 NAT 设备的相对位置介绍内网穿透方法。
1.3 网络上一些资源的介绍
内网穿透即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。就是说映射端口,能让外网的电脑找到处于内网的电脑,提高下载速度。不管是内网穿透还是其他类型的网络穿透,都是网络穿透的统一方法来研究和解决。NAT穿透,nat穿透中有关于网络穿透的详细信息。
端口映射,其实就是常说的NAT地址转换的一种,其功能就是把在公网的地址转翻译成私有地址, 采用路由方式的ADSL宽带路由器拥有一个动态或固定的公网IP,ADSL直接接在HUB或交换机上,所有的电脑共享上网。在局域网内部的任一PC或服务器上运行到内网穿透客户端,此时域名解析到的IP地址是局域网网关出口处的公网IP地址,再在网关处做端口映射指向监控设备即可。
2. 实现内网穿透的几种途径
2.1 各种已有的内网穿透服务商
正所谓有需求就会有市场,有很多做内网穿透服务的服务商(如花生壳、易有云等等,我就不列举了,避免恰饭的嫌疑),通过他们可以非常方便地实现内网穿透,只需要注册账号,按照简洁的操作说明设置一下,即可实现内网穿透。哦对了,最后别忘记付钱。
直接购买内网穿透服务有几个不好的地方。
(1)一般它是按照设备数进行付钱的,如果你家里有多台设备需要公网访问的话,需要花费较大的代价。
(2)其次它的带宽也比较贵,想要一个好的内网穿透服务就需要比较大的带宽支持。
(3)作为一名技术出身的人员,总觉得把命运交给别人不太舒服,内网穿透技术的实现并不复杂,为什么自己不去弄一个呢?
2.2 利用反向代理技术实现内网穿透
说人话就是利用代理技术访问内网设备,为什么叫反向代理呢,主要是,正常的代理是将用户发送给服务器的数据包(内网设备发送的数据包)转发到目标地址,而反向代理是将别人发送给服务器的数据包(外网环境的设备发出的数据包)转发到用户的客户端(即内网设备)。
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
2.3 好用的内网穿透软件 ——FRP
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
- 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
- 采用 TCP连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
- 代理组间的负载均衡。 端口复用,多个服务通过同一个服务端端口暴露。
- 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
- 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
- 服务端和客户端 UI 页面。
参考文献
[1] 内网穿透百度百科 https://baike.baidu.com/item/%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F/8597835
[2] 什么是内网穿透?内网穿透有什么用?https://hsk.oray.com/news/7244.html
[3] FRP介绍 https://github.com/fatedier/frp/blob/dev/README_zh.md
[4] 反向代理百度百科 https://baike.baidu.com/item/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86/7793488