如何让 iptables 规则在启动时加载?

如何让 iptables 规则在启动时加载?

刚刚安装了 Arch Linux,并使用保存了一些 iptables 规则iptables-保存但它们在启动时不会加载。这是什么意思?

systemd 单元文件指向规则配置的保存位置

我应该在哪里找到该 systemd 单元文件,以便我可以写下路径iptables.rules

答案1

前言:让 IPTables 在重启之间保持持久性可能会令人抓狂,因为基本流程/程序在不同的 Linux 发行版之间似乎差别很大。所以如果这看起来令人困惑,请不要担心;事实确实如此。

据我对 IPTables 和 Arch Linux 的了解,主要来自 Arch Linux 官方 wiki— 默认 IPv4 规则应存储在这里:

/etc/iptables/iptables.rules

因此,如果您将iptables.rules文件存储在用户的主目录中,只需将其从主目录复制到该目的地,如下所示:

sudo cp ~/iptables.rules /etc/iptables/iptables.rules

完成后,通过systemctl如下方式重新启动 IPTables:

sudo systemctl restart iptables

这将立即重新启动 IPTables,但您可能需要重新启动机器来测试是否有效。

如果这不起作用,可能是因为 IPTables 未在您的系统上启用为启动服务。要将其启用为启动服务,只需运行以下命令:

sudo systemctl enable iptables

然后重新启动 IPTables应该启动并运行,并且/etc/iptables/iptables.rules正确加载规则。

答案2

在 RedHat 系列 systemd 单元中/usr/lib/systemd/system/iptables.service

以及默认加载位置/etc/sysconfig/iptables

发现方式:

locate iptables | grep systemd

相关内容