使用 DNS64+NAT64 服务访问 IPv4 网站的 IPv6 Only VPS 设置教程 
在今天的互联网世界中,IPv4 资源日益枯竭,IPv6 逐渐崭露头角。然而,仍然有一些虚拟专用服务器(VPS)仅支持 IPv6,这可能导致无法直接访问 IPv4 网站。不过,通过使用 DNS64+NAT64 服务,你可以轻松地在没有 IPv4 的 VPS 上访问 IPv4 网站。本教程将向你介绍如何设置这一服务,确保你可以畅通无阻地访问 IPv4 网站。
公共 NAT64 服务的地址 
首先,你需要访问一个公共 NAT64 服务。目前,有一些可靠的公共 NAT64 服务可供使用,其中最常用的是 Freenet6 和 Tayga。在继续之前,请确保你的 VPS 已正确配置 IPv6 连接。以下是两个 NAT64 服务的地址:
- Freenet6: - 官方网站:https://www.freenet6.net/
- NAT64 地址:nat64.freenet6.net
 
- Tayga: - 项目页面:https://github.com/nl6720/tayga
- NAT64 地址:你需要自己搭建 Tayga 服务,参考项目页面的文档。
 
如何设置 DNS64 
使用/etc/resolv.conf 文件设置 DNS64+NAT64 的教程
步骤 1:备份原始的/etc/resolv.conf 文件
在进行任何更改之前,首先备份原始的/etc/resolv.conf 文件,以便出现问题时可以恢复。运行以下命令:
sudo cp /etc/resolv.conf /etc/resolv.conf.backup步骤 2:编辑/etc/resolv.conf 文件
使用你喜欢的文本编辑器(如 nano、vim 或 gedit)打开/etc/resolv.conf 文件,运行以下命令以编辑文件:
sudo nano /etc/resolv.conf如果你的系统中没有安装 nano,请将命令替换为你喜欢的编辑器。
步骤 3:配置 DNS64 服务器
在/etc/resolv.conf 文件中,你需要添加 DNS64 服务器的 IPv6 地址。通常,你可以使用 Freenet6 或其他公共 DNS64 服务器。在文件中添加以下行,将 IPv6 地址替换为你选择的 DNS64 服务器的地址:
nameserver [DNS64_SERVER_IPV6_ADDRESS]例如,如果你选择使用 Freenet6 的 DNS64 服务器,添加以下行:
nameserver 2001:5c0:1000::2步骤 4:保存和退出文件
保存并退出/etc/resolv.conf 文件,使用 nano 编辑器时,按下Ctrl + O来保存,然后按下Enter。接着按下Ctrl + X退出编辑器。
步骤 5:检查 DNS64 设置
运行以下命令来检查/etc/resolv.conf 文件是否已正确配置:
cat /etc/resolv.conf确保你看到你所添加的 DNS64 服务器地址。
步骤 6:测试访问 IPv4 网站
现在,你的 VPS 已经配置了 DNS64,你应该能够使用 IPv6 连接访问 IPv4 网站,因为 DNS64 会将 IPv6 DNS 请求转换为 IPv4 请求,然后通过 NAT64 路由到 IPv4 网站。
ping ipinfo.io请确保替换ipinfo.io为你要访问的 IPv4 网站域名。如果一切设置正确,你将能够成功访问 IPv4 网站。
简单设置方法:
echo -e "nameserver 2001:4860:4860::6464\nnameserver 2001:4860:4860::64" > /etc/resolv.conf哪些 DNS64 不能用于访问 IPv4 网站 
尽管有很多可用的 DNS64 服务器,但并不是所有都可用访问 IPv4 网站。在 IPv6 网络中,访问 IPv4 网站需要使用 DNS64+NAT64 服务,因为 IPv6 和 IPv4 是不同的协议,它们之间不能直接通信。下面解释为什么只有 DNS64 而没有 NAT64 的 DNS 服务器无法访问 IPv6 网站:
- DNS64 的作用:DNS64 是一个 DNS 服务器组件,负责将 IPv6 DNS 请求转换为 IPv4 请求。它的作用是解析域名并生成虚拟的 IPv6 地址,其中包含 IPv4 地址。这样,IPv6-only 设备可以向 IPv6 地址发送请求,DNS64 将其转换为 IPv4 地址。 
- NAT64 的必要性:NAT64 是 IPv6 到 IPv4 的网络地址转换器,负责将 IPv6 数据包转换为 IPv4 数据包。当 IPv6 设备发送请求到虚拟 IPv6 地址时,NAT64 将 IPv6 数据包转换为 IPv4,然后将其路由到 IPv4 网站。然后,NAT64 将 IPv4 响应数据包转换回 IPv6 格式,以便 IPv6 设备理解。 
因此,DNS64 和 NAT64 是密切合作的组件,一个没有另一个就无法正常工作。DNS64 负责地址解析,但无法完成 IPv6 到 IPv4 的数据包转换,而 NAT64 则负责数据包转换和路由。只有当这两者协同工作时,IPv6-only 设备才能成功访问 IPv4 网站。
下面是一个列出了一些公共 DNS64+NAT64 服务提供者的表格:
| Provider | DNS64 | NAT64 | Redundancy | DNS64 addresses | NAT64 prefixes | 
|---|---|---|---|---|---|
| nat64.net | ✔ | ✔ | ✔ | 4 | 4 | 
| Dresel | ✔ | ✔ | ✔ | 2 | 3 | 
| Trex | ✔ | ✔ | ❌ | 2 | 2 | 
| August Internet | ✔ | ✔ | ❌ | 2 | 1 | 
| Go6lab | ✔ | ✔ | ❌ | 4 | 4 | 
| Tuxis | ✔ | ✔ | ❌ | 1 | 1 | 
| level66 | ✔ | ✔ | ❌ | 1 | 1 | 
| P2P NAT64 | ✔ | ✔ | ❌ | 3 | Variable | 
| ✔ | ❌ | ❌ | 2 | 0 | |
| Cloudflare | ✔ | ❌ | ❌ | 2 | 0 | 
在这个表格中,"✔" 表示提供相应服务,"❌" 表示不提供,Redundancy 表示是否有冗余的 DNS64 实例和 NAT64 基础设施。请根据你的需求选择合适的提供者,并确保同时使用 DNS64 和 NAT64 服务,以便正常访问 IPv4 和 IPv6 资源。信息来自:https://nat64.net/
DNS64 和 NAT64 的区别 
DNS64 和 NAT64 是两个不同的组件,共同协同工作以实现 IPv6 到 IPv4 的访问。它们的主要区别在于功能和职责:
- DNS64:DNS64 是负责将 IPv6 DNS 请求转换为 IPv4 请求的工具。它会检查 DNS 查询,如果查询的域名只有 IPv4 记录而没有 IPv6 记录,DNS64 将会创建一个虚拟的 IPv6 地址,将 IPv4 地址嵌入其中,然后将此虚拟 IPv6 地址提供给客户端。 
- NAT64:NAT64 是一种网络地址转换技术,负责将 IPv6 数据包转换为 IPv4 数据包和相反。当客户端使用 DNS64 获取到虚拟的 IPv6 地址后,NAT64 会将 IPv6 数据包转换为 IPv4 数据包,并将其路由到 IPv4 网站。然后,它会将 IPv4 响应数据包转换回 IPv6 格式,以便客户端能够理解。 
总的来说,DNS64 负责地址解析,而 NAT64 负责数据包转换和路由。它们协同工作,使得 IPv6-only 环境能够访问 IPv4 资源。
 3Kmfi6HP
3Kmfi6HP