首先描述一下问题,最近在 WMware 虚拟机中,做 iptables 防火墙的实验,系统使用的是CentOS7,CentOS6,每次虚拟机重启的时候遇到一个问题,就是前一次保存的防火墙规则,都会变成初始状态,然后查看保存防火墙规则的文件,还都是正常的,是上一次保存的防火墙规则。
iptables 防火墙规则在配置完成后,都是临时生效的,重启就会消失,所以每次更改防火墙之后,都要进行保存。
CentOS7 中需要先安装 iptables-services,默认是没有的。
[root@localhost ~]# service iptables save
防火墙保存成功后会提示,文件保存位置会被提示。
但是在重启虚拟机之后,防火墙规则会发生变化,并不是上一次保存的内容。 结果发现变化后的防火墙规则都是发生在这个网卡上。
查了资料才了解到,是因为 Libvirt 这个软件的原因。
把 Libvirt 停用就可以了。
[root@localhost ~]# systemctl stop libvirtd.service
[root@localhost ~]# systemctl disable libvirtd.service
注:但是这可能会影响到其他联机的问题,比如虚拟机与虚拟机通信,或者虚拟机与真实主机通信。