World map of NTP and NTS: coverage, operators, concentration
This map does not say what the state of NTP is in the world. It says what we measured of NTP in the world — not the same thing, and the difference is written wherever it matters. Every figure comes from a dated campaign, probed from six networks, and can be recomputed from the published CSV.
This page is a macro view: the world, the continents, concentration. It does not replace the detail — each server's name, the gap between what an operator documents and what it actually serves, the campaign history live on the continent pages. It recommends no server either: to choose a French source and configure it, go to the France guide.
Our scope, plainly: since 3 August 2026 we probe the whole world, and the geographic split is only a rendering filter. The campaign shown covers 4586 machines across 99 identified countries and 7 continents, plus 67 machines the geolocation does not place. Coverage remains very uneven — 2598 machines for the best-covered continent, a few dozen for the least. When a cell is empty, it means "we measured nothing there", never "there is nothing".
And we are one of the actors in this landscape: RDEM Systems operates 12 of the 265 measured machines serving NTS worldwide — 4.5 %, and 6.2 % of Europe's. On plain NTP our weight is negligible: these shares speak only of authentication. They are shown for every country with the same colour code as everyone else's — including when they are bad news for the landscape.
The world, continent by continent
The queued column counts servers already in our inventory that we have not probed yet. It exists so that a zero row stays readable: a continent can show zero measured machines because we have not gone there yet, which has nothing to do with an absence of servers. Today 566 machines in 60 countries are waiting for a campaign.
These rows are aggregates of the same measurements. "World" includes global anycast and machines whose location we could not establish — which therefore belong to no continent.
| Scope | machines | NTP IPv4 | NTP IPv6 | NTS IPv4 | NTS IPv6 | NTS machines | operators in scope | of which NAMED serving NTS | RDEM share of NTS machines | queued | the detail |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Africa | 77 | 56 | 34 | 2 | 0 | 2 | 72 | — | 0.0 % | 17 | page not written yet — 17 servers queued |
| North America | 838 | 613 | 380 | 28 | 22 | 29 | 800 | — | 0.0 % | 98 | page not written yet — 98 servers queued |
| South America | 75 | 57 | 40 | 16 | 18 | 19 | 74 | — | 0.0 % | 9 | page not written yet — 9 servers queued |
| Asia | 497 | 312 | 192 | 12 | 9 | 14 | 491 | — | 0.0 % | 36 | page not written yet — 36 servers queued |
| Eurasia | 276 | 200 | 38 | 1 | 0 | 1 | 267 | — | 0.0 % | 9 | page not written yet — 9 servers queued |
| Europe | 2598 | 1896 | 1259 | 176 | 165 | 192 | 2389 | — | 6.2 % | 385 | the European study |
| Oceania | 158 | 121 | 74 | 6 | 6 | 7 | 154 | — | 0.0 % | 12 | page not written yet — 12 servers queued |
| World (everything we measured) | 4586 | 3262 | 2024 | 242 | 221 | 265 | 4301 | 49 | 4.5 % | 566 | — |
Stratum distribution
A country with forty servers all at stratum 3 depends on elsewhere; a country with five stratum 1 holds its own time reference. That is what this count shows, and nothing else — a stratum is a logical distance, not a quality.
| Scope | S1 | S2 | S3 | S4+ | no answer |
|---|---|---|---|---|---|
| France | 29 | 217 | 49 | 5 | 34 |
| Europe | 462 | 1586 | 266 | 37 | 247 |
| North America | 145 | 472 | 108 | 19 | 94 |
| South America | 15 | 44 | 5 | 1 | 10 |
| Asia | 47 | 277 | 93 | 22 | 58 |
| Oceania | 35 | 78 | 15 | 9 | 21 |
| Africa | 11 | 51 | 4 | 1 | 10 |
| Eurasia | 25 | 177 | 19 | 0 | 55 |
| World | 741 | 2691 | 512 | 89 | 553 |
France first
We are French, the question concerns us, and the answer is not flattering. Out of 334 French machines measured, 29 serve NTS — and 37.9 % of those are ours.
This section says what we measured in France. It does not say which source to use: for that there is the guide to French NTP servers — choice by use case, access policies, chrony and w32tm examples.
| France | measured | reading |
|---|---|---|
| Machines measured | 334 | — |
| NTP over IPv4 / IPv6 | 230 / 181 | IPv6 remains a minority among French sources |
| NTS over IPv4 / IPv6 | 28 / 24 | see the note on the per-family split |
| Stratum 1 measured | 29 | out of 334 machines — France holds few references of its own |
| Distinct operators | 314 | of which 7 named serve NTS |
| RDEM Systems' share of French NTS | 37.9 % | that is us: French NTS depends on a private company |
| Largest actor's share | 37.9 % RDEM Systems | — |
Why concentration is the real subject. A country showing thirteen NTS endpoints held by a single actor is not a well-served country. This is not a matter of technical redundancy — those machines may be numerous, spread across several sites and several AS, and often are. It is a matter of dependence: a country's authenticated time reference then rests on the decisions of a single organisation, most often a private company. A change of owner, of business model or of priorities is enough to move it, without any outage occurring.
That is why the map always shows two shares — ours and the largest actor's — and why they turn yellow above 33% and red above 50%. The threshold applies to us as to everyone else: a risk scale that spared whoever publishes it would be worthless. As of 7 August 2026, in France, the most concentrated actor is us — 11 NTS machines out of 29, i.e. 37.9%, above the yellow threshold and below the red one.
Country by country
The four counts are kept separate, never merged: a server answering only over IPv4 and a server answering only over IPv6 are not the same fact, and that is exactly what a coverage map must show.
This table gives the volumes. It does not give the names, nor what each operator documents versus what it actually serves, nor what has moved since the previous campaign: that takes prose, country by country, and lives on the continent page. The right-hand column points there when it exists.
| Country | machines | NTP IPv4 | NTP IPv6 | NTS IPv4 | NTS IPv6 | NTS machines | operators in country | of which NAMED serving NTS | RDEM share of NTS machines | largest NTS actor | the study |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Germany | 596 | 458 | 365 | 49 | 45 | 53 | 563 | 13 | 1.9 % | 7.5 % PTB | Europe |
| Netherlands | 219 | 167 | 122 | 31 | 33 | 34 | 205 | 4 | 0.0 % | 17.6 % SIDN Labs | Europe |
| France | 334 | 230 | 181 | 28 | 24 | 29 | 314 | 7 | 37.9 % | 37.9 % RDEM Systems | Europe |
| United States | 712 | 511 | 313 | 18 | 14 | 19 | 678 | 2 | 0.0 % | 10.5 % Wikstrom Telephone Company | — |
| Brazil | 36 | 29 | 27 | 16 | 17 | 18 | 36 | 0 | 0.0 % | 5.6 % (unnamed) a.st1.ntp.br | — |
| Switzerland | 125 | 103 | 63 | 14 | 13 | 16 | 113 | 8 | 0.0 % | 18.8 % Ueli Heuer | Europe |
| Sweden | 89 | 67 | 41 | 13 | 14 | 14 | 64 | 1 | 0.0 % | 85.7 % Netnod | Europe |
| United Kingdom | 317 | 212 | 148 | 9 | 10 | 12 | 302 | 1 | 0.0 % | 16.7 % University of Cambridge | Europe |
| Canada | 105 | 85 | 57 | 9 | 7 | 9 | 101 | 2 | 0.0 % | 11.1 % (unnamed) ntp.lntgn.ca | — |
| Australia | 123 | 99 | 59 | 6 | 6 | 7 | 122 | 0 | 0.0 % | 14.3 % (unnamed) time.hamertechnical.com.au | — |
| Austria | 55 | 49 | 24 | 5 | 2 | 5 | 53 | 2 | 0.0 % | 40.0 % BEV (Bundesamt für Eich- und Vermessungswesen) | Europe |
| Spain | 46 | 29 | 12 | 4 | 2 | 4 | 44 | 1 | 0.0 % | 25.0 % ROA (Real Observatorio de la Armada) | Europe |
| China | 35 | 25 | 9 | 4 | 1 | 4 | 35 | 2 | 0.0 % | 25.0 % NEU | — |
| Slovenia | 19 | 18 | 11 | 4 | 4 | 4 | 17 | 1 | 0.0 % | 50.0 % chrony.eu | Europe |
| Singapore | 70 | 40 | 44 | 3 | 3 | 3 | 70 | 0 | 0.0 % | 33.3 % (unnamed) pool-member-4aa2ee7f | — |
| Japan | 58 | 40 | 33 | 3 | 1 | 3 | 58 | 0 | 0.0 % | 33.3 % (unnamed) pool-member-37b0fcab | — |
| Denmark | 41 | 31 | 12 | 3 | 1 | 3 | 41 | 1 | 0.0 % | 33.3 % DFM (institut de métrologie danois) | Europe |
| Poland | 93 | 65 | 14 | 2 | 2 | 2 | 88 | 1 | 0.0 % | 50.0 % (unnamed) ntp2.asseco.cloud | Europe |
| Finland | 88 | 66 | 48 | 2 | 2 | 2 | 80 | 1 | 0.0 % | 50.0 % (unnamed) ntp03.nubivance.com | Europe |
| Italy | 58 | 35 | 31 | 2 | 2 | 2 | 57 | 1 | 0.0 % | 50.0 % (unnamed) pool-member-9bb557c6 | Europe |
| Czech Republic | 45 | 33 | 18 | 2 | 2 | 2 | 42 | 1 | 0.0 % | 50.0 % (unnamed) ntp.hdinternet.cz | Europe |
| South Africa | 45 | 31 | 22 | 2 | 0 | 2 | 42 | 0 | 0.0 % | 50.0 % (unnamed) ntp.as3741.net | — |
| Belgium | 37 | 29 | 12 | 2 | 2 | 2 | 33 | 2 | 0.0 % | 50.0 % Team Belgium | Europe |
| Norway | 36 | 28 | 16 | 1 | 1 | 2 | 32 | 0 | 0.0 % | 50.0 % (unnamed) time.mymilo.top | Europe |
| Vietnam | 15 | 3 | 9 | 1 | 2 | 2 | 15 | 0 | 0.0 % | 50.0 % (unnamed) pool-member-2f0df5fd | — |
| Luxembourg | 11 | 10 | 8 | 2 | 2 | 2 | 10 | 0 | 0.0 % | 50.0 % (unnamed) pool-member-157e7714 | Europe |
| Russia | 262 | 190 | 37 | 1 | 0 | 1 | 253 | 1 | 0.0 % | 100.0 % ojab | — |
| India | 40 | 28 | 17 | 1 | 1 | 1 | 40 | 0 | 0.0 % | 100.0 % (unnamed) pool-member-5bd6bc51 | — |
| Romania | 34 | 19 | 12 | 0 | 1 | 1 | 30 | 0 | 0.0 % | 100.0 % (unnamed) vps-otp1.orleans.ddnss.de | Europe |
| Hong Kong | 23 | 8 | 10 | 0 | 1 | 1 | 23 | 0 | 0.0 % | 100.0 % (unnamed) pool-member-aaddda4e | — |
| Ireland | 23 | 18 | 11 | 1 | 1 | 1 | 21 | 0 | 0.0 % | 100.0 % (unnamed) vps-dub1.orleans.ddnss.de | Europe |
| Belarus | 12 | 8 | 6 | 1 | 1 | 1 | 12 | 0 | 0.0 % | 100.0 % (unnamed) ntp.datahata.by | Europe |
| Chile | 12 | 8 | 6 | 0 | 1 | 1 | 12 | 0 | 0.0 % | 100.0 % (unnamed) vps-zal1.orleans.ddnss.de | — |
| Costa Rica | 10 | 10 | 5 | 1 | 1 | 1 | 10 | 0 | 0.0 % | 100.0 % (unnamed) ntp-sjo2.impulsahosting.com | — |
| Moldova | 9 | 9 | 4 | 1 | 1 | 1 | 8 | 0 | 0.0 % | 100.0 % (unnamed) vps-rmo1.orleans.ddnss.de | Europe |
| Ukraine | 76 | 52 | 20 | 0 | 0 | 0 | 74 | 0 | — | no NTS measured | Europe |
| Taiwan | 44 | 36 | 7 | 0 | 0 | 0 | 41 | 0 | — | no NTS measured | — |
| Bulgaria | 38 | 23 | 15 | 0 | 0 | 0 | 38 | 0 | — | no NTS measured | Europe |
| Indonesia | 38 | 28 | 16 | 0 | 0 | 0 | 36 | 0 | — | no NTS measured | — |
| Hungary | 37 | 31 | 17 | 0 | 0 | 0 | 29 | 0 | — | no NTS measured | Europe |
| New Zealand | 31 | 19 | 13 | 0 | 0 | 0 | 28 | 0 | — | no NTS measured | — |
| Slovakia | 31 | 19 | 11 | 0 | 0 | 0 | 29 | 0 | — | no NTS measured | Europe |
| Thailand | 26 | 17 | 8 | 0 | 0 | 0 | 26 | 0 | — | no NTS measured | — |
| Philippines | 25 | 3 | 10 | 0 | 0 | 0 | 25 | 0 | — | no NTS measured | — |
| Latvia | 21 | 19 | 4 | 0 | 0 | 0 | 21 | 0 | — | no NTS measured | Europe |
| Greece | 17 | 14 | 8 | 0 | 0 | 0 | 15 | 0 | — | no NTS measured | Europe |
| South Korea | 17 | 11 | 4 | 0 | 0 | 0 | 17 | 0 | — | no NTS measured | — |
| Portugal | 16 | 11 | 5 | 0 | 0 | 0 | 14 | 0 | — | no NTS measured | Europe |
| Croatia | 15 | 0 | 3 | 0 | 0 | 0 | 8 | 0 | — | no NTS measured | Europe |
| Turkey | 14 | 10 | 1 | 0 | 0 | 0 | 14 | 0 | — | no NTS measured | — |
| Afghanistan | 12 | 12 | 6 | 0 | 0 | 0 | 12 | 0 | — | no NTS measured | — |
| Estonia | 11 | 10 | 6 | 0 | 0 | 0 | 9 | 0 | — | no NTS measured | Europe |
| Israel | 11 | 8 | 4 | 0 | 0 | 0 | 11 | 0 | — | no NTS measured | — |
| Kazakhstan | 11 | 8 | 2 | 0 | 0 | 0 | 11 | 0 | — | no NTS measured | — |
| Lithuania | 11 | 9 | 1 | 0 | 0 | 0 | 10 | 0 | — | no NTS measured | Europe |
| United Arab Emirates | 11 | 7 | 4 | 0 | 0 | 0 | 11 | 0 | — | no NTS measured | — |
| Malaysia | 10 | 6 | 1 | 0 | 0 | 0 | 10 | 0 | — | no NTS measured | — |
| Mexico | 9 | 6 | 4 | 0 | 0 | 0 | 9 | 0 | — | no NTS measured | — |
| Nigeria | 9 | 5 | 4 | 0 | 0 | 0 | 9 | 0 | — | no NTS measured | — |
| Pakistan | 9 | 7 | 1 | 0 | 0 | 0 | 9 | 0 | — | no NTS measured | — |
| Bangladesh | 8 | 3 | 4 | 0 | 0 | 0 | 7 | 0 | — | no NTS measured | — |
| Cyprus | 8 | 6 | 2 | 0 | 0 | 0 | 8 | 0 | — | no NTS measured | Europe |
| Uzbekistan | 8 | 7 | 0 | 0 | 0 | 0 | 8 | 0 | — | no NTS measured | — |
| Iceland | 6 | 4 | 2 | 0 | 0 | 0 | 5 | 0 | — | no NTS measured | Europe |
| Kyrgyzstan | 6 | 1 | 0 | 0 | 0 | 0 | 6 | 0 | — | no NTS measured | — |
| Maldives | 6 | 6 | 0 | 0 | 0 | 0 | 6 | 0 | — | no NTS measured | — |
| North Macedonia | 6 | 3 | 2 | 0 | 0 | 0 | 6 | 0 | — | no NTS measured | Europe |
| Serbia | 6 | 2 | 0 | 0 | 0 | 0 | 6 | 0 | — | no NTS measured | Europe |
| Argentina | 5 | 4 | 1 | 0 | 0 | 0 | 5 | 0 | — | no NTS measured | — |
| Bosnia and Herzegovina | 5 | 4 | 0 | 0 | 0 | 0 | 5 | 0 | — | no NTS measured | Europe |
| Colombia | 5 | 4 | 1 | 0 | 0 | 0 | 5 | 0 | — | no NTS measured | — |
| Ecuador | 5 | 4 | 2 | 0 | 0 | 0 | 5 | 0 | — | no NTS measured | — |
| Liechtenstein | 5 | 4 | 3 | 0 | 0 | 0 | 5 | 0 | — | no NTS measured | Europe |
| Uruguay | 5 | 5 | 3 | 0 | 0 | 0 | 4 | 0 | — | no NTS measured | — |
| Kenya | 4 | 4 | 0 | 0 | 0 | 0 | 4 | 0 | — | no NTS measured | — |
| Namibia | 4 | 4 | 0 | 0 | 0 | 0 | 2 | 0 | — | no NTS measured | — |
| Venezuela | 4 | 0 | 0 | 0 | 0 | 0 | 4 | 0 | — | no NTS measured | — |
| Zimbabwe | 4 | 4 | 3 | 0 | 0 | 0 | 4 | 0 | — | no NTS measured | — |
| Armenia | 3 | 2 | 2 | 0 | 0 | 0 | 3 | 0 | — | no NTS measured | — |
| New Caledonia | 3 | 3 | 2 | 0 | 0 | 0 | 3 | 0 | — | no NTS measured | — |
| Paraguay | 3 | 3 | 0 | 0 | 0 | 0 | 3 | 0 | — | no NTS measured | — |
| Saudi Arabia | 3 | 1 | 0 | 0 | 0 | 0 | 3 | 0 | — | no NTS measured | — |
| Albania | 2 | 1 | 1 | 0 | 0 | 0 | 2 | 0 | — | no NTS measured | Europe |
| Azerbaijan | 2 | 2 | 0 | 0 | 0 | 0 | 2 | 0 | — | no NTS measured | — |
| Cameroon | 2 | 2 | 2 | 0 | 0 | 0 | 2 | 0 | — | no NTS measured | — |
| Honduras | 2 | 1 | 1 | 0 | 0 | 0 | 2 | 0 | — | no NTS measured | — |
| Iran | 2 | 1 | 0 | 0 | 0 | 0 | 2 | 0 | — | no NTS measured | — |
| Morocco | 2 | 1 | 1 | 0 | 0 | 0 | 2 | 0 | — | no NTS measured | — |
| Réunion | 2 | 1 | 0 | 0 | 0 | 0 | 2 | 0 | — | no NTS measured | — |
| Angola | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | — | no NTS measured | — |
| Cambodia | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | — | no NTS measured | — |
| Ivory Coast | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | — | no NTS measured | — |
| Jordan | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | — | no NTS measured | — |
| Kuwait | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | — | no NTS measured | — |
| Madagascar | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | — | no NTS measured | — |
| Mauritius | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | — | no NTS measured | — |
| Papua New Guinea | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | — | no NTS measured | — |
| Sri Lanka | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | — | no NTS measured | — |
| Tanzania | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | — | no NTS measured | — |
The pool, stratum by stratum
This map counts servers published as time services. Alongside them lives another,
far larger world: the machines volunteers lend to pool.ntp.org. They do not join the
registry — “who publishes a service” and “who lends a machine” are two questions, and mixing
them would sink the NTS share for a reason that has nothing to do with NTS. But their stratum
breakdown says something the registry does not: what everyone's time actually rests on.
| Stratum | machines | share of answers | what it means |
|---|---|---|---|
| S0 | 6 | 0.2 % | unsynchronised — announces no reference |
| S1 | 497 | 14.3 % | own clock (GNSS, atomic, radio) |
| S2 | 2426 | 69.9 % | follows a stratum 1 |
| S3 | 470 | 13.5 % | follows a stratum 2 |
| S4 | 54 | 1.6 % | four hops from the reference clock |
| S5 | 18 | 0.5 % | five hops from the reference clock |
| S6 | 2 | 0.1 % | six hops from the reference clock |
| Silent | 105 | — | did not answer our probe at harvest time |
3578 machines lent to the pool, 3473 answered, 1106 reachable over both IPv4 and IPv6. Machines are counted once even when we know both of their addresses. Harvest of 2026-08-05. A pool zone does not mean the country: the project tops up a sparse national zone with servers from neighbouring countries, so a zone says where the operator registered, not where the machine sits.
Full data, per continent and per zone: pool-strata.json (CC BY 4.0).
The method, and what it does not say
Measured means: AUTHENTICATED time was actually obtained — a complete NTS-KE handshake (TLS, ALPN ntske/1 on port 4460, certificate valid for the queried name) FOLLOWED BY a successful NTS-authenticated NTP request, verified from six distinct networks. An open port is not enough, a negotiated ALPN is not enough, and a complete key exchange over a filtered UDP/123 serves no time at all.
Every server is queried from six vantage points in six different autonomous systems. A single point cannot tell an ACL, a rate limit or a geographic restriction from a real outage. The exact fractions are published in the CSV so you can recount with a threshold different from ours.
What this map does not prove:
- That a country "without NTS" has none. It has none among the sources we found and measured. What was never published, what is reserved to a closed network, what an ACL keeps away from our six vantage points: none of it shows up here.
- That the machine count reflects the size of a national fleet. It reflects our inventory depth, which is greater where we searched longer — France, for instance.
- That a server listed here is a server you should use. We do not recommend any server: we measure, and the CSV carries everything needed to filter for yourself (declared access policy, families, stratum, NTS state and its evidence).
The published country is where the address is routed, measured by geolocation —
the only indicator that describes the address itself. The prefix holder's country is published
beside it, in registration_country, and is never a fallback: across our 8,016 addresses,
1,465 — 18% are not routed in their holder's country. A single column would file
nearly one address in five at its hosting provider's head office: all of OVH would read as France, all of
Cogent as the United States.
A name's ccTLD and the pool zone serving an address do not count as location:
they describe a name, not a machine — Andorra has a pool zone without hosting a single server. A
declared location is kept only with its evidence; those without it are quarantined, along with the
value they carried and the reason. The CSV's country_source column says, for every entry, where
the country comes from and on which date.
Is your server missing?
Declare it in our open repository — one YAML file, a single required field, the hostname — or by e-mail to ntp@rdem-systems.com. It enters the next campaign — and that is how a "queued" row in the table above eventually becomes a measurement. That repository is not a directory of recommended servers: an operator's declaration is worth existence and permission to measure, not a recommendation.
The data
What reproduces this page exactly are the sealed files of the campaign shown — signature, two authority timestamps and OpenTimestamps. Count the rows and the total lands exactly — but each file has its own spelling, and a recipe that does not say which one cannot be replayed:
- CSV —
counted=yesandnts_measured=yes(yes/novalues); - JSON —
countedandnts(true/falsebooleans).
Both return the same set of machines: it is the same campaign, projected twice.
One caveat, so the check succeeds first time. the files offered below are those of the campaign you are reading, not a “latest known” URL: their names change with every campaign, and that is what makes them citable.
All these files are published under CC BY 4.0:
- the sealed measurement of 7 August 2026 (JSON) — one row per server; this is the file that reproduces this page, and its seals sit beside it
- the inventory of the same campaign (CSV) — sealed as well
- the current inventory (CSV) — a rolling URL, replaced at every campaign: handy for following, unfit for citing. The aggregates no longer have a rolling URL: each campaign carries its own, under its own name.
- the time series (JSON) — each point carries the method verdict in force on that day
The pages that take over from this one:
- Analyse the European measurements — who serves NTS in Europe, under which name, and what the documentation does not say.
- Choose a French source — the decision and configuration guide, not a count.
- Understand NTS — what RFC 8915 actually authenticates.
- Walk up the dependency tree — which server follows which, and on which clock. Clock concentration is not operator concentration.
Free NTP Tools
Three independent tools to diagnose your time synchronization: