当我们希望让互联网上的用户访问到我们在本地(内网)搭建的服务(如网站 web、FTP 文件共享、数据库、打印机、API 接口等),如果没有公网 IP,直接使用 192 或 10 开头这类内网地址是无法在局域网外访问到的。 有公网 IP 和路由权限时,是可以通过路由器设置端口映射提供局域网外访问的。但如面对无公网 IP 使用情况下,就可以借助网络工具内网穿透技术来解决。
一,内网穿透原理分析
内网穿透的核心思路是借助第三方拥有公网 IP 的服务器,来协调点到点直接连接或端口数据中转外网请求方式与本地服务之间的通信。 当你在本地运行穿透客户端后,本地客户端会主动与第三方服务器建立连接,外网请求再通过第三方服务器协调建立直连或转发到你的本地服务。
二,常见内网穿透工具
通过内网穿透服务提供的客户端与服务器端,可以将内网地址映射到一个公网可访问的域名或地址上,从而实现对内网服务的外网访问。 常见的内网穿透工具包括:Ngrok、FRP、NAT123 等。
1,ngrok:早期比较流行的内网穿透工具,提供体验和付费版本。 开源,配置相对简单,通过数据中转模式实现内网穿透,对国内连接访问速度可能不够理想。可以自己搭建,也可以用三方搭建好的服务做内网穿透。
2,FRP :开源、配置灵活,可自建服务端,常用于团队或企业内部穿透。 配置稍微复杂,但支持点到点穿透协议,且在国内社区中比较活跃,有很多教程可供参考。常用于自己搭建内网穿透服务,也可以使用三方搭建好的使用。
3,NAT123:国内的一家老牌服务商,提供穿透跨网服务,有体验和付费隧道。 操作简单,同时采用了中转和点到点双模式,集群式线路稳定连接访问,但体验测试线路有一定限制。
三,内网穿透的使用简单教程(以最常见的 nat123 为例)
1,在目标内网服务器上下载安装 nat123 客户端。并登录网络工具上来添加内网映射记录,选择合适的映射类型(如 80http、443https、非 80、同端口映射等),和设置好对应的内网和公网地址(自动生成的自定义二级域名,或用自己的域名)。
需要注意的是,使用自己域名作为公网地址时,同时需要登录自己注册域名解析网站添加对应的 cname 指向让自己域名生效。
2,在其他网络下连接访问。当我们在目标局域网本地启动网络映射软件并配置好内外网建立连接通道后,当外网用户通过域名访问时,就会被转发到你的本地 服务上。 这样,就无需将你的项目直接部署到云服务器上,而是通过内网穿透服务,让别人也能访问到你本地运行的项目。
如在单位内使用内网穿透工具,然后在家个人电脑浏览器访问公司办公 OA 和 ERP 系统网站使用。
四、总结
内网穿透网络工具解决了内网环境下无法给外网访问的问题,为开发测试、临时共享等场景带来了极大的方便。它并不是唯一的解决方案,如果有稳定的云服务器,直接在云服务器上部署服务也是一个选择。 如果是本地搭建服务器数据需要本地的:可使用 Ngrok、FRP、NAT123 等网络穿透工具来快速稳定让他人访问到你的本地服务。