-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 both TCP and UDP ports, you can specify a particular protocol by preceding the port
numbers by T: or U:. 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.
-T paranoid|sneaky|polite|normal|aggressive|insane (Set a timing template) .
While the fine-grained timing controls discussed in the previous section are powerful and effective,
some people find them confusing. Moreover, choosing the appropriate values can sometimes take more
time than the scan you are trying to optimize. So Nmap offers a simpler approach, with six timing
templates. You can specify them with the -T option and their number (0–5) or their name. The template
names are paranoid (0), sneaky (1), polite (2), normal (3), aggressive (4), and insane (5). The first
two are for IDS evasion. Polite mode slows down the scan to use less bandwidth and target machine
resources. Normal mode is the default and so -T3 does nothing. Aggressive mode speeds scans up by
making the assumption that you are on a reasonably fast and reliable network. Finally insane mode.
assumes that you are on an extraordinarily fast network or are willing to sacrifice some accuracy for
These templates allow the user to specify how aggressive they wish to be, while leaving Nmap to pick
the exact timing values. The templates also make some minor speed adjustments for which fine-grained
control options do not currently exist. For example, -T4. prohibits the dynamic scan delay from
exceeding 10 ms for TCP ports and -T5 caps that value at 5 ms. Templates can be used in combination
with fine-grained controls, and the fine-grained controls will you specify will take precedence over
the timing template default for that parameter. I recommend using -T4 when scanning reasonably modern
and reliable networks. Keep that option even when you add fine-grained controls so that you benefit
from those extra minor optimizations that it enables.
If you are on a decent broadband or ethernet connection, I would recommend always using -T4. Some
people love -T5 though it is too aggressive for my taste. People sometimes specify -T2 because they
think it is less likely to crash hosts or because they consider themselves to be polite in general.
They often don´t realize just how slow -T polite. really is. Their scan may take ten times longer
than a default scan. Machine crashes and bandwidth problems are rare with the default timing options
(-T3) and so I normally recommend that for cautious scanners. Omitting version detection is far more
effective than playing with timing values at reducing these problems.
While -T0. and -T1. may be useful for avoiding IDS alerts, they will take an extraordinarily long
time to scan thousands of machines or ports. For such a long scan, you may prefer to set the exact
timing values you need rather than rely on the canned -T0 and -T1 values.
The main effects of T0 are serializing the scan so only one port is scanned at a time, and waiting
five minutes between sending each probe. T1 and T2 are similar but they only wait 15 seconds and 0.4
seconds, respectively, between probes. T3 is Nmap´s default behavior, which includes
parallelization.. -T4 does the equivalent of --max-rtt-timeout 1250 --initial-rtt-timeout 500
--max-retries 6 and sets the maximum TCP scan delay to 10 milliseconds. T5 does the equivalent of
--max-rtt-timeout 300 --min-rtt-timeout 50 --initial-rtt-timeout 250 --max-retries 2 --host-timeout
15m as well as setting the maximum TCP scan delay to 5 ms.