How to Check if Ports are Open
Quick Answer
To check if a port is open: Use ProbeOps Port Checker at probeops.com/tools/port-checker, enter the hostname and port number, then run the check. A port is "open" if a service is listening and accepting connections. "Closed" means nothing is listening. "Filtered" means a firewall is blocking access. Common ports: HTTP (80), HTTPS (443), SSH (22), FTP (21), MySQL (3306), PostgreSQL (5432), Redis (6379).
When to Check if Ports are Open
- After configuring a new server to verify services are accessible
- When troubleshooting "connection refused" or timeout errors
- To verify firewall rules are working as expected
- Before deploying an application to ensure required ports are open
- When diagnosing why a website, database, or API is unreachable
Step-by-Step Guide
Step 1: Identify the Port to Check
Determine which port your service uses. Common ports: Web servers use 80 (HTTP) and 443 (HTTPS). SSH uses 22. Databases: MySQL 3306, PostgreSQL 5432, MongoDB 27017. Email: SMTP 25/587, IMAP 993, POP3 995.
Step 2: Enter Host and Port
In the ProbeOps Port Checker, enter the server's hostname (example.com) or IP address, and the port number. You can check multiple ports separated by commas (e.g., 80,443,22).
Step 3: Select Check Locations
Choose geographic regions to test from. Testing from multiple locations helps identify if a port is blocked only for certain networks or regions (geo-blocking, regional firewall rules).
Step 4: Interpret Results
Open: The port accepted a connection - service is running and accessible. Closed: Connection was refused - no service listening on that port. Filtered: No response received - likely blocked by a firewall.
Step 5: Troubleshoot Closed/Filtered Ports
If a port should be open but isn't: Check if the service is running (systemctl status). Verify firewall rules (iptables -L, ufw status). Check security groups in cloud consoles. Ensure the service is bound to 0.0.0.0 not just 127.0.0.1.
Example: Checking Multiple Ports
Input
Host: example.com, Ports: 22, 80, 443, 3306
Output
Port 22 (SSH): Open - Connection accepted in 45ms. Port 80 (HTTP): Open - Connection accepted in 32ms. Port 443 (HTTPS): Open - Connection accepted in 31ms. Port 3306 (MySQL): Filtered - No response (firewall blocking).
Common Port Numbers Reference
Web: 80 (HTTP), 443 (HTTPS). Email: 25 (SMTP), 587 (SMTP TLS), 993 (IMAP SSL), 995 (POP3 SSL). Remote Access: 22 (SSH), 3389 (RDP). Databases: 3306 (MySQL), 5432 (PostgreSQL), 27017 (MongoDB), 6379 (Redis). Other: 21 (FTP), 53 (DNS), 8080 (Alt HTTP), 8443 (Alt HTTPS).
Common Problems and Solutions
Problem: Port shows "filtered" - firewall is blocking
Fix: Check server firewall (iptables, ufw, firewalld). For cloud servers, check security groups (AWS), firewall rules (GCP), or NSGs (Azure). Add an allow rule for the required port.
Problem: Port shows "closed" - service not running
Fix: Start the service (systemctl start servicename). Verify it's listening on the correct port (netstat -tlnp or ss -tlnp). Check service logs for startup errors.
Problem: Port open locally but closed externally
Fix: The service may be bound to 127.0.0.1 (localhost only). Configure it to bind to 0.0.0.0 or the server's public IP to accept external connections.
Related Tools
- Port Checker - Test port accessibility from multiple regions
- Is It Down Checker - Verify website availability
- Latency Test - Measure connection times