Auto-sync: 2026-04-26 20:02
This commit is contained in:
@@ -1,89 +1,54 @@
|
||||
---
|
||||
title: "通过VPS+内网反向代理实现域名访问内网穿透"
|
||||
type: source
|
||||
tags: [vps, caddy, frp, reverse-proxy, troubleshooting, cloudflare, 内网穿透]
|
||||
date: 2026-04-14
|
||||
---
|
||||
|
||||
## Source File
|
||||
- [[raw/Home Office/通过VPS+内网反向代理实现域名访问内网穿透.md]]
|
||||
|
||||
## 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
|
||||
1. 确认 frps 是否监听端口:`ss -lntup | grep 7000`
|
||||
2. 确认进程读取的配置:`ps -ef | grep frps`
|
||||
3. 确认防火墙放行:`sudo ufw status`
|
||||
4. 确认没有 Caddy/Nginx 占用端口
|
||||
5. 确认 token 一致性:`journalctl -u frps -n 100`
|
||||
6. telnet 诊断:`telnet 192.227.222.142 7000`
|
||||
7. 重启服务:`systemctl restart frps && systemctl restart frpc`
|
||||
---
|
||||
title: "通过VPS+内网反向代理实现域名访问内网穿透"
|
||||
type: source
|
||||
tags: [vps, caddy, frp, reverse-proxy, troubleshooting, cloudflare]
|
||||
date: 2026-04-03
|
||||
---
|
||||
|
||||
## Source File
|
||||
- [[Home Office/通过VPS+内网反向代理实现域名访问内网穿透.md]]
|
||||
|
||||
## Summary(用中文描述)
|
||||
- 核心主题:通过 VPS(frps + Caddy)建立反向隧道,使内网服务(NAS、Ubuntu)可通过 `*.ishenwei.online` 域名从公网安全访问。
|
||||
- 问题域:家庭内网设备无公网 IP,无法被外网直接访问;需要将内网服务通过公网 VPS 暴露为 HTTPS 域名。
|
||||
- 方法/机制:frp(frps 服务端 + frpc 客户端)建立 TCP 反向隧道 → VPS 本地端口映射 → Caddy 反向代理到对应端口并自动申请 Let's Encrypt HTTPS 证书。
|
||||
- 结论/价值:完整的内网穿透方案,支持 NAS、n8n、Transmission、Grafana、Navidrome、Calibre、WebDAV 等多个服务,附 SSH 穿透和故障排查指南。
|
||||
|
||||
## Key Claims(用中文描述)
|
||||
- frp 专为内网穿透设计,支持 NAT 穿透、自动重连、Web 管理面板,比纯 SSH 隧道更适合多设备多端口场景。
|
||||
- Caddy 自动处理 Let's Encrypt 证书申请和续期,无需手动配置 HTTPS。
|
||||
- SSH 穿透(TCP 映射)不经过 Caddy,只依赖 frps + frpc 配置。
|
||||
- 故障排查核心:确认 frps 监听端口正确、token 一致、防火墙放行 7000 端口、frps 日志无 token mismatch。
|
||||
|
||||
## Key Quotes
|
||||
> "frp 优点:专为内网穿透设计,支持 NAT、自动重连、Web 管理面板(可选)。推荐当你有多台设备和多端口时使用。" — 方案选型说明
|
||||
> "Caddy 会自动申请并更新 Let's Encrypt 证书,提供 HTTPS 访问。" — HTTPS 配置结果
|
||||
> "SSH 穿透与 HTTP 不同,它是纯 TCP 流量,不经 Caddy(Caddy 只处理 HTTP/HTTPS),所以:Caddy 不参与 SSH 的代理。" — SSH vs HTTP 穿透关键区别
|
||||
> "authentication failed token mismatch invalid login → 那肯定是 token 和 frpc 不一致。" — 常见故障根因
|
||||
|
||||
## Key Concepts
|
||||
- [[反向代理]]:Caddy 将公网请求反向代理到 VPS 本地 frp 映射端口(127.0.0.1:xxxxx)。
|
||||
- [[内网穿透]]:通过 frp 反向隧道穿透 NAT/防火墙,使内网设备可被公网访问。
|
||||
- [[TCP隧道]]:frp 将内网 TCP 端口映射到 VPS remote_port,实现任意 TCP 协议穿透。
|
||||
- [[Caddy]]:Go 语言反向代理服务器,自动 HTTPS(Let's Encrypt),Caddyfile 配置各子域名反向代理到对应 frp 端口。
|
||||
- [[frp]]:开源内网穿透工具,frps(服务端)监听 7000 端口,frpc(客户端)建立反向隧道。
|
||||
|
||||
## Key Entities
|
||||
- [[RackNerd]]:VPS 提供商(IP: 192.227.222.142),托管 frps 和 Caddy,作为内网穿透公网中转站。
|
||||
- [[Synology NAS DS718]]:群晖 NAS(192.168.3.17),运行 NAS 管理界面(5000)、Navidrome(4533)、Calibre(8083)、WebDAV(5005)等服务,通过 frpc 映射到 VPS。
|
||||
- [[Ubuntu]](内网 Ubuntu1 192.168.3.47):运行 n8n(5678)、Transmission(9091)、Grafana(3000)、SSH(22),通过 frpc 映射到 VPS。
|
||||
- [[n8n]]:自动化工作流工具(192.168.3.47:5678),通过 frp 暴露为 `https://n8n.ishenwei.online`。
|
||||
- [[阿里云-DNS]]:管理 `ishenwei.online` 域名解析,A 记录指向 VPS 公网 IP。
|
||||
|
||||
## Connections
|
||||
- [[frp]] ← reverse_tunnel ← [[Synology NAS DS718]](frpc 客户端,映射 5000→15000)
|
||||
- [[frp]] ← reverse_tunnel ← [[Ubuntu]](frpc 客户端,映射 5678/9091/3000/22)
|
||||
- [[Caddy]] ← reverse_proxy ← [[frp]](反向代理到 frp 映射的本地端口)
|
||||
- [[阿里云-DNS]] ← DNS_record ← [[RackNerd]](A 记录指向 VPS IP 192.227.222.142)
|
||||
|
||||
## Contradictions
|
||||
- 与 [[Ubuntu安装FRP操作笔记]] 冲突:
|
||||
- 冲突点:两者都描述 frp 安装,但侧重不同。
|
||||
- 当前观点:本文档(通过VPS+内网反向代理)侧重完整方案(frps+VPS+Caddy+多服务+SSH穿透+故障排查),是完整的操作指南。
|
||||
- 对方观点:[[Ubuntu安装FRP操作笔记]] 侧重 FRP 本身安装配置(frps.ini/frpc.ini 详解),偏向 FRP 工具参考手册。
|
||||
- 说明:两者互补,本文档是完整实践指南,对方是工具参考,两者不存在实质矛盾。
|
||||
|
||||
Reference in New Issue
Block a user