TCP/UDP Port Number Reference

A searchable reference of TCP and UDP port numbers every developer encounters: well-known system ports, database ports, dev server defaults and infrastructure services. Search by port number or service name, or type a port to see what runs on it. All data is client-side — no requests.

How to use the TCP/UDP Port Number Reference

Type a port number or service name into the search box. The table filters instantly as you type. Port ranges are color-coded: ports 0-1023 are well-known / system ports (require root to bind), 1024-49151 are registered ports (user-space services), and 49152-65535 are ephemeral ports (dynamically assigned for outgoing connections).

The TCP/UDP column shows the transport protocol. Many services have both TCP and UDP entries (e.g. DNS on port 53 uses UDP for queries and TCP for zone transfers and large responses). The Description column gives a brief summary of the service and common usage context.

Leave the search blank to see all ports. Sort by clicking the Port column header. Port numbers shown in bold are especially common in day-to-day development — databases, HTTP, SSH, Redis, Postgres, etc.

About Port Numbers

Port numbers are 16-bit unsigned integers (0-65535) that identify specific network services or processes on a host. The transport layer (TCP or UDP) uses them alongside IP addresses to route packets to the correct application. The Internet Assigned Numbers Authority (IANA) maintains the official registry of assigned port numbers, which is the canonical reference for which service "owns" a port.

The three ranges serve different purposes: system ports (0-1023) are reserved for well-known services and typically require superuser privileges to bind on UNIX systems; registered ports (1024-49151) are assigned by IANA to specific services on request but can be used by any process; ephemeral ports (49152-65535) are dynamically assigned by the OS kernel to outgoing connections and released when the connection closes. The exact ephemeral range varies by OS — Linux defaults to 32768-60999.

In practice, developers often run services on non-standard ports to avoid privilege requirements (e.g. HTTP on 8080 instead of 80) or to avoid conflicts when running multiple services locally. Knowing the conventional ports prevents configuration mistakes and helps identify unexpected network traffic in logs and firewall rules.

Common use cases

  • Firewall rule authoring — quickly look up which port to open or block for a given service without consulting scattered documentation.
  • Network troubleshooting — identify what service is responsible for unexpected traffic on a port seen in tcpdump or netstat output.
  • Docker port mapping — confirm the conventional host port to map a containerised service to (e.g. 5432 for Postgres, 6379 for Redis).
  • Security auditing — cross-reference open ports from a port scanner against the expected service list to spot unexpected listeners.
  • Developer environment setup — avoid port conflicts when running multiple local services by knowing which ports each technology defaults to.

Frequently asked questions

What is the difference between TCP and UDP ports?

TCP (Transmission Control Protocol) provides reliable, ordered delivery with connection establishment (the three-way handshake). UDP (User Datagram Protocol) is connectionless and faster but provides no delivery guarantee. The same port number on TCP and UDP are independent — a service can use both (e.g. DNS 53 uses UDP for queries, TCP for large responses and zone transfers).

Why do development servers use ports like 3000 or 8080 instead of 80?

Ports below 1024 require root/administrator privileges to bind on most operating systems. Using 3000, 8080, 5000, etc. allows development servers to run as a normal user process. In production, a reverse proxy like Nginx or a load balancer listens on port 80/443 and forwards requests to the application.

What is an ephemeral port?

When your computer makes an outgoing TCP or UDP connection, the OS assigns a random high-numbered port as the source port for that connection. This is the ephemeral port — it exists only for the duration of the connection. The standard range is 49152-65535 (IANA) but Linux uses 32768-60999 by default. You will see these in netstat output as the local port on client connections.

Can two services use the same port?

Not on the same protocol (TCP or UDP) and address combination simultaneously. Two services can share a port if they use different protocols (one TCP, one UDP) or bind to different IP addresses. Socket reuse options (SO_REUSEPORT) allow multiple processes to share a port for load distribution, but this requires explicit configuration.

What is port 0?

Port 0 is not a usable port. When a program binds to port 0, the OS assigns it a random available ephemeral port. Port 0 is also used in TCP/IP to indicate "any port" in certain contexts. You cannot connect to port 0 on a remote host.