我希望在服务器重新启动时停止 iptables。我知道这不切实际,但我有一个问题,我正在尝试使用 iptables 解决,所以现在我需要它在重新启动时停止。现在 iptables 启动了,所以只是寻找一种在重新启动时自动停止该服务的方法。感谢大家!
答案1
在评论中,您说:
sudo service iptables stop
iptables
这告诉我们 iptables 设置是由名为not iptables-restore
、 notnorfirewalld
的服务管理的ufw
。
这是我在服务器重新启动时运行的命令。我需要在重新启动时自动运行该命令,以便服务停止。
不,你错了。您需要运行:
sudo systemctl disable iptables
(如果您的系统使用systemd
)- 或
sudo chkconfig iptables off
(对于没有 的系统systemd
)。
这些命令应该阻止iptables
在引导时启动,所以一开始就没有什么需要阻止的。
要撤消该效果,请分别使用sudo systemctl enable iptables
或sudo chkconfig iptables on
。这些命令将iptables
在下次和后续重新启动时重新启动。
如果您正在使用systemd
并且某些其他服务配置为需要 iptables
,那么您可能必须使用sudo systemctl mask iptables
绝对阻止它启动,即使以其他服务无法启动为代价。要撤消该操作,sudo systemctl unmask iptables
.
答案2
根据评论,没有“开始”或“停止”。如果内核正在运行,则 iptables 可用(但您可以将该模块列入黑名单,但这并不是 OP 真正提出的任何问题的答案)。
禁用规则加载可能也不是解决问题的正确方法。解决问题的正确方法是将规则更改为适当的规则(即使这意味着没有活动规则)并将其设置为默认配置。这样,如果您确实需要依赖于 iptables 的功能(例如 docker),那么您可以使用该功能。
由于我们不知道这是什么发行版,因此我们无法告诉您如何做到这一点。配置可能存储在 /etc 中名称中带有“iptables”的文件中。