Updated Jul 14, 2026

Network

Enumerate open ports on a host list before probing

A fast and reliable port scanner that enumerates open ports for hosts.

Agent

overview

What naabu does

naabu enumerates open ports for a host or a list of hosts. By default it runs fast stateless SYN scans, sends probes across the port set you choose, and lists every port that answers, turning a set of hosts into a map of exposed services. Written in Go for throughput, it sweeps wide ranges without the long waits of a heavier scanner.

It exposes the controls a real engagement needs. Pick SYN or CONNECT with -scan-type, set the probe -rate and worker count, target the -top-ports or a custom -port range, and drop noise with -exclude-ports. Host-discovery probes can front the scan so only live hosts get swept, and CDN awareness keeps naabu off cloud edges: flag the CDN in use with -display-cdn, or use -exclude-cdn to skip full scans of CDN ranges and check only 80 and 443.

Run naabu after subdomain or host discovery and its open host:port pairs feed the rest of a Trickest workflow. Emit JSON lines with -json or CSV and the results drop straight into httpx for probing and a scanner for testing, so later stages only touch ports that are actually open.

source github.com/projectdiscovery/naabu

use cases

Where naabu fits

Map open ports across an estate

Scan a host list with SYN probes to enumerate every responding port, building the service map that probing and scanning stages depend on.

Scan wide scopes within rate limits

Tune the rate and worker count to cover large ranges quickly while staying inside a target's tolerance and your own bandwidth.

Skip CDN noise

Use exclude-cdn so cloud edge ranges only get checked on ports 80 and 443, keeping scan time focused on origin infrastructure.

Feed structured output to the pipeline

Emit JSON lines so the open host:port pairs flow straight into httpx for probing and a scanner for testing without manual reshaping.

reference

naabu inputs and flags

44 inputs
NameTypeFlagDescription
hostSTRING-hostHosts to scan ports for (comma-separated).
hosts-listFILE-lList of hosts to scan ports, the usual pipeline input.
ports-to-enumerateSTRING-portPorts to enumerate (top-100, top-1000, full, or custom).
top-portsSTRING-top-portsTop ports to scan (default top 100).
rateSTRING-rateRate of port scan probe requests (default 1000).
scan-typeSTRING-scan-typeType of port scan, SYN or CONNECT (default s).
exclude-cdnBOOLEAN-exclude-cdnSkip full port scans for CDNs, only checks 80 and 443.
json-outputBOOLEAN-jsonWrite output in JSON lines format.

Showing key inputs. naabu exposes 44 inputs in total.

Full flag reference (44 inputs)
NameTypeFlagDescription
cdnBOOLEAN-display-cdndisplay cdn in use
hostSTRING-hosthosts to scan ports for (comma-separated)
rateSTRING-rateRate of port scan probe request (default 1000)
proxySTRING-proxysocks5 proxy (ip[:port] / fqdn[:port])
statsBOOLEAN-statsDisplay stats of the running scan
nd-pingBOOLEAN-nd-pingIPv6 Neighbor Discovery (host discovery needs to be enabled)
passiveBOOLEAN-passivedisplay passive open ports using shodan internetdb api
threadsSTRING-cGeneral internal worker threads (default 25)
timeoutSTRING-timeoutMillisecond to wait before timing out (default 700)
verboseBOOLEAN-vShow verbose output
arp-pingBOOLEAN-arp-pingARP ping (host discovery needs to be enabled)
no-colorsBOOLEAN-no-colorDon't Use colors in output
resolversFILE-rlist of custom resolvers for dns resolution
scan-typeSTRING-scan-typetype of port scan (SYN/CONNECT) (default "s")
source-ipSTRING-source-ipsource ip and port (x.x.x.x:yyy)
top-portsSTRING-top-portsTop Ports to scan (default top 100)
csv-outputBOOLEAN-csvWrite output in CSV format
debug-modeBOOLEAN-debugdisplay debugging information
hosts-listFILE-lList of hosts to scan ports
ip-versionSTRING-ip-versionip version to scan of hostname (4,6) - (default 4)
ping-probeBOOLEAN-pingPerform ping probe to detect alive hosts
ports-fileFILE-ports-fileFile containing ports to scan for
proxy-authSTRING-proxy-authsocks5 proxy authentication (username:password)
exclude-cdnBOOLEAN-exclude-cdnSkip full port scans for CDNs (only checks for 80,443)
json-outputBOOLEAN-jsonWrite output in JSON lines format
exclude-fileFILE-exclude-fileList of hosts to exclude from scan
scan-all-ipsBOOLEAN-scan-all-ipsScan all the ips
warm-up-timeSTRING-warm-up-timeTime in seconds between scan phases (default 2)
exclude-hostsSTRING-exclude-hostshosts to exclude from the scan (comma-separated)
exclude-portsSTRING-exclude-portsPorts to exclude from scan
probe-tcp-ackBOOLEAN-probe-tcp-ackTCP ACK Ping (host discovery needs to be enabled)
probe-tcp-synBOOLEAN-probe-tcp-synTCP SYN Ping (host discovery needs to be enabled)
host-discoveryBOOLEAN-host-discoveryRun Host Discovery scan
port-thresholdSTRING-port-thresholdport threshold to skip port scan for the host
stats-intervalSTRING-sinumber of seconds to wait between showing a statistics update (default 5)
validate-portsBOOLEAN-verifyValidate the ports again
probe-icmp-echoBOOLEAN-probe-icmp-echoICMP echo request Ping (host discovery needs to be enabled)
ports-to-excludeSTRING-exclude-portsPorts to exclude from enumeration
ports-to-enumerateSTRING-portPorts to enumerate for on hosts (top-100, top-1000, full, custom)
skip-host-discoveryBOOLEAN-skip-host-discoverySkip Host discovery
probe-icmp-timestampBOOLEAN-probe-icmp-timestampICMP timestamp request Ping (host discovery needs to be enabled)
probe-icmp-address-maskBOOLEAN-probe-icmp-address-maskICMP address mask request Ping (host discovery needs to be enabled)
only-host-port-in-outputBOOLEAN-silentShow only host:ports in output
number-of-retries-for-port-scanSTRING-retriesNumber of retries for the port scan probe (default 1)

example

Run naabu

naabu · command
# scan a host list for the top 1000 ports, JSON lines outnaabu -l hosts.txt -top-ports 1000 -rate 1000 -exclude-cdn -json -o open-ports.jsonl
sample output
example.com:80example.com:443api.example.com:443api.example.com:8443staging.example.com:22staging.example.com:8080198.51.100.24:3306198.51.100.24:6379198.51.100.51:5432

guidance

Choosing naabu

Use naabu to find which ports are open before you probe or scan. It is a port scanner, not a service prober, so feed its open host:port pairs to httpx for classification and a vulnerability scanner for testing. Reach for it when you need fast, scriptable port enumeration in a pipeline.

masscan

Internet-scale SYN scanner with raw speed. naabu is friendlier to wire into a pipeline and handles CDNs out of the box.

rustscan

Fast scanner that hands ports to nmap for service detection. naabu favors clean structured output over nmap integration.

nmap

Deeper service and version detection, slower. Run nmap after naabu narrows the port set.

faq

naabu questions

Pass one or more targets to -host, comma-separated, for example `naabu -host example.com,api.example.com`. For many targets, use -l with a file of hosts instead. On Trickest, set the node's host or hosts-list input rather than passing the flag.

Run naabu yourself

A host list feeds naabu, which enumerates open ports and hands them to httpx for probing before the live services land as a queryable output.

Facts on this page come from the live Trickest tool library.