Port 443 — HTTPS
TCP well-known
What runs on port 443
Encrypted web traffic. The default for essentially all modern web services, and the transport for HTTP/2 and HTTP/3.
HTTPS, and effectively the whole modern web. Worth knowing that HTTP/3 runs over QUIC on UDP 443, not TCP: a firewall that permits only TCP 443 does not break anything visibly, because clients silently fall back to HTTP/2, but the performance benefit is lost and the cause is invisible in logs. A TLS handshake failing immediately after the connection opens is usually a certificate or SNI problem rather than a network one.
Security considerations
HTTP/3 runs over QUIC on UDP 443 — if you firewall only TCP, HTTP/3 silently fails and clients fall back.
Checking whether something is listening
# Linux / macOS — what is bound to the port
sudo lsof -i :443
sudo ss -lntp | grep :443
# Windows
netstat -ano | findstr :443
Get-NetTCPConnection -LocalPort 443
# is it reachable from outside?
nc -zv example.com 443
curl -v telnet://example.com:443
Freeing the port
# find the process, then stop it
sudo lsof -ti :443 | xargs kill # Linux / macOS
netstat -ano | findstr :443 # note the PID, then:
taskkill /PID <pid> /F # Windows
Should this port be open to the internet?
Yes — that is what it is for. Make sure whatever is listening is something you intend to expose, and that TLS is configured properly.
Opening or blocking port 443
This one is meant to be reachable, so the blanket rule is the normal answer and the narrow form under it is for the case where the service is internal-only:
# ufw — Debian, Ubuntu
sudo ufw allow 443/tcp
sudo ufw allow from 10.0.0.0/8 to any port 443 proto tcp # if it only serves internally
# firewalld — RHEL, Fedora, CentOS
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=10.0.0.0/8 port port=443 protocol=tcp accept'
sudo firewall-cmd --reload
# iptables, if you are still there
sudo iptables -A INPUT -p tcp --dport 443 -s 10.0.0.0/8 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j DROP
# Windows
New-NetFirewallRule -DisplayName "HTTPS 443" -Direction Inbound -Protocol TCP -LocalPort 443 -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 | 443 |
| Protocol | TCP |
| Service | HTTPS |
| Range | Well-known (0–1023) — binding requires root on Unix |
Frequently asked questions
What is port 443 used for?
Encrypted web traffic. The default for essentially all modern web services, and the transport for HTTP/2 and HTTP/3.
Is it safe to open port 443?
HTTP/3 runs over QUIC on UDP 443 — if you firewall only TCP, HTTP/3 silently fails and clients fall back.
How do I check if port 443 is open?
Locally, sudo lsof -i :443 on macOS or Linux, or netstat -ano | findstr :443 on Windows. From outside, nc -zv host 443 tells you whether anything answers.
Why do I get "address already in use" on port 443?
Another process is bound to it — often a previous run of your own program that did not exit cleanly. Find it with lsof -ti :443 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 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
- Port 3306 — MySQL / MariaDB
- Port 3389 — RDP
- Port 4200 — Angular dev server