Toolman 100% local

Port 5432 — PostgreSQL

TCP registered

What runs on port 5432

The default PostgreSQL port.

PostgreSQL. Worth knowing that pg_hba.conf governs who may connect and how, independently of the port and of the database user's own permissions — a connection can be refused there before any password is checked, which is why "no pg_hba.conf entry for host" is a configuration error rather than a credentials error. As with every database, this port should be private.

Security considerations

Keep it on a private network. Configure `pg_hba.conf` deliberately — a permissive `host all all 0.0.0.0/0 md5` line is a common and serious mistake.

Checking whether something is listening

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

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

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

Freeing the port

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

Should this port be open to the internet?

No. Port 5432 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 5432

There is no blanket-allow rule on this page, because there is no case for one. PostgreSQL on port 5432 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 5432 proto tcp
sudo ufw deny 5432/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=5432 protocol=tcp accept'
sudo firewall-cmd --reload

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

# Windows
New-NetFirewallRule -DisplayName "PostgreSQL 5432" -Direction Inbound -Protocol TCP -LocalPort 5432 -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

Port5432
ProtocolTCP
ServicePostgreSQL
RangeRegistered (1024–49151) — any user process may bind

Frequently asked questions

What is port 5432 used for?

The default PostgreSQL port.

Is it safe to open port 5432?

Keep it on a private network. Configure `pg_hba.conf` deliberately — a permissive `host all all 0.0.0.0/0 md5` line is a common and serious mistake.

How do I check if port 5432 is open?

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

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

Another process is bound to it — often a previous run of your own program that did not exit cleanly. Find it with lsof -ti :5432 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