Files
nexus/wiki/sources/通过vps-内网反向代理实现域名访问内网穿透.md
2026-04-22 04:03:04 +08:00

4.4 KiB
Raw Blame History

title, type, tags, date
title type tags date
通过VPS+内网反向代理实现域名访问内网穿透 source
vps
caddy
frp
reverse-proxy
troubleshooting
cloudflare
内网穿透
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 流量,不经 CaddyCaddy 只处理 HTTP/HTTPS所以Caddy 不参与 SSH 的代理,只用 frps + frpc 配置即可完成。" — SSH 与 HTTP 穿透的关键区别

Key Concepts

  • 内网穿透:通过公网 VPS 建立反向隧道,使内网服务可被公网访问的技术
  • 反向代理VPS 上的 Caddy 将公网请求代理到 frp 映射的本地端口
  • TCP 隧道frp 建立的 TCP 端口映射隧道,连接内网服务与公网 VPS
  • Let's EncryptCaddy 自动申请的免费 SSL 证书提供商

Key Entities

  • frp:内网穿透工具,包含 frps服务端和 frpc客户端两个组件
  • CaddyGo 语言编写的自动 HTTPS 反向代理服务器
  • 阿里云 DNS:域名 ishenwei.online 的 DNS 解析服务提供商
  • VPS公网服务器192.227.222.142),运行 frps 和 Caddy 作为反向代理中转站

Connections

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