Port Specification and Scan Order
Download Reference Guide Book Docs Zenmap GUI In the Movies
Port Specification and Scan Order
In addition to all of the scan methods discussed previously, Nmap offers options for specifying which ports are scanned and whether the scan order is randomized or sequential. By default, Nmap scans the most common 1,000 ports for each protocol.
-p <port ranges> (Only scan specified ports)
: This option specifies which ports you want to scan and
overrides the default. Individual port numbers are OK, as
are ranges separated by a hyphen (e.g. 1-1023). The
beginning and/or end values of a range may be omitted,
causing Nmap to use 1 and 65535, respectively. So you can
specify -p- to scan ports from 1 through
65535. Scanning
port zero
is allowed if you specify it
explicitly. For IP protocol scanning (-sO), this option
specifies the protocol numbers you wish to scan for
(0–255).
When scanning a combination of protocols (e.g. TCP and UDP), you can
specify a particular protocol by preceding the port numbers by
`T:` for TCP, `U:` for UDP,
`S:` for SCTP, or `P:` for IP Protocol.
The qualifier lasts until you specify another
qualifier. For example, the argument `-p
U:53,111,137,T:21-25,80,139,8080` would scan UDP
ports 53, 111,and 137, as well as the listed TCP ports. Note
that to scan both UDP and TCP, you have to specify
`-sU` and at least one TCP scan type (such as
`-sS`, `-sF`, or
`-sT`). If no protocol qualifier is given,
the port numbers are added to all protocol lists.
Ports can also be specified by name according to what the
port is referred to in the `nmap-services`. You
can even use the wildcards `*` and
`?` with the names. For example, to scan
FTP and all ports whose names begin with “http”, use `-p ftp,http*`.
Be careful about shell expansions and quote the argument to `-p` if unsure.
Ranges of ports can be surrounded by square brackets to indicate
ports inside that range that appear in `nmap-services`.
For example, the following will scan all ports in `nmap-services`
equal to or below 1024: `-p [-1024]`. Be careful with shell
expansions and quote the argument to `-p` if unsure.
--exclude-ports <port ranges> (Exclude the specified ports from scanning)
: This option specifies which ports you do want Nmap to exclude
from scanning. The <port ranges>
are specified similar to -p. For IP protocol
scanning (-sO), this option specifies the protocol
numbers you wish to exclude (0–255).
When ports are asked to be excluded, they are excluded from all
types of scans (i.e. they will not be scanned under any circumstances).
This also includes the discovery phase.
-F (Fast (limited port) scan)
: Specifies that you wish to scan fewer ports than the
default. Normally Nmap scans the most common 1,000 ports for
each scanned protocol. With -F, this is
reduced to 100.
Nmap needs an `nmap-services` file
with frequency information in order to know which ports are
the most common (see [the section called “Well Known Port List: `nmap-services`”](https://nmap.org/book/nmap-services.html)
for more about port frequencies). If port frequency
information isn't available, perhaps because of the use of a
custom `nmap-services` file, Nmap scans
all named ports plus ports 1-1024. In that case,
`-F` means to scan only ports that are named
in the services file.
-r (Don't randomize ports)
: By default, Nmap randomizes the scanned port order
(except that certain commonly accessible ports are moved
near the beginning for efficiency reasons). This
randomization is normally desirable, but you can specify
-r for sequential (sorted from lowest to highest) port scanning
instead.
--port-ratio <ratio><decimal number between 0 and 1>
: Scans all ports in nmap-services file
with a ratio greater than the one given.
<ratio> must be between 0.0 and 1.0.
--top-ports <n>
: Scans the <n> highest-ratio ports
found in nmap-services file after excluding all
ports specified by --exclude-ports.
<n> must be 1 or greater.
