How to remove iptables rule

iptables

Solution

Your rule was defined in table nat, so you must add -t nat explicitly.

sudo iptables -D OUTPUT 1 -t nat 

If you haven't specific the table name, the default action will use '-t filter' implicitly.

Problem

I have this rule in my iptables: ``` sudo iptables -t nat -nvL --line-numbers Chain PREROUTING (policy ACCEPT 14 packets, 1950 bytes) num pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT 14 packets, 1950 bytes) num pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 577 packets, 41182 bytes) num pkts bytes target prot opt in out source destination 1 0 0 REDIRECT tcp -- * lo 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8090 ``` I tried to delete it using: ``` sudo iptables -D OUTPUT 1 ``` by I got this error: ``` iptables: Index of deletion too big. ``` So after some searching on the web, I found out that should be able to delete all the rules for the chain like this: ``` sudo iptables -F OUTPUT ``` The output of this command is nothing, but when I rerun the`sudo iptables -t nat -nvL --line-numbers` command to list the existing rules afterwards, nothing got deleted. What am I missing?

Original source