公网如何访问本地服务器?对比免费内网穿透工具ngrok vs LocalTunnel vs frp
暴露没有公网 IP 的服务器服务到公网,通常可以通过几种方式实现,其中包括使用反向代理、隧道服务等方法。
简要介绍几种常见的开源方案和免费服务:
1. ngrok
ngrok 是一个非常受欢迎的工具,能够将内网或没有公网 IP 的服务暴露到公网上。ngrok 提供了免费版本,但是如果需要更高级的功能(比如自定义域名),则需要付费。使用 ngrok 很简单,只需要下载对应的客户端,然后运行一个简单的命令就可以实现服务的公网暴露。
2. frp
frp (Fast Reverse Proxy) 是一个专注于快速和安全地将内网服务暴露到公网的高性能反向代理应用。frp 包括一个服务端 frps
和一个客户端 frpc
。服务端部署在具有公网 IP 的服务器上,客户端部署在需要暴露服务的内网服务器上。frp 支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,是一个完全开源的解决方案。
3. Pagekite
Pagekite 是另一个将本地服务器暴露到公网的工具,支持 HTTP、HTTPS 以及任意 TCP 协议。Pagekite 适用于开发和测试环境,在某些方面与 ngrok 类似。它既有免费版也有付费版,根据使用需求选择。
4. LocalTunnel
LocalTunnel 允许你轻松地通过一个命令将本地运行的服务分享到公网上。安装 LocalTunnel 很简单,只需要有 Node.js 环境,然后通过 npm 安装。LocalTunnel 主要适用于开发环境,且完全免费。
5. Inlets
Inlets 通过利用 WebSockets 技术来提供内网穿透服务,它将内网服务通过一个安全的隧道暴露到公网上。Inlets 分为开源版本和专业版。开源版本适用于 HTTP/HTTPS 流量,而专业版支持更多的特性,包括自动 HTTPS、TCP 流量支持等。
对比内网穿透服务
- 对于临时的开发和测试环境,ngrok 和 LocalTunnel 提供了快速且简单的解决方案。
- 对于需要更稳定、长期运行的服务,考虑使用 frp 或者自己搭建基于 Inlets 的解决方案可能更合适。
特性/服务 | ngrok | frp | Pagekite | LocalTunnel | Inlets |
---|---|---|---|---|---|
类型 | 商业/免费方案 | 开源 | 商业/免费方案 | 开源 | 开源/商业方案 |
支持的协议 | HTTP, HTTPS, TCP | TCP, UDP, HTTP, HTTPS | HTTP, HTTPS, TCP | HTTP, HTTPS | HTTP, HTTPS, TCP, UDP |
安装和使用 | 简单 | 需要一定配置 | 简单 | 简单 | 中等 |
自定义域名 | 付费支持 | 支持 | 付费支持 | 支持 | 支持(专业版) |
持久连接 | 是(付费版) | 是 | 是 | 否 | 是(专业版) |
适用场景 | 测试/演示环境 | 企业/长期项目 | 测试/演示环境 | 测试/开发 | 企业/长期项目 |
加密连接 | 支持 | 支持 | 支持 | 支持 | 支持 |
- ngrok:非常适合于临时演示和测试环境,对于初学者来说非常友好。提供了免费方案,但对于高级特性如自定义域名和持久连接需要付费。
- frp:一个功能强大的开源项目,适用于需要更细粒度控制和企业级部署的场景。它支持多种协议和高级路由功能,但配置相对复杂。
- Pagekite:与ngrok类似,提供了便捷的内网穿透服务,适合测试和演示。它也支持基本的免费使用,但更复杂的需求需要付费版。
- LocalTunnel:主要适用于开发和测试,因为它很容易设置。然而,它的连接可能不如其他服务那样稳定或持久。
- Inlets:提供开源和商业版本,支持多种协议,适合需要稳定持久连接的企业使用。配置和使用相对比其他选项复杂,但功能强大。