Network Port Lookup
Developer Tools · Added
A reference for the port numbers that turn up in firewall rules, compose files, security groups and connection errors. Search by number or by service name, and each entry says which transport it uses, whether the protocol encrypts on its own, and — where it matters — why putting it on a public address is a known bad idea.
81 common ports
File transfer
| Port | Protocol | Service | What it is |
|---|---|---|---|
| 20 | TCP | FTP data | The data channel of active-mode FTP. Opened by the server back to the client, which is why active FTP and NAT fight. |
| 21 | TCP | FTP control | FTP commands and responses. The data itself moves on a second connection, which is why FTP and firewalls fight.Credentials and data both travel in clear text. Use SFTP over port 22, or FTPS. |
| 69 | UDP | TFTP | Trivial FTP, used for network boot and switch firmware. No authentication at all by design.Anonymous read and write with no authentication. Keep it on a provisioning VLAN. |
| 445 | TCP | SMB | Windows file and printer sharing over TCP.The vector for several worms, WannaCry among them. Should never cross an internet boundary. |
| 873 | TCP | rsync | The rsync daemon protocol, separate from rsync run over SSH. |
| 989 | TCP | FTPS dataTLS | The FTPS data channel, wrapped in TLS from the first byte rather than upgraded by a command. |
| 990 | TCP | FTPS controlTLS | Implicit TLS FTP control channel. |
| 2049 | TCP + UDP | NFS | Network File System. Modern NFSv4 needs only this port; v3 also needs the portmapper on 111. |
Remote access
| Port | Protocol | Service | What it is |
|---|---|---|---|
| 22 | TCP | SSH / SFTP / SCPTLS | Encrypted shell, and the file transfer protocols tunnelled inside it.Safe to expose with key-only authentication. With passwords enabled it will be brute-forced continuously. |
| 23 | TCP | Telnet | Unencrypted remote shell. Superseded by SSH in the 1990s.Sends credentials in clear text. There is no configuration that makes this safe on an untrusted network. |
| 3389 | TCP + UDP | RDPTLS | Windows Remote Desktop. Also answers on UDP for the faster transport RDP prefers when it is available.A standing target for credential stuffing and for RDP-specific exploits. Put it behind a VPN or a gateway rather than on the open internet. |
| 5900 | TCP | VNC | Remote framebuffer. 5901 and upward are additional displays.The base protocol has no transport encryption and a weak password scheme. Tunnel it over SSH. |
| 5985 | TCP | WinRM (HTTP) | Windows Remote Management over HTTP. What PowerShell remoting uses. |
| 5986 | TCP | WinRM (HTTPS)TLS | Windows Remote Management over TLS. |
| Port | Protocol | Service | What it is |
|---|---|---|---|
| 25 | TCP | SMTP | Server-to-server mail transfer. Not the port a mail client should be submitting on.Most consumer ISPs and cloud providers block outbound 25 to limit spam. |
| 110 | TCP | POP3 | Downloads mail and normally deletes the server copy. |
| 143 | TCP | IMAP | Reads mail while leaving it on the server. |
| 465 | TCP | SMTPS (submission)TLS | Mail submission wrapped in TLS from the first byte. Deprecated, then un-deprecated by RFC 8314. |
| 587 | TCP | SMTP submissionTLS | The port a mail client should use to send. Starts plain and upgrades with STARTTLS. |
| 993 | TCP | IMAPSTLS | IMAP wrapped in TLS from the first byte, and what every modern mail client should be configured to use. |
| 995 | TCP | POP3STLS | POP3 wrapped in TLS from the first byte. The plain port can also upgrade with STARTTLS instead. |
Network infrastructure
| Port | Protocol | Service | What it is |
|---|---|---|---|
| 53 | TCP + UDP | DNS | Name resolution. UDP for ordinary queries, TCP for zone transfers and any response too large for a datagram.An open recursive resolver will be used for amplification attacks. Serve recursion only to your own networks. |
| 67 | UDP | DHCP server | Address assignment, server side. |
| 68 | UDP | DHCP client | Address assignment, client side. |
| 111 | TCP + UDP | Portmapper / rpcbind | Maps RPC programs to ports. Needed by NFSv3 and by older NIS.Enumerating it lists every RPC service on the host, and it has been used for amplification. |
| 123 | UDP | NTP | Time synchronisation. Clock drift breaks TLS, Kerberos and time-based one-time passwords.Older versions answered monlist, which made them powerful amplifiers. Keep the daemon current. |
| 161 | UDP | SNMP | Device monitoring and polling — interface counters, temperatures, uptime — pulled by a monitoring system.SNMP v1 and v2c authenticate with a community string in clear text, and 'public' is still the default on far too much equipment. |
| 162 | UDP | SNMP trap | Unsolicited alerts from devices to a monitoring station. |
| 179 | TCP | BGP | The routing protocol between autonomous systems. |
| 500 | UDP | IKE (IPsec)TLS | IPsec key exchange. 4500 carries NAT traversal. |
| 514 | UDP | Syslog | Log shipping. Fire and forget, with no delivery guarantee. |
| 853 | TCP + UDP | DNS over TLSTLS | Encrypted DNS. The UDP form is DNS over QUIC. |
| 1194 | TCP + UDP | OpenVPNTLS | OpenVPN's default, UDP by preference. |
| 4500 | UDP | IPsec NAT-TTLS | IPsec encapsulated in UDP so it can cross NAT. |
| 51820 | UDP | WireGuardTLS | WireGuard's default. Silent to unauthenticated packets, so it does not answer scans. |
Web
| Port | Protocol | Service | What it is |
|---|---|---|---|
| 80 | TCP | HTTP | Unencrypted web traffic. Usually kept open only to redirect to 443 and to answer ACME challenges. |
| 443 | TCP + UDP | HTTPS / QUICTLS | TLS-encrypted web traffic over TCP, and HTTP/3 over UDP using QUIC. The UDP half is why HTTP/3 fails on firewalls that only opened TCP. |
| 8080 | TCP | HTTP alternate | The conventional second web port: proxies, Tomcat, and anything run without root. |
| 8443 | TCP | HTTPS alternateTLS | TLS on a non-privileged port. Common for admin consoles and appliances. |
Directory and auth
| Port | Protocol | Service | What it is |
|---|---|---|---|
| 88 | TCP + UDP | KerberosTLS | Ticket granting. Central to Active Directory authentication. |
| 389 | TCP + UDP | LDAP | Directory queries in clear text, optionally upgraded with STARTTLS. |
| 464 | TCP + UDP | Kerberos password changeTLS | kpasswd, used to change a principal's password. |
| 636 | TCP | LDAPSTLS | LDAP wrapped in TLS from the first byte. Active Directory also offers STARTTLS on the plain port. |
| 1812 | UDP | RADIUS authentication | Network access authentication, used by Wi-Fi and VPN concentrators. |
| 1813 | UDP | RADIUS accounting | RADIUS accounting: start, stop and interim records for a session, sent separately from the authentication. |
| 3268 | TCP | Global Catalog | Active Directory forest-wide LDAP. 3269 is its TLS counterpart. |
Media and voice
| Port | Protocol | Service | What it is |
|---|---|---|---|
| 554 | TCP + UDP | RTSP | Stream control for IP cameras and media servers.A large share of exposed RTSP cameras still run on default credentials, and public indexes of them exist. |
| 1935 | TCP | RTMP | Real-Time Messaging Protocol, still the standard way to push a live stream to an ingest server. |
| 3478 | TCP + UDP | STUN / TURN | NAT traversal for WebRTC. STUN discovers the public address; TURN relays when a direct path is impossible. |
| 5060 | TCP + UDP | SIP | Call setup and teardown for voice over IP. The audio itself travels separately over RTP on high UDP ports.Exposed SIP endpoints are scanned constantly for toll fraud, and a compromised one runs up international call charges fast. |
| 5061 | TCP | SIP over TLSTLS | SIP signalling over TLS. It protects the call setup only; encrypting the audio is a separate matter, SRTP. |
Databases
| Port | Protocol | Service | What it is |
|---|---|---|---|
| 1433 | TCP | Microsoft SQL Server | The default instance. Named instances are assigned dynamically and discovered over UDP 1434. |
| 1521 | TCP | Oracle TNS | Oracle's TNS listener, which brokers the connection and can hand the client off to another port entirely. |
| 3306 | TCP | MySQL / MariaDB | The classic relational default, and the port most often found accidentally open on a public address.Bind it to localhost or a private network. An exposed database port is scanned within minutes. |
| 5432 | TCP | PostgreSQL | PostgreSQL's wire protocol. TLS is negotiated inside it rather than on a separate port.Same rule as MySQL: private networks only, and require TLS if it has to cross one. |
| 5984 | TCP | CouchDB | CouchDB's HTTP API, which is also its admin interface — the database speaks REST rather than a binary protocol. |
| 6379 | TCP | Redis | The Redis serialization protocol. Fast, simple, and with no authentication at all in its default configuration.Historically unauthenticated by default, and its CONFIG command can write files. Never expose it. |
| 7000 | TCP | Cassandra internode | Cluster gossip. 9042 carries client queries. |
| 9042 | TCP | Cassandra CQL | The CQL client protocol, which is what drivers connect to. Cluster gossip runs separately on 7000. |
| 9200 | TCP | Elasticsearch HTTP | The REST API. 9300 is the internal transport between nodes.An open Elasticsearch endpoint hands over every index it holds. Security is off by default in older versions. |
| 11211 | TCP + UDP | Memcached | A cache with no authentication in its base protocol.The UDP side has been used for very large reflection attacks. Disable UDP and bind to localhost. |
| 27017 | TCP | MongoDB | MongoDB's wire protocol. 27018 and 27019 are shard and config servers.Older releases shipped with no authentication and bound to every interface, which produced a long run of mass data extortion. Check both settings. |
Messaging and queues
| Port | Protocol | Service | What it is |
|---|---|---|---|
| 1883 | TCP | MQTT | Lightweight publish and subscribe, widely used by IoT devices. |
| 5222 | TCP | XMPP client | Client to server. 5269 is server to server. |
| 5672 | TCP | AMQP | RabbitMQ and other AMQP 0-9-1 brokers. 5671 is the TLS port. |
| 6667 | TCP | IRC | Internet Relay Chat. 6697 is the TLS port. |
| 8883 | TCP | MQTT over TLSTLS | The encrypted counterpart to 1883. |
| 9092 | TCP | Kafka | Kafka broker traffic. Clients are redirected to whichever broker leads a partition, so every broker must be reachable. |
| 15672 | TCP | RabbitMQ management | The web management UI and its HTTP API. |
Development
| Port | Protocol | Service | What it is |
|---|---|---|---|
| 2375 | TCP | Docker API (plain) | The Docker daemon's remote API without TLS.Access to this is root on the host: anyone who can reach it can run a privileged container that mounts the filesystem. Never expose it. |
| 2376 | TCP | Docker API (TLS)TLS | The Docker daemon's remote API with client certificate authentication. |
| 2379 | TCP | etcd client | etcd's client API. 2380 is peer traffic.etcd holds every Kubernetes secret. Read access to it is read access to the cluster. |
| 3000 | TCP | Node / dev server | Not an assignment — a convention. Next.js, Express, Rails and Grafana all default here. |
| 4000 | TCP | Development server | Phoenix, Jekyll and several static-site tools default here. |
| 5000 | TCP | Flask / .NET / AirPlay | A crowded number: Flask's default, ASP.NET Core's default, and on macOS the AirPlay receiver, which is why a Flask app on a Mac often will not bind. |
| 5173 | TCP | Vite dev server | Vite's default. Serves the unbuilt application with hot reloading. |
| 6443 | TCP | Kubernetes APITLS | The cluster control plane's API server. |
| 8000 | TCP | HTTP development | Django, Python's http.server and PHP's built-in server all default here. |
| 9090 | TCP | Prometheus | The Prometheus server's web UI and query API. |
| 9100 | TCP | Prometheus node exporter | Host metrics in Prometheus text format, served for a scraper to poll. No authentication in the default build.Publishes a detailed inventory of the host — kernel version, mounted filesystems, network interfaces — to anyone who asks. |
| 25565 | TCP | Minecraft | The Java edition server default. Bedrock uses UDP 19132. |
The three ranges
- System (well-known)
- 0–1023
- User (registered)
- 1024–49151
- Dynamic (ephemeral)
- 49152–65535
- System (well-known). Assigned by IANA and, on Unix-like systems, bindable only by root or by a process holding CAP_NET_BIND_SERVICE. That restriction is why web servers start as root and drop privileges, and why development servers run on 3000 or 8080 instead.
- User (registered). Registered with IANA on request but bindable by any user. Most application and database defaults live here.
- Dynamic (ephemeral). Never assigned. This is the pool an operating system draws from for the client side of an outbound connection. Linux actually defaults to 32768-60999, so the practical ephemeral range is wider than the standard's.
This is a reference table, not a scanner. It never contacts a host, and it cannot tell you what is listening anywhere — only what a number conventionally means. Assignments are conventions: any service can be configured onto any port, and moving one is often a reasonable thing to do.
How to use the network port lookup
- 1Type a port number to see what conventionally runs there, or a service name such as "postgres" or "ssh".
- 2Filter by kind if you are browsing rather than looking something up.
- 3Read the range panel for any number: it says whether binding it needs root and whether it is in the ephemeral pool.
- 4Check the exposure note on anything you are about to open in a firewall.
Examples
The HTTP/3 surprise
- Input
- 443
- Result
- HTTPS over TCP and QUIC over UDP
A firewall that opened only TCP 443 silently blocks HTTP/3, and the symptom is a slow fallback rather than an error.
Why a Flask app will not start on a Mac
- Input
- 5000
- Result
- Flask, ASP.NET Core — and the macOS AirPlay receiver
The address-in-use error has nothing to do with your code.
A number with no assignment
- Input
- 47821
- Result
- No conventional service, and inside the dynamic range
That is the pool an operating system draws from for the client end of an outbound connection.
About the network port lookup
How the numbering came to look like this
The three ranges are set by RFC 6335, which also governs the IANA registry the assignments live in. System ports, 0 to 1023, are assigned by IANA and privileged to bind. User ports, 1024 to 49151, are registered on request but bindable by anyone — most application and database defaults live here. Dynamic ports, 49152 upward, are never assigned to anything.
The registry itself is enormous and mostly unread. Thousands of entries record a protocol somebody registered decades ago, and a good many of them are for software nobody runs any more. The ports people actually look up are a couple of hundred, which is what this table holds. Several of the most familiar are not registered at all: 3000 and 8080 are conventions that spread by imitation, not assignments.
Encrypted and unencrypted pairs
A recurring pattern in the table is a plain port and a TLS one: 80 and 443, 143 and 993, 110 and 995, 389 and 636, 21 and 990, 1883 and 8883. The second of each pair wraps the protocol in TLS from the first byte, which is called implicit TLS.
There is a third pattern too, and it is the one that catches people. STARTTLS keeps the plain port and upgrades the connection to TLS after an initial exchange — SMTP submission on 587 and LDAP on 389 both work this way. It means a plain port number does not tell you whether a connection was encrypted, and it introduces a downgrade risk: an attacker who can modify the stream can strip the upgrade offer unless the client insists. RFC 8314 recommends implicit TLS over STARTTLS for mail for exactly this reason.
Reading a firewall rule
The practical use of a table like this is checking a rule before it goes live. Three questions usually settle it: what does this number conventionally mean, does the protocol authenticate and encrypt on its own, and is the source restricted to somewhere you trust.
A rule allowing 3306 from anywhere fails the second and third questions at once. A rule allowing 22 from anywhere passes if key authentication is enforced and fails if passwords are enabled, because the port will be brute-forced continuously — not as a targeted attack but as background noise on the internet. And a rule allowing 443 that forgets UDP will work perfectly until a browser tries HTTP/3.
Frequently asked questions
Does a port number tell me what is actually running?
Why do some ports need root to bind?
What is the ephemeral port range for?
Which ports should never face the internet?
Is this a port scanner?
Related tools
IP Subnet Calculator
Developer Tools
Work out the network, broadcast, mask and usable host range for any IPv4 CIDR block.
HTTP Status Code Lookup
Developer Tools
Search every HTTP status code — what it means, when to return it, and whether it caches.
MIME Type Lookup
Developer Tools
Find the Content-Type for any file extension, and what to send with it.
ASCII Table
Developer Tools
Searchable ASCII reference with decimal, hex, octal, binary and escapes.