iptables 命令和 iptables.service 有什么区别?或者说iptables.service的意义是什么?

iptables 命令和 iptables.service 有什么区别?或者说iptables.service的意义是什么?

我一直以为只有安装了该服务才能使用该iptables命令iptables.service,但后来我发现我错了

┌──[[email protected]]-[~]
└─$systemctl status iptables.service
Unit iptables.service could not be found.
┌──[[email protected]]-[~]
└─$iptables -A INPUT -p icmp --icmp-type 13 -j DROP
┌──[[email protected]]-[~]
└─$iptables -A OUTPUT -p icmp --icmp-type 14 -j DROP

添加规则后立即生效

没有iptables.service服务,命令仍然可以使用

┌──[[email protected]]-[~]
└─$whereis iptables
iptables: /usr/sbin/iptables /usr/libexec/iptables /usr/share/man/man8/iptables.8.gz
┌──[[email protected]]-[~]
└─$which iptables
/usr/sbin/iptables

我很好奇为什么我们需要iptables.service以及它意味着什么,为了简单起见,我们可以使用firewalld.service.


┌──[[email protected]]-[~]
└─$yum -y install  iptables-services.x86_64 > /dev/null
┌──[[email protected]]-[~]
└─$systemctl status iptables.service
● iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

我安装了,发现只有配置文件

┌──[[email protected]]-[~]
└─$rpm -qlc iptables
/etc/sysconfig/ip6tables-config
/etc/sysconfig/iptables-config

还有什么iptable.service作用呢?

我可以这样假设吗? iptables与内核相关,不需要iptables.service安装即可工作,但我看到很多人iptable.service在更改iptable规则后重新加载配置文件并重新启动,这是正确的想法吗?

答案1

iptables命令用于添加或删除规则和链,无需服务文件即可使用。所做iptables.service的就是在启动时自动加载保存的规则集并在关闭时卸载规则。脚本中有一些安全检查,例如将默认链策略设置为关闭时接受,以防止系统具有不可用的规则集。如果您想在每次启动系统时手动加载规则,该服务会让事情变得更容易。

firewalld提供了一个更简单的定义规则的界面,iptables但这确实是主要的区别。在幕后,firewalld用于iptables执行规则。就我个人而言,我更喜欢使用,iptables但多年来我已经习惯了该配置。iptables或的选择firewalld实际上取决于您的喜好。

相关内容