New: Post-Quantum Cryptography tools — is your domain quantum-safe? Check now

network

Port Scanner

Check if specific ports are open

What You Need to Know

What This Tool Does

Port Scanner checks if specific TCP/UDP ports are open, closed, or filtered on a target host, helping identify running services and potential security issues.

Why It Matters

  • Service Verification: Confirm services are accessible (web, mail, etc.)
  • Security: Identify unnecessarily open ports that could be exploited
  • Firewall Testing: Verify firewall rules are working correctly
  • Troubleshooting: Diagnose connectivity issues for specific services

How to Read the Results

  • Open: Port accepts connections - service is running
  • Closed: Port reachable but no service listening
  • Filtered: Port blocked by firewall - no response
  • Common Ports: 80 (HTTP), 443 (HTTPS), 25 (SMTP), 22 (SSH), 3306 (MySQL)

Technical Background

TCP port scanning works by initiating a three-way handshake (SYN → SYN-ACK → ACK) to verify if a service is listening. An open port responds with SYN-ACK; a closed port responds with RST (Reset); a filtered port produces no response — the firewall silently drops the probe. UDP port scanning is inherently less reliable because UDP is connectionless — no response could mean open or filtered, making detection ambiguous. Port categories defined by IANA: Well-known ports (0-1023) require root/admin to bind and include: 22 (SSH), 25 (SMTP), 53 (DNS), 80 (HTTP), 110 (POP3), 143 (IMAP), 443 (HTTPS), 465/587 (SMTP+TLS), 993 (IMAPS), 995 (POP3S). Registered ports (1024-49151) are for specific applications: 3306 (MySQL), 5432 (PostgreSQL), 6379 (Redis), 8080/8443 (HTTP/HTTPS alternate), 27017 (MongoDB). Dynamic/ephemeral ports (49152-65535) are used by OS for outbound client connections. From a security perspective, only ports serving intentionally exposed services should be open. The principle of least privilege applies: if a service is only needed internally, bind it to localhost (127.0.0.1) rather than all interfaces (0.0.0.0). Common security misconfigurations include: database ports (3306, 5432, 27017) exposed publicly without firewall rules, administrative web panels accessible on non-standard ports, RDP (3389) exposed without VPN or IP allowlisting, and development servers inadvertently left running on production hosts. Regular port scanning of your own infrastructure is a recommended security practice — it helps discover unauthorized services, shadow IT, and misconfigurations before attackers do. Regular external port scanning of your own organizations internet-facing infrastructure is a fundamental security hygiene practice. Automated tools like Shodan, Censys, and FOFA continuously scan the internet and maintain indexes of open ports and exposed services — attackers use these to find vulnerable targets. Staying aware of what your infrastructure exposes publicly allows you to remediate before attackers discover it. Security teams should maintain an asset inventory with expected open ports, run quarterly firewall audits, and use network segmentation to limit blast radius if a service is compromised. Common attack vectors include exposed RDP (3389), Telnet (23), and database ports without authentication controls. For web application firewall (WAF) and intrusion detection deployments, understanding expected vs unexpected open ports is fundamental. Security auditors use tools like nmap, masscan, and Shodan to map an organizations external attack surface. A zero-trust network architecture assumes breach and requires all services — even internal ones — to use encrypted connections with strong authentication regardless of network location. Containers and cloud deployments add complexity: Kubernetes, Docker Swarm, and cloud provider security groups must be audited regularly. Key ports to monitor: 22 (SSH) should be restricted to management IPs only, 3389 (RDP) should never be exposed publicly, and any database port should be behind a VPN.

Command-Line Usage

Run equivalent checks directly from your terminal on macOS, Windows, or Linux.

🍎 macOS

# Check if port 443 is open
nc -zv example.com 443
# Scan multiple ports
nc -zv example.com 80 443 22 25
# Using curl to test HTTP port
curl -s --connect-timeout 3 telnet://example.com:25 && echo open || echo closed

🪟 Windows (PowerShell / CMD)

# PowerShell port check
Test-NetConnection -ComputerName example.com -Port 443
# Telnet test (if enabled)
telnet example.com 443
# Check multiple ports
80,443,22,25 | ForEach-Object { Test-NetConnection example.com -Port $_ }

🐧 Linux

# netcat port check
nc -zv example.com 443
# nmap scan (install: sudo apt install nmap)
nmap -sV -p 80,443,22,25 example.com
# Quick TCP test with bash
timeout 3 bash -c "</dev/tcp/example.com/443" && echo open || echo closed

Input Parameters

Enter a domain name or IP address

Enter a port number (1-65535)

Tool Status: Ready

Developer

API & CLI Usage

API Endpoint

POST /api/tools/port-check

Platform-Specific Examples

Bash (curl)
curl -X POST https://epcybertools.com/api/tools/port-check \
  -H "Content-Type: application/json" \
  -d '{"host":"google.com","port":443}'
wget
wget --method=POST \
  --header="Content-Type: application/json" \
  --body-data='{"host":"google.com","port":443}' \
  -O - https://epcybertools.com/api/tools/port-check
HTTPie (apt install httpie)
http POST https://epcybertools.com/api/tools/port-check \
  host="google.com" \
  port="443"
View full API documentation →