本文目录导读:

使用 ngrok 将本地服务暴露到公网非常简单,核心步骤只有两步:下载安装 和 一行命令启动。
以下是详细的操作步骤:
第一步:下载与安装
-
访问官网:打开 ngrok官网。
-
注册/登录:免费注册一个账号(需要邮箱验证)。
-
下载客户端:登录后,选择你的操作系统下载(Windows、macOS、Linux)。
-
解压与安装:
-
Windows:解压到文件夹,得到一个
ngrok.exe文件,建议将其放到一个固定的目录,并添加该目录到系统环境变量PATH中,这样可以在任何命令行窗口直接使用。 -
macOS/Linux:解压后得到
ngrok可执行文件,建议移动到/usr/local/bin目录:sudo mv ngrok /usr/local/bin sudo chmod +x /usr/local/bin/ngrok
-
第二步:连接你的账户(重要)
登录 ngrok 官网后,仪表盘上会有一个 Authtoken,通常在“Your Authtoken”栏目下,复制它,然后在你的命令行中运行:
ngrok config add-authtoken 你的Authtoken
- 这一步是免费的,但必须做,它可以将你的客户端与账户绑定,并解锁免费用户的流量限制和并发隧道数。
第三步:启动隧道暴露本地服务
假设你已在本地启动了某个服务(例如一个 Web 服务正在监听 3000 端口,或者 HTTP 服务在 80 端口)。
打开一个新的命令行窗口(CMD、PowerShell 或终端),输入以下命令:
# 最常用:暴露 HTTP 服务(端口是 3000) ngrok http 3000 # 暴露 HTTPS 或 HTTP 服务(端口是 8080) ngrok http https://localhost:8080 # 暴露一个 TCP 服务(SSH、数据库等) ngrok tcp 22
执行后你会看到这样的输出:
Forwarding https://a1b2c3d4.ngrok.io -> http://localhost:3000
关键信息解释:
https://a1b2c3d4.ngrok.io:这就是 ngrok 为你生成的公网 URL。http://localhost:3000:这就是你本地的服务地址。
任何能上网的设备访问 https://a1b2c3d4.ngrok.io 时,ngrok 就会将请求转发到你本机的 http://localhost:3000。
常见使用场景与高级技巧
-
Webhook 调试:需要让微信/支付宝/支付回调访问你的本地服务,运行 ngrok 后,将回调地址填为 ngrok 提供的公网 URL 即可。
-
演示与分享:将正在开发的网站临时分享给客户或同事查看,无需部署到服务器。
-
内网穿透:如果你在家开发,公司电脑或者朋友想访问你电脑上的服务(如 Jupyter Notebook、GitLab),用 ngrok 是最简单的方式。
-
支持 HTTPS:ngrok 默认提供 HTTPS 公网地址,且证书有效,无需自己配置。
-
查看请求详情:访问
http://localhost:4040,这是 ngrok 的 Web 界面,你可以看到所有通过隧道转发的请求的 Headers、Body、响应时间等,对调试 API 非常有用。
免费版限制
- 公网 URL 每次启动都会变(随机字符串)。
- 免费版最多创建 2 个并发的隧道(你可以同时暴露 2 个不同的服务,比如一个 Web 和一个数据库)。
- 免费版只能创建 HTTP/HTTPS 和 TCP 隧道。
- 流量有限制(具体看官方政策,通常足够日常开发和测试)。
常见问题
- 命令执行后报错
FATA[0000]:通常是因为端口已被占用,或 Authtoken 未配置/无效,检查目标端口服务是否已启动,并重新运行ngrok config add-authtoken。 - 如何让 URL 固定不变:需要购买付费版套餐。
- 如何暴露内网其他设备:在本地 ngrok 命令所在电脑上,将
localhost:端口替换为目标内网设备的 IP 地址和端口,ngrok http 192.168.1.100:8080。
总结一句话: 在命令行输入 ngrok http 你的本地端口,回车,复制给出的那个 https://xxxx.ngrok.io 网址给别人,就能访问你的本地服务了。
标签: 反向代理