🔐 Port Scanner
Get the exact nmap, PowerShell, or Linux command for scanning any host, plus an instant browser check of whether its common web ports are actually answering.
- What Is a Port Scanner?
- Ports, TCP, and UDP in Plain Terms
- Port Numbering: Well-Known, Registered, Dynamic
- How Scanning Actually Works
- The TCP Handshake and Why It Matters Here
- Open vs Closed vs Filtered
- Why This Page Can't Fully Scan From Your Browser
- Firewalls, NAT, and What They Do to Results
- IPv4 vs IPv6 Scanning Notes
- Step-by-Step Guide
- Real-World Scenarios
- Common Services Reference
- Enterprise & Data Center Use
- Cloud & Home Networking
- Security Implications
- Performance Considerations
- Troubleshooting
- Common Mistakes
- Expert Tips
- Best Practices
- Comparison Tables
- Pros & Cons
- Limitations
- FAQ
- Related Tools
🔍 What Is a Port Scanner?
A port scanner checks a range of numbered communication channels on a host to work out which ones have a service actively listening. Think of an IP address as a building and each port as a numbered door — a scanner walks the row of doors and notes which ones open, which ones are bolted shut, and which ones don't respond to knocking at all. That third category turns out to matter more than most beginners expect, and we'll come back to it in detail.
The tool itself is old, but the question it answers hasn't gone stale: is this the service I expect, running where I expect it, reachable the way I expect it to be? Sysadmins run it after deploying a new firewall rule to confirm the rule actually did what it was supposed to. Security teams run it to catch a database port someone accidentally left open to the world. Developers run it locally to check whether their dev server actually started, or whether something else already grabbed the port. Different job titles, same underlying question.
What this page gives you is twofold: a command generator that hands you the exact, correct syntax for whichever tool you have installed — nmap, PowerShell's Test-NetConnection, or plain netcat — so you're not hunting through man pages, plus an honest browser-based check of the two ports that matter for almost every public-facing website. It won't pretend to run a full 65,535-port scan inside your browser tab, because that's genuinely not something a browser is built to do, and a tool that faked it would be actively misleading you.
🔌 Ports, TCP, and UDP in Plain Terms
Every device on a network has one IP address but can run dozens of services simultaneously — your laptop might be running a web browser, an email client, and a VPN connection all at once, all sharing that same address. Ports are what makes that possible: a 16-bit number, from 0 to 65535, that tells the operating system which specific application a given piece of incoming traffic belongs to. Without ports, an IP address alone couldn't tell your machine whether an incoming packet was meant for your browser or your mail client.
Most services run over one of two transport protocols. TCP (Transmission Control Protocol) is connection-oriented — it establishes a verified session before any real data moves, tracks what's been delivered, and resends anything lost along the way. Web servers, SSH, email, and databases almost universally run on TCP because that reliability matters for them. UDP (User Datagram Protocol) skips all of that ceremony — no handshake, no guaranteed delivery, no built-in retransmission — trading reliability for speed and lower overhead. DNS queries, streaming media, VoIP, and online gaming frequently lean on UDP specifically because a dropped packet here and there matters less than raw latency.
That distinction isn't academic when it comes to scanning: TCP's handshake gives a scanner a clean, unambiguous way to confirm a port is open, while UDP's lack of a handshake makes UDP scanning inherently slower and noticeably less certain, a theme that comes up repeatedly throughout this guide.
🔢 Port Numbering: Well-Known, Registered, Dynamic
The full port range is split into three bands by IANA, the body that coordinates global internet number assignments. Ports 0 through 1023 are the well-known ports, reserved for long-established, standardized services — port 80 for HTTP, port 443 for HTTPS, port 22 for SSH, and so on. Ports 1024 through 49151 are registered ports, which software vendors can request for their own applications without needing the same level of standardization as the well-known range. Ports 49152 through 65535 are dynamic (or ephemeral) ports, which operating systems hand out temporarily for outbound client connections — your browser doesn't listen on a fixed port to talk to a website; it grabs a free ephemeral one for the duration of that specific connection and releases it afterward.
⚙️ How Scanning Actually Works
The most common technique, a full TCP connect scan, is refreshingly literal: the scanning tool attempts to complete a genuine TCP handshake with each target port and simply records what happens. If the handshake completes, the port is open. If the target immediately sends back a reset packet, the port is closed. If nothing comes back at all within the timeout window, the port is marked filtered.
A Connection Attempt Is Sent
The scanner sends a SYN packet — the opening move of a TCP handshake — to the target port.
The Target Responds (Or Doesn't)
A SYN-ACK means something is listening; a RST means the port is actively closed; silence means the probe was likely dropped.
The Scanner Classifies the Result
Based purely on that response pattern, the port is logged as open, closed, or filtered.
The Process Repeats Across the Range
The same sequence runs for every port in the requested range, building the full picture one probe at a time.
A more advanced technique called a SYN scan (or "half-open" scan) stops after receiving the SYN-ACK instead of completing the handshake — it sends a RST of its own rather than an ACK, which is faster and leaves a lighter footprint in target logs, though it typically requires elevated privileges to run since crafting raw SYN packets isn't something a normal user-level connection can do.
🔬 Open vs Closed vs Filtered
These three states get confused constantly, and the mix-up wastes real troubleshooting time, so it's worth sitting with the distinction properly. Open means a service is actively bound to that port and accepted the connection attempt — this is the state you want for a service you're intentionally running. Closed means the target host is reachable and responded, but explicitly rejected the connection with a reset — nothing is listening there right now, but the host itself is alive and answering. Filtered means the probe simply vanished — no SYN-ACK, no RST, nothing — which almost always points to a firewall silently dropping the traffic rather than the destination service being absent.
| State | What Happened | Typical Cause |
|---|---|---|
| Open | Handshake completed successfully | A service is actively listening and accepting connections |
| Closed | Host replied with a reset (RST) | Host is reachable; nothing is bound to that specific port |
| Filtered | No response at all within timeout | A firewall or ACL is silently dropping the probe |
🚫 Why This Page Can't Fully Scan From Your Browser
Browsers deliberately block raw TCP socket creation — a web page cannot open an arbitrary connection to an arbitrary port on an arbitrary host and read back the low-level handshake result the way nmap can. That's not an oversight; it's a core browser security boundary that stops malicious sites from silently scanning your home router or internal company network the moment you load a page. If a browser-based tool ever claims to run a genuine full-range TCP scan entirely client-side, treat that claim with real skepticism.
What a browser genuinely can do, within its normal permitted networking behavior, is attempt a connection to standard web ports (80 and 443) and time how long that takes — which is exactly what this page's Quick Web Port Check does. It's an honest, narrow signal about two specific ports, not a substitute for a real scan, which is why we hand you the precise nmap or PowerShell command to run for anything beyond that.
🛡️ Firewalls, NAT, and What They Do to Results
Firewalls are, by a wide margin, the single biggest source of confusing scan results. A stateful firewall inspecting outbound-initiated connections will happily let your scan probes leave, but block the returning SYN-ACK unless a rule specifically permits it — from the scanner's perspective, that's indistinguishable from the port simply not existing, and it gets logged as filtered either way. NAT (Network Address Translation) adds a separate wrinkle: scanning a home or office network's public IP won't reveal internal device ports at all unless the router has an explicit port-forwarding rule pointing that specific port at a specific internal machine — everything else behind the NAT boundary is invisible from the outside by default, which is a security feature, not a scanning limitation to work around.
🌐 Real-World Scenarios
☁️ Cloud & Home Networking
Cloud environments add a layer most people don't think to check: the security group or network ACL sits in front of the operating system's own firewall, meaning a port can be wide open at the OS level and still completely unreachable from the internet, or the reverse — closed at the OS level but the cloud console shows it as "allowed" at the network layer. Scanning from outside the cloud provider's network is the only way to see the combined, real-world effect of both layers stacked together. On home networks, most exposure risk comes from router port-forwarding rules set up for gaming or remote access and then forgotten, which is exactly the kind of drift a periodic scan of your own public IP catches quickly.
🔒 Security Implications
An open port isn't inherently dangerous — it's only a risk when it's exposing a service that's outdated, misconfigured, or unintentionally public. That said, an unexpected open port is one of the highest-signal indicators in basic security hygiene, because it often means something changed without anyone noticing: a new deployment left a debug interface exposed, a firewall rule got overwritten, or a service silently started listening on a port nobody configured it for. Treat every unexpected open port as worth investigating immediately rather than dismissing it, even when it turns out to be benign — the cost of checking is minutes, and the cost of ignoring a real one can be far higher.
⏱️ Performance Considerations
Scan speed is mostly a function of how many ports you're checking and how the target (or anything in front of it) handles unanswered probes. A filtered port that silently drops your probe forces the scanner to wait out its full timeout before moving on, which is why scanning a heavily firewalled host against a large port range can take dramatically longer than scanning an unfiltered one with the exact same port count. Reducing per-port timeout speeds things up but increases the risk of false negatives against genuinely slow or distant hosts, so it's worth tuning cautiously rather than aggressively by default.
⚠️ Limitations
Even a full, authoritative nmap scan is a snapshot — a port that's closed right now could open five minutes later if a service restarts, and vice versa. Scanning also cannot see through end-to-end encryption to identify what's actually running behind an open port beyond a basic service-banner guess, and it provides zero visibility into application-layer vulnerabilities within a service that's legitimately, correctly open. A clean scan result is a reasonable starting point, never a complete security assessment on its own.
ToolsNovaHub tools are built and independently reviewed with a focus on technical accuracy. Spotted an error? Let us know.
📋 Related Tools & Guides Comparison
| Resource | Type | Link |
|---|---|---|
| Security Headers Checker | Tool | Open Tool → |
| Website Security Scanner | Tool | Open Tool → |
| SSL Certificate Checker | Tool | Open Tool → |
| HTTP Headers Checker | Tool | Open Tool → |
| Ping Test | Tool | Open Tool → |
| Traceroute | Tool | Open Tool → |
| IP Reputation Checker | Tool | Open Tool → |