Port 143 — IMAP
TCP well-known
What runs on port 143
Mail access that keeps messages on the server and syncs state across devices.
IMAP keeps messages on the server and synchronises state — read, flagged, filed — so every device sees the same mailbox. This is the fundamental difference from POP3 on 110, and the reason IMAP won. Port 143 is unencrypted or STARTTLS-upgraded; 993 is implicit TLS from the first byte. A mail client that works on one and not the other is almost always configured for the wrong one of those two.
Security considerations
Unencrypted. Use port 993 for IMAP over TLS.
Checking whether something is listening
# Linux / macOS — what is bound to the port
sudo lsof -i :143
sudo ss -lntp | grep :143
# Windows
netstat -ano | findstr :143
Get-NetTCPConnection -LocalPort 143
# is it reachable from outside?
nc -zv example.com 143
curl -v telnet://example.com:143
Freeing the port
# find the process, then stop it
sudo lsof -ti :143 | xargs kill # Linux / macOS
netstat -ano | findstr :143 # note the PID, then:
taskkill /PID <pid> /F # Windows
Should this port be open to the internet?
Only on a mail server. If this port is open on something that is not intentionally handling mail, you may be running an open relay — which will get the IP blacklisted quickly.
Opening or blocking port 143
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 143 proto tcp
sudo ufw allow 143/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=143 protocol=tcp accept'
sudo firewall-cmd --reload
# iptables, if you are still there
sudo iptables -A INPUT -p tcp --dport 143 -s 10.0.0.0/8 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 143 -j DROP
# Windows
New-NetFirewallRule -DisplayName "IMAP 143" -Direction Inbound -Protocol TCP -LocalPort 143 -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 | 143 |
| Protocol | TCP |
| Service | IMAP |
| Range | Well-known (0–1023) — binding requires root on Unix |
Frequently asked questions
What is port 143 used for?
Mail access that keeps messages on the server and syncs state across devices.
Is it safe to open port 143?
Unencrypted. Use port 993 for IMAP over TLS.
How do I check if port 143 is open?
Locally, sudo lsof -i :143 on macOS or Linux, or netstat -ano | findstr :143 on Windows. From outside, nc -zv host 143 tells you whether anything answers.
Why do I get "address already in use" on port 143?
Another process is bound to it — often a previous run of your own program that did not exit cleanly. Find it with lsof -ti :143 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 161 — SNMP
- Port 389 — LDAP
- Port 443 — HTTPS
- Port 445 — SMB
- Port 465 — SMTPS
- Port 514 — Syslog
- Port 587 — SMTP submission
- Port 636 — LDAPS
- Port 993 — IMAPS
- Port 995 — POP3S
- Port 1080 — SOCKS proxy
- Port 1433 — Microsoft SQL Server
- Port 1521 — Oracle Database
- Port 1883 — MQTT
- Port 2049 — NFS
- Port 2375 — Docker API (plain)
- Port 2376 — Docker API (TLS)
- Port 3000 — Node.js / dev server