家庭宽带只有 IPv6 也能全球访问:DDNS-GO + 边缘 CDN 把 IPv6 源站变成 IPv4+IPv6 双栈

适用场景:飞牛 FnOS / 群晖 Synology / 极空间 ZSpace 等 NAS,或任意一台常开的小主机。 核心思路:本地只有公网 IPv6 → DDNS-GO 解析到域名 → EdgeOne / 阿里云 CDN 回源该 IPv6 地址 → CDN 对外提供 IPv4+IPv6 双栈访问。


一、为什么需要这套方案

家庭宽带的现状基本是这样的:

  • IPv4 公网地址基本拿不到。现在三大运营商给家宽分配的多是「大内网 / CGNAT」地址,光猫重启 IP 就变,也没有独立公网 IPv4。更头疼的是 80、443 端口默认被封,即使有公网 IPv4 也很难直接建站。
  • IPv6 公网地址反而人人都有。运营商现在都下发了可公网路由的 IPv6(2408 / 2409 开头),每台 NAS、每台手机都能拿到独立公网地址。
  • 新问题来了:很多外部网络(公司 WiFi、酒店、海外)只有 IPv4,直连你的 IPv6 源站是访问不了的。

所以真正的痛点是:「我家里有公网 IPv6,但外面只有 IPv4 的人进不来」

解法就是本文的主线:

外部用户(仅IPv4 或 IPv4+IPv6)
        │
        ▼
  边缘 CDN 节点(对外 IPv4+IPv6 双栈)
        │  回源到你的 DDNS 域名(解析为家宽 IPv6)
        ▼
   本地 NAS / 小主机上的服务

一句话总结:用 DDNS-GO 把本地 IPv6 绑到域名,再用支持 IPv6 回源的边缘 CDN 代理一层,你的纯 IPv6 源站就被「包装」成了人人可访问的 IPv4+IPv6 双栈服务。


二、整体架构

flowchart LR
    A[外部用户<br/>IPv4 或 IPv4+IPv6] --> B[EdgeOne / 阿里云 CDN<br/>边缘节点·双栈对外]
    B -->|回源 IPv6| C[DDNS 域名<br/>nas.example.com]
    C -->|AAAA 解析| D[家宽公网 IPv6]
    D --> E[飞牛/群晖/极空间<br/>本地服务]

要点:CDN 负责「对外双栈 + 缓存加速 + 隐藏源站」,本地只负责「把服务跑在 IPv6 上 + DDNS 保持域名指向最新 IPv6」


三、前置条件清单

  1. 本地有公网 IPv6:光猫桥接或路由模式都行,关键是路由器 / NAS 能拿到可公网路由的 IPv6 地址(不是 fe80:: 开头的链路本地地址)。
  2. 一个域名:建议已实名、且最好已完成 ICP 备案(用国内 CDN 节点的硬门槛,详见避坑第 1 条)。
  3. 支持 IPv6 回源的 CDN:推荐腾讯云 EdgeOne,或 阿里云 CDN;图省事且不在意国内速度可用 Cloudflare
  4. 一台常开设备:NAS 或软路由 / 小主机,跑 DDNS-GO 和你的实际服务。

四、步骤一:让 NAS 拿到公网 IPv6

各家系统开启方式:

  • 飞牛 FnOS:控制面板 → 网络 → IPv6,开启「自动获取」,确认地址是 2408 / 2409 等公网前缀(不是 fe80)。
  • 群晖 Synology:控制面板 → 网络 → 网络接口 → IPv6,设置为自动 / DHCPv6。
  • 极空间 ZSpace:设置 → 网络 → IPv6 开启。

路由器侧关键设置:

  • 光猫改为桥接模式(让软路由 / 路由器拨号),或光猫直接开启 IPv6 透传 / Passthrough
  • 路由器开启 DHCPv6-PDSLAAC,把 IPv6 下发给内网设备。

⚠️ 最常踩的坑——IPv6 防火墙:很多路由器默认禁止 IPv6 入站。即使 NAS 拿到了公网 IPv6,外面也连不进来。请到路由器 / 光猫的 IPv6 防火墙设置里,放行你服务对应的入站端口

验证方法:手机断开 WiFi 用流量,浏览器访问 http://[你的IPv6地址]:端口,能打开就说明公网 IPv6 已通。


五、步骤二:DDNS-GO 配置(Docker 一行部署)

在 NAS 的 Docker / Container Manager 里跑 DDNS-GO(任意支持 Docker 的设备都一样):

docker run -d --name ddns-go --restart=always --net=host \
  -v /opt/ddns-go:/root \
  jeessy/ddns-go

跑起来后访问 http://<NAS的IP>:9876 进入管理界面,配置如下:

  1. DNS 服务商:选阿里云 / 腾讯云 DNSPod / Cloudflare,填入对应的 AccessKey 或 Token。 - 🔐 避坑:强烈建议用子账号 + 仅 DNS 解析权限(RAM 最小权限),不要用主账号全权限 Key。
  2. IPv6 配置:勾选「启用」,填写要解析的子域名,例如 nas.example.com。IPv4 留空(你没有公网 IPv4 就别勾)。
  3. TTL:设为 60s ~ 600s,越短切换越快。

验证:nslookup nas.example.com 能看到 AAAA 记录指向你的公网 IPv6,即成功。

💡 关键认知:IPv6 没有「端口转发」这件事。路由器有公网 IPv6 ≠ NAS 有。每台需要外网访问的设备,都要单独跑 DDNS-GO(或各自解析不同子域名)。


六、步骤三:CDN 接入(回源 IPv6,对外双栈)

方案 A:腾讯云 EdgeOne(推荐,配置最简单)

  1. 添加站点 / 域名(如 home.example.com),绑定你的域名。
  2. 加速区域:域名已备案选「全球加速(含中国大陆)」;未备案选「全球(不含中国大陆)」。
  3. 开启 IPv6 访问站点加速 → 网络优化 → 启用 IPv6 访问。这一步让 EdgeOne 节点对外分配 IPv6,实现双栈。
  4. 添加子域名 home.example.com回源配置: - 源站地址:填 DDNS 域名 nas.example.com(解析到你的 IPv6) - 回源协议:HTTPS 或 HTTP(建议 HTTPS) - 回源端口:填你 NAS 服务的实际端口(如 84435001别用被封的 443/80) - 推荐模板:选「网站加速」
  5. SSL 证书:在控制台申请免费证书,开启 HTTPS 并强制跳转。
  6. 源站防护(推荐):开启后只放行 EdgeOne 回源 IP 段,彻底隐藏你的真实 IPv6。

方案 B:阿里云 CDN

  1. 添加加速域名(需备案),源站类型选「源站域名」,填 nas.example.com
  2. 在「IPv6 配置」中开启 IPv6。
  3. 配置 HTTPS 证书(免费 DV 或上传自有证书)。
  4. 按需设置回源协议 / 端口。

注意:阿里云 CDN 回源到 IPv6 域名时,需确认源站域名能稳定解析到 IPv6;部分地区如有异常,优先用 EdgeOne 验证链路。

方案 C:Cloudflare(无需备案,但国内访问偏慢)

  • 添加站点,开启橙色「小黄云」(Proxy),自动双栈,回源到你的 IPv6 域名。
  • 适合不在国内加速、图省事的场景。国内用户访问延迟通常较高,不建议作为主力。

七、步骤四:验证与加固

  • 双栈验证:用一台「纯 IPv4 网络」环境(公司网、或手机关掉 IPv6 只用 4G)访问 https://home.example.com,确认能正常打开——这代表 IPv4 用户已经能借 CDN 访问你的 IPv6 源站。
  • 回源加密:CDN 上 HTTPS 是必须的;回源也建议用 HTTPS,避免明文传输和被 DNS 污染。
  • 隐藏源站:开启 CDN 源站防护 + 不要在其他任何地方暴露你的 IPv6 地址。
  • 带宽清醒:家宽上行有限(常见 30~100M),CDN 只加速静态资源和缓存命中,动态接口 / 大文件下载仍受你上行带宽限制,别指望 CDN 把上行变大。

八、避坑要点总结(重点收藏)

  1. 备案是硬门槛:国内 CDN(EdgeOne 大陆节点、阿里云 CDN)必须域名 ICP 备案。未备案只能选「不含中国大陆」节点或 Cloudflare,国内访问体验会差很多。
  2. IPv6 前缀会漂移:光猫 / 路由器重新拨号,/64 前缀可能变化,导致 AAAA 解析失效。务必让 DDNS-GO 常开 + 短 TTL,并在断电 / 重拨后自动重启容器。
  3. IPv6 防火墙默认拦截:这是「有公网 IPv6 却访问不了」的头号原因。去路由器 / 光猫把对应端口的 IPv6 入站放行。
  4. 每台设备单独做 DDNS:IPv6 无端口转发,路由器有 IPv6 不代表 NAS 有。要外访的设备各自解析子域名。
  5. 运营商封 80/443:家宽 80/443 常被封。用 CDN 回源到高位端口(如 8443 / 5001),不要强求源站用 443。
  6. 先确认源站 IPv6 真可达再加 CDN:部分运营商 IPv6 路由不稳定,CDN 回源失败会报 52x 错误。先直连 http://[IPv6]:端口 验证通,再上 CDN。
  7. 证书用 DNS-01 验证:源站若自签或用 acme.sh 申请,用 DNS-01 挑战(不需要 80 端口)。CDN 层直接用平台免费证书即可。
  8. 隐私与扫描:公网 IPv6 暴露会被全网扫描爆破。加 CDN 隐藏源站 + 服务开启强密码 / 2FA + 关键服务加访问白名单。
  9. IPv6 临时地址:部分系统默认用隐私扩展临时地址,DDNS 应让 DDNS-GO 自动探测当前地址,或绑定稳定的 EUI-64 / stable 地址,避免解析到会变的临时地址。
  10. 上行带宽瓶颈:再好的架构也救不了家宽上行。高并发 / 大文件场景请降低预期或升级带宽。

九、常见问题 FAQ

Q:我只有 IPv4 公网、没有 IPv6 怎么办? A:那反而更简单,DDNS-GO 解析 IPv4 + CDN 回源即可。但如今 IPv4 公网越来越难拿,IPv6 方案才是主流。

Q:一定要 NAS 吗? A:不一定。任何常开设备(软路由、小主机、甚至旧电脑)跑 Docker 装 DDNS-GO 和服务都行。

Q:用 FN Connect / 群晖 QC 不行吗? A:官方中转有带宽限制和隐私顾虑,而且依赖厂商服务。自建这套方案更自由、可控、无额外费用。

Q:CDN 收费吗? A:EdgeOne 有免费套餐,阿里云 CDN 按流量计费(新用户有免费额度),个人轻度使用成本很低甚至免费。


十、结语

这套组合拳的本质,是用「IPv6 解决可达性、用 CDN 解决兼容性与安全性」

  • IPv6 让你在家宽没有公网 IPv4 的情况下,依然能把服务暴露到公网;
  • DDNS-GO 解决 IPv6 前缀漂移带来的域名指向问题;
  • 边缘 CDN 把纯 IPv6 源站「翻译」成 IPv4+IPv6 双栈,让全世界(包括只有 IPv4 的网络)都能访问,同时顺手做了缓存加速、HTTPS 卸载和源站隐藏。

照着上面的步骤走,飞牛 / 群晖 / 极空间都能在半小时内跑通。剩下的,就是把上行带宽喂饱的问题了 😄


本文基于 DDNS-GO + 腾讯云 EdgeOne / 阿里云 CDN 的实践整理,配置路径以各平台控制台最新版本为准。