公共DNS64服务:纯IPv6设备轻松访问IPv4资源
如果你手里有一台纯 IPv6 的 VPS(比如某些欧洲廉价小鸡,年付仅几欧元),拿到手之后发现 apt update 报错、curl github.com超时——别慌,这不是 VPS 的问题,是 IPv4 与 IPv6 的”语言不通”。
解决办法很简单:配一个 DNS64 服务,它就像一位翻译官,帮你把 IPv4 地址”翻译”成 IPv6 地址,让纯 IPv6 的机器也能访问 IPv4 资源。

NAT64 / DNS64 概念
NAT64 是一种有状态的网络地址与协议转换技术,一般只支持通过 IPv6 网络侧用户发起连接访问 IPv4 侧网络资源(TCP、UDP、ICMP 均支持)。DNS64 配合 NAT64 工作,将 DNS 查询中的 A 记录(IPv4 地址)合成为 AAAA 记录(IPv6 地址)返回给 IPv6 侧用户。
简单理解:NAT64 是网关,DNS64 是翻译官。DNS64 把 1.2.3.4 这样的 IPv4 地址”套壳”成一个 IPv6 地址(例如 64:ff9b::1.2.3.4),从而让纯 IPv6 设备能通过 NAT64 网关访问 IPv4 资源。
使用方法
只需修改 /etc/resolv.conf 中的 DNS 服务器为 DNS64 地址即可:
# 编辑 DNS 配置文件
vim /etc/resolv.conf
# 填入 DNS64 服务器地址(选一个离你 VPS 最近的)
nameserver 2001:67c:2b0::4
nameserver 2a00:1098:2c::1
然后刷新包管理器缓存:
# Debian/Ubuntu
apt update
# RHEL/CentOS/Rocky
yum clean all
yum makecache
之后你会发现之前无法访问的 IPv4 网站(GitHub、Docker Hub 等)都可以正常访问了。
公共 DNS64 服务完整列表
带 NAT64 网关的完整服务(推荐优先使用)
这些服务同时提供 DNS64 解析 + NAT64 网关,配置好 DNS 后即可直接访问 IPv4 资源,无需额外设置。
| 提供商 | 国家/城市 | DNS64 地址 | NAT64 前缀 |
|---|---|---|---|
| nat64.net | 🇳🇱 荷兰/阿姆斯特丹 | 2a00:1098:2b::1 | 2a00:1098:2b::/96 |
| nat64.net | 🇬🇧 英国/伦敦 | 2a00:1098:2c::1 | 2a00:1098:2c::/96 |
| nat64.net | 🇫🇮 芬兰/赫尔辛基 | 2a01:4f9:c010:3f02::1 | 2a01:4f9:c010:3f02:64::/96 |
| nat64.net | 🇩🇪 德国/纽伦堡 | 2a01:4f8:c2c:123f::1 | 2a01:4f8:c2c:123f:64::/96 |
| nat64.net | 🇺🇸 美国/阿什本 | 2a01:4ff:f0:9876::1 | 多站点冗余(3 前缀) |
| Trex | 🇫🇮 芬兰/坦佩雷 | 2001:67c:2b0::4 | 2001:67c:2b0:db32::/96 |
| Trex | 🇫🇮 芬兰/坦佩雷 | 2001:67c:2b0::6 | 2001:67c:2b0:db32:0:1::/96 |
| level66 | 🇩🇪 德国/法兰克福 | 2a09:11c0:f1:bbf0::70 | 2a09:11c0:f1:be00::/96 |
| level66 | 🇩🇪 德国 | 2001:67c:2960::64 | — |
| level66 | 🇩🇪 德国 | 2001:67c:2960::6464 | — |
| go6Labs | 🇸🇮 斯洛文尼亚 | 2001:67c:27e4:15::6411 | 2001:67c:27e4:642::/96 |
| go6Labs | 🇸🇮 斯洛文尼亚 | 2001:67c:27e4::64 | 2001:67c:27e4:64::/96 |
| go6Labs | 🇸🇮 斯洛文尼亚 | 2001:67c:27e4:15::64 | 2001:67c:27e4:1064::/96 |
| go6Labs | 🇸🇮 斯洛文尼亚 | 2001:67c:27e4::60 | 2001:67c:27e4:11::/96 |
| Tuxis | 🇳🇱 荷兰/中部 | 2a03:7900:2:0:31:3:104:161 | 2a03:7900:6446::/96 |
| ZTVI.org | 🇨�互联网 | (域名方式) | 双冗余 NAT64 |
纯 DNS64 解析(需自行搭建 NAT64 网关)
以下服务仅提供 DNS64 解析,返回的 IPv6 地址使用 64:ff9b::/96 预留前缀。你需要自己搭建或路由 NAT64 网关才能使用。适用于已有 NAT64 网关的网络环境,或者使用 Jool / Tayga 等开源 NAT64 实现的场景。
| 提供商 | 覆盖 | DNS64 地址 | 前缀 |
|---|---|---|---|
| Google Public DNS64 | 🌐 全球 Anycast | 2001:4860:4860::64 | 64:ff9b::/96 |
| Google Public DNS64 | 🌐 全球 Anycast | 2001:4860:4860::6464 | 64:ff9b::/96 |
| Cloudflare DNS64 | 🌐 全球 Anycast | 2606:4700:4700::64 | 64:ff9b::/96 |
| Cloudflare DNS64 | 🌐 全球 Anycast | 2606:4700:4700::6400 | 64:ff9b::/96 |
| Quad9 DNS64 | 🌐 全球 | 2620:fe::fe:64 | 64:ff9b::/96 |
Google DNS64 额外支持 DoH/DoT:
- DNS over HTTPS:
https://dns64.dns.google/dns-query - DNS over TLS:
dns64.dns.google:853
如何选择
| 场景 | 推荐 | 理由 |
|---|---|---|
| 纯 IPv6 VPS 在欧洲 | nat64.net(荷兰/伦敦/法兰克福) | 同区域延迟最低,NAT64 网关完整 |
| 纯 IPv6 VPS 在北美 | nat64.net(阿什本) | 多站点冗余,可靠性最高 |
| 家有 NAT64 网关(如 Jool) | Google DNS64 或 Cloudflare DNS64 | 全球 Anycast,极低延迟;自带隐私保护 |
| 追求隐私/防劫持 | Cloudflare DNS64 + DoH | 最小化日志,支持加密传输 |
| 中国大陆 VPS | 建议自行搭建 NAT64+DNS64 | 公共 DNS64 均在境外,延迟 200ms+ 体验差 |
DNS64/NAT64 的缺点
- 网络速度取决于 NAT64 网关的性能——公共网关共享带宽,高峰期可能拥堵
- 网络延迟较大——数据包需要经过 NAT64 网关中转,比 IPv4 直连多一跳
- 不支持所有协议——只支持 TCP、UDP、ICMP;IPsec、GRE 等无法透传
- 端到端加密受限——NAT64 是有状态转换,部分 P2P 协议(如 VoIP SIP)需要额外 ALG 处理
进阶:自己搭建 NAT64+DNS64
如果你有 IPv4/IPv6 双栈 VPS,自己搭建 NAT64+DNS64 可以获得更优性能:
- Jool:Linux 内核模块,高性能 NAT64 实现(jool.mx),支持有状态和无状态两种模式
- Tayga:轻量用户态 NAT64 实现,适合低流量场景
- unbound + BIND:配合 DNS64 模块自行搭建 DNS64 解析
另外,如果你想让 IPv4 用户访问你的纯 IPv6 网站,Cloudflare CDN 是一个无需动手的解决方案——它会自动处理 IPv6→IPv4 的转换,开箱即用。
结语
公共 DNS64 服务让纯 IPv6 VPS 不再”孤岛化”。选择一个离你 VPS 最近的 DNS64 服务器,改一行 /etc/resolv.conf,就能让那台年付几欧元的 IPv6-only 小鸡访问整个互联网。
对于追求极致性能的玩家,自己搭一个 NAT64+DNS64(比如用 Jool 在双栈 VPS 上部署)是最好的选择——延迟更低、带宽更稳,而且完全可控。
