undownable

How to monitor a Synology NAS from outside your network

Updated Aug 19, 2026

A NAS is the one box in a homelab that everything else quietly depends on. When it goes, half your containers start failing in ways that look unrelated, and DSM cannot email you about it.

What DSM will not tell you

DSM notifications are genuinely good. They will tell you about a failing drive, a full volume, a finished backup. They tell you nothing once DSM stops running or the NAS loses its network path, which is most of the outages that actually cost you something.

That last one is the sneakiest, and it is why a heartbeat belongs on your backup job as well as on the NAS.

What to check

DSM 7 serves its interface on port 5000 for HTTP and 5001 for HTTPS. Many people move those, so confirm yours first. SSH, when enabled, sits on 22 unless you moved it, and Synology suggests you do.

DSM publishes no purpose built health endpoint, so the honest option is the API discovery call. Synology states in its Login Web API guide that SYNO.API.Info is the only API with a constant URL and that it does not need authorization. It returns JSON listing every installed API with a success flag:

curl -fsSk 'https://nas.example.com:5001/webapi/query.cgi?api=SYNO.API.Info&version=1&method=query&query=all'
# {"data":{"SYNO.API.Auth":{"path":"auth.cgi","minVersion":1,"maxVersion":7}, ... },"success":true}

That beats a bare port probe. A JSON check asserting success is true proves DSM is serving real API responses, not merely accepting a TCP connection. For keyword matching, SYNO.API.Auth is a stable string.

Target Auth What it proves
query.cgi with SYNO.API.Info None, documented as needing no authorization DSM is serving real API responses
TCP 5000 or 5001 None DSM is listening and the path works
ICMP ping None The box is on the network at all
A reverse proxied app on the NAS Depends The path your users actually take

Authenticated calls are possible: DSM 7 routes logins through /webapi/entry.cgi with the SYNO.API.Auth API, returning a session id to reuse. That is more moving parts than a monitor needs. Save it for a dashboard.

DSM presents an untrusted certificate until you install a real one, so an SSL check against a stock install fails chain validation. Install a proper one and that check becomes a useful expiry alarm instead of permanent noise.

Do not expose DSM just to check it

Publishing the DSM login page to the internet is a bad trade, and QuickConnect exists so you do not have to port forward. Neither is a monitoring plan: QuickConnect is a relay for you, not a health signal.

Check from the inside out instead. Synology Task Scheduler runs user defined scripts on a schedule, so you need neither SSH nor cron:

curl -fsS -m 10 https://undownable.com/ping/your-monitor-id > /dev/null

If DSM stops running tasks, or the NAS loses power, or its route to the internet disappears, the pings stop and you get an incident from a service nowhere near your house.

To prove more than uptime, gate on a local check first, so it fails the moment the web stack stops answering even if the kernel is fine:

curl -fsSk -m 10 -o /dev/null \
  'https://127.0.0.1:5001/webapi/query.cgi?api=SYNO.API.Info&version=1&method=query&query=all' \
  && curl -fsS -m 10 https://undownable.com/ping/your-monitor-id > /dev/null

Better still, gate on something you actually rely on. A write test turns the heartbeat into a volume health alarm:

touch /volume1/docker/.heartbeat \
  && curl -fsS -m 10 https://undownable.com/ping/your-monitor-id > /dev/null

A read only volume fails the touch, the ping never goes out, and you learn about it before the containers elsewhere fall over.

Cover the backup job too

Add a second heartbeat monitor with a long interval, say 26 hours for a nightly job, pinged from a follow on task after Hyper Backup. A job that fails gets reported by DSM; a job that stops being scheduled gets reported by nothing, which is how backups quietly become a year old.

Alerts that arrive when the NAS does not

DSM email is worth enabling and not worth relying on alone. External delivery reaches you regardless of what happened to the NAS or the link:

Confirmation thresholds keep a DSM update from waking you, and a maintenance window keeps planned reboots out of your incident history.

Does Synology DSM have a health check URL?

Not a purpose built one. The closest documented option is the SYNO.API.Info discovery query on /webapi/query.cgi, which Synology documents as requiring no authorization and which returns JSON with a success flag you can assert on.

Which ports does DSM use?

DSM 7 uses 5000 for HTTP and 5001 for HTTPS by default, and SSH on 22 when enabled, though Synology recommends moving SSH to a high port. Many people relocate the DSM ports too, so verify rather than assume.

Can I monitor the NAS without exposing DSM?

Yes, and you should. Use Task Scheduler to curl a heartbeat URL every few minutes, gated on a local API call or a write test against a volume. Nothing is exposed and you still get an outside alert.

How do I tell a NAS outage from an internet outage?

Run a second heartbeat from another device on the same network, such as a Raspberry Pi. Both quiet means network or power; only the NAS quiet means the NAS.

Related reading

Monitoring that watches from the outside

Free plan with 10 monitors, plus a 14-day Pro trial. No credit card required.

Start free