在 Debian 9 上安装该firewalld
软件包也会拉入该ebtables
软件包。这会向系统添加两项服务,firewalld
并且ebtables
.与往常一样,Debian 启用这两项服务。
firewalld.service
被标记为Conflicts=ebtables.service
.
当系统启动时这两个服务会发生什么?我能知道两者中的哪一个可以运行吗?或者两者都不被允许运行?
答案1
如果与单元 B 冲突的单元 A 计划与 B 同时启动,则事务将失败(如果两者都是事务的一部分)或修改为固定(如果其中一个或两个都需要)工作不是交易的必需部分)。在后一种情况下,不需要的作业将被删除,或者如果两者都不需要,则将启动冲突的单元并停止冲突的单元。
--man 系统单元
在这种情况下, 和 都firewalld.service
只是ebtables.service
,WantedBy=multi-user.target
而不是RequiredBy=
。
结论: firewalld.service
会启动,也ebtables.service
不会启动。
这不会告诉您安装后立即发生的情况firewalld
。幸运的是,结果是相同的,因为ebtables
先安装了。这个顺序的意思是暂时启动,但启动ebtables.service
后又停止:firewalld.service
如果一个单元在另一个单元上有 Conflicts= 设置,则启动前者将停止后者,反之亦然。