第一步:前期准备与安装必要软件
首先,更新系统软件包列表,并安装后续步骤需要用到的工具。
apt update && apt upgrade -y
apt install git build-essential tayga curl resolvconf -y
nat64.net 提供的公共 DNS64 服务为例。
第二步:配置公共 DNS64 服务器
# 将 DNS64 服务器地址写入网络配置文件,确保重启后依然有效
echo "dns-nameserver 2a01:4f8:c2c:123f::1" >> /etc/network/interfaces
echo "dns-nameserver 2a00:1098:2c::1" >> /etc/network/interfaces
# 重启网络服务使配置生效
systemctl restart networking
第三步:部署 CLAT 核心服务 clatd
# 创建一个目录存放源码
mkdir ~/src
cd ~/src
# 从 GitHub 克隆 clatd 仓库
git clone https://github.com/toreanderson/clatd
# 编译并安装 clatd
make -C clatd install installdeps
第四步:配置 clatd 并启用 IPv4 转发
# 创建 clatd.conf 配置文件
cat <<'EOF' > /etc/clatd.conf
# 指定 clatd 使用的 IPv6 地址
clat-v6-addr=fd00::c1a7
# 禁用代理邻居发现
proxynd-enable=false
# 服务启动时执行的脚本:创建 nftables 表/链,并启用 IP 伪装(Masquerade)
script-up=nft "add table ip6 clatd" ; nft "add chain ip6 clatd POSTROUTING { type nat hook postrouting priority srcnat; }" ; nft "add rule ip6 clatd POSTROUTING masquerade"
# 服务停止时执行的脚本:删除创建的 nftables 表
script-down=nft 'delete table ip6 clatd'
EOF
# 启用 IPv6 转发
echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.d/00-ip6fwd.conf
# 使转发配置立即生效
sysctl -p
# 启动 clatd 服务
systemctl restart clatd
第五步:验证配置是否成功
# 尝试直接访问一个 IPv4 地址(Cloudflare 的 DNS 服务器 1.1.1.1)
curl 1.1.1.1
以下是旧方法:
在 Debian 系统中修改 DNS 服务器地址通常涉及编辑 /etc/resolv.conf 文件。然而,从 Debian 版本 Buster(10)开始以及后续版本,包括 Bullseye(11)和 Bookworm(假设为未来版本),该文件可能由网络管理服务(如 systemd-resolved)自动管理,并且直接编辑它可能不是持久化更改的推荐方式。
/etc/resolv.conf 是传统的DNS配置文件
/etc/systemd/resolved.conf是systemd-resolved服务的配置文件
优先级:较高,但会被网络管理器覆盖
控制内容:全局DNS服务器、搜索域等
生效方式:需要重启systemd-resolved服务
对于使用 systemd-resolved 的系统:
临时修改: 如果系统使用了 systemd-resolved,可以通过命令行工具 resolvectl 来临时设置DNS服务器:
sudo resolvectl dns eth0 8.8.8.8 8.8.4.4
其中eth0是网卡名称
永久修改: 若要永久性地更改配置,应编辑 /etc/systemd/resolved.conf 文件并添加或修改 DNS= 行下的DNS服务器列表:
sudo nano /etc/systemd/resolved.conf
在其中找到或添加如下内容:
nameserver 8.8.8.8
nameserver 8.8.4.4
echo -e "nameserver 8.8.8.8\nnameserver 8.8.4.4" > /etc/systemd/resolved.conf
或者
nameserver 1.1.1.1
nameserver 1.0.0.1
echo -e "nameserver 1.1.1.1\nnameserver 1.0.0.1" > /etc/systemd/resolved.conf
修改后,重启 systemd-resolved 服务以应用更改:
sudo systemctl restart systemd-resolved.service
如果没有使用systemd-resolved 的系统,则可以直接修改 /etc/resolv.con文件
纯IPV6主机修改DNS64(NAT64),可访问IPV4地址和网站
# 使用Google的DNS64服务器
echo "nameserver 2001:4860:4860::6464" | sudo tee /etc/resolv.conf
echo "nameserver 2001:4860:4860::64" | sudo tee -a /etc/resolv.conf
# 或者使用Cloudflare的DNS64
echo "nameserver 2606:4700:4700::64" | sudo tee /etc/resolv.conf
echo "nameserver 2606:4700:4700::6400" | sudo tee -a /etc/resolv.conf
永久配置(不同发行版):
Ubuntu/Debian:
sudo systemctl disable systemd-resolved
sudo rm /etc/resolv.conf
sudo echo "nameserver 2001:4860:4860::6464" > /etc/resolv.conf
CentOS/RHEL:
sudo echo "DNS1=2001:4860:4860::6464" >> /etc/sysconfig/network-scripts/ifcfg-eth0
sudo systemctl restart NetworkManager