Port Number Reference
Searchable cheat sheet for ~60 standard TCP / UDP port numbers — from 22 (SSH) and 80 (HTTP) to 6379 (Redis) and 27017 (MongoDB).
| Port | Proto | Service | Description | |
|---|---|---|---|---|
| 20 | tcp | FTP-DATA | File Transfer Protocol — data channel. | |
| 21 | tcp | FTP | File Transfer Protocol — control channel. | |
| 22 | tcp | SSH | Secure Shell. Also used by SFTP and SCP. | |
| 23 | tcp | Telnet | Plaintext remote shell. Avoid on the open internet. | |
| 25 | tcp | SMTP | Simple Mail Transfer Protocol — server-to-server mail. | |
| 53 | both | DNS | Domain Name System lookups. UDP for queries, TCP for zone transfers and large answers. | |
| 67 | udp | DHCP server | Dynamic Host Configuration Protocol — server-side. | |
| 68 | udp | DHCP client | DHCP — client-side. | |
| 69 | udp | TFTP | Trivial File Transfer Protocol — bootstrapping / firmware. | |
| 80 | tcp | HTTP | Plain HTTP. Browsers default to this when the URL has no scheme. | |
| 110 | tcp | POP3 | Post Office Protocol 3 — legacy mail retrieval. | |
| 119 | tcp | NNTP | Network News Transfer Protocol — Usenet. | |
| 123 | udp | NTP | Network Time Protocol. | |
| 143 | tcp | IMAP | Internet Message Access Protocol — mailbox sync. | |
| 161 | udp | SNMP | Simple Network Management Protocol — device monitoring. | |
| 162 | udp | SNMP trap | SNMP asynchronous notifications. | |
| 389 | tcp | LDAP | Lightweight Directory Access Protocol. | |
| 443 | tcp | HTTPS | HTTP over TLS. Default for the modern web. | |
| 445 | tcp | SMB | Server Message Block — Windows file sharing. | |
| 465 | tcp | SMTPS | SMTP over TLS (implicit). Common for mail submission. | |
| 514 | udp | syslog | Unix syslog forwarding. | |
| 587 | tcp | SMTP submission | Mail submission from clients with STARTTLS. | |
| 631 | tcp | IPP / CUPS | Internet Printing Protocol; macOS / Linux print server. | |
| 636 | tcp | LDAPS | LDAP over TLS. | |
| 989 | tcp | FTPS-data | FTPS data channel (implicit TLS). | |
| 990 | tcp | FTPS | FTPS control channel (implicit TLS). | |
| 993 | tcp | IMAPS | IMAP over TLS. | |
| 995 | tcp | POP3S | POP3 over TLS. | |
| 1080 | tcp | SOCKS | SOCKS proxy. | |
| 1194 | udp | OpenVPN | OpenVPN default port. | |
| 1433 | tcp | MSSQL | Microsoft SQL Server. | |
| 1521 | tcp | Oracle | Oracle Database default listener. | |
| 1701 | udp | L2TP | Layer 2 Tunneling Protocol — VPN. | |
| 1723 | tcp | PPTP | Point-to-Point Tunneling Protocol — legacy VPN. | |
| 1883 | tcp | MQTT | Message Queuing Telemetry Transport — IoT messaging. | |
| 2049 | tcp | NFS | Network File System. | |
| 2375 | tcp | Docker (plain) | Docker daemon socket — unencrypted, dev only. | |
| 2376 | tcp | Docker (TLS) | Docker daemon socket — TLS. | |
| 3000 | tcp | dev server | Conventional Node.js dev port — Next.js, Express, … | |
| 3306 | tcp | MySQL | MySQL / MariaDB. | |
| 3389 | tcp | RDP | Microsoft Remote Desktop Protocol. | |
| 3478 | both | STUN / TURN | WebRTC NAT-traversal — STUN / TURN servers. | |
| 4444 | tcp | Selenium | Selenium WebDriver default hub. | |
| 5000 | tcp | Flask / UPnP | Python Flask dev default; UPnP on macOS. | |
| 5060 | both | SIP | Session Initiation Protocol — VoIP signalling (plain). | |
| 5061 | tcp | SIP-TLS | SIP over TLS. | |
| 5432 | tcp | PostgreSQL | PostgreSQL default listener. | |
| 5900 | tcp | VNC | Virtual Network Computing. | |
| 6379 | tcp | Redis | Redis default port. | |
| 6443 | tcp | Kubernetes API | Kubernetes API server (HTTPS). | |
| 6667 | tcp | IRC | Internet Relay Chat. | |
| 8000 | tcp | dev server | Common alt HTTP — Python http.server, Django. | |
| 8080 | tcp | HTTP-alt | Alternative HTTP — Tomcat, Jenkins, proxies. | |
| 8443 | tcp | HTTPS-alt | Alternative HTTPS — admin panels, alt webservers. | |
| 8888 | tcp | HTTP-alt / Jupyter | Alternative HTTP; Jupyter Notebook default. | |
| 9000 | tcp | PHP-FPM | PHP FastCGI Process Manager. | |
| 9090 | tcp | Prometheus | Prometheus metrics scraper. | |
| 9092 | tcp | Kafka | Apache Kafka broker. | |
| 9200 | tcp | Elasticsearch | Elasticsearch REST API. | |
| 11211 | tcp | memcached | memcached default port. | |
| 27017 | tcp | MongoDB | MongoDB default port. | |
| 49152 | both | Dynamic / private | Start of the IANA dynamic range (49152–65535); Windows picks outgoing source ports from it. | |
| 51820 | udp | WireGuard | WireGuard VPN — conventional listen port. | |
| 60001 | udp | mosh | Mobile shell — mosh-server takes a UDP port in 60000–61000, trying 60001 first. |
How to use
- Type a port number (
443), a service name (postgres), or a keyword (mail). - Filter to well-known / registered / ephemeral ranges if you want to narrow down.
- Click copy to grab the port number for a docker-compose port mapping or firewall rule.
About this tool
ShowHide
A searchable list of the TCP and UDP port numbers you meet in firewall rules, compose files and packet captures, each with its protocol, service name and a one-line description, spanning the well-known range below 1024, the registered range above it and the conventional development and database ports. The number below 1024 is not an arbitrary boundary: on Unix systems only a privileged process may bind a port in that range, which is the real reason a development server runs on 3000 or 8080 instead of 80, and why exposing a real service on 80 usually involves a reverse proxy or a granted capability. Everything above is convention, not enforcement — any service can listen anywhere it is told to.
Frequently asked questions
What do well-known, registered, and ephemeral mean?
IANA divides the 16-bit port space into three ranges: well-known (0–1023, system ports for standardized services), registered (1024–49151, applications and vendor-assigned), and ephemeral (49152–65535, dynamic / private ports for outgoing connections). On Unix you need root to bind below 1024.
Why are some ports listed as both?
DNS, SIP, and STUN, for example, are defined for both TCP and UDP. The both marker tells you the port is registered on both protocols, not that the same service must use them simultaneously.
Are these the actual reserved ports?
Yes — they're either IANA assignments (22, 80, 443, 53, …) or de-facto defaults from the upstream project (3306 MySQL, 6379 Redis, 27017 MongoDB). Implementations can listen on a different port, of course.
Does moving a service to an unusual port make it safer?
Barely. It removes the noise of untargeted scanners that only probe the default, which does quiet your logs, but anything scanning the full range finds the service in seconds and identifies it from its banner. Treat a moved port as log hygiene rather than as a control: authentication, key-based access and a firewall rule are what actually keep the service closed.
Why can my app not listen on port 80 without elevated rights?
Because ports below 1024 are historically privileged on Unix-like systems: binding one requires root, on the reasoning that a well-known port implies a service the machine's owner sanctioned. The usual modern answers are to bind a high port and put a reverse proxy in front, or to grant the one capability that permits low binds rather than running the whole process as root.
Related tools
/.well-known/* URI Reference
Searchable catalog of well-known URIs registered with IANA — security.txt, openid-configuration, acme-challenge and 30+ more, with RFCs.
Network
TLS Cipher Suite Decoder
Paste an IANA cipher suite name and get its key exchange, authentication, bulk cipher, mode and MAC — plus a security grade for forward secrecy and AEAD.
Network
MIME Type Lookup
Find the MIME type for a file extension (or the other way around) and learn what each type is for.
Developer
HTTP Headers Reference
Searchable reference for ~50 standard HTTP request, response, CORS, caching, security, and cookie headers.
Developer
CRL Decoder (X.509)
Read a certificate revocation list in your browser: issuer, CRL number, validity window, every revoked serial with its reason, and the signature.
Developer
GPS Time, TAI and Leap Second Converter
Convert UTC to GPS week and time of week, TAI and the GPS−UTC offset, with every leap second since 1972 listed.
Time