Skip to content
AZ Tools

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).

PortProtoServiceDescription
20tcpFTP-DATAFile Transfer Protocol — data channel.
21tcpFTPFile Transfer Protocol — control channel.
22tcpSSHSecure Shell. Also used by SFTP and SCP.
23tcpTelnetPlaintext remote shell. Avoid on the open internet.
25tcpSMTPSimple Mail Transfer Protocol — server-to-server mail.
53bothDNSDomain Name System lookups. UDP for queries, TCP for zone transfers and large answers.
67udpDHCP serverDynamic Host Configuration Protocol — server-side.
68udpDHCP clientDHCP — client-side.
69udpTFTPTrivial File Transfer Protocol — bootstrapping / firmware.
80tcpHTTPPlain HTTP. Browsers default to this when the URL has no scheme.
110tcpPOP3Post Office Protocol 3 — legacy mail retrieval.
119tcpNNTPNetwork News Transfer Protocol — Usenet.
123udpNTPNetwork Time Protocol.
143tcpIMAPInternet Message Access Protocol — mailbox sync.
161udpSNMPSimple Network Management Protocol — device monitoring.
162udpSNMP trapSNMP asynchronous notifications.
389tcpLDAPLightweight Directory Access Protocol.
443tcpHTTPSHTTP over TLS. Default for the modern web.
445tcpSMBServer Message Block — Windows file sharing.
465tcpSMTPSSMTP over TLS (implicit). Common for mail submission.
514udpsyslogUnix syslog forwarding.
587tcpSMTP submissionMail submission from clients with STARTTLS.
631tcpIPP / CUPSInternet Printing Protocol; macOS / Linux print server.
636tcpLDAPSLDAP over TLS.
989tcpFTPS-dataFTPS data channel (implicit TLS).
990tcpFTPSFTPS control channel (implicit TLS).
993tcpIMAPSIMAP over TLS.
995tcpPOP3SPOP3 over TLS.
1080tcpSOCKSSOCKS proxy.
1194udpOpenVPNOpenVPN default port.
1433tcpMSSQLMicrosoft SQL Server.
1521tcpOracleOracle Database default listener.
1701udpL2TPLayer 2 Tunneling Protocol — VPN.
1723tcpPPTPPoint-to-Point Tunneling Protocol — legacy VPN.
1883tcpMQTTMessage Queuing Telemetry Transport — IoT messaging.
2049tcpNFSNetwork File System.
2375tcpDocker (plain)Docker daemon socket — unencrypted, dev only.
2376tcpDocker (TLS)Docker daemon socket — TLS.
3000tcpdev serverConventional Node.js dev port — Next.js, Express, …
3306tcpMySQLMySQL / MariaDB.
3389tcpRDPMicrosoft Remote Desktop Protocol.
3478bothSTUN / TURNWebRTC NAT-traversal — STUN / TURN servers.
4444tcpSeleniumSelenium WebDriver default hub.
5000tcpFlask / UPnPPython Flask dev default; UPnP on macOS.
5060bothSIPSession Initiation Protocol — VoIP signalling (plain).
5061tcpSIP-TLSSIP over TLS.
5432tcpPostgreSQLPostgreSQL default listener.
5900tcpVNCVirtual Network Computing.
6379tcpRedisRedis default port.
6443tcpKubernetes APIKubernetes API server (HTTPS).
6667tcpIRCInternet Relay Chat.
8000tcpdev serverCommon alt HTTP — Python http.server, Django.
8080tcpHTTP-altAlternative HTTP — Tomcat, Jenkins, proxies.
8443tcpHTTPS-altAlternative HTTPS — admin panels, alt webservers.
8888tcpHTTP-alt / JupyterAlternative HTTP; Jupyter Notebook default.
9000tcpPHP-FPMPHP FastCGI Process Manager.
9090tcpPrometheusPrometheus metrics scraper.
9092tcpKafkaApache Kafka broker.
9200tcpElasticsearchElasticsearch REST API.
11211tcpmemcachedmemcached default port.
27017tcpMongoDBMongoDB default port.
49152bothDynamic / privateStart of the IANA dynamic range (49152–65535); Windows picks outgoing source ports from it.
51820udpWireGuardWireGuard VPN — conventional listen port.
60001udpmoshMobile shell — mosh-server takes a UDP port in 60000–61000, trying 60001 first.

How to use

  1. Type a port number (443), a service name (postgres), or a keyword (mail).
  2. Filter to well-known / registered / ephemeral ranges if you want to narrow down.
  3. Click copy to grab the port number for a docker-compose port mapping or firewall rule.

About this tool

Show

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