陈大剩博客

如何让 IPv6 站支持 IPv4/IPv6 访问

  • 陈大剩
  • 2025-12-03 11:53:45
  • 22

如何让 IPv6 站支持 IPv4/IPv6 访问
众所周知,国内运营商家宽已经很容易获得 IPv6 公网地址,但如果我们想在家中部署一个站点,虽然能通过 IPv6 公网访问,但国内很多环境仅支持 IPv4 协议,这将导致这些用户无法访问我们的站点,纯 IPv4 环境下访问 IPv6 的服务器。

其次,虽然容易获得 IPv6 公网地址,但运营商的 IPv6 地址 可能会动态变化,或会封禁 80 和 443 端口,这也会影响站点的正常访问。

目前国内流行使用免费的 Cloudflare CDN 来让 IPv6 站支持 IPv4/IPv6 双栈访问,但在国内使用 Cloudflare CDN 访问速度较慢、延迟较高(除非动态更新 Cloudflare 节点)。

解决方案

相比免费的 Cloudflare CDN,可以使用国内 CDN,例如百度云 CDN 仅需 18 元/100GB/年。对于普通 Web 站点访问,单个页面只有几十 KB,一年很难用完这些流量。只需根据运营商变化动态更新 IPv6 地址,即可实现 IPv6 站点的 IPv4/IPv6 双栈访问。

针对上述需求,我创建了开源项目 D-NETD-NET 是一款轻量级动态网络管理工具,支持多平台的 CDN、DNS 和内网穿透自动化管理与监控,可将动态公网 IP 转为 IPv4/IPv6 双栈访问,后续还会集成 DDNS、FRP 等更多功能。

D-NET 准备工作

  • 域名一个(有无备案均可,有备案更好)
  • 云厂商账号一个(阿里云、百度智能云)

D-NET 安装

打开 D-NET Releases 页面,选择合适的架构下载安装包并解压,这里以 macOS ARM 版本为例。

步骤 1:选择架构

根据自身操作系统选择对应的架构版本。

选择架构

步骤 2:解压缩

下载完成后解压安装包。

解压缩

步骤 3:安装

在终端中执行 sudo ./dnet -s install 命令完成安装。

安装

D-NET 配置

安装完成后,浏览器访问 http://127.0.0.1:9877 进入 Web 管理页面,首次登录时设置管理员账号密码。

登入 Web 管理页面

⚠️ 云厂商选择说明

由于仅有 阿里云 CDN 全球区域可使用未备案域名,因此:

  • 域名未备案:必须选择阿里云
  • 域名已备案:可自由选择阿里云或百度智能云

准备远程访问的 Web 服务

首先需要确保目标服务能够通过 IPv6 访问。这里以博客为例进行演示:

博客 IPv6 访问测试

💡 适用范围

本方案不仅限于博客,任何支持 IPv6 访问的 Web 服务均可使用,例如:

  • 群晖 NAS(DSM)
  • 宝塔面板
  • Nginx 网站
  • Home Assistant
  • 其他 Web 应用

创建云厂商 AccessKey

根据选择的云厂商,在对应控制台创建 AccessKey,用于 D-NET 访问云厂商 API。

百度智能云

进入 百度智能云控制台 创建 AccessKey。

百度智能云创建 AccessKey

阿里云

进入 阿里云控制台 创建 AccessKey。

阿里云创建 AccessKey

域名已备案(推荐百度智能云)

如果域名已备案,建议选择百度智能云 CDN。百度智能云 CDN 按流量计费,18 元人民币可购买 100GB 流量资源包,有效期一年,性价比较高。

步骤 1:创建加速域名

登录百度智能云 CDN 控制台,创建新的加速域名。

创建加速域名

步骤 2:填写基本配置

填写加速域名和基本配置信息。

填写基本配置

步骤 3:填写源站信息

这一步需填写真实的源站信息:IPv6 地址、端口

填写源站信息

步骤 4:缓存设置

根据网站类型设置缓存时间:

  • 动态网站:缓存时间设置为 0(全部回源)
  • 静态网站:缓存时间设置为 30 分钟或更长

缓存设置

步骤 5:完成配置

配置完成后,复制 CDN 提供的 CNAME 地址。

完成配置

步骤 6:设置 DNS 解析

在域名 DNS 服务商处添加 CNAME 记录,类型选择 CNAME,名称填写 blog(或其他子域名),记录值填写上一步复制的 CNAME。

设置 DNS

步骤 7:配置 D-NET

在 D-NET Web 管理页面中,打开 DCDN 开关,填写云厂商 AccessKey 信息。

配置 D-NET DCDN 信息

步骤 8:查看同步日志

配置完成后,查看 D-NET 日志确认是否成功同步到云厂商。由于同步时间默认为 5 分钟,最长可能需要等待 5 分钟。

查看 D-NET 日志


完成上述步骤后,通过配置的域名(例如 blog.a22t.com)即可成功访问服务。

成功访问服务

域名未备案(使用阿里云全球加速)

如果域名未备案,只能使用 阿里云 CDN 全球区域进行加速。这种方案的缺点是:访问速度可能较慢,费用相对较高。

配置阿里云 CDN

步骤 1:创建加速域名

登录阿里云 CDN 控制台,创建新的加速域名。

创建加速域名

步骤 2:填写基本配置

填写加速域名和基本配置信息。

⚠️ 重要

未备案的域名加速区域必须选择 全球(Global)

填写基本配置

步骤 3:配置备用源站

由于阿里云 CDN 不允许使用单独的 IPv6 源站,需要先配置一个备用域名源站。

  • 源站地址:随机填写一个域名(如 www.baidu.com
  • 优先级:选择
  • 权重值:填写 1

配置备用源站

步骤 4:配置 IPv6 源站

添加真实的 IPv6 源站信息:

  • 源站地址:填写实际的 IPv6 地址
  • 端口:根据实际服务端口填写
  • 权重值:填写 100

配置 IPv6 源站

步骤 5:配置缓存规则

根据网站类型设置缓存时间:

  • 动态网站:缓存时间设置为 0(全部回源)
  • 静态网站:缓存时间设置为 30 分钟或更长

配置缓存规则

步骤 6:跳过其他配置

其他可选配置暂时跳过,后续可根据需要调整。

跳过配置

步骤 7:获取 CNAME

配置完成后,复制 CDN 提供的 CNAME 地址。

获取 CNAME

步骤 8:设置 DNS 解析

在域名 DNS 服务商处添加 CNAME 记录:

  • 类型:CNAME
  • 名称:子域名(如 blog
  • 记录值:上一步复制的 CNAME 地址

设置 DNS 解析

等待 CDN 配置完成

CDN 配置提交后,需要等待阿里云完成配置,直至状态显示为 已配置

等待配置完成

配置 D-NET

配置完成后,在 D-NET Web 管理页面中填写相关信息:

  1. 打开 DCDN 开关
  2. 填写云厂商 AccessKey 信息
  3. 配置源站信息

配置 D-NET

⚠️ 重要提示

由于阿里云 CDN 不允许使用单独的 IPv6 源站,这里的源站地址需要填写步骤 3 中配置的备用域名源站(如 www.baidu.com)。

优化 CDN 配置

基础配置完成后,还需要进行以下优化,确保 IPv6 流量正常回源。

优化 1:启用 IPv6 回源

进入阿里云 CDN 控制台,选择对应的加速域名(如 blog.2025u.cyou),进入 【管理】【回源配置】【IPv6 回源】

❗ 必须操作

如果源站是 IPv6,必须启用 IPv6 回源,否则无法正常访问。

启用 IPv6 回源

优化 2:启用 IPv6 访问

在同一页面中,进入 【基本配置】【IPv6 开关】,【开启 IPv6 访问支持】。

启用 IPv6 访问

验证访问

完成所有配置后,通过配置的域名(例如 blog.2025u.cyou)访问服务,验证是否能够正常访问。

成功访问服务

同时可以查看 D-NET 日志,确认是否成功同步到云厂商。由于同步间隔默认为 5 分钟,最长可能需要等待 5 分钟才能看到同步记录。

查看 D-NET 日志

总结

如果大家觉得这个教程和衍生出开源项目写得不错,记得 点个 Star 支持一下。 All-In-One 教程地址:cxbdasheng/AIO
D-NET 开源项目地址:D-NET

分享到:
0

说点儿什么吧

头像

表情

本站由陈大剩博客程序搭建 | 湘ICP备2023000975号| Copyright © 2017 - 陈大剩博客 | 本站采用创作共用版权:CC BY-NC 4.0

站长统计| 文章总数[136]| 评论总数[13]| 登录用户[28]| 时间点[140]

logo

登入

社交账号登录