问题描述
为什么禁用 IPv6 协议栈?因为很多配套的基础设置还未到位,因此使用 IPv6 会遇到很多问题,比如 a 5-second delay 问题。
该笔记将记录:在 Linux 中,如何禁用 IPv6 协议栈,以及相关问题处理。
解决方案
RHEL/CentOS
# sysctl -w net.ipv6.conf.all.disable_ipv6=1 # sysctl -w net.ipv6.conf.default.disable_ipv6=1 cat > /etc/sysctl.d/99-disable-ipv6.conf <<EOF net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1 EOF sysctl --load /etc/sysctl.d/99-disable-ipv6.conf
Ubuntu 18.04
在 Ubuntu 18.04 中,修改 sysctl 是无效的,因为 Netplan 会为其分配 Link-local 地址。解决方法:
方法一、彻底禁止 IPv6 协议栈
# vim /etc/default/grub ... GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1" GRUB_CMDLINE_LINUX="ipv6.disable=1" ... # update-grub
方法二、通过 Netplan 禁止
network: version: 2 ethernets: enp0s2: ... link-local: [] ...
我们不得不说,“回”字又多了一种写法 :-)
参考文献
Disabling IPv6 in Ubuntu Server 18.04 – Ask Ubuntu
Disabling IPv6 on Ubuntu 18.04: The Netplan Version | P. S. Clarke
How to disable IPv6 address on Ubuntu 18.04 Bionic Beaver Linux – LinuxConfig.org
How to disable IPv6 on Linux
How to Disable IPv6 on Ubuntu Linux
IPv6 – ArchWiki
Link-local address – Wikipedia