ngrok怎样暴露本地服务到公网

联启 网络工具 12

本文目录导读:

ngrok怎样暴露本地服务到公网-第1张图片-电脑手机工具软件下载 - 免费实用工具合集 | 联启科技

  1. 第一步:下载与安装
  2. 第二步:连接你的账户(重要)
  3. 第三步:启动隧道暴露本地服务
  4. 常见使用场景与高级技巧
  5. 免费版限制
  6. 常见问题

使用 ngrok 将本地服务暴露到公网非常简单,核心步骤只有两步:下载安装一行命令启动

以下是详细的操作步骤:

第一步:下载与安装

  1. 访问官网:打开 ngrok官网

  2. 注册/登录:免费注册一个账号(需要邮箱验证)。

  3. 下载客户端:登录后,选择你的操作系统下载(Windows、macOS、Linux)。

  4. 解压与安装

    • 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

常见使用场景与高级技巧

  1. Webhook 调试:需要让微信/支付宝/支付回调访问你的本地服务,运行 ngrok 后,将回调地址填为 ngrok 提供的公网 URL 即可。

  2. 演示与分享:将正在开发的网站临时分享给客户或同事查看,无需部署到服务器。

  3. 内网穿透:如果你在家开发,公司电脑或者朋友想访问你电脑上的服务(如 Jupyter Notebook、GitLab),用 ngrok 是最简单的方式。

  4. 支持 HTTPS:ngrok 默认提供 HTTPS 公网地址,且证书有效,无需自己配置。

  5. 查看请求详情:访问 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 网址给别人,就能访问你的本地服务了。

标签: 反向代理

抱歉,评论功能暂时关闭!