Port 1521 — Oracle Database
TCP registered
What runs on port 1521
Oracle listener port.
The Oracle listener. The listener is a directory rather than the database itself: it accepts a connection, identifies the requested service, and hands the session to a database process which may continue on a different port. That indirection is why Oracle connectivity through a firewall is more involved than for other databases, and why "the listener is up" and "the database is reachable" are separate questions.
Security considerations
Same rule — databases belong on a private network.
Checking whether something is listening
# Linux / macOS — what is bound to the port
sudo lsof -i :1521
sudo ss -lntp | grep :1521
# Windows
netstat -ano | findstr :1521
Get-NetTCPConnection -LocalPort 1521
# is it reachable from outside?
nc -zv example.com 1521
curl -v telnet://example.com:1521
Freeing the port
# find the process, then stop it
sudo lsof -ti :1521 | xargs kill # Linux / macOS
netstat -ano | findstr :1521 # note the PID, then:
taskkill /PID <pid> /F # Windows
Should this port be open to the internet?
No. Port 1521 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 1521
There is no blanket-allow rule on this page, because there is no case for one. Oracle Database on port 1521 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 1521 proto tcp
sudo ufw deny 1521/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=1521 protocol=tcp accept'
sudo firewall-cmd --reload
# iptables, if you are still there
sudo iptables -A INPUT -p tcp --dport 1521 -s 10.0.0.0/8 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 1521 -j DROP
# Windows
New-NetFirewallRule -DisplayName "Oracle Database 1521" -Direction Inbound -Protocol TCP -LocalPort 1521 -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
| Port | 1521 |
| Protocol | TCP |
| Service | Oracle Database |
| Range | Registered (1024–49151) — any user process may bind |
Frequently asked questions
What is port 1521 used for?
Oracle listener port.
Is it safe to open port 1521?
Same rule — databases belong on a private network.
How do I check if port 1521 is open?
Locally, sudo lsof -i :1521 on macOS or Linux, or netstat -ano | findstr :1521 on Windows. From outside, nc -zv host 1521 tells you whether anything answers.
Why do I get "address already in use" on port 1521?
Another process is bound to it — often a previous run of your own program that did not exit cleanly. Find it with lsof -ti :1521 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
- Port 1883 — MQTT
- Port 2049 — NFS
- Port 2375 — Docker API (plain)
- Port 2376 — Docker API (TLS)
- Port 3000 — Node.js / dev server
- Port 3306 — MySQL / MariaDB
- Port 3389 — RDP
- Port 4200 — Angular dev server
- Port 5000 — Flask / dev server
- Port 5173 — Vite
- Port 5432 — PostgreSQL
- Port 5672 — AMQP / RabbitMQ
- Port 6379 — Redis
- Port 8000 — HTTP alternate
- Port 8080 — HTTP alternate
- Port 8443 — HTTPS alternate
- Port 8883 — MQTT over TLS
- Port 9000 — PHP-FPM / SonarQube / Portainer