Toolman 100% local

Port 2375 — Docker API (plain)

TCP registered

What runs on port 2375

The Docker daemon REST API without TLS.

The Docker daemon API, unencrypted and unauthenticated. Anyone who can reach this port can start a container that mounts the host filesystem, which is root access to the machine with no exploit required. It is not a vulnerability so much as a remote root shell offered deliberately, and exposed Docker APIs are one of the most commonly abused misconfigurations on the internet. If remote Docker access is genuinely needed, use 2376 with TLS, or SSH.

Security considerations

Exposing this is equivalent to handing out root on the host. It is one of the most scanned ports on the internet for exactly that reason. Use the Unix socket, or 2376 with client certificates.

Checking whether something is listening

# Linux / macOS — what is bound to the port
sudo lsof -i :2375
sudo ss -lntp | grep :2375

# Windows
netstat -ano | findstr :2375
Get-NetTCPConnection -LocalPort 2375

# is it reachable from outside?
nc -zv example.com 2375
curl -v telnet://example.com:2375

Freeing the port

# find the process, then stop it
sudo lsof -ti :2375 | xargs kill        # Linux / macOS
netstat -ano | findstr :2375            # note the PID, then:
taskkill /PID <pid> /F                    # Windows

Should this port be open to the internet?

No. Port 2375 should never be reachable from a public address. Bind it to localhost or a private network, and reach it through a VPN or bastion host if remote access is genuinely needed. Internet-wide scanners find newly exposed instances of this service within minutes.

Opening or blocking port 2375

There is no blanket-allow rule on this page, because there is no case for one. Docker API (plain) on port 2375 should be reachable from named addresses or not at all, so what follows restricts rather than opens:

# ufw — Debian, Ubuntu
sudo ufw allow from 10.0.0.0/8 to any port 2375 proto tcp
sudo ufw deny 2375/tcp                    # everything else

# firewalld — RHEL, Fedora, CentOS
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.0.0.0/8 port port=2375 protocol=tcp accept'
sudo firewall-cmd --reload

# iptables, if you are still there
sudo iptables -A INPUT -p tcp --dport 2375 -s 10.0.0.0/8 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 2375 -j DROP

# Windows
New-NetFirewallRule -DisplayName "Docker API (plain) 2375" -Direction Inbound -Protocol TCP -LocalPort 2375 -RemoteAddress 10.0.0.0/8 -Action Allow

Change 10.0.0.0/8 to whatever your private range actually is. A firewall rule is the second line: the first is binding the service to a private interface, because a service that only listens on 127.0.0.1 cannot be reached however the firewall is configured.

Quick reference

Port2375
ProtocolTCP
ServiceDocker API (plain)
RangeRegistered (1024–49151) — any user process may bind

Frequently asked questions

What is port 2375 used for?

The Docker daemon REST API without TLS.

Is it safe to open port 2375?

Exposing this is equivalent to handing out root on the host. It is one of the most scanned ports on the internet for exactly that reason. Use the Unix socket, or 2376 with client certificates.

How do I check if port 2375 is open?

Locally, sudo lsof -i :2375 on macOS or Linux, or netstat -ano | findstr :2375 on Windows. From outside, nc -zv host 2375 tells you whether anything answers.

Why do I get "address already in use" on port 2375?

Another process is bound to it — often a previous run of your own program that did not exit cleanly. Find it with lsof -ti :2375 and stop it, or configure your application to use a different port.

Can I change the port this service uses?

Almost always yes, in the service's configuration. Moving off a default port reduces automated scan noise, but it is obfuscation rather than security — a real attacker scans all 65,535.

Other common ports

All port numbers