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

Guides/How to Check if Ports are Open

How to Check if Ports are Open

Test whether TCP ports are accessible on your server, verify firewall rules are working correctly, and troubleshoot connection issues.

Quick Answer

To check if a port is open: Enter the hostname and port number in a port checker tool. Results show 'Open' (service accepting connections), 'Closed' (no service listening), or 'Filtered' (firewall blocking). Common ports: HTTP=80, HTTPS=443, SSH=22, MySQL=3306. If a port should be open but isn't, check that the service is running and firewall rules allow the connection.

When to Use This

  • After configuring a new server to verify services are accessible
  • When troubleshooting "connection refused" or timeout errors
  • To verify firewall rules are correctly configured
  • Before deploying applications to ensure required ports are open
  • When diagnosing why a website, database, or API is unreachable

Step-by-Step Guide

1

Identify the Port Number

Determine which port your service uses. Web servers: 80 (HTTP), 443 (HTTPS). SSH: 22. Databases: MySQL 3306, PostgreSQL 5432, MongoDB 27017. Email: SMTP 587, IMAP 993.

2

Enter Host and Port

In the Port Checker, enter the server hostname (example.com) or IP address and the port number. You can check multiple ports: 80,443,22

3

Select Check Locations

Choose geographic regions to test from. This helps identify if ports are blocked for specific regions or if there's a global firewall issue.

4

Interpret the Results

Open = service is running and accepting connections. Closed = no service listening. Filtered = firewall blocking (no response).

Open: Connection accepted (service running) Closed: Connection refused (nothing listening) Filtered: Timeout (firewall blocking)
5

Troubleshoot if Needed

For closed ports: start the service. For filtered ports: check firewall rules, security groups, and ensure the service binds to 0.0.0.0 (not just 127.0.0.1).

Example: Checking Web Server Ports

Input

Host: example.com | Ports: 22, 80, 443, 3306

Output

Port 22 (SSH): Open 45ms ✓ SSH accessible Port 80 (HTTP): Open 32ms ✓ Web server running Port 443 (HTTPS): Open 31ms ✓ SSL configured Port 3306 (MySQL): Filtered -- ✗ Blocked by firewall Summary: Web services accessible, database correctly firewalled from public access.

Common Pitfalls & Quick Fixes

Problem: Port shows "filtered" when it should be open

Fix: Check server firewall (ufw status, iptables -L). For cloud servers, verify security groups (AWS), firewall rules (GCP), or NSGs (Azure) allow inbound traffic on that port.

Problem: Port shows "closed" but service is installed

Fix: The service isn't running. Start it with: systemctl start <service>. Check if it's listening: ss -tlnp | grep <port>. Review service logs for startup errors.

Problem: Port is open locally but closed when tested externally

Fix: Service is bound to 127.0.0.1 (localhost only). Edit the config to bind to 0.0.0.0 or the server's public IP, then restart the service.

Try it yourself

Use our free Port Checker to run these checks from 6 global locations.

Open Port Checker
View API Docs