XDP hooks into the NIC driver — the earliest possible point in the Linux packet path.
Unlike iptables or nftables, packets are evaluated before
the kernel networking stack, at wire speed. Auto XDP adds an auto-sync daemon that
watches which ports are actually open and updates the firewall rules in real time. Zero manual config.
The xdp_port_sync daemon watches listening sockets in real time using Linux Netlink Process
Connector. When a process opens or closes a port, the BPF maps are updated within milliseconds —
no manual firewall rules, ever.
Tested with a high-performance AMD EPYC™ 7Y43 attacker generating ~367k PPS / 188 Mbps of UDP flood against a 1 vCPU AMD Ryzen 9 3900X target over the public internet.
modprobe pktgen on the attacker, configure a 64-byte UDP flood
(pkt_size 64, clone_skb 100, count 10000000),
and compare top softirq usage with sudo axdp watch showing
live counter deltas on the target.
Personal cloud instances are constantly scanned and probed.
Every day, bots hammer SSH, random high ports, and anything that looks like it
might be an exposed service. Traditional firewalls like iptables work —
but they process packets after the kernel networking stack, adding latency and CPU overhead.
Worse, they require manual port management: every time you start a new service,
you have to remember to open the firewall.
I wanted something that hooks in at the NIC driver level — the earliest possible interception point — and manages itself. When you start a new process that binds a port, the firewall should already know. When that process exits, the port should close automatically.
The result is Auto XDP: an eBPF/XDP firewall that sits at wire speed and a
userspace daemon that keeps it honest. One install command. Zero ongoing config.
And if your kernel doesn't support native XDP, it falls back to nftables
automatically — so it works everywhere.