EN FR

How to Check if an NTP Server Works

Test reachability, stratum, offset, and accuracy from the command line

Method 1: ntpdate -q (Quickest Test)

The ntpdate -q command queries an NTP server without modifying your clock. It's the fastest way to test if a server responds.

root@server:~# ntpdate -q ntp.rdem-systems.com server 195.154.xxx.xxx, stratum 1, offset -0.000234, delay 0.02563 10 Mar 14:30:45 ntpdate[12345]: adjust time server 195.154.xxx.xxx offset -0.000234 sec

What to look for

FieldGood ValueProblem
stratum 1–4 16 = server unsynchronized
offset < 0.1 (100ms) > 1.0 = significant drift
delay < 0.2 (200ms) > 0.5 = high latency

Install ntpdate

On modern systems, ntpdate may not be installed by default:
sudo apt install ntpdate (Debian/Ubuntu) or sudo dnf install ntpdate (RHEL/Fedora)

Method 2: chronyc (If Using Chrony)

If chrony is your NTP client, use chronyc to check your configured sources:

Check all sources

root@server:~# chronyc sources -v .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current best, '+' = combined, '-' = not combined, | / 'x' = may be in error, '~' = too variable, '?' = unusable. || .- xxxx [ yyyy ] +/- zzzz || Ref ID Stratum Poll Reach LastRx Last sample =============================================================================== ^* ntp-pool.rdem> 2 6 377 23 -145us[ -201us] +/- 12ms ^+ ptbtime1.ptb.> 1 6 377 24 +234us[ +178us] +/- 15ms ^- time.cloudfla> 3 6 377 25 +12ms[ +12ms] +/- 25ms

Test a specific server

# Add temporarily to test, then remove root@server:~# chronyc add server ntp.example.com root@server:~# chronyc sources # After testing: root@server:~# chronyc delete ntp.example.com

Key indicators

Check NTS authentication

If using NTS-secured servers: chronyc authdata — look for Mode: NTS and NAK: 0.

Method 3: ntpq (If Using ntpd)

root@server:~# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *ntp-pool.rdem-s .GPS. 1 u 34 64 377 4.231 0.145 0.089 +ptbtime1.ptb.de .PTB. 1 u 35 64 377 8.123 0.312 0.124 -time.cloudflare 10.10.10.1 3 u 36 64 377 12.456 12.001 1.234

Symbol meanings

SymbolMeaning
*Current sync source (system peer)
+Candidate for selection
-Outlier, not selected
xDesignated falseticker (bad)
(space)Rejected or unreachable

Query a remote server

# Query remote server's peers (if allowed) root@server:~# ntpq -p ntp.rdem-systems.com

ntpq may be restricted

Many NTP servers block ntpq queries (mode 6/7) to prevent amplification attacks. Getting no response to ntpq -p <server> does not mean the server is down — use ntpdate -q instead.

Method 4: sntp (Cross-Platform)

The sntp command performs a simple NTP query and works on most Unix systems:

root@server:~# sntp ntp.rdem-systems.com sntp 4.2.8p15@1.3728-o Sat Jun 1 00:00:00 UTC 2024 (1) 2026-03-10 14:30:45.123456 (+0100) +0.000234 +/- 0.012563 ntp.rdem-systems.com 195.154.xxx.xxx s1 no-leap

The +0.000234 is the offset in seconds. s1 confirms Stratum 1.

Method 5: netcat / nmap (Port Check)

If NTP-specific tools are not available, test basic UDP port 123 connectivity:

Using netcat

root@server:~# nc -vzu ntp.rdem-systems.com 123 Connection to ntp.rdem-systems.com 123 port [udp/ntp] succeeded!

Using nmap

root@server:~# nmap -sU -p 123 ntp.rdem-systems.com PORT STATE SERVICE 123/udp open ntp

Using tcpdump (packet-level)

# In terminal 1: capture NTP packets root@server:~# tcpdump -i any port 123 -nn -c 4 # In terminal 2: trigger a query root@server:~# ntpdate -q ntp.rdem-systems.com

Port open ≠ NTP working

A successful port check only confirms UDP 123 is reachable. The server might still respond with stratum 16 (unsynchronized) or REFUSED. Always follow up with an NTP-level test (ntpdate -q).

How to Interpret Results

MetricExcellentAcceptableProblem
Stratum 1 2–3 16 (unsynchronized)
Offset < 1ms < 100ms > 500ms
Delay < 10ms < 100ms > 500ms
Jitter < 1ms < 10ms > 50ms
Reach (chrony/ntpd) 377 (all OK) > 177 0 (no response)

Understanding "Reach"

Reach is displayed in octal. Each bit represents one poll: 377 octal = 11111111 binary = last 8 polls all succeeded. A reach of 17 = 00001111 = only last 4 polls succeeded (server was unreachable before that).

Common Errors & Fixes

Timeout / "no server suitable for synchronization found"

root@server:~# ntpdate -q bad-server.example.com no server suitable for synchronization found

Causes:

Stratum 16 response

The server is running but has no valid time source. This is usually a temporary condition — the server may be starting up or lost connectivity to its upstream sources. Wait and retry, or use a different server.

REFUSED status

Some servers filter by IP range or geographic origin. A REFUSED response doesn't mean the server is broken — it means you're not allowed to use it. Try a public server like ntp-pool.rdem-systems.com or pool.ntp.org.

High delay / offset

If delay is over 200ms, the server is likely geographically far or your network path has congestion. Choose a closer server. If offset is high but delay is low, the server itself may have sync issues.

Frequently Asked Questions

How do I test if an NTP server is responding?

Run ntpdate -q <server>. It queries without changing your clock and shows stratum, offset, and delay. If it times out, the server is unreachable.

What does "stratum 16" mean?

The server is running NTP but is not synchronized to any time source. Don't use it as a reference. This is usually temporary.

What is a normal NTP offset and delay?

For internet servers: offset < 100ms, delay < 200ms. On LAN: offset < 1ms, delay < 5ms. If offset exceeds 500ms, something is wrong.

Why does ntpdate show "no server suitable for synchronization found"?

The server responded but was rejected — usually stratum 16, IP filtering, or excessive jitter. Try another server or check firewall rules.

Test Servers Online

Don't have CLI access? Use our online tools to test NTP servers instantly:

Run NTP Diagnostics Online NTP Tester NTP Validator

All tools powered by RDEM Systems Stratum 1 infrastructure