当使用服务商提供 VPS 时,为了避免商家系统上安装有自己的服务或者无法安装特定软件等问题,我们经常会选择通过 DD 一个干净的操作系统。然而,DD 可能会导致商家提供的 IPV6 无法正常使用,即使检测到 IPV6 地址,也无法通过 Ping 命令进行通信。虽然在实际应用中很少使用 IPV6,但无法使用与不能使用是两个不同的概念。本教程以 Debian 为例,将介绍如何解决这个问题。
DD 前记录 IPV6 信息
查看 cat /etc/network/interfaces
文件并记录信息
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 21.221.222.217
netmask 255.255.255.111
gateway 39.339.399.193
iface eth0 inet6 static
accept_ra 0
address 2c07:8ac1:0070:1015:0030:1000:9a9a:ab99
netmask 64
gateway 2c07:8ac1:0070:1015::1
记录了 IPV6 信息使用
修改 vi /etc/network/interfaces
文件并添加信息
#iface xxxx inet6 static(这里"xxxx" 部分,跟当前文件里 IPV4 中"iface xxxx inet static" 一致)
address 2c07:8ac1:0070:1015:0030:1000:9a9a:ab99 (前面记录的 IPV6 地址)
netmask 64
gateway 2c07:8ac1:0070:1015::1 (前面记录的 IPV6 网关)
dns-nameservers 2001:4860:4860::8888 2001:4860:4860::8844(可以加入 Google DNS,也可以不加)
Reboot
重启生效
未记录 IPV6 信息使用
直接自动 DHCP 获取 IPV6
iface XXXX inet6 dhcp「这里"xxxx" 部分,跟当前文件里 IPV4 中"iface xxxx inet static" 一致」
Reboot
重启生效
设置 IPV4 优先
默认情况会使用 IPv6 优先,如果您安装了 curl 并且本地支持 IPv6,那么可以使用 curl ip.sb
测试当前优先情况
如果你想使用 IPV4 优先,修改 vi /etc/gai.conf
文件
#取消注释 #淏
#precedence ::ffff:0:0/96 100
#修改为
precedence ::ffff:0:0/96 100
#一句话命令
sed -i 's/#precedence ::ffff:0:0\/96 100/precedence ::ffff:0:0\/96 100/' /etc/gai.conf