ngrok 是一款开源的网络隧道工具,可将本地服务(如 Web 服务器、SSH 等)安全地暴露到公网,生成临时域名供外部访问,适用于开发调试、演示、远程访问等场景,支持 HTTPS、TCP 隧道等功能。
Linux 安装 ngrok 详细步骤
步骤 1:下载 ngrok 客户端
打开终端,通过官方源下载最新版(以 64 位 Linux 为例):
cd /tmp wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.tgz
注意:
- 其他架构设备请访问 ngrok 下载页 获取对应链接。
- 始终从官网下载以确保安全,避免第三方篡改。
步骤 2:解压并安装
tar xvzf ngrok-v3-stable-linux-amd64.tgz # 解压文件 sudo mv ngrok /usr/local/bin/ # 移动到系统路径 ngrok version # 验证安装(显示版本号即成功)
步骤 3:配置认证令牌(Authtoken)
- 注册 ngrok 账户(免费版可用)。
- 在 Dashboard 获取您的
Authtoken
。 - 终端执行:
ngrok config add-authtoken <YOUR_AUTHTOKEN> # 替换为实际令牌
令牌保存在
~/.config/ngrok/ngrok.yml
,一次配置永久生效。
步骤 4:启动隧道服务
示例 1:暴露本地 Web 服务(端口 80)
ngrok http 80
示例 2:暴露 SSH 服务(端口 22)
ngrok tcp 22
运行后终端将显示公网地址(如 https://1a2b-34-56-78-90.ngrok-free.app
),通过此地址即可访问本地服务。
进阶配置(可选)
设置为系统服务(Systemd)
创建服务文件:
sudo nano /etc/systemd/system/ngrok.service ```以 HTTP 隧道为例): ```ini [Unit] Description=Ngrok Tunnel After=network.target [Service] ExecStart=/usr/local/bin/ngrok http 80 Restart=always User=your_username # 替换为实际用户名 [Install] WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload sudo systemctl start ngrok sudo systemctl enable ngrok # 开机自启
自定义域名(付费版)
在 Dashboard 绑定域名后,启动命令添加 --domain
参数:
ngrok http --domain=yourdomain.ngrok.io 80
常见问题解决
-
连接失败
- 检查
Authtoken
是否配置正确:ngrok config check
- 确保防火墙放行 ngrok 流量:
sudo ufw allow 80/tcp
(按需替换端口)
- 检查
-
服务意外停止
使用--log=stdout
参数查看日志:ngrok http 80 --log=stdout
-
免费版限制
免费账户隧道会话 2 小时超时,并发连接数受限,需升级付费版解除限制。
安全注意事项
- 🔒 勿暴露生产环境:ngrok 适用于测试,暴露数据库等高危服务可能导致攻击。
- 🔑 启用身份验证:对敏感服务添加密码保护:
ngrok http 80 --basic-auth="user:password"
- 📜 遵守政策:禁止滥用隧道进行违法操作,违反将导致账户封禁。
官方文档参考:
- ngrok 官方文档
- Linux 服务配置指南
更新于 2025 年 10 月,适用于 ngrok v3 版本,安装前请确认官网是否有更新。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4659.html