内网穿透是一种让公网能够访问内网设备或本地服务的技术,其核心原理是由内网中的客户端主动与具有公网 IP 的中转服务器建立连接,再通过该连接将外部请求转发到本地服务,从而突破 NAT、路由器或防火墙的限制。它常用于远程访问本地 Web 服务、Docker 容器、NAS、开发接口、大模型 API 等场景,常见工具包括 ngrok、frp 和 Cloudflare Tunnel。
ngrok 是一种内网穿透与安全隧道工具,可以将本地或内网中的服务通过公网地址暴露到互联网。它的工作原理是让本地客户端主动连接 ngrok 的公网服务器,并建立一条加密隧道,当外部用户访问 ngrok 提供的公网域名时,请求会被自动转发到本地指定端口,从而实现公网访问本地 Web 服务、API、Docker 容器或开发环境。ngrok 常用于 Web 开发调试、Webhook 回调测试、远程演示、本地大模型接口共享等场景,支持 HTTP、HTTPS 和 TCP 等协议,并且配置简单、开箱即用。
下面将详细教程在Linux实现内网穿透;
1.下载压缩文件
ngrok官网:https://ngrok.com/
先用自己的账号登录,然后点击下载


bash
curl -sSL 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 bookworm main" \
| sudo tee /etc/apt/sources.list.d/ngrok.list \
&& sudo apt update \
&& sudo apt install ngrok
| 命令部分 | 作用 | 详细说明 |
|---|---|---|
curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc |
下载 ngrok GPG 密钥 | 从 ngrok 官方服务器下载软件签名密钥,用于验证软件来源是否可信 |
-sSL |
curl 参数 | -s 静默模式;-S 出错显示信息;-L 自动跟随重定向 |
| ` | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null` | 保存 GPG 密钥 |
/etc/apt/trusted.gpg.d/ |
APT 密钥目录 | Debian/Ubuntu 用于存放可信软件源签名密钥 |
echo "deb https://ngrok-agent.s3.amazonaws.com bookworm main" |
生成软件源配置 | 指定 ngrok 官方 Debian 软件源 |
bookworm |
Debian 12 代号 | 当前软件源适用于 Debian 12(Bookworm) |
main |
主仓库 | 表示使用主软件仓库 |
| ` | sudo tee /etc/apt/sources.list.d/ngrok.list` | 写入软件源文件 |
/etc/apt/sources.list.d/ngrok.list |
软件源配置文件 | 系统会从这里读取 ngrok 软件源信息 |
sudo apt update |
更新软件索引 | 刷新 APT 仓库列表,让系统识别新添加的软件源 |
sudo apt install ngrok |
安装 ngrok | 从官方软件源安装 ngrok |


2.添加密钥
登录之后可以在主页查看自己的密钥:
点击账户:


bash
ngrok config add-authtoken "xxxx"

3.端口映射
将本地 8000 端口映射到公网,实现内网穿透
bash
ngrok http 8000

| 项目 | 含义 |
|---|---|
Session Status online |
ngrok 在线运行中 |
Region Japan (jp) |
使用的是日本节点 |
Web Interface http://127.0.0.1:4040 |
ngrok 本地监控面板 |
Forwarding https://deafness-growing-uniformly.ngrok-free.dev -> http://localhost:8005 |
公网地址已经映射到你本机 8005 端口 |
Latency 108ms |
当前网络延迟 |
Connections |
当前连接统计信息 |
就可以网站直接访问了:
