Port Checker & Port Scanner

Check if a port is open on your own IP address or any server, test port forwarding and scan up to 30 ports at once. Every port comes back open, closed or filtered with what that means, the time, the service's banner and where it was checked from.

Checked over TCP from Cloudflare's edge nearest you, and from our own server in Mumbai for port 25 and sites on Cloudflare · IPv4 · nothing is stored

How do I check if a port is open?

Enter the address and the port, then select Check. The port checker opens a TCP connection to that port from the internet, the way a visitor or a game client would, and reports what came back: an accepted connection (open), a refusal (closed) or nothing at all (filtered).

Testing port forwarding? Your public IP address is already filled in: start your server, check its port, and the result says what to fix if it isn't open. For a server, type its hostname and pick a preset to scan the usual ports in one go.

Port checker result: port 25565 open on a home IP address, the TCP handshake and the list of checked ports with their statesPort checker result: port 25565 open on a home IP address, the TCP handshake and the list of checked ports with their statesThe verdictThe port's state in one line, and what it means for the server or the forwarding rule.The handshakeWhat our checker sent and what came back: an accepted connection, a refusal or silence, with the time.Where it was checked fromCloudflare's edge nearest you, or our own server for port 25 and for sites on Cloudflare.Every port of a scanEach port with its service, the banner it sent and its state, and the risky ones flagged.
A port forwarding test of a Minecraft server: the state, the TCP handshake behind it and where it was checked from. Select a number to see what each part shows.

Open, closed or filtered: what does the result mean?

A TCP connection starts with a handshake: our checker sends a SYN, and what comes back decides the state. Port checkers that call a timeout "closed" hide the one difference that tells you where the problem is.

How the check went

TCP 25565 · Minecraft Java
  1. SYNto 203.0.113.7:255650 ms
  2. SYN-ACKthe port accepted the connection38 ms
  3. ACKconnection open38 ms
  4. …nothing said in 1.5 s: the service waits for the client to speak first
  5. FINclosed by us
OpenSYN → SYN-ACK

A program is listening on the port and accepted the connection. Nothing between the internet and the server blocks it.

Port forwarding works. If players still can't join, check the game's own settings or the address they use.

How the check went

TCP 32400 · Plex
  1. SYNto 203.0.113.7:324000 ms
  2. RSTrefused: nothing listens, or a firewall there is set to reject41 ms
ClosedSYN → RST

The address answered and refused the connection: nothing listens on the port, or a firewall there is set to reject. Either way the address itself is reachable.

The router passed the connection on (or answered itself) but no program took it: start the server, and check the rule's local address and port.

How the check went

TCP 25565 · Minecraft Java
  1. SYNto 203.0.113.7:255650 ms
  2. …no SYN-ACK, no RST within 4.0 s4.0 s
FilteredSYN → no reply

No answer in 4 seconds. A firewall dropped the connection without a word, or nothing on the way forwards it.

The usual case of a missing forwarding rule, a blocked port in the device's firewall, CGNAT or a provider that blocks the port.

Unreachable means the network reported no route to the address. Not checked means our second server couldn't run the check this time; it is never counted as closed.

How do I check if my port forwarding is working?

Check from outside your network, with the server running: open on your public IP and the forwarded port means the rule, the firewall and the server all work. A check from inside your own network can fail even when everything is right, because many routers don't loop traffic back to themselves.

  1. 1

    Start the server

    The game server, Plex or camera must be running: a port with nothing listening is closed, even with a perfect rule.

  2. 2

    Note the device's local address

    Find it in the device's network settings (for example 192.168.1.20) and reserve it in the router, so it doesn't change.

  3. 3

    Add the forwarding rule

    In the router: external port, protocol TCP (or TCP and UDP), the device's local address and its port.

  4. 4

    Allow it in the device's firewall

    Windows asks the first time a server starts; otherwise add an inbound rule for the port.

  5. 5

    Check your public IP from here

    Select **Check** with your IP filled in. Open means it works from anywhere on the internet.

The path a connection takes, and where it can stop
Internetour checker
1
2Your routerPublic address · 203.0.113.7Rule 25565 → 192.168.1.20:25565
3Your device192.168.1.20Server on port 25565
  1. 1CGNAT or a blocked port at the providershows as filtered
  2. 2No rule, wrong local address, double NATshows as filtered, sometimes closed
  3. 3Firewall, server stopped or listening on 127.0.0.1shows as closed or filtered

Why is my port closed after port forwarding?

Find the line that matches what you see. The state is the clue: closed means the connection reached something that refused it, filtered means it got lost on the way.

Pick what you see

ClosedClosed, and the server is running

Likely cause

The server listens on 127.0.0.1 only, or the rule points to another local address or port.

What to do

Set the server to listen on 0.0.0.0 (all addresses) and check the rule against the device's current address.

ClosedClosed, server off

Likely cause

Nothing is listening: the router forwards the connection and the device refuses it.

What to do

Start the server, then check again.

FilteredFiltered, rule in place

Likely cause

The device's firewall drops the connection, or the rule is for UDP only.

What to do

Allow the port in the firewall (Windows: an inbound rule) and set the rule to TCP or both.

FilteredFiltered, router's WAN address starts with 100.64–100.127

Likely cause

CGNAT: your provider shares one public address among customers, so your router can't be reached.

What to do

Ask for a public IPv4 address, use IPv6, or a tunnel service.

FilteredFiltered, router's WAN address is 192.168.x.x or 10.x.x.x

Likely cause

Double NAT: a second router (often the provider's modem) sits in front of yours.

What to do

Forward the port on that device too, or put it in bridge mode.

FilteredFiltered on 25, 80 or 445 only

Likely cause

Your provider blocks the port for home connections.

What to do

Forward a different external port (8080, 2525) to the same server.

OpenOpen here, but it fails from inside your network

Likely cause

Your router doesn't support NAT loopback (hairpinning), so a device inside can't reach your public address.

What to do

Inside your network, connect to the device's local address; the internet sees the port open.

Am I behind CGNAT or double NAT?

Compare two addresses: the WAN address on your router's status page and the public address a website sees (your IP above). If they are the same, your router faces the internet directly and port forwarding can work.

If the router's address is in 100.64.0.0/10, your provider uses carrier-grade NAT (CGNAT): many customers share one public address and no port on it belongs to you. If it's a private address, another router sits in front of yours (double NAT). The check under a port's result compares the two for you.

Router's WAN addressWhat it meansWhat to do
Same as your public IPA public address: the internet reaches your router.Port forwarding can work: check the rule, firewall and server.
100.64.0.0 – 100.127.255.255CGNAT: shared address space for providers (RFC 6598).Ask for a public IPv4 address, use IPv6 or a tunnel.
10.x, 172.16–31.x, 192.168.xDouble NAT: a private address (RFC 1918) behind another router.Forward on the first router too, or set it to bridge mode.
Another public addressTraffic leaves through other equipment or a VPN.Find what's in front of the router; turn off the VPN.
Where a connection from the internet stops
  1. Public address
    Internet
    —no NAT
    ✓WAN 203.0.113.7
    192.168.1.20

    Reaches your router: its forwarding rule decides.

  2. CGNAT
    Internet
    ✕203.0.113.7shared by many customers
    WAN 100.64.12.5
    192.168.1.20

    Stops at your provider: the shared address isn't yours to forward.

  3. Double NAT
    Internet
    ✕203.0.113.7the provider's router
    WAN 192.168.0.2
    192.168.1.20

    Stops at the first router unless it forwards the port too.

Which ports do internet providers block?

Many home internet providers block a few ports, mostly to stop spam and worms, and some give you no incoming IPv4 at all. The list below is from each provider's own documentation (or its regulator's); others block ports without publishing it, so a port that's filtered only on your connection is worth asking about.

ProviderBlocked portsNotes
Xfinity (Comcast) (US)25135–13916144552019000675471080Both directions, except 0, 67, 547 and 1080: blocked only toward you. Ports 80 and 443 aren't blocked.
AT&T (US)250191231351394455201900347975476100149152–51020Port 25 is blocked outgoing on dynamic addresses, and some ports from 49152 to 51020 incoming only; the rest both ways.
Verizon Fios (US)25Outgoing only. The only port Verizon names; it publishes no full list.
Spectrum (US)01719135–1394455205931433143419006462364680Port 25 isn't on its list.
Cox (US)2580135–13914344514331434190080, 143, 1433 and 1434 incoming only, so a home web server on port 80 can't be reached: use another external port.
Virgin Media (UK)135137138139445TCP and UDP, no opt-out. Port 25 isn't on its list.
Hyperoptic (UK)7547Reserved on the Hyperhub router, so it can't be forwarded.
Starlink (worldwide)25445CGNAT25 and 445 outgoing. Its IPv4 is CGNAT with no incoming connections, and its own routers can't forward ports; a public IPv4 comes only with Priority plans.
Deutsche Glasfaser (DE)CGNATIPv6 plus a shared private IPv4: no incoming IPv4, so forward on IPv6 instead.
Free (FR)IPv4The default IPv4 can be shared, with only part of its ports; ask for a full-stack fixed IPv4 in the Freebox subscriber area to get every port.
Netia (PL)25443456725 only without a static IP; Netia's routers keep 443 and 4567 for updates and remote support, so you can't forward them.
OCN, BIGLOBE, So-net, au, J:COM (JP)25Outgoing, except to the provider's own mail server (OP25B), with the regulator's backing; send through port 587 or 465.
Every home broadband provider (BR)25Outgoing on home and dynamic-IP lines, under a 2011 agreement with Anatel and CGI.br; the mail-submission ports stay open.
AWS, Google Cloud, Azure, Oracle Cloud (cloud)25Outgoing, by default. AWS and Oracle lift it on request, Google for projects it rates low-risk; 587 stays open.
DigitalOcean, Hetzner Cloud (cloud)25465587Outgoing. DigitalOcean blocks all three; Hetzner blocks 25 and 465 and unblocks them on request after the first paid month.

Port 25 is the port providers and clouds block most often, for outgoing mail: send mail through port 587 (or 465) with your mail provider instead.

Common ports and what runs on them

Port numbers from 0 to 1023 are the well-known system ports, 1024 to 49151 are registered to services, and 49152 to 65535 are left for temporary connections. These are the ones people check most.

PortServiceTransportWhat it isIf open to everyone
21FTPTCPFile transfers, passwords in clear textRestrict
22SSHTCPSecure shell logins and SFTP file transfersRestrict
23TelnetTCPOld remote login, passwords in clear textHigh risk
25SMTPTCPMail between serversNormal
53DNSTCP and UDPDNS queriesNormal
80HTTPTCPWebsites over plain HTTPNormal
110POP3TCPCollecting mail (POP3)Normal
143IMAPTCPMail folders (IMAP)Normal
443HTTPSTCP and UDPWebsites over HTTPSNormal
445SMBTCPWindows file sharing (SMB)High risk
587SMTP submissionTCPSending mail from an app (submission)Normal
993IMAPSTCPIMAP over TLSNormal
3306MySQLTCPMySQL and MariaDB databasesHigh risk
3389RDPTCP and UDPWindows Remote DesktopHigh risk
5432PostgreSQLTCPPostgreSQL databasesHigh risk
5900VNCTCPVNC remote screenHigh risk
6379RedisTCPRedis databasesHigh risk
8080HTTP altTCPWeb servers and proxies on an alternative portNormal
8443HTTPS altTCPHTTPS on an alternative portNormal
25565Minecraft JavaTCPMinecraft Java Edition serversNormal
19132Minecraft BedrockTCP and UDPMinecraft Bedrock Edition serversNormal
32400PlexTCPPlex Media ServerNormal
27017MongoDBTCPMongoDB databasesHigh risk
51820WireGuardUDPWireGuard VPNNormal

Which open ports are a security risk?

An open port is only a risk when the service behind it shouldn't face everyone. Web and mail ports are meant to be open; logins, databases and file sharing are not. These are the tiers this checker flags.

High risk if open to everyone

High risk

  • 23Telnet
  • 135Windows RPC
  • 137NetBIOS name
  • 138NetBIOS datagram
  • 139NetBIOS session
  • 445SMB
  • 1433MS SQL
  • 1521Oracle DB
  • 2323Telnet (alt)
  • 2375Docker API
  • 2379etcd
  • 3306MySQL
  • 3389RDP
  • 5432PostgreSQL
  • 5900VNC
  • 5984CouchDB
  • 6379Redis
  • 9200Elasticsearch
  • 10250Kubelet API
  • 11211Memcached
  • 27017MongoDB

Attacked around the clock and a common way into networks: Remote Desktop, SMB file sharing, Telnet, VNC, databases and the Docker API. Close them to the internet or allow only your own addresses.

Restrict when you can

Restrict

  • 21FTP
  • 22SSH
  • 69TFTP
  • 161SNMP
  • 554RTSP
  • 1080SOCKS proxy
  • 1883MQTT
  • 1900SSDP / UPnP
  • 2082cPanel
  • 2083cPanel SSL
  • 2086WHM
  • 2087WHM SSL
  • 2376Docker API (TLS)
  • 3000Dev server / Grafana
  • 3128Squid proxy
  • 5000AirPlay / Flask
  • 5985WinRM
  • 5986WinRM (HTTPS)
  • 6443Kubernetes API
  • 8000HTTP alt / Hikvision
  • 9000Reolink / HTTP alt
  • 10000Webmin
  • 25575Minecraft RCON
  • 28016Rust RCON
  • 37777Dahua

Fine when you mean to run them, but better limited to your addresses or a VPN: SSH, FTP, admin panels, proxies, MQTT and development servers.

Meant to be open

Normal

  • 25SMTP
  • 53DNS
  • 80HTTP
  • 110POP3
  • 143IMAP
  • 443HTTPS
  • 587SMTP submission
  • 993IMAPS
  • 8080HTTP alt
  • 8443HTTPS alt
  • 25565Minecraft Java
  • 19132Minecraft Bedrock
  • 32400Plex

Web (80, 443), mail servers (25, 587, 993) and game servers on their own ports: open is normal when you run the service.

Can you check a UDP port online?

Not reliably. UDP has no handshake: a closed UDP port may answer with an error or say nothing, and an open one says nothing until it gets a message in its own protocol. A checker can only report "open or filtered" for silence, which is why this tool checks TCP and says so.

Services that use UDP only, such as WireGuard (usually 51820), TeamSpeak voice (9987) and most game traffic, can be running while every TCP checker shows them closed. Test them with the game or app itself from outside your network, or check that the forwarding rule includes UDP.

UDP only, tagged in a scan:
  • 69TFTP
  • 123NTP
  • 137NetBIOS name
  • 138NetBIOS datagram
  • 161SNMP
  • 500IPsec IKE
  • 514Syslog
  • 1194OpenVPN
  • 1434SQL Browser
  • 1900SSDP / UPnP
  • 4500IPsec NAT-T
  • 5353mDNS / Bonjour
  • 8211Palworld
  • 9987TeamSpeak voice
  • 28015Rust
  • 37778Dahua (UDP)
  • 51820WireGuard
What comes back: TCP and UDP
TCPUDPOpenSYN →← SYN-ACKdatagram →… no replyClosedSYN →← RSTdatagram →← ICMP error or nothingFilteredSYN →… no replydatagram →… no reply

On UDP, open and filtered both stay silent: a checker can only say "open or filtered".

How to check open ports on your own computer

An online checker sees what the internet sees. To see what's listening on the computer itself, or to test a port from inside your network, use the commands that come with your system.

To findWindows (PowerShell)macOSLinux
What's listeningGet-NetTCPConnection -State Listenlsof -nP -iTCP -sTCP:LISTENss -ltnp
Which program uses a portnetstat -ano | findstr :25565lsof -nP -i :25565ss -ltnp 'sport = :25565'
Test a port on another hostTest-NetConnection example.com -Port 443nc -vz example.com 443nc -vz example.com 443

On Linux, ss needs sudo to show other users' programs; on Windows, netstat -ano gives the process ID, and Task Manager's Details tab names it.

Port checker API

Free, with CORS for browsers: GET one port, or POST up to 30 and read each result as a line of NDJSON the moment it lands. The answers keep the fields of our older API and add where each port was checked from and why it got its state.

/api/port-check
$ curl "https://dnsrobot.net/api/port-check?host=dnsrobot.net&port=443"
{
  "host": "dnsrobot.net", "ip": "104.21.0.129", "service": "HTTPS",
  "port": 443, "status": "open", "ms": 52, "via": "probe", "reason": "connected",
  "cloudflare": true, "network": { "asn": 13335, "name": "Cloudflare", … }, …
}

$ curl -X POST https://dnsrobot.net/api/port-check \
    -H "Content-Type: application/json" -d '{"host": "dnsrobot.net", "ports": [80, 443, 22]}'
{"type":"start","host":"dnsrobot.net","ip":"104.21.0.129","total":3,…}
{"type":"port","service":"HTTPS","port":443,"status":"open","ms":52,"via":"probe",…}
{"type":"port","service":"SSH","port":22,"status":"filtered","ms":4003,…}
{"type":"done","ms":4120}

Port Checker FAQ

What does a port checker do?

A port checker, or port tester, tries to open a connection to a port on an address from the internet and tells you what happened: the connection was accepted (open), refused (closed) or got no answer (filtered). It's the quickest way to test port forwarding for a game or media server, or to see which services on your server anyone can reach.

Is my port open if the checker says filtered?

No: filtered means nothing answered within 4 seconds, so the internet can't reach a program on that port. Unlike closed, where the address actively refused, filtered means a firewall dropped the connection or nothing on the way forwards it. For port forwarding that usually points to the rule, the device's firewall, CGNAT or a port your provider blocks.

Why is my port forwarding not working?

Most often the server isn't running or listens only on 127.0.0.1, the rule points to an old local address, or the device's firewall drops the connection. If the router's WAN address starts with 100.64 to 100.127 you're behind CGNAT, and if it's private, behind double NAT. Check your public IP here: the state tells you which of these it is.

Is this an online port scanner like Nmap?

It's a lighter, safer online port scanner: it checks up to 30 TCP ports per run with a normal connection, the way any client connects, and reads the service's banner. Nmap can scan thousands of ports, UDP and operating systems, but needs installing and permission to scan. Use this one for your own IP and servers.

Which ports are open on my network?

Only the ones your router forwards, or opens through UPnP, can be reached from the internet. Check your public IP here with the Common preset to see them from outside. To see what's listening on a computer itself, run Get-NetTCPConnection -State Listen in PowerShell, lsof on a Mac or ss -ltnp on Linux.

Is it safe to have open ports?

An open port is safe when the service behind it is meant to be public and kept up to date, like a website on 443 or a game server. It's risky when it exposes a login or a database: Remote Desktop (3389), SMB (445), Telnet, VNC, MySQL, Redis or the Docker API. This checker flags those when it finds them open.

Why is port 25 checked from a different server?

Cloudflare Workers, where this checker runs, can't open connections to port 25. Port 25 is checked from our own server in Mumbai instead, and the result says so. Many home providers and clouds block outgoing port 25 too, which is why mail apps send through 587.

Why does a site on Cloudflare show ports 8080 and 8443 open?

Because the address is Cloudflare's, not the website's server: Cloudflare's edge accepts connections on 13 web ports (80, 443, 8080, 8443, 2052, 2053 and others) for every site it proxies, and drops the rest. A port check of such a site tests Cloudflare. The server behind it is only reachable through Cloudflare, or Spectrum for other ports.

Can you check IPv6 ports?

Not yet: neither Cloudflare Workers nor our second server can reach IPv6 addresses today, so IPv6 input is refused rather than reported closed. With IPv6 there's no NAT, so forwarding isn't needed, but the router's firewall usually blocks connections from outside until you allow the port for that device.

How do I check if a port is in use on my computer?

On Windows, run netstat -ano | findstr :PORT in a terminal: the last number is the process ID, which Task Manager's Details tab names. On a Mac, run lsof -nP -i :PORT; on Linux, ss -ltnp. A port in use locally isn't necessarily reachable from the internet: check it here for that.

Which ports does Minecraft use?

Minecraft Java Edition servers listen on TCP port 25565 by default, which this checker can test. Bedrock Edition uses port 19132: current servers take a TCP handshake there and play over UDP, older ones use UDP only, so forward 19132 as TCP and UDP and test by joining from outside. Both ports can be changed in the server's settings.

Is this open port checker free, and is it legal to use?

It's free with no account: 60 ports a minute per network, and nothing about your checks is stored. Checking your own IP, router and servers is fine. Scanning systems you don't own or manage can break their terms or the law where you live, so only check what you have permission to test.

Missing something?Suggest a feature or a new tool