--- title: "内网穿透" type: concept tags: [networking, vpn, tunnel, self-hosted] last_updated: 2026-04-03 --- ## Aliases - Intranet Penetration - NAT穿透 - 内网穿透 - Reverse Tunnel ## Definition 内网穿透(Intranet Penetration)是一种网络技术,通过在公网服务器与内网设备之间建立反向隧道,使处于 NAT 或防火墙后的内网服务可以被公网访问。核心原理:内网设备主动连接公网服务器的指定端口建立持久隧道,公网请求到达服务器后被转发至隧道,从而绕过 NAT/防火墙限制。 ## Key Mechanism ### 反向隧道 vs 正向隧道 - **正向隧道(Forward Tunnel)**:公网 → 内网(需要公网可达内网,NAT 环境下不可行) - **反向隧道(Reverse Tunnel)**:内网 → 公网(内网设备主动连接公网,NAT 环境下天然可行) ### 典型架构 ``` 公网用户 ↓ 公网 VPS(frps / ngrok server) ↓ 反向隧道 内网设备(frpc / ngrok client) ↓ 本地服务(127.0.0.1:xxxx) ``` ## Common Tools - **frp**:开源方案,frps(服务端)+ frpc(客户端),支持 TCP/UDP/HTTP/WEBSOCKET 等多种协议 - **ngrok**:商业托管方案,开源免费版有端口限制,无需公网服务器 - **Cloudflare Tunnel**:Zero Trust 方案,配合 Cloudflare 账号使用 - **SSH 反向隧道**:利用 SSH `-R` 参数建立临时反向隧道,适合临时访问 ## frp 方案详解 详见 [[frp]] ## 在本 Wiki 中的应用 - [[通过VPS+内网反向代理实现域名访问内网穿透]]:完整实践指南,frps + Caddy + 阿里云 DNS - [[ubuntu-安装-frp-0-65-0-x86-64-操作笔记]]:Ubuntu 客户端安装配置 - [[mac-mini-安装-frp-0-65-0-arm64-操作笔记]]:Mac Mini ARM64 安装配置 ## Related Concepts - [[反向代理]]:在内网穿透上层提供 HTTPS 访问(Caddy 反向代理到 frp 映射端口) - [[TCP隧道]]:frp 建立的底层传输通道 - [[VPS]]:内网穿透的公网中转站 ## References - frp GitHub: https://github.com/fatedier/frp