centos7在启用firewalld的时候,启动没有报错,但是查看状态显示如下:
处理过程
定位问题
- 首先,firewalld启动时没有报错,基本可以判断不是firewalld自身的问题。
- 查看日志,发现报错信息是ipset不可用
尝试手动调用ipset
root@localhost:~# ipset list
ipset v7.1: Cannot open session to kernel.
此时基本可以判定是内核出了问题。列出相关内核文件夹内容,查看具体问题。
ls /lib/modules/3.10.0-1160.36.2.el7.x86_64/kernel/net/netfilter
上图是正常的内容。实际小编自身遇到的问题是ipset文件夹已经消失了。这时问题已经找到,内核损坏了。
处理问题
输入uname -r
查看系统内核版本
我们通过yum的方式,升级到最新内核
首先,确认yum源
Centos 6 YUM源:http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
Centos 7 YUM源:http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
升级内核需要先导入elrepo的key,然后安装elrepo的yum源
# rpm -import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
仓库启用后,可以使用下面的命令列出可用的内核相关包,如下图
上图可以看出,长期维护版本lt为5.4,最新主线稳定版ml为6.1,我们需要安装最新的主线稳定内核
使用如下命令:(以后这台机器升级内核直接运行这句就可升级为最新稳定版)
# yum -y --enablerepo=elrepo-kernel install kernel-ml.x86_64 kernel-ml-devel.x86_64
修改grub中默认的内核版本
内核升级完毕后,目前内核还是默认的版本,如果此时直接执行reboot命令,重启后使用的内核版本还是默认的3.10,不会使用新的6.1。
通过awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
查看本机的内核版本。
通过内核名称设置默认启动内核
grub2-set-default "CentOS Linux (6.1.0-1.el7.elrepo.x86_64) 7 (Core)"
重启系统并查看系统内核
[root@localhost]# uname -r
6.1.0-1.el7.elrepo.x86_64
此时配置了开机自启的Firewalld也正常工作了
文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/6388