按照一些教程在我的笔记本电脑(Ubuntu 16.04)中禁用 IPv6,我需要写入/etc/sysctl.d/99-sysctl.conf
以下几行:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
我运行sudo sysctl -p
后发现 ipv6 已禁用。很好。
过了一段时间,或者我重新启动网络管理器或重启电脑,我发现是否配置我的 ipv6 地址回来了,我得sudo sysctl -p
再次运行。
所以我不明白为什么我的配置不明确,运行时某些东西会忽略我的内核参数。
答案1
有报告称,此问题影响 Ubuntu 16.04 及以上版本,https://bugs.launchpad.net/ubuntu/+source/procps/+bug/50093其中应用 sysctl.conf 变量的 procps.sh 运行过早,并且某些设置尚未应用。
禁用 ipv6 的另一种方法是使用内核启动参数,如https://askubuntu.com/a/337736/283721
sudo nano /etc/default/grub
找到包含“GRUB_CMDLINE_LINUX_DEFAULT”的行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
将“ipv6.disable=1”添加到启动选项,然后保存您的 grub 文件:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"
按ctrl+o保存,按ctrl+x退出 nano。最后,更新 grub:
sudo update-grub
并重新启动以加载更改。