🧰 前提条件
- 已注册 ngrok 账号(免费版即可)
- 已下载安装 ngrok 客户端:官方下载地址

🔐 第一步:配置账户认证
-
登录 ngrok 网站,在 Dashboard 页面 获取你的 Authtoken。

-
打开终端,执行以下命令完成身份认证绑定:
ngrok config add-authtoken <你的-authtoken>
🚀 第二步:启动端口映射
🔸 映射本地 HTTP 服务(如 localhost:8080)
ngrok http 8080
🔸 映射 TCP 服务(如 SSH、MySQL 等)
ngrok tcp 22 # SSH
ngrok tcp 3306 # MySQL
ngrok tcp <你的端口>
⚠️ 免费用户 无法自定义公网端口,仅提供随机分配的 TCP 端口。自定义端口/域名需升级至付费账户。
⚠️ 第一次访问出现的警告页面
ngrok 免费版默认会在用户首次访问隧道链接时显示安全警告页,类似如下所示:

这个页面称为 interstitial warning page,目的是防止滥用、钓鱼等非法行为。
🔒 如何绕过警告页
为提高测试效率或提升用户体验,可以通过下列方式绕过该提示页:
✅ 方法一:添加请求头 ngrok-skip-browser-warning
curl -H "ngrok-skip-browser-warning: true" https://xxxx.ngrok-free.app
✅ 方法二:使用非标准 User-Agent
curl -A "MyTool/1.0" https://xxxx.ngrok-free.app
🔔 注意:
- 警告页只能绕过,不能关闭(除非升级为付费用户)。
- 若服务需要被嵌入到
iframe中或对公网用户展示页面,会明显影响用户体验。
🔧 进阶配置:使用 ngrok 配置文件
建议将常用隧道配置写入 ngrok.yml 文件中,路径为 ~/.config/ngrok/ngrok.yml:
authtoken: <你的-authtoken>
tunnels:
webserver:
proto: http
addr: 8000
ssh:
proto: tcp
addr: 22
然后执行:
ngrok start webserver
即可自动启动已定义的 webserver 隧道。
🧩 总结
ngrok 是开发调试、内网穿透的极佳工具,特别适用于:
- Web 服务测试
- 局域网设备远程访问
- 微信/钉钉回调联调
- 快速部署接口演示
免费版虽有一些限制(如随机端口、浏览器警告页等),但通过合理配置可大幅优化体验。
如需进一步实现稳定长连接、自定义域名、自托管方案,推荐你探索:
- frp(内网穿透利器)
- cloudflared tunnel
- ZeroTier + 自建代理
原文 https://blog.csdn.net/2301_79518550/article/details/149883093