24

I need all requests to port 80 to be forwarded to 8020. I Googled it and I got:

iptables -t nat -I PREROUTING --source 0/0 --destination 0/0 -p tcp --dport 80 -j REDIRECT --to-ports 8020

Now in the future if I have to undo it what do I do (apart from restarting the system)?

4 Answers 4

18

Just delete the rule:

iptables -t nat -D PREROUTING --source 0/0 --destination 0/0 -p tcp --dport 80 -j REDIRECT --to-ports 8020
0
28

I find it a pain to completely reconstruct the iptable rule when I want to delete it. Instaed I list the rules with line numbers and then delete by number. For example:

iptables -t nat -L --line-numbers

Gives output like:

Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    REDIRECT   tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 redir ports 8020 

Then to delete by number:

iptables -t nat -D PREROUTING 1

Caveat: When you delete a line, all the lines below will get a new line number. For example, if you had rules like:

1 rule A
2 rule B
3 rule C

and you delete rule 2, then you get:

1 rule A
2 rule C
1
  • This answer is far more helpful than the accepted answer, thanks for the write up @brainsik Nov 1, 2019 at 20:11
0

I am wondering if using vim would be an option

iptables-save > editme

vim editme # remove the rule you dont want

iptables-restore < editme
0

You can also drop the entire port forwarding rules using this code

sudo iptables -P FORWARD DROP

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .