Toolman 100% local

Port 1883 — MQTT

TCP registered

What runs on port 1883

Lightweight publish/subscribe messaging for IoT devices.

MQTT, the publish-subscribe protocol behind most IoT deployments. Plain 1883 has no encryption, and MQTT brokers are frequently deployed with anonymous access enabled because that is the quickest path to a working prototype. An exposed broker lets anyone subscribe to every topic — which in practice has meant reading live sensor data and, worse, publishing commands to devices. 8883 is the TLS port.

Security considerations

Unencrypted and often unauthenticated by default. Use port 8883 for MQTT over TLS.

Checking whether something is listening

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

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

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

Freeing the port

# find the process, then stop it
sudo lsof -ti :1883 | xargs kill        # Linux / macOS
netstat -ano | findstr :1883            # 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 1883

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 1883 proto tcp
sudo ufw allow 1883/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=1883 protocol=tcp accept'
sudo firewall-cmd --reload

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

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

Port1883
ProtocolTCP
ServiceMQTT
RangeRegistered (1024–49151) — any user process may bind

Frequently asked questions

What is port 1883 used for?

Lightweight publish/subscribe messaging for IoT devices.

Is it safe to open port 1883?

Unencrypted and often unauthenticated by default. Use port 8883 for MQTT over TLS.

How do I check if port 1883 is open?

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

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

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