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系统下如何安装tgz格式文件?

    在Linux系统中,tgz文件是一种常见的压缩包格式,通常由tar命令打包并用gzip工具压缩而成,常见于开源软件的源码分发,安装tgz包的流程不同于二进制包(如rpm、deb),需要手动解压、配置、编译和安装,以下是详细步骤和注意事项,安装前的准备工作tgz包多为源码包,安装前需确保系统具备编译环境,主要包括……

    2025年10月2日
    12600
  • Linux启动终端的常用方法有哪些?

    Linux终端是用户与系统交互的核心工具,通过命令行可以高效执行系统管理、文件操作、程序编译等任务,启动终端的方式因桌面环境、系统配置和使用场景的不同而有所差异,以下从多个维度详细介绍Linux终端的启动方法,桌面环境下的图形界面启动大多数Linux发行版默认搭载图形桌面环境(如GNOME、KDE Plasma……

    2025年9月29日
    18200
  • Linux系统如何激活网卡?常用命令行操作与详细配置步骤有哪些?

    Linux系统中,网卡是设备联网的核心组件,激活网卡是确保网络通信的前提,无论是新安装系统、硬件更换,还是因配置调整导致网卡被禁用,掌握正确的激活方法都至关重要,本文将详细介绍Linux系统中激活网卡的多种方式,涵盖命令行工具和图形界面操作,帮助用户快速解决网络连接问题,在激活网卡前,首先需要确认网卡名称及其当……

    2025年9月20日
    18900
  • 如何在Linux系统中编译C程序?详细步骤有哪些?

    在Linux环境下编译C程序是开发者的基础技能,核心工具是GNU编译器套件(GCC),本文将从环境准备、基础编译流程、多文件管理、库的使用、编译选项优化到错误处理,详细拆解编译过程,帮助读者掌握完整的C程序编译方法,环境准备:确认GCC安装Linux系统通常默认安装GCC,可通过终端输入以下命令检查版本:gcc……

    2025年8月22日
    14900
  • Linux下tar包如何安装?

    在Linux系统中,tar包通常指通过tar工具打包的源码压缩包(如.tar.gz、.tar.bz2、.tar.xz等),与二进制包(如.deb、.rpm)不同,tar包需要用户手动编译安装,过程涉及解压、配置、编译、安装等步骤,适合需要自定义功能或适配特定系统的场景,以下是详细安装流程:安装前准备:编译环境依……

    2025年9月15日
    17300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信