如果在系统启动时禁用了IPv6模块(例如,添加了ipv6.disable=1),那么通过操作系统修改(NetworkManager和sysctl)都将无效,必须通过修改内核启动参数移除相关设置。
1. 确认当前 GRUB 命令行参数
首先,检查当前的内核引导参数是否包含ipv6.disable。
cat /proc/cmdline | grep ipv6.disable
如果输出中包含ipv6.disable=1,则说明IPv6在引导时已被禁用。
2. 编辑GRUB配置文件
GRUB的主配置文件是/etc/default/grub。我们需要修改GRUB_CMDLINE_LINUX这一行。
sudo vi /etc/default/grub GRUB_CMDLINE_LINUX="... crashkernel=auto rhgb quiet ipv6.disable=1"
将ipv6.disable=1这个参数删除,并确保保留其他参数。
GRUB_CMDLINE_LINUX="... crashkernel=auto rhgb quiet"
3. 重新生成GRUB2配置文件
这是最关键的一步。 仅仅修改/etc/default/grub文件是不够的,必须根据它重新生成实际的引导配置文件。
- 对于大多数 BIOS 启动的系统和旧版 UEFI 系统:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
- 对于主流的UEFI启动系统(如RHEL/CentOS/Fedora):
-
sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
注意:路径中的redhat可能因发行版而异(例如可能是 centos, fedora, ubuntu)
- 对于Debian/Ubuntu系统:
sudo update-grub
4. 重启系统
配置更改在系统重启后才会生效。
sudo reboot
5.扩展阅读
- Red Hat文档:如何修改内核引导参数
- GNU GRUB手册:官方文档
原创文章,作者:实战侠,如若转载,请注明出处:https://www.shizhanxia.com/knowledgebase/linux-grub-ipv6.html
微信扫一扫
支付宝扫一扫
