ngrok如何实现内网穿透?

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)

  1. 注册 ngrok 账户(免费版可用)。
  2. 在 Dashboard 获取您的 Authtoken
  3. 终端执行:
    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

常见问题解决

  1. 连接失败

    • 检查 Authtoken 是否配置正确:ngrok config check
    • 确保防火墙放行 ngrok 流量:sudo ufw allow 80/tcp(按需替换端口)
  2. 服务意外停止
    使用 --log=stdout 参数查看日志:

    ngrok http 80 --log=stdout
  3. 免费版限制
    免费账户隧道会话 2 小时超时,并发连接数受限,需升级付费版解除限制。


安全注意事项

  • 🔒 勿暴露生产环境:ngrok 适用于测试,暴露数据库等高危服务可能导致攻击。
  • 🔑 启用身份验证:对敏感服务添加密码保护:
    ngrok http 80 --basic-auth="user:password"
  • 📜 遵守政策:禁止滥用隧道进行违法操作,违反将导致账户封禁。

官方文档参考

  • ngrok 官方文档
  • Linux 服务配置指南
    更新于 2025 年 10 月,适用于 ngrok v3 版本,安装前请确认官网是否有更新。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4659.html

(0)
酷番叔酷番叔
上一篇 2025年6月16日 13:26
下一篇 2025年6月16日 13:43

相关推荐

  • 在Linux操作系统中安装Adobe软件的具体步骤与注意事项是什么?

    在Linux操作系统下安装Adobe软件并非直接的过程,由于Adobe官方对Linux原生支持有限,多数创意设计类软件(如Photoshop、Illustrator、Premiere Pro等)并未提供官方Linux版本,用户可通过第三方兼容层、虚拟机或开源替代方案实现Adobe软件在Linux环境下的运行,以……

    2025年8月27日
    1200
  • cdlinux如何加载网卡驱动?

    在CDLinux系统中,网卡驱动的加载是保障网络功能正常使用的关键环节,CDLinux作为一款轻量级的Linux发行版,常用于应急响应、数据恢复等场景,其驱动加载机制可能与常规Linux系统存在差异,需结合系统特性进行操作,以下从自动加载、手动干预、工具辅助及问题排查等方面详细说明网卡驱动的加载流程,自动加载机……

    2025年8月27日
    1000
  • linux下如何查看网卡驱动

    Linux 下,可通过 lspci -k | grep -EA3 ‘Ethernet

    2025年8月9日
    1500
  • 如何查看NUMA当前状态?

    在Linux系统中,NUMA(Non-Uniform Memory Access,非统一内存访问)是提升多处理器服务器性能的关键技术,它通过将CPU和内存划分为多个”节点”,让每个CPU优先访问本地内存,减少跨节点延迟,以下是详细配置指南:在配置前,先检查系统NUMA支持情况:查看硬件支持执行命令:lscpu……

    2025年7月13日
    3400
  • Linux如何实现用户自动登录?

    在特定场景下(如家庭电脑、测试环境或专用设备),自动登录功能可以提升操作效率,本文详细介绍Linux实现自动登录的两种主流方法:图形界面配置和终端自动登录,同时强调安全风险及最佳实践,⚠️ 安全警告自动登录会绕过密码验证,仅推荐在低风险环境使用(如物理安全可控的私人设备),生产服务器、公共设备或存有敏感数据的系……

    2025年8月7日
    1600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信