CyberHunter
// DevOps, cloud & containers

Port 2377: RPC interface for Docker Swarm

Port 2377 is assigned by IANA to swarm (RPC interface for Docker Swarm).

2377

How swarm works

DevOps, cloud & containers
adminhostswarm adminhostswarm

Commands sent to port 2377 create and control containers or cluster resources on the host.

Transport
TCP
Exposure risk
not rated depends on the program listening
Encryption
Unknownnot stated by the registry
IANA status
Assigned1 registered service
Range
Registered (1024-49151)
01 Security

Is port 2377 dangerous?

We have no specific security note for port 2377. Its risk depends on the program actually listening on it. General advice for devops, cloud & containers services:

  • Container and orchestration APIs give full control of hosts: require mutual TLS and RBAC.
  • Never expose them to the Internet.
  • Rotate tokens and certificates and audit who has access.
02 Registry

IANA registry entries for port 2377

ServicePortTransportDescriptionReferenceUpdated
swarm 2377 TCP RPC interface for Docker Swarm - 2016-12-23
-2377-Reserved--

// source: IANA service name and port number registry

03 Check it

Which program uses port 2377, and is it reachable?

Linux

sudo ss -ltnup 'sport = :2377'      # process listening on 2377
sudo lsof -nP -i :2377

macOS

sudo lsof -nP -i :2377

Windows (PowerShell)

Get-NetTCPConnection -LocalPort 2377 -State Listen | Select LocalAddress, OwningProcess
Get-NetUDPEndpoint -LocalPort 2377
netstat -ano | findstr :2377

From another machine

nmap -p 2377 -sV <host>
nc -zv <host> 2377

Block it in the firewall

sudo ufw deny 2377/tcp                                         # Linux (ufw)
New-NetFirewallRule -DisplayName "Block 2377" -Direction Inbound -LocalPort 2377 -Protocol TCP -Action Block  # Windows
04 FAQ
What is port 2377 used for?

Port 2377 is assigned by IANA to swarm (RPC interface for Docker Swarm).

Is port 2377 TCP or UDP?

Port 2377 is registered for TCP.

Is it safe to open port 2377?

It depends on the program that listens on it. Open it only for a service you know and only to the networks that need it. Container and orchestration APIs give full control of hosts: require mutual TLS and RBAC.

How do I check if port 2377 is open?

On Linux run "ss -ltnup 'sport = :2377'", on macOS "lsof -nP -i :2377", and on Windows "netstat -ano | findstr :2377" to see the local process. From another machine, "nmap -p 2377 <host>" shows whether it is reachable.

05 Related