ngrok 使用指南:让本地服务走向公网

首页 2026-05-13 15:33:21

什么是 ngrok

ngrok 是一款广受欢迎的内网穿透工具,它的核心作用是将你电脑上的本地服务通过一个临时公网地址暴露出去,让身处任何网络环境的人都能访问。无论你是在开发网站、调试接口,还是需要临时给朋友展示一个本地项目,ngrok 都能帮你省去购买服务器、配置域名、设置路由器的繁琐流程。
它的工作原理可以理解为:你在本地启动一个 ngrok 客户端,这个客户端会与 ngrok 公司的公网服务器建立一条加密隧道。外部用户访问 ngrok 提供的公网地址时,请求会通过这条隧道转发到你本地的指定端口,从而实现内外网的连通。

准备工作

在使用 ngrok 之前,你需要完成两项基础准备。
首先是注册账号。访问 ngrok 官方网站,你可以使用 GitHub 或 Google 账号快速完成注册。注册成功后,系统会向你发送一封验证邮件,点击邮件中的链接激活账号即可。
其次是获取授权令牌。登录后进入个人控制面板,你会看到一个专属的身份验证令牌(Authtoken)。这个令牌相当于你的身份凭证,ngrok 客户端需要通过它来识别你的账号,确保隧道连接与你的账户绑定。
 

安装 ngrok

ngrok 支持 Windows、macOS 和 Linux 三大主流操作系统,安装方式也各有不同。
在 macOS 上,如果你已经安装了 Homebrew 包管理器,可以直接在终端中输入安装命令,系统会自动下载并配置好环境变量。安装完成后,你可以在任意目录下直接调用 ngrok。
在 Windows 上,你需要从官网下载对应的压缩包,解压后会得到一个可执行文件。你可以将它放在一个固定目录,然后手动将该目录添加到系统的环境变量中,这样以后就不用在特定文件夹里才能运行 ngrok 了。
在 Linux 上,通常使用命令行下载压缩包并解压,然后将可执行文件移动到系统的可执行路径下,例如用户目录下的本地二进制文件夹,或者系统的标准路径中。
 

配置身份验证

安装完成后,第一步不是直接启动服务,而是配置你的授权令牌。打开终端或命令提示符,输入配置命令,后面跟上你从官网复制的 Authtoken。执行后,终端会提示配置已成功保存,这意味着 ngrok 已经将你的账号信息写入了本地的配置文件中,后续使用时无需重复输入。
这个步骤非常关键,因为 ngrok 的免费服务是基于账户来分配资源的。没有配置令牌,客户端将无法与服务器建立合法连接。
 

启动内网穿透

配置完成后,你就可以开始真正使用 ngrok 了。假设你的本地项目运行在默认的 8080 端口上,你只需要在终端中输入启动命令,指定要穿透的协议和端口号。ngrok 会立即开始工作,在终端界面中你会看到类似这样的信息:它为你分配了一个随机的公网地址,通常是 https 开头的域名,并且显示这个地址指向了你本地的服务地址。
此时,你只需要将这个公网地址复制给其他人,或者在自己的手机浏览器中打开,就能访问到原本只能在本地局域网中访问的服务了。整个过程不需要你拥有公网 IP,也不需要修改任何路由器设置。
 

查看与管理隧道

ngrok 在本地还提供了一个 Web 管理面板,默认地址是本地的一个特定端口。你可以在浏览器中打开这个地址,查看当前隧道的实时状态。面板中详细记录了每一个经过隧道的请求,包括请求时间、来源 IP、请求路径、响应状态码等信息。这对于调试接口非常有用,你可以清楚地看到外部用户是如何与你的本地服务交互的。
如果你需要同时穿透多个本地服务,比如前端项目在 3000 端口,后端接口在 8080 端口,你可以打开多个终端窗口,分别启动不同的 ngrok 实例。免费账户通常限制同时只能运行一个代理会话,但你可以在一个会话中配置多个隧道,通过编辑配置文件来实现同时转发多个端口。
 

固定域名与高级配置

免费版的 ngrok 每次启动时分配的公网地址都是随机生成的,这意味着如果你关闭服务后重新启动,之前的地址就会失效。对于需要长期稳定访问的场景,你可以在官网控制面板中申请一个固定的静态域名。免费账户通常可以创建一个固定域名,配置好后,每次启动时加上域名参数,就能保证地址不变。
此外,ngrok 还支持指定服务器区域,比如美国、欧洲、日本、亚太等。如果你发现默认区域连接不稳定,可以尝试切换区域参数来改善连接质量。对于需要传输非 HTTP 数据的场景,比如远程 SSH 访问本地服务器,ngrok 也支持 TCP 协议穿透,但免费账户使用 TCP 功能通常需要绑定一张银行卡进行身份验证,这张卡仅用于验证,不会被扣费。
 

安全注意事项

使用 ngrok 时,安全问题是不可忽视的。由于你的本地服务被暴露到了公网,理论上任何知道这个地址的人都可以访问。因此,建议只在开发、测试或临时演示时使用 ngrok,避免将包含敏感数据的生产环境直接穿透。
使用完毕后,记得在终端中停止 ngrok 服务,或者直接关闭运行窗口。如果你配置了固定域名,也建议在不需要时停止转发,防止本地端口被意外访问。同时,你的 Authtoken 相当于账号的钥匙,切勿泄露给他人,如果怀疑令牌已经泄露,应立即到官网重新生成新的令牌。
 

适用场景与局限性

ngrok 最适合的场景包括:本地开发时给异地同事展示项目进度、调试需要接收公网回调的 Webhook、临时搭建一个可访问的演示环境、前后端分离开发时让前端调用后端本地接口等。
不过,免费版也有一些限制需要注意:随机域名每次都会变化,不适合长期项目;带宽和并发连接数有一定上限,不适合高流量场景;免费账户同一时间只能运行一个代理会话。如果你的需求超出了这些限制,可以考虑升级到付费版本,获得自定义域名、更高带宽、IP 白名单等企业级功能。
 

总结

和ngrok类似的还有80km穿云箭工具(https://www.80km.com/cyj/),是一款轻量、高效、安全的内网端口映射与动态域名解析(DDNS)工具
ngrok 搭建指南:从零开始构建内网穿透服务
ngrok 怎么用?新手零基础使用完整教程
ngrok 使用指南:让本地服务走向公网
生产环境用Linux端口转发暴露内网服务,安全性和稳定性如何保障?
Windows netsh端口转发到底支持哪些协议?为什么只能转TCP?
Linux做软路由和硬路由器比,性能差距到底有多大?
Linux IP 转发功能详解
Linux 转发全解析:从网络转发到流媒体转发的完整指南
微信转发服务器,微信转发服务器是什么
虚拟服务器与端口转发:内网服务“上云”的必备技能