Skip to main content
A port monitor opens a TCP connection to a host and port and succeeds when the connection is accepted. For some protocols it can also check the server’s greeting banner or a response.

When to use it

  • Databases: MySQL (3306), PostgreSQL (5432), MongoDB (27017), Redis (6379)
  • Mail servers: SMTP (25, 465, 587), POP3 (110, 995), IMAP (143, 993)
  • SSH (22), FTP (21) and custom TCP services
For web services on ports 80 and 443, use an HTTP monitor instead: it validates far more.
Port checks run from UptimeIO’s probe locations over the public internet, so the target must be publicly reachable. Private and internal targets (private IP ranges such as 10.x, 172.16-31.x and 192.168.x, localhost, and names ending in .local, .internal or .lan) are rejected with a VALIDATION_ERROR. Allow the connection through your firewall or security group.

Create a port monitor

1

Enter the target and port

A public hostname or IP address, and the TCP port (1 to 65535).
2

Choose a protocol

Pick the protocol of the service, or generic for a plain connection test. The protocol decides which optional checks are available.
3

Set interval and locations

The interval minimum depends on your plan (Free 300 seconds, Pro and Scale 60 seconds). Pro and Scale can choose probe locations; Free uses automatic selection.

Settings

Protocols

tcp_config.protocol accepts exactly these values:
The http and https protocols are raw TCP checks: the path text is sent as-is and the reply is searched for expected_response. No TLS handshake or HTTP parsing is done. For real HTTP checks use an HTTP monitor.

Example: connection test

Example: SMTP banner check

How a check decides

  • No send data and no expected response: succeeds as soon as the TCP connection is established.
  • Send data only: succeeds once the data is written.
  • Expected response (banner checks, or http/https expected_response): succeeds when the server’s reply contains the expected text, and fails otherwise.

Common ports

Best practices

  • Use a banner check for mail and FTP servers: an open port does not prove the service answers correctly.
  • Keep the timeout around 5-10 seconds.
  • Combine with Ping (is the host up?) and HTTP (does the application work?).
  • A port monitor proves connectivity only. The service can accept connections while authentication is broken.
  • Do not expose databases to the whole internet just to monitor them. Restrict access with a firewall where you can.

Troubleshooting

Nothing is listening on that port, the port is wrong, or the service only listens on localhost. Check with nc -zv hostname port and the service’s bind address.
A firewall is dropping the traffic, the host is unreachable, or timeout_ms is too low. Allow the connection and check firewall logs.
The server’s reply did not contain the expected text. The port may be served by a different service or a proxy. Check the banner manually with nc hostname port.
The target is private, internal, a test domain or one of UptimeIO’s own domains. Use a public hostname or IP.

Next steps

HTTP Monitoring

Monitor web services and APIs

Notifications

Configure alerts for port monitors