我刚刚阅读了有关iptables-persistent 的内容,但我完全迷失了设计。我不是唯一一个不明白它是如何工作的人,但实际上它似乎超出了我的想象。
我想象过类似crontab -e的东西:您编辑一组规则,当编辑器关闭时它们会被持久化和应用。它们被存储在某个地方,而我作为用户不知道在哪里。不要告诉我;这种方式很完美。
有这样的工具吗?为什么要iptables-persistent
以这种难以遵循的方式工作?
我刚刚阅读了有关iptables-persistent 的内容,但我完全迷失了设计。我不是唯一一个不明白它是如何工作的人,但实际上它似乎超出了我的想象。
我想象过类似crontab -e的东西:您编辑一组规则,当编辑器关闭时它们会被持久化和应用。它们被存储在某个地方,而我作为用户不知道在哪里。不要告诉我;这种方式很完美。
有这样的工具吗?为什么要iptables-persistent
以这种难以遵循的方式工作?
通常,您可以使用文本编辑器编辑 IPv4 的活动 iptables 规则,方法是使用
iptables-save
命令将规则写入文件,然后iptables-restore
在完成后使用命令重新加载新规则,例如:对于 IPv6,您将使用类似的命令
ip6tables-save
和ip6tables-restore
,即:该
iptables-persistent
服务在以下位置进行检查:因此,要应用您的规则并使它们保持不变,您将遵循与上述相同的步骤,但
iptables-persistent
改为编辑文件,例如:我不知道像您所描述的那样用于编辑 iptables 规则的交互式命令,但是您自己的滚动应该很容易。这是一个简单的例子:
这实际上与工作方式没有太大区别
crontab -e
,它只是自动将活动的 crontab 保存到/var/spool/cron/crontabs
目录中的一个文件中,这就是导致 crontab 持久化的原因。有关此主题的进一步讨论,请参阅以下帖子:您可能还对以下脚本感兴趣:
不过我不能保证。我从来没有使用过它。这只是我通过搜索交互式 iptables 编辑找到的唯一内容。
你为什么不做一个这样的脚本:
然后每次重新启动机器时启动脚本:
这样你也会有持久的规则:)
您是否尝试过使用 iptables-save 命令?
您可以手动保存到文件并添加恢复命令以在启动或登录时运行。生成的文件易于人类阅读,并包含每个条目的等效 iptables 命令。您还可以在重新加载之前编辑生成的文件。至少我是这样做的。不确定这是否是最好的方法,但它绝对有效。