在Linux系统中运行ngrok需要进行以下步骤:
1. 下载ngrok客户端
访问ngrok官网(https://ngrok.com/)下载对应Linux系统的压缩包(一般为`ngrok-vX.X.XX-linux-amd64.zip`或`ngrok-vX.X.XX-linux-arm64.zip`,根据CPU架构选择)。使用`wget`或浏览器下载后,通过`unzip`解压:
bash
unzip /path/to/ngrok.zip -d /usr/local/bin/
2. 授权执行权限
解压后为二进制文件添加可执行权限:
bash
chmod +x /usr/local/bin/ngrok
3. 配置身份验证
登录ngrok账户获取授权令牌(Authtoken),在终端运行以下命令绑定账户:
bash
ngrok config add-authtoken <你的Authtoken>
配置文件默认保存在`~/.config/ngrok/ngrok.yml`,支持自定义路径。
4. 启动隧道
基本命令格式:
bash
ngrok http 80 # 转发本地80端口
高级选项:
- 指定协议:`ngrok tcp 22`(SSH转发)
- 区域选择:`ngrok http --region=jp 8080`(指定亚太服务器)
- 子域名:`ngrok http --subdomain=example 3000`(需付费计划)
5. 后台运行与日志
使用`nohup`或`systemd`实现后台运行:
bash
nohup ngrok http 80 > ~/ngrok.log 2>&1 &
日志文件可监控连接状态和错误信息。
6. 防火墙配置
确保防火墙放行ngrok的出口流量:
bash
sudo ufw allow out to any port 443 proto tcp # ngrok默认使用443端口
7. 安全建议
- 限制访问IP:在`ngrok.yml`中配置`allow`规则
- 启用HTTPS:自动生成证书,但建议本地服务配置TLS
- 监控用量:免费版有连接数和带宽限制
8. 调试技巧
- `ngrok help`查看完整命令列表
- `curl http://localhost:4040/api/tunnels`获取当前隧道JSON信息
- `ngrok update`定期升级客户端
扩展知识:
ngrok底层使用SSH逆向隧道技术,通过公网服务器中转流量。企业版支持自定义域名、IP白名单和流量加密。对于生产环境,建议使用`systemd`托管服务并配置自动重启。