Port 8883 — MQTT over TLS
TCP registered
What runs on port 8883
Encrypted MQTT.
MQTT over TLS. The same protocol as 1883 with transport encryption, and the one that should be used for anything crossing a network you do not fully control. Encryption alone is not enough: brokers still need authentication and topic-level authorisation, because TLS protects the channel while leaving an anonymous client free to subscribe to everything on it.
Security considerations
Use this rather than 1883 for anything crossing a network you do not control.
Checking whether something is listening
# Linux / macOS — what is bound to the port
sudo lsof -i :8883
sudo ss -lntp | grep :8883
# Windows
netstat -ano | findstr :8883
Get-NetTCPConnection -LocalPort 8883
# is it reachable from outside?
nc -zv example.com 8883
curl -v telnet://example.com:8883
Freeing the port
# find the process, then stop it
sudo lsof -ti :8883 | xargs kill # Linux / macOS
netstat -ano | findstr :8883 # note the PID, then:
taskkill /PID <pid> /F # Windows
Should this port be open to the internet?
Usually not. Expose it only if a specific external client needs it, and restrict by source address where you can.
Opening or blocking port 8883
Finding the port is usually the first half of the job. Start narrow — the second rule is there for services that genuinely serve the public, and most do not:
# ufw — Debian, Ubuntu
sudo ufw allow from 10.0.0.0/8 to any port 8883 proto tcp
sudo ufw allow 8883/tcp # only if it genuinely serves the public
# firewalld — RHEL, Fedora, CentOS
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.0.0.0/8 port port=8883 protocol=tcp accept'
sudo firewall-cmd --reload
# iptables, if you are still there
sudo iptables -A INPUT -p tcp --dport 8883 -s 10.0.0.0/8 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 8883 -j DROP
# Windows
New-NetFirewallRule -DisplayName "MQTT over TLS 8883" -Direction Inbound -Protocol TCP -LocalPort 8883 -RemoteAddress 10.0.0.0/8 -Action Allow
10.0.0.0/8 stands in for a private range — substitute your own. Note that a firewall rule does not undo a service bound to 0.0.0.0; it only stops packets reaching it, and a misconfigured or disabled firewall then exposes it immediately.
Quick reference
| Port | 8883 |
| Protocol | TCP |
| Service | MQTT over TLS |
| Range | Registered (1024–49151) — any user process may bind |
Frequently asked questions
What is port 8883 used for?
Encrypted MQTT.
Is it safe to open port 8883?
Use this rather than 1883 for anything crossing a network you do not control.
How do I check if port 8883 is open?
Locally, sudo lsof -i :8883 on macOS or Linux, or netstat -ano | findstr :8883 on Windows. From outside, nc -zv host 8883 tells you whether anything answers.
Why do I get "address already in use" on port 8883?
Another process is bound to it — often a previous run of your own program that did not exit cleanly. Find it with lsof -ti :8883 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 9000 — PHP-FPM / SonarQube / Portainer
- Port 9090 — Prometheus
- Port 9200 — Elasticsearch
- Port 11211 — Memcached
- Port 27017 — MongoDB
- Port 20 — FTP data
- Port 21 — FTP control
- Port 22 — SSH / SFTP
- Port 23 — Telnet
- Port 25 — SMTP
- Port 53 — DNS
- Port 67 — DHCP server
- Port 68 — DHCP client
- Port 69 — TFTP
- Port 80 — HTTP
- Port 110 — POP3
- Port 123 — NTP
- Port 143 — IMAP