55 lines
2.0 KiB
Markdown
55 lines
2.0 KiB
Markdown
---
|
||
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
|