Ngrok 是一种内网穿透工具,能够将本地服务暴露到公网,实现外部访问本地开发环境的功能。以下是关于域名和端口在 Ngrok 中的关键知识点:
1. 域名分配
Ngrok 免费版会为每个隧道分配一个随机子域名(如 `xxx.ngrok.io`),每次重启服务都会变化。付费用户可以绑定自定义域名(如 `yourdomain.ngrok.io`),实现固定访问地址。
- 自定义域名需在 Ngrok 控制面板配置 DNS 的 CNAME 记录指向 `*.ngrok.io`。
- 支持HTTP/HTTPS协议,默认启用SSL加密(Let's Encrypt证书)。
2. 端口映射
Ngrok 通过指定本地端口创建隧道(如 `ngrok http 80`),将公网请求转发到本地的对应端口。
- 支持 TCP/UDP 协议,需使用 `ngrok tcp 22` 等形式。
- 可映射多个端口,每个端口对应独立隧道。
3. 高级域名配置
付费版本允许:
- 保留子域名(Reserved Domains),避免随机变化。
- 通配域名(Wildcard Domains),如 `*.example.ngrok.io`。
- 自定义顶级域名(需验证所有权并配置DNS A记录)。
4. 网络协议支持
除HTTP(S)外,Ngrok 可转发:
- SSH(tcp://0.tcp.ngrok.io:12345)
- 数据库端口(如MySQL默认3306)
- WebSocket(需`-bind-tls=true`参数)
5. 安全与控制
- 通过 `-auth` 参数设置HTTP基础认证(如 `user:pass`)。
- 防火墙规则可限制访问IP范围。
- 监控面板可实时查看请求日志和流量统计。
6. 与本地开发集成
- 结合 `localhost.run` 等工具实现多服务并行暴露。
- 调试Webhook时,Ngrok 提供请求重放(Replay)功能。
Ngrok 的配置灵活性和协议支持使其成为开发测试、临时演示的首选方案,但在生产环境中建议使用Nginx反向代理或专有内网穿透方案确保稳定性。
查看详情
查看详情