ngrok 是一款用于本地端口映射到公网的工具,可以让外网访问本地服务,通常用于本地开发、调试、测试、演示等场景。下面就来详细介绍一下 ngrok 的使用方法和注意事项。
- 安装和配置
下载 ngrok 的安装包,并解压到一个合适的目录中,配置环境变量。
- 注册 ngrok 账号
进入 ngrok 的官网注册一个账号,完成注册后会分配一个 Authtoken。
- 启动 ngrok
在命令行中输入启动命令:
ngrok authtoken <Your_Authtoken>
ngrok http <port>
其中,port 是要映射到公网的本地端口号。例如,要映射本地的 8080 端口,可输入如下命令:
ngrok http 8080
启动 ngrok 后会生成一个公网 URL,在浏览器中输入此 URL 即可访问本地服务。除了 http 协议外,ngrok 还支持 https、tcp 和 tls 等协议,可根据实际情况进行配置。
- 自定义 ngrok 域名
默认情况下,ngrok 生成的公网域名是随机的,如果需要自定义域名,可以在 ngrok 的命令行参数中指定。例如,使用自定义域名 example.com:
ngrok http -subdomain example 8080
需要注意的是,自定义域名需要在 DNS 中正确配置解析,否则可能会出现域名无法访问的情况。
- 配置 ngrok 防火墙
在默认情况下,ngrok 会对外开放指定的端口,并允许所有人访问。为了保障安全性,可以在 ngrok 的配置文件中增加防火墙规则,限制访问权限,例如只允许指定 IP 访问:
web_addr: 0.0.0.0:4040
tunnels:
ssh:
addr: 22
proto: tcp
auth: user:password
remote_addr: xxx.ngrok.io:10000
inspect: true
proto:
tcp:
ip_whitelist:
- 10.0.0.1
具体配置方法可参考 ngrok 的官方文档。
- 遇到的常见问题
6.1 ngrok 连接失败
可能是网络环境问题,可以尝试使用 VPN 或修改网络设置。如果是防火墙阻止了 ngrok 的连接,则需要添加防火墙规则。
6.2 ngrok 连接超时
ngrok 连接时间默认为 8 小时,如果需要更长时间的连接,可以使用 ngrok 的专业版。此外,也可以使用 ngrok 的 API 编写脚本,自动更新连接。
6.3 ngrok 域名无法访问
可能是 DNS 配置问题,需要检查是否设置了正确的页面规则。另外,如果使用的是自定义域名,也需要在 ngrok 的后台配置域名解析记录。