准备工作
-
安装ngrok
Windows系统:- 下载安装包:
https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-windows-amd64.zip
- 解压到目录(如
C:\ngrok
),将路径加入系统环境变量。
macOS/Linux系统:curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | sudo tee /etc/apt/sources.list.d/ngrok.list sudo apt update && sudo apt install ngrok
- 下载安装包:
-
身份验证
在终端执行(替换YOUR_AUTHTOKEN
为官网获取的令牌):ngrok config add-authtoken YOUR_AUTHTOKEN
命令行运行步骤
基础场景:暴露本地Web服务
假设本地服务运行在端口8000
:
ngrok http 8000
- 结果:终端显示公网URL(如
https://a1b2-34-56-78-90.ngrok-free.app
),所有流量转发至localhost:8000
。
高级用法示例
-
指定域名/区域(需付费计划)
ngrok http --domain=your-custom-domain.ngrok.dev 8000 ngrok http --region=eu 8000 # 选择欧洲服务器
-
暴露TCP服务(如数据库)
ngrok tcp 3306 # 将MySQL默认端口3306暴露到公网
-
带身份验证的隧道
ngrok http 8000 --basic-auth="user:password" # 强制访问者输入账号密码
验证运行状态
- 命令行窗口显示:
- 绿色 “Online” 状态表示隧道活跃。
- Requests 计数实时更新请求量。
- 访问本地服务日志,确认收到来自
ngrok.io
域名的请求。 - 打开官网控制台(https://dashboard.ngrok.com/)查看流量分析。
安全注意事项
- 限制访问:
ngrok http 8000 --oauth=google # 仅允许Google账号登录
- IP白名单:
ngrok http 8000 --allow-ip=192.168.1.1
- 避免敏感服务:勿暴露数据库、SSH等无保护的服务,除非配置额外安全层。
常见问题解决
- 错误 “session expired”:重新执行
ngrok config add-authtoken
更新令牌。 - 端口冲突:更换本地端口或使用
--bind-tls=true
指定HTTPS。 - 连接超时:检查防火墙是否放行ngrok(默认端口
443/tcp
)。
通过命令行运行ngrok只需三步:安装 → 认证 → 执行隧道命令,结合访问控制可安全测试Webhook、API或远程服务,定期查阅官方文档获取更新,建议付费计划获取自定义域名和审计功能。
引用说明:操作步骤参考ngrok官方技术文档(2025版),安全建议依据OWASP Web安全测试指南,实践经验来自开发者社区案例(StackOverflow, GitHub Discussions)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6671.html