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

Chi*_*Abs 4 arch-linux iptables

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

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

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

Gia*_*968 6

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

根据我对 IPTables 和 Arch Linux 的了解——老实说,主要来自 Arch Linux 官方维基——默认的 IPv4 规则应该存储在这里:

/etc/iptables/iptables.rules
Run Code Online (Sandbox Code Playgroud)

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

sudo cp ~/iptables.rules /etc/iptables/iptables.rules
Run Code Online (Sandbox Code Playgroud)

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

sudo systemctl restart iptables
Run Code Online (Sandbox Code Playgroud)

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

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

sudo systemctl enable iptables
Run Code Online (Sandbox Code Playgroud)

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

  • @ChiseledAbs 检查我的最新编辑。我相信您可能需要通过运行“sudo systemctl enable iptables”来启用 IPTables 作为系统服务。 (2认同)