Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove iptables rule

Tags:

iptables

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 thesudo iptables -t nat -nvL --line-numbers command to list the existing rules afterwards, nothing got deleted. What am I missing?

like image 821
pkout Avatar asked Jan 11 '14 22:01

pkout


1 Answers

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.

like image 173
Brightshine Avatar answered Oct 21 '22 06:10

Brightshine