web-dev-qa-db-fra.com

UFW Ctrl-C et iptables: la chaîne existe déjà

J'ai fait une chose stupide, alors supporte-moi.

Lors de l'exécution d'une commande ufw pour ajouter une règle, j'ai utilisé un Ctrl-C, ce qui a entraîné le problème de l'erreur suivante générée à chaque fois que j'essaie d'utiliser UFW:

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

J'ai fait une recherche et ne trouve rien sur la façon de le nettoyer, mais j'ai trouvé ce rapport de bogue à l'adresse: erreurs ufw après l'interruption de ctr + c

Bien que je sache que cela a été confirmé, y a-t-il quelque chose que je puisse faire pour nettoyer cela jusqu'à ce que tout soit résolu? Chaque fois que j'essaie d'ajouter une règle, j'obtiens cette erreur.

Merci d'avance pour toute aide fournie.

Edit: BTW, j'ai déjà essayé de sauvegarder le fichier user.rules, de désinstaller UFW, de réinstaller UFW et de déplacer le fichier user.rules. Je pensais que ça pourrait nettoyer iptables. Sans succès.

8
ZombieJerky

Cela a fonctionné pour moi à partir de ici

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

J'espère que c'est utile pour quelqu'un, un jour.

15
Mahsa2

C'est ce que j'ai fait pour le nettoyer. Si ufw est activé, désactivez-le. Supprimez ensuite toutes les règles ufw de iptables et 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
4
btobolaski