Skip to main content

Random Port Generator

Generate cryptographically secure random TCP/UDP port numbers — pick an IANA range or your own, draw up to 100 at once, skip browser-blocked and well-known ports, and see what each port is normally used for. Free, instant, and everything runs in your browser.

Generate random ports

Port range
Options

Common ports reference

The ports most likely to collide with an existing service. The generator can skip all of these with the “avoid common service ports” option.

PortServiceIANA category
20FTP (data)Well-known
21FTP (control)Well-known
22SSHWell-known
23TelnetWell-known
25SMTPWell-known
53DNSWell-known
67DHCP (server)Well-known
68DHCP (client)Well-known
69TFTPWell-known
80HTTPWell-known
110POP3Well-known
119NNTPWell-known
123NTPWell-known
135RPC endpoint mapperWell-known
137NetBIOS (name service)Well-known
138NetBIOS (datagram)Well-known
139NetBIOS (session)Well-known
143IMAPWell-known
161SNMPWell-known
162SNMP trapWell-known
194IRCWell-known
389LDAPWell-known
443HTTPSWell-known
445SMBWell-known
465SMTP (SSL)Well-known
514SyslogWell-known
587SMTP (submission)Well-known
636LDAP (SSL)Well-known
993IMAP (SSL)Well-known
995POP3 (SSL)Well-known
1080SOCKS proxyRegistered
1194OpenVPNRegistered
1433MS SQL ServerRegistered
1521Oracle DBRegistered
2049NFSRegistered
3000Dev server (common default)Registered
3306MySQLRegistered
3389RDPRegistered
5000Dev server (Flask, common default)Registered
5432PostgreSQLRegistered
5900VNCRegistered
6379RedisRegistered
8000HTTP (alt, dev)Registered
8080HTTP (alt / proxy)Registered
8443HTTPS (alt)Registered
9000Dev server (common default)Registered
9200ElasticsearchRegistered
11211MemcachedRegistered
27015Game server (Steam, common default)Registered
27017MongoDBRegistered

Browser-blocked ports (ERR_UNSAFE_PORT)

Chrome, Edge, Opera and Firefox refuse to load http(s):// on these ports because they belong to legacy or abuse-prone services. If your app is ever opened in a browser, pick a port outside this list.

Chromium / Firefox block list
1 7 9 11 13 15 17 19 20 21 22 23 25 37 42 43 53 77 79 87 95 101 102 103 104 109 110 111 113 115 117 119 123 135 139 143 179 389 465 512 513 514 515 526 530 531 532 540 556 563 587 601 636 993 995 2049 3659 4045 6000 6665 6666 6667 6668 6669
Extra ports Chrome blocks (NAT Slipstreaming mitigations)
69 137 161 554 1719 1720 1723 5060 5061 6566 10080

How it works

IANA divides the 65,536 TCP/UDP ports (0–65535) into three ranges: well-known (0–1023) for core system services like HTTP and SSH, registered (1024–49151) for user applications like MySQL and RDP, and dynamic/private (49152–65535) which are never assigned and are the safest default for anything new. This tool draws from your chosen range with crypto.getRandomValues — the browser's cryptographically secure RNG — using rejection sampling so every port in the range has exactly equal probability. No modulo bias, no server, no tracking.

Frequently asked questions

Well-known ports are ports 0 through 1023, assigned by IANA to core system services. Examples you meet every day: 80 (HTTP), 443 (HTTPS), 22 (SSH), 25 (SMTP), 53 (DNS) and 21 (FTP). On most operating systems you need administrator or root privileges to bind a program to a well-known port, which is one reason applications usually avoid them.
Registered ports (1024-49151) are assigned by IANA to specific user applications — MySQL uses 3306, RDP uses 3389, PostgreSQL uses 5432, VNC uses 5900 — while dynamic/private ports (49152-65535) are never assigned to any service. Registered ports are safe for apps whose number is documented and stable; dynamic ports are the default choice when you just need a free number that conflicts with nothing.
Ephemeral ports are the temporary ports your operating system picks automatically from the dynamic/private range (49152-65535) for the client side of an outbound TCP or UDP connection. Every connection needs a unique source port so replies can be routed back, and picking them at random makes it harder for attackers to predict and hijack sessions. That is why the dynamic range is the default range in this generator.
Avoid three groups. First, the well-known ports 0-1023, which need elevated privileges and are already claimed by system services. Second, ports your browser refuses to load with ERR_UNSAFE_PORT (for example 21, 22, 23, 25, 53, 135, 139, 143, 587, 6665-6669 and 10080) — handy if your app is ever opened in a browser. Third, whatever is already listening on the machine itself; a random pick from the dynamic range 49152-65535 plus a quick local check with netstat, ss or lsof is the practical recipe.
Chrome, Edge, Opera and Firefox block network access to a list of ports that belong to legacy or abuse-prone services (SMTP on 25, SSH on 22, NetBIOS name/session on 137 and 139, IRC on 6665-6669 and others). When you type an address like http://example.com:6667 the browser refuses with ERR_UNSAFE_PORT instead of connecting. Enable the 'avoid browser-blocked ports' option here to never draw one of those.
Yes to the first, no to the second. Ports are drawn with crypto.getRandomValues, the browser's cryptographically secure random number generator, using rejection sampling so every port in the range has exactly equal probability. Everything runs in your browser: no request, no logging, no cookies, no server ever sees the ports you generate.
No — a web page cannot scan your machine's ports, and you would not want a site that tried. A generated port is a conflict-free pick from the IANA ranges, not a guarantee it is unused locally. On Linux or macOS run 'ss -tlnp' or 'lsof -i :PORT'; on Windows run 'netstat -ano | findstr :PORT' to confirm your pick is free before binding a service to it.

Free tool by NRTechStudio