必须同时配置A记录(IPv4)和AAAA记录(IPv6),确保两者均有效可达;仅配其一将导致对应协议用户无法直连,且需验证IPv6地址公网可路由、服务端监听双栈端口并避免使用不可路由的本地地址。

要让域名真正支持 IPv4 和 IPv6 双栈访问,DNS 记录配置是第一步,也是最基础、最关键的一环。核心就两点:同时提供 A 记录(IPv4)和 AAAA 记录(IPv6),且确保两者都有效可达。
必须添加 A 和 AAAA 两条记录
客户端发起解析时,双栈系统默认会并行查询 A 和 AAAA 记录。如果只配了其中一种,另一协议的用户就无法直连。
- A 记录:指向你的 IPv4 地址,例如 example.com → 192.0.2.1
- AAAA 记录:指向你的 IPv6 地址,例如 example.com → 2001:db8::1
- 两条记录的 TTL 建议保持一致(如 300 秒),便于统一缓存与更新
确保 IPv6 地址真实可用且路由可达
只加 AAAA 记录不等于能用。很多问题出在 IPv6 配置“有形无实”:
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
- 检查服务器是否已启用 IPv6 协议栈(Linux 运行 ip -6 addr,看是否有 global 类型地址)
- 确认防火墙放行 IPv6 流量(如 iptables-nft 或 nftables 中的 ip6table 规则)
- 验证从公网能否 ping6 或 telnet 到该 IPv6 地址(例如用 ping6 example.com 或 curl -6 https://example.com)
避免常见配置陷阱
看似简单,但几个细节常导致双栈“半残”:
- 不要只写一个记录然后依赖 DNS 自动降级:客户端不会因 AAAA 查询超时就自动改查 A;它可能直接失败或延迟很高
- 别把 IPv6 地址写成链路本地地址(fe80::/10)或唯一本地地址(fc00::/7):这些地址不可路由,公网用户无法访问
- 云服务商或 CDN 的 DNS 控制台里,注意区分“IPv4 解析”和“IPv6 解析”开关:有些平台默认关闭 AAAA,需手动开启
配合操作系统与服务端完成闭环
DNS 是入口,但后端必须接得住:
- Web 服务(如 Nginx/Apache)需监听 [::]:443 和 0.0.0.0:443,不能只绑 IPv4
- 数据库、邮件等服务若对外提供双栈访问,也要绑定 0.0.0.0 和 [::],并检查 bind_address 配置
- 应用代码中调用 getaddrinfo 时,务必设置 AI_ADDRCONFIG 标志,否则在纯 IPv4 网络下可能卡住

















