目录
- 什么是 ngrok?
- 为什么要使用 ngrok?
- 如何安装 ngrok? 3.1. 在 Windows 上安装 ngrok 3.2. 在 macOS 或 Linux 上安装 ngrok
- 如何使用 ngrok? 4.1. 启动 ngrok 隧道 4.2. 配置 ngrok 隧道 4.3. 使用 ngrok 访问本地服务
- 常见问题解答
什么是 ngrok?
ngrok 是一款开源的反向代理软件,它可以将本地服务器暴露到公网上,让其他人可以访问您的本地服务。它支持 HTTP、HTTPS、TCP 等多种协议,并提供了丰富的配置选项。
为什么要使用 ngrok?
使用 ngrok 的主要原因包括:
- 远程调试和测试: 当您在开发过程中需要在远程设备上测试您的应用程序时,ngrok 可以帮助您快速地将本地服务暴露到公网上。
- 内网穿透: 如果您的本地服务器位于防火墙或 NAT 后面,ngrok 可以帮助您轻松地访问它。
- 端口转发: ngrok 可以将您本地的端口转发到公网上,使得远程访问变得更加简单。
- HTTPS 支持: ngrok 可以自动为您的服务生成 HTTPS 证书,提高安全性。
如何安装 ngrok?
在 Windows 上安装 ngrok
- 访问 ngrok 官网 (https://ngrok.com/) 并下载适用于 Windows 的安装包。
- 解压缩下载的 ZIP 文件,并将 ngrok.exe 文件放到您希望存放的目录中。
- 在命令提示符或 PowerShell 中,导航到 ngrok.exe 所在的目录,然后运行
ngrok help
命令来验证安装是否成功。
在 macOS 或 Linux 上安装 ngrok
- 访问 ngrok 官网 (https://ngrok.com/) 并下载适用于您的操作系统的安装包。
- 解压缩下载的文件,并将 ngrok 可执行文件移动到您希望存放的目录中。
- 在终端中,导航到 ngrok 所在的目录,然后运行
./ngrok help
命令来验证安装是否成功。
如何使用 ngrok?
启动 ngrok 隧道
-
在命令提示符或终端中,导航到 ngrok.exe 或 ngrok 所在的目录。
-
运行以下命令启动 ngrok 隧道:
ngrok http 80
这个命令会将您本地的 80 端口暴露到公网上。您也可以使用其他端口,例如
ngrok http 8080
。 -
ngrok 会显示一个公网 URL,您可以使用这个 URL 访问您的本地服务。
配置 ngrok 隧道
ngrok 提供了丰富的配置选项,您可以根据需要进行自定义。一些常见的配置选项包括:
- 指定要暴露的本地端口:
ngrok http 8080
- 使用自定义的子域名:
ngrok http -subdomain=myapp 8080
- 使用 HTTPS 协议:
ngrok http -proto=https 8080
- 使用自定义的 ngrok 配置文件:
ngrok start --config=/path/to/ngrok.yml myapp
使用 ngrok 访问本地服务
启动 ngrok 隧道后,您就可以使用公网 URL 访问您的本地服务了。例如,如果 ngrok 显示的公网 URL 是 http://abc123.ngrok.io
,您可以在浏览器中打开这个 URL 来访问您的本地服务。
常见问题解答
Q: 如何在 ngrok 中使用自定义域名?
A: ngrok 支持使用自定义域名,您需要在 ngrok 仪表盘中添加一个新的隧道,并在该隧道中配置您的自定义域名。具体步骤如下:
- 登录 ngrok 仪表盘 (https://dashboard.ngrok.com/)
- 创建一个新的隧道,并在”Hostname”字段中输入您的自定义域名。
- 在您的域名提供商处,将域名的 DNS 解析指向 ngrok 提供的 IP 地址。
- 在本地运行
ngrok start --all
命令即可启动隧道并使用您的自定义域名。
Q: ngrok 是否支持 WebSocket 协议?
A: 是的,ngrok 支持 WebSocket 协议。您可以使用 ngrok tcp 8080
命令来暴露您的 WebSocket 服务。
Q: ngrok 是否支持 TCP 隧道?
A: 是的,ngrok 支持 TCP 隧道。您可以使用 ngrok tcp 22
命令来暴露您的 SSH 服务。
Q: ngrok 有免费版本吗?
A: 是的,ngrok 提供了免费版本,但功能相对有限。如果您需要更多高级功能,如自定义域名、HTTPS 支持等,您需要购买付费版本。
Q: ngrok 是否安全?
A: ngrok 使用 TLS 加密来保护您的流量,并且提供了多种安全功能,如隧道身份验证等。不过,如果您正在处理敏感数据,建议您仍然使用 VPN 或其他安全方式来访问您的本地服务。