Port 445 — SMB
TCP well-known
What runs on port 445
Windows file and printer sharing.
SMB file and printer sharing. This port should never be reachable from the internet under any circumstances — it is how WannaCry and NotPetya spread, and exposed SMB remains one of the most reliably exploited services in existence. Many ISPs block it outbound for their customers' own protection. Inside a network it is unavoidable and fine; crossing a perimeter it is an incident.
Security considerations
Should never be reachable from the internet. This is the port WannaCry and NotPetya spread over.
Checking whether something is listening
# Linux / macOS — what is bound to the port
sudo lsof -i :445
sudo ss -lntp | grep :445
# Windows
netstat -ano | findstr :445
Get-NetTCPConnection -LocalPort 445
# is it reachable from outside?
nc -zv example.com 445
curl -v telnet://example.com:445
Freeing the port
# find the process, then stop it
sudo lsof -ti :445 | xargs kill # Linux / macOS
netstat -ano | findstr :445 # note the PID, then:
taskkill /PID <pid> /F # Windows
Should this port be open to the internet?
No. Port 445 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 445
There is no blanket-allow rule on this page, because there is no case for one. SMB on port 445 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 445 proto tcp
sudo ufw deny 445/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=445 protocol=tcp accept'
sudo firewall-cmd --reload
# iptables, if you are still there
sudo iptables -A INPUT -p tcp --dport 445 -s 10.0.0.0/8 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 445 -j DROP
# Windows
New-NetFirewallRule -DisplayName "SMB 445" -Direction Inbound -Protocol TCP -LocalPort 445 -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 | 445 |
| Protocol | TCP |
| Service | SMB |
| Range | Well-known (0–1023) — binding requires root on Unix |
Frequently asked questions
What is port 445 used for?
Windows file and printer sharing.
Is it safe to open port 445?
Should never be reachable from the internet. This is the port WannaCry and NotPetya spread over.
How do I check if port 445 is open?
Locally, sudo lsof -i :445 on macOS or Linux, or netstat -ano | findstr :445 on Windows. From outside, nc -zv host 445 tells you whether anything answers.
Why do I get "address already in use" on port 445?
Another process is bound to it — often a previous run of your own program that did not exit cleanly. Find it with lsof -ti :445 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 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
- Port 5000 — Flask / dev server