What does the port checker do?
Reviewed by Prabath Thalangama · Last updated
The port checker tries to open a TCP connection to a host on each port you choose and reports which ports accept the connection from the public internet. By default it tests 12 common service ports, from SSH and SMTP to HTTPS, MySQL and RDP, and it warns when a risky service is exposed.
The default ports are 21 (FTP), 22 (SSH), 23 (Telnet), 25 (SMTP), 53 (DNS), 80 (HTTP), 110 (POP3), 143 (IMAP), 443 (HTTPS), 3306 (MySQL), 3389 (RDP) and 8080. You can test up to 25 ports of your choice in one scan.
A port shows as open when the TCP handshake completes. Anything else, whether the host refused the connection, a firewall dropped it, or the attempt timed out, shows as not open. The test is TCP only; UDP services such as DNS over UDP or WireGuard are not tested.
How do I check if a port is open?
- Enter the public host name or IP address of the server. Private addresses (10.x, 192.168.x and so on) cannot be tested from the internet.
- Keep the default ports or enter the ones you want to test.
- Compare the open ports with the services you intend to expose, and close the rest.
How to read the results
- Port and service
- The port number and the service normally found on it.
- Open / not open
- Whether a TCP connection succeeded from our server.
- Findings
- A warning when Telnet (23), MySQL (3306) or RDP (3389) is reachable from the internet. These services are frequent targets for brute-force attacks and should sit behind a VPN or firewall allow-list.
Why is my port not open?
The service only listens on localhost
A service bound to 127.0.0.1 cannot be reached from outside. Check the listening address on the server.
sudo ss -tlnp | grep ':443'
# 127.0.0.1:443 = local only, 0.0.0.0:443 or [::]:443 = all interfacesA firewall or security group blocks it
Allow the port in the host firewall and in any cloud security group or network ACL in front of the server.
# firewalld
sudo firewall-cmd --permanent --add-service=https && sudo firewall-cmd --reload
# ufw
sudo ufw allow 443/tcpPort 25 is blocked by your provider
Most residential ISPs and many cloud providers block outbound and sometimes inbound port 25 to stop spam. Mail servers need a provider that allows it, or a relay service.
NAT or port forwarding is missing
A server behind a home or office router needs a port-forwarding rule from the public IP to the server's private address.
Examples and command-line equivalents
Test a port from the command line
nc -zv example.com 443
# Bash without netcat
timeout 3 bash -c '</dev/tcp/example.com/443' && echo open || echo not openScan several ports (only hosts you own or may test)
nmap -Pn -p 22,80,443,3306 example.comFrequently asked questions
Why does a port show open here but not from my laptop?
Your own network may block outbound traffic on that port, or a VPN may route you differently. This test shows what the public internet can reach.
Is it legal to scan ports?
Only test hosts you own or have permission to test. Checking a handful of ports on your own server is routine; scanning other people's networks may break their terms or local law.
Why is port 3306 flagged as risky?
Database servers are constantly probed for weak passwords and known vulnerabilities. Keep MySQL reachable only from your application servers, or over an SSH tunnel or VPN.
Further reading
- Finding what is using a port on Linux
- SSH server hardening
- ss and conntrack for Connection Debugging
- firewalld: Zones and Rich Rules
- IANA service name and port number registry
- Run a full Super Scan to check DNS, email, website and TLS for a domain at once.