现在IPv4+IPv6双栈的服务器越来越普及,但是IPv6的路由依然那么烂,那么在不禁用IPv6的前提下,如果优先使用IPv4?只需要简单一步即可完成。


降低IPv6优先级,优先使用IPv4

默认的安装中,IPv4 和 IPV6 并存,并且 IPv6 优先于 IPv4。如果不需要彻底关闭 IPv6,可以设置让 IPv4 优先于 IPv6。配置方式如下:

echo "precedence ::ffff:0:0/96 100" >>/etc/gai.conf

当然也可以直接修改 /etc/gai.conf 文件,找到下面这一行

#precedence ::ffff:0:0/96 100

把前面的#去掉即可。

禁用 IPv6

如果确定不需要IPv6的支持,可以选择禁用IPv6。
编辑 /etc/default/grub,找到 GRUB_CMDLINE_LINUX_DEFAULT="quiet"
修改为:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet"

随后执行命令 update-grub 更新 grub 启动参数,重启系统即可。

验证结果

ping www.google.com -c 3

方法2

1、在/etc/sysctl.conf添加如下内容:

net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1

2、创建/etc/rc.local文件,文件内容如下:

#!/bin/bash
# /etc/rc.local
/etc/sysctl.d
/etc/init.d/procps restart
exit 0

3、赋予执行权限

sudo chmod 755 /etc/rc.local

4、重启系统