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
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/httpsexpected_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
Connection refused
Connection refused
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.Connection timeout
Connection timeout
A firewall is dropping the traffic, the host is unreachable, or
timeout_ms is too low. Allow the connection and check firewall logs.Expected response not found
Expected response not found
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.VALIDATION_ERROR on the target
VALIDATION_ERROR on the target
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