basic-nmap-commands

Top 28 Basic Nmap Commands for Beginners

Table of Contents

If you’re just getting started with ethical hacking or network troubleshooting, Nmap should be one of the first tools you master.

Nmap, or Network Mapper, is an open-source, very flexible application used by Linux systems and network administrators. It is frequently used for network exploration, security scanning, auditing, and discovering open ports on remote computers.0

Nmap can detect active hosts, operating systems, packet filters, and open ports on distant computers.

In this guide, we’ll walk through 30 practical Nmap commands that you can start using right away — with clear explanations so you understand what each one does.


Why 28 Basic Nmap Commands Matter?

  1. Covers Core Use Cases
    These commands help you perform essential tasks like port scanning, service detection, OS fingerprinting, and vulnerability assessment — all with precision.
  2. Balance of Power and Simplicity
    The 28 commands give you powerful scanning capabilities without overwhelming complexity, making them perfect for beginners and pros alike.
  3. Real-World Relevance
    They reflect what security professionals and sysadmins actually use in daily recon, pen testing, and auditing tasks.
  4. Faster, Smarter Scanning
    Knowing these commands helps you optimize scans for speed, stealth, and accuracy, saving valuable time during engagements.
  5. Builds Strong Foundation
    Mastering these basics prepares you for more advanced Nmap usage (like custom NSE scripts or large network automation).
  6. Flexible for Any Situation
    Whether you’re scanning a single host, a subnet, or avoiding detection, these commands adapt to different scenarios.

Scan Specific Domain or an IP Address

nmap <target>

This command scans the device at IP address 192.168.1.1 and shows which ports are open. It’s the simplest way to check if a host is up and running and to determine which services might be available.

You can also use any domain name instead of an IP address.

Use this when troubleshooting a device on your local network or when you want to safely start scanning a known host.

28-nmap-commands-domain

As you can see, all ports are listed after the scan, including those that are closed.


Scan Entire Subnet

nmap 127.0.0.0/24

This command scans all hosts available in the subnet associated with the specified IP Address. It will display all hosts that are up in the network range.

Use this when you are in a network but don’t know the IP address of the victim.

28-nmap-subnet

Scan specific port

nmap -p 80 <target>

This command will scan only the specified port on the target. It’s a quick scan because it will exclude all other open ports.

28-nmap-specific-port

Use this command to check if the server hosts a website; you will quickly get the result. Or if you are targeting a specified port on the target.


Scan Port Range

nmap -p 1-1000 <target>
28-nmap-port-range

This command will scan the range of ports specified by you.


Scan Fast All Standard Ports

nmap -F <target>
28-nmap-fast-scan

This command will scan fast and only a few default ports.


Scan all ports (all 65535 ports)

nmap -p- <target>
28-basic-nmap-commands-all-port-scan

This command will scan all ports available on a server, i.e., 65535 ports. This process takes longer, as it scans all ports individually.


Service & Version Detection

nmap -sV <target>
28-nmap-sV

This command scans and detects the version of services running on different ports. This is useful for finding any outdated services running on the server.


Aggressive Scan

nmap -A <target>
28-nmap-aggressive-scan

This command will detect the OS, version name, run the NSE default script, and perform a traceroute of the server. This is a very noisy and aggressive scan.


Detail About Versions

nmap --version-all <target>

This command enables detailed version information and provides additional details.

28-nmap-version-all

OS Detection

sudo nmap -O <target>
28-nmap-os-detection

This command detects the operating system (OS) of the target. To run this command, you need root (sudo) privileges.


Aggressive OS Detection

sudo nmap -O --osscan-guess <target>
28-nmap-aggressive-os-detection

This command is more aggressive in finding the operating system (OS) of the target.


TCP SYN (Stealth) scan

sudo nmap -sS <target>

The command will send a SYN packet (like starting a 3-way handshake) but doesn’t complete the connection. This is very stealthy, as the connection is not complete. This needs root privilege (sudo) as it sends raw packets.


UDP scan

sudo nmap -sU <target>

This command is used to find UDP ports, such as port 53 and port 161, among others. It is slow, less reliable, and misses filtered ports.


TCP Null scan

sudo nmap -sN <target>

This command sends TCP packets with no flags set. The purpose is to bypass firewalls or obscure operating system fingerprinting.


Xmas Scan

nmap -sX <target>

This command sends a TCP packet with different flags set (FIN, URG, and PSH). It is very similar to a Null scan. It is limited in terms of stealthy.


FIN scan

nmap -sF <target>

This command sends a TCP packet with only the FIN flag set. It is stealthy to a certain extent, as it doesn’t complete the handshake.


Normal Output

nmap -oN output.txt <target>
28-nmap-oN
  • Format: Human-readable (what you see in the terminal).
  • Use case: Good for reviewing or sharing with people.

XML Output

nmap -oX output.xml <target>
  • Format: XML (structured markup).
  • Use case: Ideal for parsing programmatically with tools, scripts, or other security platforms.
  • Used by Tools like ndiff, xsltproc, and custom parsers.
  • Note: You can convert XML to HTML using Nmap’s XSL stylesheet.
28-nmap-oX

XML Output

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE nmaprun>
<?xml-stylesheet href="file:///usr/bin/../share/nmap/nmap.xsl" type="text/xsl"?>
<!-- Nmap 7.94SVN scan initiated Thu Jun 19 13:53:58 2025 as: nmap -oX output.xml cyberthreatinsider.com -->
<nmaprun scanner="nmap" args="nmap -oX output.xml cyberthreatinsider.com" start="1750337638" startstr="Thu Jun 19 13:53:58 2025" version="7.94SVN" xmloutputversion="1.05">
	<scaninfo type="connect" protocol="tcp" numservices="1000" services="1,3-4,6-7,9,13,17,19-26,30,32-33,37,42-43,49,53,70,79-85,88-90,99-100,106,109-111,113,119,125,135,139,143-144,146,161,163,179,199,211-212,222,254-256,259,264,280,301,306,311,340,366,389,406-407,416-417,425,427,443-445,458,464-465,481,497,500,512-515,524,541,543-545,548,554-555,563,587,593,616-617,625,631,636,646,648,666-668,683,687,691,700,705,711,714,720,722,726,749,765,777,783,787,800-801,808,843,873,880,888,898,900-903,911-912,981,987,990,992-993,995,999-1002,1007,1009-1011,1021-1100,1102,1104-1108,1110-1114,1117,1119,1121-1124,1126,1130-1132,1137-1138,1141,1145,1147-1149,1151-1152,1154,1163-1166,1169,1174-1175,1183,1185-1187,1192,1198-1199,1201,1213,1216-1218,1233-1234,1236,1244,1247-1248,1259,1271-1272,1277,1287,1296,1300-1301,1309-1311,1322,1328,1334,1352,1417,1433-1434,1443,1455,1461,1494,1500-1501,1503,1521,1524,1533,1556,1580,1583,1594,1600,1641,1658,1666,1687-1688,1700,1717-1721,1723,1755,1761,1782-1783,1801,1805,1812,1839-1840,1862-1864,1875,1900,1914,1935,1947,1971-1972,1974,1984,1998-2010,2013,2020-2022,2030,2033-2035,2038,2040-2043,2045-2049,2065,2068,2099-2100,2103,2105-2107,2111,2119,2121,2126,2135,2144,2160-2161,2170,2179,2190-2191,2196,2200,2222,2251,2260,2288,2301,2323,2366,2381-2383,2393-2394,2399,2401,2492,2500,2522,2525,2557,2601-2602,2604-2605,2607-2608,2638,2701-2702,2710,2717-2718,2725,2800,2809,2811,2869,2875,2909-2910,2920,2967-2968,2998,3000-3001,3003,3005-3007,3011,3013,3017,3030-3031,3052,3071,3077,3128,3168,3211,3221,3260-3261,3268-3269,3283,3300-3301,3306,3322-3325,3333,3351,3367,3369-3372,3389-3390,3404,3476,3493,3517,3527,3546,3551,3580,3659,3689-3690,3703,3737,3766,3784,3800-3801,3809,3814,3826-3828,3851,3869,3871,3878,3880,3889,3905,3914,3918,3920,3945,3971,3986,3995,3998,4000-4006,4045,4111,4125-4126,4129,4224,4242,4279,4321,4343,4443-4446,4449,4550,4567,4662,4848,4899-4900,4998,5000-5004,5009,5030,5033,5050-5051,5054,5060-5061,5080,5087,5100-5102,5120,5190,5200,5214,5221-5222,5225-5226,5269,5280,5298,5357,5405,5414,5431-5432,5440,5500,5510,5544,5550,5555,5560,5566,5631,5633,5666,5678-5679,5718,5730,5800-5802,5810-5811,5815,5822,5825,5850,5859,5862,5877,5900-5904,5906-5907,5910-5911,5915,5922,5925,5950,5952,5959-5963,5987-5989,5998-6007,6009,6025,6059,6100-6101,6106,6112,6123,6129,6156,6346,6389,6502,6510,6543,6547,6565-6567,6580,6646,6666-6669,6689,6692,6699,6779,6788-6789,6792,6839,6881,6901,6969,7000-7002,7004,7007,7019,7025,7070,7100,7103,7106,7200-7201,7402,7435,7443,7496,7512,7625,7627,7676,7741,7777-7778,7800,7911,7920-7921,7937-7938,7999-8002,8007-8011,8021-8022,8031,8042,8045,8080-8090,8093,8099-8100,8180-8181,8192-8194,8200,8222,8254,8290-8292,8300,8333,8383,8400,8402,8443,8500,8600,8649,8651-8652,8654,8701,8800,8873,8888,8899,8994,9000-9003,9009-9011,9040,9050,9071,9080-9081,9090-9091,9099-9103,9110-9111,9200,9207,9220,9290,9415,9418,9485,9500,9502-9503,9535,9575,9593-9595,9618,9666,9876-9878,9898,9900,9917,9929,9943-9944,9968,9998-10004,10009-10010,10012,10024-10025,10082,10180,10215,10243,10566,10616-10617,10621,10626,10628-10629,10778,11110-11111,11967,12000,12174,12265,12345,13456,13722,13782-13783,14000,14238,14441-14442,15000,15002-15004,15660,15742,16000-16001,16012,16016,16018,16080,16113,16992-16993,17877,17988,18040,18101,18988,19101,19283,19315,19350,19780,19801,19842,20000,20005,20031,20221-20222,20828,21571,22939,23502,24444,24800,25734-25735,26214,27000,27352-27353,27355-27356,27715,28201,30000,30718,30951,31038,31337,32768-32785,33354,33899,34571-34573,35500,38292,40193,40911,41511,42510,44176,44442-44443,44501,45100,48080,49152-49161,49163,49165,49167,49175-49176,49400,49999-50003,50006,50300,50389,50500,50636,50800,51103,51493,52673,52822,52848,52869,54045,54328,55055-55056,55555,55600,56737-56738,57294,57797,58080,60020,60443,61532,61900,62078,63331,64623,64680,65000,65129,65389"/>
	<verbose level="0"/>
	<debugging level="0"/>
	<hosthint>
		<status state="up" reason="unknown-response" reason_ttl="0"/>
		<address addr="82.180.175.28" addrtype="ipv4"/>
		<hostnames>
			<hostname name="cyberthreatinsider.com" type="user"/>
		</hostnames>
	</hosthint>
	<host starttime="1750337638" endtime="1750337644">
		<status state="up" reason="syn-ack" reason_ttl="0"/>
		<address addr="82.180.175.28" addrtype="ipv4"/>
		<hostnames>
			<hostname name="cyberthreatinsider.com" type="user"/>
		</hostnames>
		<ports>
			<extraports state="filtered" count="984">
				<extrareasons reason="host-unreach" count="532" proto="tcp" ports="1,3-4,7,9,13,17,19,24,30,32-33,70,79,85,88,100,109,119,146,163,212,222,254,259,264,311,366,406,425,427,444,465,481,497,500,514,541,544-545,548,563,617,631,636,648,667-668,683,687,691,700,705,711,714,783,787,801,808,843,873,888,898,900-903,912,987,990,992,1001-1002,1009-1011,1021-1024,1026,1028-1030,1032,1035-1036,1039,1041,1043,1046-1048,1054-1056,1059-1061,1063-1064,1066-1067,1069,1072-1077,1079-1085,1089-1093,1096-1097,1099-1100,1104-1106,1110-1111,1113,1117,1121,1126,1132,1137-1138,1149,1151-1152,1154,1163-1166,1169,1174-1175,1183,1187,1192,1198,1213,1216-1218,1233,1244,1247-1248,1259,1272,1277,1287,1296,1300,1309-1311,1322,1328,1433-1434,1455,1500-1501,1583,1600,1658,1666,1717,1719,1755,1805,1812,1839,1863-1864,1900,1914,1935,1947,1971-1972,1999,2001-2002,2004,2006-2007,2010,2013,2030,2033-2035,2038,2041,2045,2065,2103,2105,2111,2119,2121,2126,2144,2160-2161,2190-2191,2196,2260,2288,2323,2366,2381-2383,2393-2394,2492,2522,2557,2602,2604,2608,2638,2701-2702,2710,2717,2811,2909,2967-2968,3001,3003,3005,3011,3017,3030,3052,3168,3269,3283,3300,3322,3325,3351,3367,3369,3372,3404,3517,3527,3551,3580,3659,3690,3737,3766,3800-3801,3809,3826-3827,3851,3880,3971,3995,3998,4000,4005-4006,4111,4125-4126,4129,4242,4279,4321,4343,4449,4662,4848,4900,5000,5003,5033,5060,5080,5087,5102,5200,5221-5222,5225-5226,5269,5357,5405,5431,5440,5510,5544,5560,5633,5679,5718,5730,5800,5850,5859,5862,5902-5904,5907,5915,5925,5950,5959,5961-5963,5987-5988,5999-6002,6005-6007,6009,6025,6106,6123,6129,6389,6547,6567,6646,6667-6669,6692,6779,6788-6789,6839,6969,7000,7002,7004,7019,7025,7070,7100,7103,7402,7435,7496,7512,7625,7627,7676,7741,7800,7911,7920,7937-7938,8002,8010-8011,8031,8045,8082,8086-8087,8090,8093,8099-8100,8193,8200,8254,8290,8300,8333,8400,8500,8654,8899,8994,9000-9001,9009-9010,9040,9050,9080-9081,9090-9091,9099,9102-9103,9207,9220,9290,9415,9418,9503,9575,9593-9594,9666,9917,9929,9968,9998-10002,10025,10082,10180,10566,10621,10626,10629,10778,11111,12265,12345,13456,13783,14238,14441,15000,15004,15660,16000-16001,16012,16016,16018,16113,16992,17877,18040,18988,19101,19315,19780,20000,20031,20221-20222,20828,21571,22939,24444,25734,27000,27352-27353,27355,28201,30000,30718,30951,31038,32769,32772,32775,32780,32782-32783,33899,34572-34573,38292,41511,44442-44443,45100,48080,49153-49155,49158,49163,49165,49167,49400,49999-50002,50006,50389,50636,52673,52822,54045,55055,55600,56737,57797,60020,60443,62078,63331,64680,65000,65389"/>
				<extrareasons reason="no-response" count="452" proto="tcp" ports="6,22-23,25-26,37,42-43,49,53,81-84,89-90,99,106,110-111,113,125,135,139,143-144,161,179,199,211,255-256,280,301,306,340,389,407,416-417,445,458,464,512-513,515,524,543,554-555,587,593,616,625,646,666,720,722,726,749,765,777,800,880,911,981,993,995,999-1000,1007,1025,1027,1031,1033-1034,1037-1038,1040,1042,1044-1045,1049-1053,1057-1058,1062,1065,1068,1070-1071,1078,1086-1088,1094-1095,1098,1102,1107-1108,1112,1114,1119,1122-1124,1130-1131,1141,1145,1147-1148,1185-1186,1199,1201,1234,1236,1271,1301,1334,1352,1417,1443,1461,1494,1503,1521,1524,1533,1556,1580,1594,1641,1687-1688,1700,1718,1720-1721,1723,1761,1782-1783,1801,1840,1862,1875,1974,1984,1998,2000,2003,2005,2008-2009,2020-2022,2040,2042-2043,2046-2049,2068,2099,2401,2500,2525,2601,2605,2607,2718,2725,2800,2809,2869,2875,2910,2920,2998,3000,3006-3007,3013,3031,3071,3077,3128,3211,3221,3260-3261,3268,3301,3323-3324,3333,3370-3371,3389-3390,3476,3493,3546,3689,3703,3784,3814,3828,3869,3871,3878,3889,3905,3914,3918,3920,3945,3986,4001-4004,4045,4224,4443-4446,4550,4567,4899,4998,5001-5002,5004,5009,5030,5050-5051,5054,5061,5100-5101,5120,5190,5214,5280,5298,5414,5432,5500,5550,5555,5566,5631,5666,5678,5801-5802,5810-5811,5815,5822,5825,5877,5900-5901,5906,5910-5911,5922,5952,5960,5989,5998,6003-6004,6059,6100-6101,6112,6156,6346,6502,6510,6543,6565-6566,6580,6666,6689,6699,6792,6881,6901,7001,7007,7106,7200-7201,7443,7777-7778,7921,7999-8001,8007-8009,8021-8022,8042,8080-8081,8083-8085,8088-8089,8180-8181,8192,8194,8222,8291-8292,8383,8402,8443,8600,8649,8651-8652,8701,8800,8873,8888,9002-9003,9011,9071,9100-9101,9110-9111,9200,9485,9500,9502,9535,9595,9618,9876-9878,9898,9900,9943-9944,10003-10004,10009-10010,10012,10024,10215,10243,10616-10617,10628,11110,11967,12000,12174,13722,13782,14000,14442,15002-15003,15742,16080,16993,17988,18101,19283,19350,19801,19842,20005,23502,24800,25735,26214,27356,27715,31337,32768,32770-32771,32773-32774,32776-32779,32781,32784-32785,33354,34571,35500,40193,40911,42510,44176,44501,49152,49156-49157,49159-49161,49175-49176,50003,50300,50500,50800,51103,51493,52848,52869,54328,55056,55555,56738,57294,58080,61532,61900,64623,65129"/>
			</extraports>
			<port protocol="tcp" portid="20">
				<state state="closed" reason="conn-refused" reason_ttl="0"/>
				<service name="ftp-data" method="table" conf="3"/>
			</port>
			<port protocol="tcp" portid="21">
				<state state="open" reason="syn-ack" reason_ttl="0"/>
				<service name="ftp" method="table" conf="3"/>
			</port>
			<port protocol="tcp" portid="80">
				<state state="open" reason="syn-ack" reason_ttl="0"/>
				<service name="http" method="table" conf="3"/>
			</port>
			<port protocol="tcp" portid="443">
				<state state="open" reason="syn-ack" reason_ttl="0"/>
				<service name="https" method="table" conf="3"/>
			</port>
			<port protocol="tcp" portid="2100">
				<state state="closed" reason="conn-refused" reason_ttl="0"/>
				<service name="amiganetfs" method="table" conf="3"/>
			</port>
			<port protocol="tcp" portid="2106">
				<state state="closed" reason="conn-refused" reason_ttl="0"/>
				<service name="ekshell" method="table" conf="3"/>
			</port>
			<port protocol="tcp" portid="2107">
				<state state="closed" reason="conn-refused" reason_ttl="0"/>
				<service name="msmq-mgmt" method="table" conf="3"/>
			</port>
			<port protocol="tcp" portid="2135">
				<state state="closed" reason="conn-refused" reason_ttl="0"/>
				<service name="gris" method="table" conf="3"/>
			</port>
			<port protocol="tcp" portid="2170">
				<state state="closed" reason="conn-refused" reason_ttl="0"/>
				<service name="eyetv" method="table" conf="3"/>
			</port>
			<port protocol="tcp" portid="2179">
				<state state="closed" reason="conn-refused" reason_ttl="0"/>
				<service name="vmrdp" method="table" conf="3"/>
			</port>
			<port protocol="tcp" portid="2200">
				<state state="closed" reason="conn-refused" reason_ttl="0"/>
				<service name="ici" method="table" conf="3"/>
			</port>
			<port protocol="tcp" portid="2222">
				<state state="closed" reason="conn-refused" reason_ttl="0"/>
				<service name="EtherNetIP-1" method="table" conf="3"/>
			</port>
			<port protocol="tcp" portid="2251">
				<state state="closed" reason="conn-refused" reason_ttl="0"/>
				<service name="dif-port" method="table" conf="3"/>
			</port>
			<port protocol="tcp" portid="2301">
				<state state="closed" reason="conn-refused" reason_ttl="0"/>
				<service name="compaqdiag" method="table" conf="3"/>
			</port>
			<port protocol="tcp" portid="2399">
				<state state="closed" reason="conn-refused" reason_ttl="0"/>
				<service name="fmpro-fdal" method="table" conf="3"/>
			</port>
			<port protocol="tcp" portid="3306">
				<state state="open" reason="syn-ack" reason_ttl="0"/>
				<service name="mysql" method="table" conf="3"/>
			</port>
		</ports>
		<times srtt="10800" rttvar="427" to="100000"/>
	</host>
	<runstats>
		<finished time="1750337644" timestr="Thu Jun 19 13:54:04 2025" summary="Nmap done at Thu Jun 19 13:54:04 2025; 1 IP address (1 host up) scanned in 6.56 seconds" elapsed="6.56" exit="success"/>
		<hosts up="1" down="0" total="1"/>
	</runstats>
</nmaprun>

Grepable Output

nmap -oG output.gnmap <target>
28-nmap-oG
  • Format: Line-by-line, grep-friendly format.
  • Use case: Ideal for quickly extracting open ports or IP addresses using command-line tools like grep, awk, and cut.

Output All Format

nmap -oN output.txt -oX output.xml -oG output.gnmap <target>

This will create:

  • A pretty report for reading (output.txt)
  • A machine-readable format (output.xml)
  • A grep-friendly summary (output.gnmap)

NSE Vulnerability Scan

nmap --script=vuln <target>

This command executes an NSE (Nmap Scripting Engine) script to check for known vulnerabilities.

28-nmap-script-vuln

For Example, SMB vulnerabilities (like MS17-010 / EternalBlue), HTTP server misconfiguration, and SSL/TLS weaknesses


NSE Default Scan

nmap --script=default <target>

It is a general-purpose information gathering, often part of -A. This command runs the default NSE script set, which includes:

  • Service detection (like HTTP headers and SSH banners)
  • DNS info
  • Basic vulnerability checks
28-nmap-script-default

NSE Website Title Grabbing

nmap --script=http-title <target>

This command catches the tag from HTTP responses (like a web page’s browser title).

28-nmap-script-http-title

It is useful when scanning multiple hosts to quickly identify websites or services without manually visiting them.


Scan Speed/Timing

nmap -T4 <target>

This command sets the scan of speed and aggressiveness. The speed is directly linked to aggressiveness. The faster it is, the noisier it will be.

28-nmap-timing

Range: -T0 (slowest) to -T5 (fastest).

  • -T3:Defaultt
  • -T4: faster, used in LANs or fast networks
  • -T5: very aggressive, may trigger IDS

Use case: -T4 is a safe balance between speed and stealth on responsive networks.


No Ping Scan

nmap -Pn <target>

This command will skips the host discovery or ping scan. It means all targets are alive (assuming), no need to check.

28-nmap-no-ping

Use case:

  • Host is behind a firewall and won’t respond to ping
  • You’re scanning internal networks or want to be stealthy

No DNS Resolution

nmap -n <target>

This command will prevent the tool from doing reverse DNS lookups.

28-nmap-no-dns

Use case: Speeds up scans when hostnames are unnecessary (e.g., scanning a large subnet).


Verbose Output

nmap -v <target>

This command, will show you the output of the scan in real-time. It is known as verbosity.

Use multiple -v flags (-vv) for even more verbosity.

28-nmap-verbose

Use case: Helpful for seeing real-time progress, especially on long scans.


IPv6 Scanning

nmap -6 <target>

This command enables the scanning of IPv6 addresses.

28-nmap-ipv6

Use case: When scanning targets that only have or support IPv6.

There’s a catch, you need to give an actual IPv6 address; it won’t work with IPv4-style input.


Conclusion

These 30 commands give you a solid foundation, but Nmap is just the tip of the iceberg. As you grow more comfortable, dive into the powerful Nmap Scripting Engine (NSE) or automate scans with your scripts. Just remember: always scan with permission!

Be aware not to use aggressive scanning on any target, as it is easily detected by firewalls or Intrusion Detection Systems/Intrusion Prevention Systems (IDS/IPS).


Resources

Nmap Reference Guide

Nmap

Share this post

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.