设置IPv6优先级
使用场景:
> 某些时候Github优先用IPv6来下载,导致下载失败
> 有时候用IPv6下载文件非常慢,没有IPv4快
1、判断当前IPv6的优先级curl ip.sb #1
curl ip.sb -6 #2
#如果上述两个命令的输出结果一样,则系统的网络以IPv6优先。
2、设置IPv4优先
#如果/etc/gai.conf文件不存在,可以从别的已经有机器上复制一个(推荐),实在不行新建一个sed -i 's/#precedence ::ffff:0:0\/96 100/precedence ::ffff:0:0\/96 100/' /etc/gai.conf
3、设置IPv6优先
因为目前 IANA 分配的公网 IPv6 还未进行到 3000:0000::/4,所以只要把这段之前的 IPv6 加到优先级列表即可,/etc/gai.conf加入这两行 label 的优先级:label 2002::/16 1
label 2001:0::/32 1
4、特殊情况处理
从 Debian 13 开始的 curl (8.14.1) 会强制 IPv6 优先,可以使用 wget 命令来检测:wget -qO- http://ip.sb
.
禁用IPv6
就是只用IPv4,不使用IPv6,即全面禁用IPv6,下面以eth0为例:
vim /etc/sysctl.d/local.conf && sysctl --system
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.default.accept_ra = 0
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1
.
.
.