UFW Ctrl-C и iptables: цепочка уже существует

8

Я сделал глупость, так что терпите меня.

Выполняя команду ufw для добавления правила, я сделал Ctrl-C, это привело к проблеме генерирования следующей ошибки каждый раз, когда я пытаюсь использовать UFW:

ERROR: initcaps
[Errno 2] iptables: Chain already exists.

Я сделал поиск и не могу найти ничего о том, как его очистить, но я нашел этот отчет об ошибке по адресу: ошибки ufw после ctr + c interupt

Хотя я вижу, что это было подтверждено, могу ли я что-нибудь сделать, чтобы очистить это, пока оно не будет исправлено? Каждый раз, когда я пытаюсь добавить правило, я получаю эту ошибку.

Заранее спасибо за любую помощь.

Изменить: Кстати, я уже пытался сохранить файл user.rules, удалить UFW, переустановить UFW и переместить файл user.rules обратно. Я думал, что это может очистить iptables. Нет успеха

ZombieJerky
источник

Ответы:

17

Это сработало для меня отсюда

sudo ufw disable
sudo iptables -F
sudo iptables -X
sudo ip6tables -F
sudo ip6tables -X
sudo ufw enable

Надеюсь, это кому-нибудь пригодится, однажды.

Mahsa2
источник
1
У меня были ошибки ip6, поэтому я запустил следующее sudo ufw disable sudo iptables -F sudo iptables -X sudo ip6tables -F sudo ip6tables -X sudo ufw enable
sagesolutions
Спасибо! Просто столкнулся с этим вопросом
ksaylor11
4

Это то, что я сделал, чтобы очистить его, если UFW включен, отключите его. Затем удалите все правила ufw из iptables и ip6tables.

#! /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
btobolaski
источник
6
Я столкнулся с этой же проблемой, когда у меня был скрипт, добавляющий / удаляющий правила слишком быстро. Я немного упростил вашу команду iptables sudo iptables --list | awk '/^Chain 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 enable. Здесь также описан еще один более чувствительный подход: blog.cloud66.com/ufw-shenanigans
6