TCP & UDP port monitoring

Watch every port — even the ones behind your firewall.

Most monitoring tools only reach public-facing services. CuliPulse can run an agent inside your network and watch every port that listens there — databases, message brokers, internal APIs, game servers — with no need to poke holes in your firewall or expose anything to the internet. Plus first-class UDP: send a payload, match the reply, done.

Start free See the preset library
No credit card · free plan forever
redis-internal:6379 · TCP · 2ms
send PING · expect +PONG
upchecked from agent "prod-1" · 15s interval
Reached from inside your private network — nothing exposed, nothing opened.
Send a string, match the reply

Check what your service actually responds — not just that the port is open.

A TCP check that only confirms the port accepts a connection misses half the picture. With banner checks you send a real payload and assert on the reply — so you know the service is not just listening but actually healthy and talking the right protocol.

SSH banner check
send
(connect only)
expect banner contains
OpenSSH
Reply: SSH-2.0-OpenSSH_9.3match
Redis health check
send
PING
expect reply contains
+PONG
Reply: +PONGmatch
One-click presets

Common services, already configured.

Pick a service and the right port, payload and expected reply are filled in for you. You can tweak anything — or leave it as-is and start monitoring in seconds.

Redis · 6379 SSH · 22 SMTP · 25 POP3 · 110 IMAP · 143 Postgres · 5432 DNS · 53 NTP · 123

TCP — connection + banner

Confirm the port accepts connections, and optionally send a string and assert the response. Works for any TCP service — databases, brokers, proxies, SMTP servers.

host:portsend PING\r\nexpect +PONG

Databases, brokers & private ports

Check that any TCP port is open and accepting connections — PostgreSQL, MySQL, MongoDB, Redis, RDP, message brokers. From CuliPulse's network for public hosts, or from an agent on your network for internal ones.

:5432:3306:6379:27017

Custom payloads

Not in the preset list? Write your own send string and expected response — plain text or hex-encoded bytes for binary protocols.

custom sendcustom expectregex match
First-class UDP

DNS, NTP, game servers — connectionless checks most monitors don't do.

UDP has no handshake, so most monitoring tools skip it. CuliPulse's agent does the work: it sends your payload, waits for a reply, and checks what came back. Internal DNS resolvers, NTP servers, and game backends are all fair game — even the ones that never touch the public internet.

Send and match

Craft a payload, fire it at the UDP port, and assert the response — exact match, contains, or a regular expression. If nothing comes back in time, it's down.

DNS queryNTP requestcustom bytes

Agent reach inside your network

UDP monitors always run through an agent. That's not a limitation — it's the only way to reach a private DNS server or an NTP daemon that isn't exposed to the public internet. Drop an agent on the same network and you can watch anything.

no public exposureprivate DNSinternal NTP
CuliPulse
🔴 dns-internal:53 (UDP) is down
No reply within 5 000ms · confirmed from agent "prod-1"
Last seen up 3 minutes ago
Fewer false alarms

Confirmed from several checkpoints before you're paged.

Add more than one checkpoint — a mix of CuliPulse's network and agents on your own infrastructure — and we wait for several of them to agree before calling something down. A momentary glitch on one path won't wake you up at 3am.

postgres-primary:5432 · 2 of 3 agree
agent prod-1 timeout
agent prod-2 refused
CuliPulse network open
2 of 3 checkpoints agree it's down → alert sent. A single network hiccup never pages you.
CuliPulse
🔴 postgres-primary:5432 is down
Confirmed from 2 checkpoints · 1m ago
Connection refused

Watch your first port in 2 minutes.

Add a TCP or UDP monitor, pick a preset or write your own banner check, and get alerts you can trust — even for services that never touch the public internet.

Start free