Utilo

Port 8000 HTTP alternate – Free, Online, Private

TCP 8000 is the IANA irdmi port, described as iRDMI. Development servers and proxies use it as an unofficial HTTP port. It is not http-alt. That name belongs to 8080.

What listens on 8000

The assigned service is irdmi, iRDMI. The registry does not describe it as HTTP. Python's http.server, Django's runserver, and a long list of samples bind 8000 anyway and speak HTTP. That is convention, the same kind of collision as 3000, and it is a different convention from 8080, whose IANA name really is http-alt. A scanner that says irdmi is reading the registry. A browser that gets HTML is talking to whatever process you started. UDP 8000 is registered for irdmi and is not the dev server. Port 8000 is unprivileged.

The IANA service name is irdmi: iRDMI. The practical transport is TCP. The checks below use TCP. IANA may also have a UDP row for 8000. The service described here is the TCP one. A process can bind this port without being the service in the registry. The commands show who bound it. They do not prove the protocol on the wire is the one IANA named.

Service notes for port 8000

Service notes for port 8000: the IANA name is irdmi (iRDMI), and the program people mean is HTTP alternate. TCP 8000 is the IANA irdmi port, described as iRDMI. Development servers and proxies use it as an unofficial HTTP port. It is not http-alt. That name belongs to 8080. A sample server on 8000 is often a directory listing of the working tree. Do not publish it. The Django development server and http.server are not the deployment. If a real service must use 8000 inside a cluster, keep it on the pod network and let an ingress on 443 be the public name. An admin UI that shipped bound to 8000 is how cameras and dashboards end up on the internet. Change the bind address, not only the security group, or the next compose file will republish it. Nothing in that paragraph applies to a different number just because the software family is similar. If your listener is not on 8000, you are on the wrong page.

Two READMEs in the same repository use 8000, and the second process dies with the address in use. Another trap is a health check of 8000 after the app moved to a socket or to 8080. Another is a Dockerfile EXPOSE 8000 that does not publish the port. EXPOSE is documentation. The listener inside the container can be healthy and unreachable. Another is calling this port http-alt in a ticket. The registered http-alt is 8080, and also a different historical number, 591. 8000 has its own name.

How to check whether it is open

On the machine itself, ask the kernel which socket is bound. ss and lsof do that. A firewall, a security group, and a Docker publish rule sit in front of that socket, so a listener is not the same thing as a port the internet can use. From somewhere else, nc -vz host 8000 tries a TCP handshake when the command is the TCP form. A refusal means something answered with a reset. A timeout means a filter dropped the packet or the host is unreachable. Those are different faults. The process on TCP 8000 is the dev server or the proxy you started. If the process is unfamiliar, it is not automatically iRDMI, and it is not automatically safe. A remote timeout means a filter or a bind to localhost.

grep and findstr match text. A pattern of :80 also matches :8080 and :8000. The lsof and Get-NetTCPConnection forms take a numeric port and do not have that substring bug. Use them when the number is ambiguous. ss filters in the kernel with sport = :N, which is also exact. On macOS, netstat -p selects a protocol. It does not print the process the way Linux netstat -p does. lsof prints the process.

  • The IANA name is irdmi, not http and not http-alt.
  • http-alt is 8080.
  • EXPOSE in a Dockerfile does not publish the port.
  • UDP 8000 is not the HTTP convention.
Linuxsudo ss -lptn 'sport = :8000'
sudo lsof -nP -iTCP:8000 -sTCP:LISTEN
macOSsudo lsof -nP -iTCP:8000 -sTCP:LISTEN
netstat -anv -p tcp | grep '\.8000[^0-9]'
Windowsnetstat -ano | findstr :8000
Get-NetTCPConnection -LocalPort 8000
Remotenc -vz host 8000

Frequently asked questions

What is the IANA name?

irdmi, described as iRDMI.

Is 8000 the HTTP alternate port?

No. IANA's http-alt is 8080, with the note to see port 80.

Why do Python samples use it?

Convention in the tools. The registry assignment is older and unrelated.

What should own the socket?

The server you started. If you did not start one, find the process before you open the port.