-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Description
Describe the bug
Using masscan with --pfring fails with the message:
No pfring adapter available. Please install pfring or run masscan without the --pfring option.
Even though the PF_RING kernel module is loaded on the system.
Environment
-
masscan:
Masscan version 1.3.9-integration ( https://github.com/robertdavidgraham/masscan ) -
Compiled on:
Oct 8 2025 19:09:47 -
Compiler:
gcc 14.3.0 -
OS:
Linux -
GIT version:
1.3.2-213-gb99d433 -
Distribution(s) tested:
-
Ubuntu 24.04.3 LTS
-
Kali Linux
8.14.2 Rolling -
Kernel module:
-
sudo modinfo pf_ringoutput:
filename: /lib/modules/6.16.8+kali-amd64/kernel/net/pf_ring/pf_ring.ko
alias: net-pf-27
version: 9.1.0
description: Packet capture acceleration and analysis
author: ntop.org
license: GPL
srcversion: 5CE538CE1BE9CEECE35DAE8
depends:
name: pf_ring
retpoline: Y
vermagic: 6.16.8+kali-amd64 SMP preempt mod_unload modversions
parm: min_num_slots:Min number of ring slots (uint) -
lsmod | grep pf_ring:
pf_ring 245760 0
Steps to reproduce
- Install PF_RING kernel module (in my case it shows
version: 9.1.0). - Install or build masscan (I used the integration build above).
- Run: sudo masscan 8.8.8.8 -p80 --rate 10 --pfring
Actual behavior
masscan exits with:
No pfring adapter available. Please install pfring or run masscan without the --pfring option.
Expected behavior
masscan should detect the PF_RING adapter(s) and run scanning using PF_RING when --pfring is specified (or provide a clear diagnostic if userspace PF_RING components or adapters are missing).
Notes / Additional info
- The kernel module is present and loaded, but
lsmodshowspf_ringwith 0 users — this suggests no PF_RING adapters/instances are currently exposed to userspace or masscan cannot find them. - Possible causes to investigate:
- masscan was not compiled/linked against the appropriate
libpfring(or the libpfring version present does not match the kernel module ABI). - PF_RING userspace components (libpfring, pfringcfg or daemon/tools that expose adapters) are not installed/configured, so no PF_RING adapters are visible to userspace programs.
- PF_RING kernel module version (9.1.0) vs the libpfring userspace version mismatch causing detection failure.
- I do not have further logs from
dmesgorpfringutilities in this report; happy to provide if desired.
What I checked / included
- masscan
--versionoutput shown above modinfo pf_ringshowingversion: 9.1.0lsmodshowingpf_ringloaded- Exact masscan invocation and error message
Suggested next steps for maintainers / for debugging
- Confirm whether masscan binary was built with PF_RING userspace support enabled and which libpfring version / headers were used at compile time.
- Check for presence of libpfring in userspace:
ldd $(which masscan)orldconfig -p | grep pfring(to see which libpfring, if any, masscan links to).
- Check for PF_RING adapters and kernel messages:
dmesg | grep -i pf_ring- Look for PF_RING adapter listings (depending on PF_RING tools available, e.g.
pfringcfgor/proc/net/pf_ring).
- Report whether masscan needs a specific PF_RING version (9.0.x vs 9.1.x) or ABI compatibility notes.
- If a simple version mismatch is the cause, consider suggesting a clear diagnostic on startup (e.g., version check between userspace lib and kernel module) or a clearer error message indicating "libpfring not found / no PF_RING adapters exposed".
If you prefer, I can also attach additional debug outputs (dmesg, ldd output, contents of /proc/net if present) to help triage. Thanks!