coreos / go-iptables

Go wrapper around iptables utility
Apache License 2.0
1.11k stars 257 forks source link

Add `DeleteById()` function #97

Open alegrey91 opened 2 years ago

alegrey91 commented 2 years ago

I would introduce a new function:

func DeleteById(table string, chain string, id int) error {
    ...
}

This allow you to delete a specific rule by passing its number identifier. The number is retrievable using the following (example) command:

$ sudo iptables -t nat -L PREROUTING -n --line-number
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:1242 to:127.0.0.1:29
2    DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:1242 to:127.0.0.1:22
3    DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:1242 to:127.0.0.1:25
singchia commented 9 months ago

Maybe you want to try this:

https://github.com/singchia/go-xtables https://pkg.go.dev/github.com/singchia/go-xtables/iptables#WithCommandDeleteRuleNumber