Во многих примерах я вижу следующие 2 последовательные команды:
iptables -F
iptables -X
На странице руководства я не могу понять разницу между сбросом и удалением. Есть ли разница между этими двумя?
Для всех цепочек вы можете -F:
+---------------+ +---------------+
| | | |
| Chain MyChain | | Chain MyChain |
| Rule 1 | -F | is |
| Rule 2 | | empty |
| Rule 3 | ==> | |
| | | |
+---------------+ +---------------+
Для только определенные пользователем цепочки (цепочка создана с помощью iptables -N MyChain) вы можете -X, если она пуста:
+---------------+
| |
| Chain MyChain | Chain MyChain
| is | -X does not exist
| empty |
| | ==>
| |
+---------------+
Обе
iptables -F
iptables -X
используются, потому что пользовательскую цепочку можно удалить только тогда, когда она пуста. Встроенные цепочки нельзя удалить, но можно сбросить.
iptables -F
стирает правила цепочки.
http://explainshell.com/explain?cmd=iptables+-F
-F, --flush [цепочка] Очистить выбранную цепочку (все цепочки в таблице, если ни одна не указана). Это эквивалентно удалению всех правил по одному.
iptables -X
удаляет цепочку.
http://explainshell.com/explain?cmd=iptables+-X
-X, --delete-chain [цепочка] Удалить необязательную указанную пользователем цепочку. Ссылки на цепочку быть не должны. Если да, то перед удалением цепочки необходимо удалить или заменить правила ссылки. Цепочка должна быть пустой, т.е. не содержать никаких правил. Если аргумент не указан, он попытается удалить каждую не встроенную цепочку в таблице.