Files
nexus/wiki/sources/在ubuntu上通过vps-内网反向代理实现域名访问内网穿透.md

5.7 KiB
Raw Blame History

title, type, tags, date, last_updated
title type tags date last_updated
在Ubuntu上通过VPS+内网反向代理实现域名访问内网穿透 source
vps
caddy
frp
reverse-proxy
troubleshooting
cloudflare
ubuntu
内网穿透
2026-05-28 2026-04-27

Source File

Summary用中文描述

  • 核心主题:通过 VPS公网服务器+ frp反向隧道+ Caddy自动 HTTPS 反向代理)实现家庭内网服务的公网域名访问
  • 问题域:家庭/办公内网中的 NAS、Ubuntu 服务器运行的服务(如 n8n、Grafana、Transmission、SSH 等)如何通过自定义域名从公网安全访问
  • 方法/机制Cloudflare DNS A 记录指向 VPS 公网 IP → VPS 运行 frpsfrp 服务端)和 Caddy → 内网主机运行 frpcfrp 客户端)将本地端口映射到 VPS → Caddy 反向代理到 frp 映射端口,自动申请 Let's Encrypt 证书提供 HTTPS
  • 结论/价值:完整梳理了从 DNS 配置、frps/frpc 安装配置、Caddy 反向代理到 SSH 穿透的全套流程,并提供了 7 步系统化故障排查指南

Key Claims用中文描述

  • frp 内网穿透工具包含 frps服务端和 frpc客户端通过 TCP 反向隧道将内网端口暴露到公网 VPS支持 NAT 穿透和自动重连
  • Caddy 自动管理 HTTPS 证书Let's Encrypt无需手动配置 SSL通过 reverse_proxy 指令将请求转发到 frp 映射的本地端口
  • Cloudflare DNS 仅负责将子域名 A 记录指向 VPS 公网 IP不影响 TCP 流量的直接路由
  • SSH 穿透不同于 HTTP/HTTPS不经过 Caddy仅通过 frps + frpc 的 TCP 映射实现(type = tcpremote_port = 60022
  • 内网 NAS 上的 V2RayA 透明代理可能干扰 frp 连接,需要停止代理后重启 frpc
  • frp 连接失败的主要原因包括:端口被占用/token 不一致/防火墙拦截/Caddy 误 proxy TCP 端口
  • 通过 ssh -p 60022 user@ubuntu1.ishenwei.online 可从公网 SSH 到内网 Ubuntu需 DNS A 记录 + frpc 配置)

Key Quotes

"思路Cloudflare DNS 指向公网上的一台VPSVPS 上运行 Caddy内网主机通过 frp 将服务暴露到 VPS本地 127.0.0.1 或某个端口VPS 反向代理到该端口。" — 整体方案架构描述

"Caddy 会自动申请并更新 Let's Encrypt 证书,提供 HTTPS 访问。" — Caddy 自动 HTTPS 特性

"⚠️ 重点提醒(安全性)SSH 穿透与 HTTP 不同,它是纯 TCP 流量,不经 CaddyCaddy 只处理 HTTP/HTTPS所以Caddy 不参与 SSH 的代理,只用 frps + frpc 配置即可完成。" — SSH 与 HTTP 代理架构差异

"authentication failed token mismatch invalid login → 那肯定是 token 和 frpc 不一致。" — frp 连接失败的核心原因之一

"很多人遇到的问题是:他们编辑了 /opt/frp/frps.ini,但 systemd service 其实加载另一个路径,例如 /etc/frp/frps.ini。" — frps 配置加载路径的常见陷阱

Key Concepts

  • 内网穿透:通过公网服务器中转,使 NAT/防火墙后的内网服务可被外部访问的技术,本方案使用 frp 反向隧道实现
  • 反向代理Caddy 作为反向代理,将公网 HTTPS 请求转发到本地 frp 映射端口,提供统一的 HTTPS 入口
  • TCP隧道frp 通过 TCP 协议在 frpc 客户端和 frps 服务端之间建立持久隧道,支持非 HTTP 协议(如 SSH、MySQL
  • 自动HTTPSCaddy 内置 Let's Encrypt 证书自动申请和续期,无需手动管理 SSL 证书
  • DNS A记录Cloudflare DNS 配置,将子域名(如 nas.ishenwei.online指向 VPS 公网 IP

Key Entities

  • RackNerd VPSVPS 提供商192.227.222.142),托管 frps 服务端和 Caddy 反向代理,作为内网穿透的公网中转站
  • Synology NAS DS718:内网 NAS 设备192.168.3.17),运行 frpc 客户端,通过 frp 暴露 NAS 服务5000端口 → VPS 15000、Navidrome、Calibre、WebDAV、Miniflux、Zipline、MySQL、SSH 等多个服务
  • frp:开源内网穿透工具,本方案的核心,包含 frps服务端监听 7000 端口)和 frpc客户端版本 0.65.0;通过 token 认证确保连接安全
  • CaddyGo 语言编写的自动 HTTPS 反向代理服务器,与 frp 配合为内网服务提供 HTTPS 域名访问;支持 caddy validate 命令验证配置语法
  • Cloudflare:域名 DNS 托管服务商,通过 A 记录将 ishenwei.online 子域名指向 VPS 公网 IP

Connections

Contradictions

  • 家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox 可能的差异点:
    • 冲突点:监控方案中是否包含完整的公网访问配置
    • 当前观点:本文提供完整公网域名访问方案,包含 HTTPS 和 SSH 穿透的详细配置
    • 对方观点:监控方案侧重于 Prometheus + Grafana + exporters 的部署和告警配置,未展开公网访问细节
    • 建议:在监控方案中补充指向本文内网穿透配置的外链,实现监控方案 + 公网访问的完整闭环