feat: add logic to remove specific NFQUEUE rules from mangle OUTPUT chain

This commit is contained in:
Daniel Lavrushin 2026-06-26 01:08:25 +02:00
parent 4ed534e343
commit a53ef6afbc
No known key found for this signature in database
GPG key ID: 57F1CAB57AD35056

View file

@ -888,6 +888,26 @@ func (ipt *IPTablesManager) clearB4JumpRules() {
}
}
for {
out, _ := run(iptBin, "-w", "-t", "mangle", "--line-numbers", "-nL", "OUTPUT")
lines := strings.Split(out, "\n")
removed := false
for _, line := range lines {
if strings.Contains(line, "spt:53") && strings.Contains(line, "NFQUEUE") {
parts := strings.Fields(line)
if len(parts) > 0 {
if _, err := run(iptBin, "-w", "-t", "mangle", "-D", "OUTPUT", parts[0]); err == nil {
removed = true
break
}
}
}
}
if !removed {
break
}
}
// Clean nat POSTROUTING masquerade rules
for {
_, err := run(iptBin, "-w", "-t", "nat", "-D", "POSTROUTING", "-j", "MASQUERADE")