UFW Ctrl-C 和 iptables:链已经存在

Zom*_*rky 10 ufw

我做了一件愚蠢的事情,所以忍耐一下。

在运行ufw命令添加规则时,我做了一个Ctrl-C,这导致每次尝试使用UFW时都会生成以下错误的问题:

ERROR: initcaps
[Errno 2] iptables: Chain already exists.
Run Code Online (Sandbox Code Playgroud)

我进行了搜索,但找不到有关如何清理它的任何信息,但我确实在以下位置找到了此错误报告: ctr+c interupt 后的 ufw 错误

虽然我确实看到它已得到确认,但在修复之前我可以做些什么来清理它?每次我尝试添加规则时,都会出现该错误。

在此先感谢您提供的任何帮助。

编辑:顺便说一句,我已经尝试保存 user.rules 文件,卸载 UFW,重新安装 UFW,并将 user.rules 文件移回。我认为它可能会清理 iptables。没有成功。

Mah*_*sa2 23

这从这里对我有用

sudo ufw disable
sudo iptables -F
sudo iptables -X
sudo ip6tables -F
sudo ip6tables -X
sudo ufw enable
Run Code Online (Sandbox Code Playgroud)

我希望有一天它对某人有所帮助。


bto*_*ski 4

这就是我清理它的方法,如果启用了 ufw,请禁用它。然后从 iptables 和 ip6tables 中删除所有 ufw 规则。

#! /usr/bin/env bash
set -e
set -o pipefail

iptables --flush
rules=($(iptables --list | grep Chain | grep -Eo "ufw-[a-z-]+" | xargs echo))
for i in "${rules[@]}"
do
  iptables --delete-chain $i
done

ip6tables --flush
rules6=($(ip6tables --list | grep Chain | grep -Eo "ufw6-[a-z-]+" | xargs echo))
for i in "${rules6[@]}"
do
  ip6tables --delete-chain $i
done
Run Code Online (Sandbox Code Playgroud)

  • 当我的脚本添加/删除规则太快时,我遇到了同样的问题。我用 `sudo iptables --list | 简化了你的 iptables 命令。awk '/^链 ufw-/ {print $2}' | xargs`。顺便说一句,“xargs”默认命令是“/bin/echo”。我并不真正关心 iptables 上的其他规则,所以我只是用`sudo ufw disable; 清除它。sudo iptables -F; sudo iptables -X;sudo ip6tables -F; sudo ip6tables -X; sudo ufw 启用`。这里还概述了另一种更敏感的方法:http://blog.cloud66.com/ufw-shenanigans/ (6认同)