关于Linux从内核启动选项中开启对ipv6的支持
本文环境:Red Hat Enterprise Linux release 8.1 (Ootpa)
因为最近在一台服务器上安装Nginx后启动,发现有报错:nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)
这个一看就很容易猜出与OS不支持ipv6有关系,于是准备查看OS可能与ipv6禁用相关的配置
首先想到了内核启动选项时,是否有禁用ipv6,于是查看/boot/grub2/grubenv配置文件
[root@localhost QQ-5201351]# cat /boot/grub2/grubenv # GRUB Environment Block kernelopts=root=/dev/mapper/vgEBS-lvRoot ro console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto ipv6.disable=1 audit=1 boot_success=1 saved_entry=ec237b1e63f562b6d6088412bcd4a50f-4.18.0-147.el8.x86_64 boot_indeterminate=0 #################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################### [root@localhost QQ-5201351]#
果然看到关于kernelopts,内核选项中有一条ipv6.disable=1,于是将这里修改成0,即ipv6.disable=0
然后重启OS,就可以支持ipv6了 , 另外补充一点,一般修改上面一处就可以了,但其实看到OS还有一处配置文件也有相关的配置
即 /boot/grub2/grub.cfg 文件,也可以将这个文件的ipv6.disable=1也修改成ipv6.disable=0
[root@localhost QQ-5201351]# grep ipv6 /boot/grub2/grub.cfg set default_kernelopts="root=/dev/mapper/vgEBS-lvRoot ro console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto ipv6.disable=1 audit=1 " [root@localhost QQ-5201351]#
不过笔者在测试时,发现这里不修改也是不影响的,生效的还是/boot/grub2/grubenv,只是推荐也一起修改了
修改以上两个配置文件,都只需要重启OS就可以生效了~
2023-02-19 再次修正,更新,原因因为官网是不推荐直接修改/boot/grub2/grubenv 文件的,修改后,会导致一些问题
如下次升级内核时,执行某些脚本时,会有报错,grub2-editenv: error: environment block too small.
重启也不会应用新内核,这个问题将在笔者另一篇文章<<关于Linux升级内核时报错-grub2-editenv: error: environment block too small.>>中介绍,及解决方法
因此本文,主要只在于开启ipv6,正确的做法步骤应该如下
1、直接手动修改 /etc/default/grub 这个文件,将GRUB_CMDLINE_LINUX=选项中的ipv6.disable=值设置为0
2、然后执行如下命令,会重新生成 /boot/grub2/grubenv 文件
grub2-mkconfig –o /boot/grub2/grub.cfg
3、最后重启OS就能生效了~
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17122078.html
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击