如何暂时禁用 iptables 防火墙
了解如何在 Linux 中暂时禁用 iptables 防火墙来进行故障排除。还要学习如何保存策略以及如何在启用防火墙时恢复它们。
iptables
113.74.11.36
这个操作的话、禁用就是把iptables规则全部清空吗？<br />
<br />
iptables的服务不是还在吗、如果我新安装一个软件需要用到防火墙、岂不是这个软件会自动添加iptables规则?<br />
<br />
<br />
iptables和firewall能共存吗？&nbsp;&nbsp;我看测试优先权还是iptables生效<br />
<br />
<br />
有没有办法能够完全让firewall替换iptables呢？<br />
<br />
<br />
谢谢
等待时候 [Chrome 80.0|Windows 7]
2020-04-01T09:17:52.000
了解如何在 Linux 中暂时禁用 iptables 防火墙来进行故障排除。还要学习如何保存策略以及如何在启用防火墙时恢复它们。

> 
> 了解如何在 Linux 中暂时禁用 iptables 防火墙来进行故障排除。还要学习如何保存策略以及如何在启用防火墙时恢复它们。
> 
> 
> 


![How to disable iptables firewall temporarily](/data/attachment/album/201806/30/090750t2j8purzppwjj5bq.png)


有时你需要关闭 iptables 防火墙来做一些连接故障排除，然后你需要重新打开它。在执行此操作时，你还需要保存所有[防火墙策略](https://kerneltalks.com/networking/configuration-of-iptables-policies/)。在本文中，我们将引导你了解如何保存防火墙策略以及如何禁用/启用 iptables 防火墙。有关 iptables 防火墙和策略的更多详细信息[请阅读我们的文章](https://kerneltalks.com/networking/basics-of-iptables-linux-firewall/)。


### 保存 iptables 策略


临时禁用 iptables 防火墙的第一步是保存现有的防火墙规则/策略。`iptables-save` 命令列出你可以保存到服务器中的所有现有策略。



```
root@kerneltalks # # iptables-save
# Generated by iptables-save v1.4.21 on Tue Jun 19 09:54:36 2018
*nat
:PREROUTING ACCEPT [1:52]
:INPUT ACCEPT [1:52]
:OUTPUT ACCEPT [15:1140]
:POSTROUTING ACCEPT [15:1140]
:DOCKER - [0:0]
---- output trucated----

root@kerneltalks # iptables-save > /root/firewall_rules.backup

```

因此，iptables-save 是可以用来备份 iptables 策略的命令。


### 停止/禁用 iptables 防火墙


对于较老的 Linux 内核，你可以选择使用 `service iptables stop` 停止 iptables 服务，但是如果你在用新内核，则只需清除所有策略并允许所有流量通过防火墙。这和你停止防火墙效果一样。


使用下面的命令列表来做到这一点。



```
root@kerneltalks # iptables -F
root@kerneltalks # iptables -X
root@kerneltalks # iptables -P INPUT ACCEPT
root@kerneltalks # iptables -P OUTPUT ACCEPT
root@kerneltalks # iptables -P FORWARD ACCEPT

```

这里 –


* `-F`：删除所有策略链
* `-X`：删除用户定义的链
* `-P INPUT/OUTPUT/FORWARD` ：接受指定的流量


完成后，检查当前的防火墙策略。它应该看起来像下面这样接受所有流量（和禁用/停止防火墙一样）



```
# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

```

### 恢复防火墙策略


故障排除后，你想要重新打开 iptables 的所有配置。你需要先从我们在第一步中执行的备份中恢复策略。



```
root@kerneltalks # iptables-restore </root/firewall_rules.backup

```

### 启动 iptables 防火墙


然后启动 iptables 服务，以防止你在上一步中使用 `service iptables start` 停止了它。如果你已经停止服务，那么只有恢复策略才能有用。检查所有策略是否恢复到 iptables 配置中：



```
#  iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy DROP)
target     prot opt source               destination
DOCKER-USER  all  --  anywhere             anywhere
DOCKER-ISOLATION-STAGE-1  all  --  anywhere             anywhere
-----output truncated-----

```

就是这些了！你已成功禁用并启用了防火墙，而不会丢失你的策略规则。




---


via: <https://kerneltalks.com/howto/how-to-disable-iptables-firewall-temporarily/>


作者：[kerneltalks](https://kerneltalks.com) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

