在RHEL/CentOS 7中,曾经的iptables.service/ip6tables.service已经被firewalld.service所替代。但两者在本质上是一致的,都是通过iptables工具操作Linux kernel的netfilter,实现对IP数据包的过滤。两者只是在实现上有如下不同:
- iptables/ip6tables的配置默认存储到/etc/sysconfig/iptables,/etc/sysconfig/ip6tables文件;而firewalld的配置存储到/usr/lib/firewalld/和/etc/firewalld/目录下的若干个XML文件。
- iptables/ip6tables的配置改变后,需要重新加载所有规则,这会造成当前的连接全部中断;而firewalld可以在运行时加载配置的改变,而不会丢失当前的连接。
虽然iptables.service/ip6tables.service已经无效,但是他们还存在,只是没有被启用。查看其状态如下:
[root@myhost ~]# systemctl status iptables
* iptables.service - IPv4 firewall with iptables
Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)
Active: inactive (dead)
[root@myhost ~]# systemctl status ip6tables
* ip6tables.service - IPv6 firewall with ip6tables
Loaded: loaded (/usr/lib/systemd/system/ip6tables.service; disabled; ve