4.4 KiB
4.4 KiB
title, type, tags, date
| title | type | tags | date | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 通过VPS+内网反向代理实现域名访问内网穿透 | source |
|
2026-04-14 |
Source File
Summary (用中文描述)
- 核心主题:通过 VPS + frp + Caddy 实现内网服务的公网域名访问(内网穿透)
- 问题域:家庭网络内网服务(NAS、Ubuntu 服务器)无法直接被公网访问的问题
- 方法/机制:frp 反向隧道(frps 服务端 + frpc 客户端)+ Caddy 反向代理 + Let's Encrypt 自动 HTTPS
- 结论/价值:建立完整的内网服务公网访问架构,支持 NAS n8n Grafana 等多服务通过独立子域名访问
Key Claims (用中文描述)
- frp 专为内网穿透设计,支持 NAT 穿透、自动重连、Web 管理面板(可选)
- VPS 上的 Caddy 反向代理到 frps 映射端口(127.0.0.1:xxxxx),提供 HTTPS 访问
- SSH 穿透与 HTTP 不同,SSH 是纯 TCP 流量不经过 Caddy,只用 frps + frpc 配置即可
- frps 监听 7000 端口,dashboard 可选监听 7500 端口
Key Quotes
"frp 优点:专为内网穿透设计,支持 NAT、自动重连、Web 管理面板(可选)。推荐当你有多台设备和多端口时使用。" — frp 核心优势说明
"SSH 穿透与 HTTP 不同,它是纯 TCP 流量,不经 Caddy(Caddy 只处理 HTTP/HTTPS),所以:Caddy 不参与 SSH 的代理,只用 frps + frpc 配置即可完成。" — SSH 与 HTTP 穿透的关键区别
Key Concepts
- 内网穿透:通过公网 VPS 建立反向隧道,使内网服务可被公网访问的技术
- 反向代理:VPS 上的 Caddy 将公网请求代理到 frp 映射的本地端口
- TCP 隧道:frp 建立的 TCP 端口映射隧道,连接内网服务与公网 VPS
- Let's Encrypt:Caddy 自动申请的免费 SSL 证书提供商
Key Entities
- frp:内网穿透工具,包含 frps(服务端)和 frpc(客户端)两个组件
- Caddy:Go 语言编写的自动 HTTPS 反向代理服务器
- 阿里云 DNS:域名 ishenwei.online 的 DNS 解析服务提供商
- VPS:公网服务器(192.227.222.142),运行 frps 和 Caddy 作为反向代理中转站
Connections
- 内网穿透 ← uses ← frp
- 反向代理 ← uses ← Caddy
- 反向代理 ← depends_on ← TCP 隧道
- VPS ← hosts ← frp
- VPS ← hosts ← Caddy
- 群晖 NAS ← accessed_via ← 内网穿透
Domain Mapping (本方案配置)
| 域名 | 内网服务 | 映射端口 |
|---|---|---|
| nas.ishenwei.online | NAS Web UI | 192.168.3.17:5000 → VPS:15000 |
| n8n.ishenwei.online | Ubuntu n8n | 192.168.3.47:5678 → VPS:15678 |
| transmission.ishenwei.online | Ubuntu Transmission | 192.168.3.47:9091 → VPS:19091 |
| grafana.ishenwei.online | Ubuntu Grafana | 192.168.3.47:3000 → VPS:13000 |
| ubuntu1.ishenwei.online:60022 | Ubuntu SSH | 192.168.3.47:22 → VPS:60022 |
Architecture Diagram
Internet
│
▼
┌─────────────────────────────────────┐
│ VPS (192.227.222.142) │
│ - frps (监听 7000) │
│ - Caddy (80/443 TLS) │
│ ├─ nas.ishenwei.online → 127.0.0.1:15000
│ ├─ n8n.ishenwei.online → 127.0.0.1:15678
│ └─ transmission.ishenwei.online → 127.0.0.1:19091
└─────────────────────────────────────┘
▲ ▲
│ frp tunnel │ frp tunnel
┌────────────┐ ┌────────────┐
│ NAS (192.168.3.17) │ │ Ubuntu (192.168.3.47) │
│ frpc.ini │ │ frpc.ini │
│ 映射5000→15000 │ │ 映射5678→15678 │
└────────────┘ └────────────┘
Contradictions
- 无
Troubleshooting Summary
- 确认 frps 是否监听端口:
ss -lntup | grep 7000 - 确认进程读取的配置:
ps -ef | grep frps - 确认防火墙放行:
sudo ufw status - 确认没有 Caddy/Nginx 占用端口
- 确认 token 一致性:
journalctl -u frps -n 100 - telnet 诊断:
telnet 192.227.222.142 7000 - 重启服务:
systemctl restart frps && systemctl restart frpc