生产环境中部署的linux系统,如果没有使用到IPv6协议,但系统网卡默认是开启了IPv6协议。如果你觉得在查看系统网卡信息的时候觉得IPv6参数碍眼,那么可以进行禁用网卡IPv6协议。
查看Linux系统是否启用了IPv6 协议,可以直接查看网卡信息(使用ip命令)
也可以查看内核信息:cat /proc/sys/net/ipv6/conf/all/disable_ipv6 的值为1表示禁用了IPv6协议,为0是启用。
使用命令:sysctl -w net.ipv6.conf.all.disable_ipv6=1或者echo "1" > /proc/sys/net/ipv6/conf/all/disable_ipv6 ,禁用所有网卡接口。
使用命令:sysctl -w net.ipv6.conf.default.disable_ipv6=1或者echo "1" > /proc/sys/net/ipv6/conf/default/disable_ipv6 ,禁用新建或者未配置的网卡IPv6协议,这条是上一条的补充,确保禁用所有网络接口IPv6协议。
也可禁用指定网卡 :sysctl -w net.ipv6.conf.eth0.disable_ipv6=1或者echo "1"> /proc/sys/net/ipv6/conf/eth0/disable_ipv6
第一种方法是编辑/etc/sysctl.conf内核文件(无需重启系统)
net.ipv6.conf.default.disable_ipv6=1net.ipv6.conf.all.disable_ipv6=1net.ipv4.ip_forward=1
编辑完成后,使用命令:sysctl -p /etc/sysctl.conf 使配置立即并永久生效。
第二种方法是直接使用nmcli(NetworkManager的命令工具)进行配置(无需重启系统)
nmcli connection modify 连接名(比如ens3) ipv6.method ignore/disable
接着要重启连接 :nmcli connection up连接名(比如ens3)使其生效。
通过nmcli进行网卡禁用后,会在NetworkManager对应网卡连接名配置文件里体现字段值。
如果要恢复可以使用命令 nmcli connection modify 连接名(比如ens3) ipv6.method auto,再重启网卡连接即可。
第三种方法是修改grub启动文件(需要重启系统)
编辑/etc/default/grub文件,找到GRUB_CMDLINE_LINUX开头的这一行,在引号内最后添加ipv6.disable = 1。
接着更新grub配置
sudo update - grub(基于Debian的系统)
sudo grub2 - mkconfig -o /boot/grub2/grub.cfg(基于Red Hat的系统)
最后重启系统。
以上所有方法,其实就是围绕 /proc/sys/net/ipv6/conf目录下的对应网卡名称下的disable_ipv6的值修改为1(禁用IPv6),修改为0(启用IPv6)。
备注:检查Linux系统引导器是否为grub,可以使用命令:grub-install --version或者grub2-install --version,如有输出结果即为grub引导。