在内网环境中,想要让外网能够访问到内网的服务或应用,内网穿透工具就成为了关键。市面上有不少免费的内网穿透工具可供选择,ngrok、frp 和 nat123 是其中较为常见的,它们各有特点,适用于不同的使用场景。
一、ngrok
ngrok是一款知名的跨平台开源反向代理工具,在免费内网穿透工具中颇受欢迎。它支持多种协议,如 HTTP、TCP 等,这使得它能适配各种类型的服务。
示例:如在微信小程序开发中,当需要将本地服务暴露给外网用于真机调试时,ngrok 就能发挥作用。
使用步骤:使用 ngrok 时,首先要在其官网注册账号获取认证令牌(authtoken)。然后进行配置,一般是在配置文件(如ngrok.yml)中设置相关参数,例如要将本地 8080 端口的服务映射到外网,可在配置文件中添加tunnels部分,指定协议为http,地址为8080。配置完成后,在ngrok.exe所在目录运行ngrok start --all命令,启动成功后,会生成一个公网地址,如https://xxxxx.ngrok.free.app,通过这个地址就能访问到本地 8080 端口的服务。
体验:不过,ngrok 免费版存在一些限制,它的带宽和速率有限,公网地址也是临时的,且无法自定义域名,这在一定程度上会影响使用体验,特别是对于对网络性能和稳定性要求较高的场景不太适用。
二、frp
frp(Fast Reverse Proxy)则是一款开源的高性能反向代理应用。它在免费内网穿透工具中以高性能和对多种协议的支持而闻名,涵盖 TCP、UDP、HTTP 和 HTTPS 协议。
点到点:frp 的一大特点是支持 P2P 模式,这种模式可以有效减少延迟,对于需要实时交互的服务,如远程桌面等应用有较好的效果。
使用步骤:使用 frp 时,需要搭建一个 frp 服务器(可以是有公网 IP 的云服务器等),在服务器上配置 frp 服务端参数,如监听端口、允许访问的客户端等。在客户端(即需要穿透的内网设备),同样要配置 frp 客户端参数,指定服务器地址、端口,以及要映射的本地服务端口等信息。例如,若要将本地的 SSH 服务(默认端口 22)映射到外网,就在客户端配置文件中设置相关参数,使得 frp 客户端能连接到服务端,并将本地 22 端口的请求转发到服务端,再由服务端转发到外网。
体验:frp 的优势在于性能表现出色,且可根据自己的需求灵活配置服务器和客户端,但搭建服务器的过程相对复杂一些,对于技术能力稍弱的用户可能有一定门槛。
三、nat123
nat123 也是一款常用的免费内网穿透工具。它的使用相对较为简单,用户在 nat123 官网注册账号后,可获取免费的端口映射(即内网穿透通道,如完全开放的全端口映射模式)和动态域名解析。nat123 支持 HTTP、HTTPS 和 TCP、UDP 协议,包括80、443、非80网站和同端口直连等映射类型线路,能够满足常见的内网提供外网服务映射需求。
使用步骤:在配置方面,普通用户可以用windows客户端界面操作,用户只需下载安装到本地,然后在本地登录nat123客户端,即可一步添加映射保存实现内网穿透。例如,若要将本地的一个 Web 服务(假设端口为 80)映射到外网,运行 nat123客户端后,会得到一个外网访问的免费二级域名(可以自定义对应二级字符)地址,通过该地址就能访问到本地的 Web 服务。如果自己有域名的,也可以用自己域名来作为外网地址使用,且不用转移域名注册商,只需要添加个对应的cname指向让自己域名生效即可访问。
体验:nat123 的免费版也存在一定限制,它的免费隧道带宽较小,在访问量较大或数据传输较多时,可能会出现卡顿现象,尽量优先选择使用全端口P2P穿透点到点模式,穿透成功后是二端速度直接连接数据走自己带宽访问。有条件的正式应用推荐用正式线路较好速度和稳定体验。
四、小结
综合来看,ngrok 适合对配置简单性要求较高,只是偶尔需要将本地服务临时暴露到外网进行测试等轻量级应用场景;frp 则更适合对性能和稳定性有较高要求,且有一定技术能力来搭建和配置服务器的用户,可用于多种复杂的服务穿透需求;nat123 的优势在于使用简单,对于技术能力有限,只是希望快速实现内网穿透的用户较为友好,但免费线路在带宽性能方面相对较弱,正式线路体验较好。
在选择免费内网穿透工具时,用户需根据自身实际需求和技术水平来综合考量,从而选出最适合自己的工具。
搭建自己的内网穿透服务器/直接本地让公网访问:frp和ngrok常用于自己公网IP主机搭建使用,需要一定的技术折腾。nat123可以在windows公网主机快速搭建自己的内网穿透服务,也可以在无公网IP直接将本地内网地址提供互联网外网访问。