Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
This is a curated list of NTP time servers that support NTS

Initial source: https://docs.ntpsec.org/latest/NTS-QuickStart.html

Use this to verify connectivity (h/t @cadusilva)

chronyd -Q -t 3 'server NTP_SERVER_HERE iburst nts maxsamples 1'

Public

# Cloudflare (Anycast)
server time.cloudflare.com nts iburst

# System76
server virginia.time.system76.com nts iburst
server ohio.time.system76.com nts iburst
server oregon.time.system76.com nts iburst

# Netnod (Sweden)
server nts.ntp.se:4443 nts
server nts.netnod.se:4460 nts iburst # Anycast
server sth1.nts.netnod.se:4460 nts iburst # Stockholm 
server sth2.nts.netnod.se:4460 nts iburst # Stockholm

# Physikalisch-Technische Bundesanstalt / PTB (Germany)
server ptbtime1.ptb.de nts iburst
server ptbtime2.ptb.de nts iburst
server ptbtime3.ptb.de nts iburst

# Time.nl (Netherlands)
server ntppool1.time.nl nts iburst
server ntppool2.time.nl nts iburst

Development (possibly unstable)

server ntpmon.dcs1.biz nts	# Singapore

# NTPsec
server ntp1.glypnod.com nts	# San Francisco  
server ntp2.glypnod.com nts	# London

Others (unverified)

server pi3.rellim.com nts

server kong.rellim.com nts

server ntp.qontinuum.space nts # Monaco?

@qontinuum-dev
Copy link

qontinuum-dev commented Sep 8, 2021

Hey, if you search for other servers to add to your list I am hosting a tier 2 NTS server at ntp.qontinuum.space on port 4460.

You may also want to add netnod.se servers that you can find here:

  • nts.netnod.se:4460
  • sth1.nts.netnod.se:4460
  • sth2.nts.netnod.se:4460

@asche77
Copy link

asche77 commented Dec 3, 2021

These are working for me as NTS servers (via chrony):

  • time.cloudflare.com
  • ptbtime1.ptb.de
  • ptbtime2.ptb.de
  • ptbtime3.ptb.de
  • nts1.time.nl
  • nts.netnod.se
  • nts.ntp.se
  • nts.sth1.ntp.se
  • nts.sth2.ntp.se
  • ntp1.glypnod.com
  • ntp2.glypnod.com
  • ntpmon.dcs1.biz
  • netmon2.dcs1.biz
  • kong.rellim.com
  • pi3.rellim.com

The following did not work:

  • ntp.qontinuum.space

@phloggu
Copy link

phloggu commented Dec 27, 2021

Switzerland:

ntp.3eck.net
ntp.trifence.ch
ntp.zeitgitter.net

See the blog post Transparent, Trustworthy Time with NTP and NTS.

@asche77
Copy link

asche77 commented Dec 28, 2021

Some more working for me (found on https://psychogun.github.io/docs/linux/Stratum-1-NTP-Server-using-Raspberry-Pi/):

  • khronos.mikieboy.net
  • spidey.rellim.com
  • pi4.rellim.com

Not working for me, though found on different sites:

  • ntpmon.dcs1.biz
  • timemaster.evangineer.net
  • nts-test.strangled.net
  • nts.strangled.net

The following are test-only servers with private certificates and won't work (out of the box) for third parties:

  • nts2-e.ostfalia.de
  • nts3-e.ostfalia.de

@MarcelWaldvogel
Copy link

MarcelWaldvogel commented Dec 31, 2021

The foremost goals of NTS are Identity and Authentication. Picking some random hosts from the Internet voids this, as well as using test-only servers for anything other than tests. Yes, that means the list of current NTS-capable servers is disappointingly tiny, essentially limited to a few sites in too few countries (maybe in order of appearance):

  • The CloudFlare servers
  • The netnod.se/ntp.se servers operated by NetNod (I have not found the ntp.se servers to be publicly announced as public NTS-capable servers)
  • The ptb.de servers
  • The time.nl pilot server
  • The ntp.br servers operated by nic.br and cgi.br (who also recommend everyone to switch to NTS)

If you want more servers with NTS, there are only two options:

  1. ask your local authorities, other public entities, or corporations with existing NTP service to add NTS, and/or
  2. start providing your own NTS service, but do announce on the page of the server or your site (a) who you are, (b) that the service is meant for the public, and (c) provide some statistics, with adding the server to the NTP Pool being the easy way out.

We did both of that for Switzerland and are still fine-tuning our uplinks, trying to balance accuracy, stability, delay, and NTS-ability; a challenge with the current NTS sparseness.

(Some of the fine-tuning lessons: Try to have as few anycast servers as possible. You can see that Cloudflare is consistently about 2ms off here; another server a few meters away and connected to the same ISP, consistently sees a much better time from the same Cloudflare IP address at 4ms RTT. Anycast (and the Cloudflare service) is great, if you just want the time; but a challenge if you try to get tight bounds.)

peer-offsets

@mibere
Copy link

mibere commented Feb 1, 2022

I operate a NTP/NTS server in Germany:

nts1.adopo.net

@cadusilva
Copy link

cadusilva commented Feb 7, 2022

Hello there, I'm operating a NTP server in Brazil using Chrony coupled with a GPS dongle so it's a Stratum 1 time server. It's also NTS-ready at port 4460.

time.alto.win

Infrastructure:

  • Raspberry Pi 4B 8 GB
  • Local ISP FTTH internet link with 500 Mbps down, 250 Mbps up
  • 720VA UPS with +2 hours of power off-grid
  • u-blox NEO-6 G7020-KT USB GPS module
  • Chrony 4.0 with GPSD 3.22
  • Microsecond accuracy
  • Currently 99,8% uptime

@anastrophe
Copy link

anastrophe commented Jun 6, 2022

I've been running an NTS server since sometime in 2020 - possibly earlier, who keeps track? :)

server nts.anastrophe.com:4460 nts

I've owned the anastrophe.com domain since the 1990's, and have hosted my website and about a dozen others for about that time, and manage the email service and everything else (sysadmin since 1994 or so, so, yeah, that's my life).

The server is on my home network, on a comcast/xfinity connection. Historically, my IP address has been largely stable except recently, when comcast did some mucking about that forced a change (and throttled my speed for a month). It seems to be back to stability. I keep a very close eye on it and monitor it, so if it changes, it gets updated pretty swiftly.

Everything is on UPS, so except for some instability over the last couple of days - an adafruit hat went wonky and thought that the EPO data was valid from 06/05/2022 to some date in 2001 (!) - everything runs pretty smoothly.

Naturally I provide stratum one standard ntp service as well. I maintain an info and policy page for all this here:

https://ntpsec.anastrophe.com

cheers.

@cadusilva
Copy link

cadusilva commented Jun 7, 2022

I've been running an NTS server since sometime in 2020 - possibly earlier, who keeps track? :)

server nts.anastrophe.com:4460 nts

I've owned the anastrophe.com domain since the 1990's, and have hosted my website and about a dozen others for about that time, and manage the email service and everything else (sysadmin since 1994 or so, so, yeah, that's my life).

The server is on my home network, on a comcast/xfinity connection. Historically, my IP address has been largely stable except recently, when comcast did some mucking about that forced a change (and throttled my speed for a month). It seems to be back to stability. I keep a very close eye on it and monitor it, so if it changes, it gets updated pretty swiftly.

Everything is on UPS, so except for some instability over the last couple of days - an adafruit hat went wonky and thought that the EPO data was valid from 06/05/2022 to some date in 2001 (!) - everything runs pretty smoothly.

Naturally I provide stratum one standard ntp service as well. I maintain an info and policy page for all this here:

https://ntpsec.anastrophe.com

cheers.

Hey, cool stuff you got there! I even edited my post to also describe my home server. How stable is your NEO-M8T? Mine is a NEO-M8L (using this antenna) and eventually Chrony considers this source as "may be in error" no matter what I do. That's why I'm using an older NEO-6 GPS module that at least is stable and provides microsecond accuracy.

With the NEO-M8 module, things starts well (but without PPS) and eventually go out of tracks. How do you set your offset or any other setting? Thank you.

@anastrophe
Copy link

anastrophe commented Jun 7, 2022

For the most part, the M8T has been quite solid. I think the key is to use the U-blox U-center, and set up the Assist Now offline option to regularly download the ephemeris data (doesn't cost anything, but you do need to register for it). Of course all the other caveats apply, good antenna location, stable temperatures (as much as possible), etc. I don't set any offsets, as typically after a restart it wiggles its way to tight accuracy pretty quickly.

I just purchased a new board yesterday that will come from china in a couple of weeks, using the Max-M8Q -
https://www.ebay.com/itm/264810984552

We shall see how that goes...

@cadusilva
Copy link

cadusilva commented Jun 7, 2022

I'm definitely not having the same luck with the M8L. If I don't set an offset it just stays in error with the same number in the adjusted and measured offset. If I set an offset, it initially works but eventually go back to stay in error.

MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
#x GPS                           0   3   377     7    +64ms[  +64ms] +/- 2828us
^- 168.96.251.197                1   6   337    11   -585us[ -585us] +/-  108ms
^+ 200.160.7.186                 1   6   377    13  +1827us[+2171us] +/-   27ms
^* 200.160.7.197                 1   6   377    13  +1618us[+1962us] +/-   28ms

I downloaded the AssistNow Offline data but didn't help at all. The module gets a fix but as a reference clock source it is useless. And the PPS pulse doesn't work.

┌──────────────────Seen 27/Used  9┐
│GNSS   PRN  Elev   Azim   SNR Use│
│GP  1    1  43.0  221.0  25.0  Y │
│GP  8    8  24.0  323.0  27.0  Y │
│GP 10   10  13.0   77.0  23.0  Y │
│GP 21   21  72.0  264.0  23.0  Y │
│GP 22   22  13.0  148.0  22.0  Y │
│GP 27   27  17.0    2.0  27.0  Y │
│GP 31   31  39.0  144.0  25.0  Y │
│GL  8   72  17.0  186.0  20.0  Y │
│GL 11   75  41.0   20.0  22.0  Y │
│GP  3    3  14.0  209.0  14.0  N │
│GP  4    4  27.0  253.0  17.0  N │
│GP  9    9   6.0  278.0  14.0  N │
│GP 16   16  27.0   31.0  19.0  N │
│GP 26   26  32.0   65.0   8.0  N │
│GP 32   32   0.0  132.0   0.0  N │
│SB120   33  66.0   74.0   0.0  N │
│SB133   46  19.0  273.0   0.0  N │
│SB136   49  43.0   83.0   0.0  N │
│GL  1   65   6.0  232.0   0.0  N │
│GL  7   71  10.0  139.0  17.0  N │
│GL  9   73  10.0  139.0   0.0  N │
└More...──────────────────────────┘

It's a pity such device with this behavior. And an older NEO-M6 working like a charm, with stability and no complications other than manually setting an offset.

@anastrophe
Copy link

anastrophe commented Jun 7, 2022

We should probably take this offline since it's not directly relevant to the list of NTS sources - you can email me at the address on the website, and we continue there!

@anastrophe
Copy link

anastrophe commented Jun 7, 2022

Geez, I make a few "minor" changes and it seems like my NTS isn't working - but it's hard to test remotely for sure - if anyone out there feels like trying to use my server as above for nts, I'd appreciate any info you come up with - and you can email me as i mentioned above...sheeesh!

@cadusilva
Copy link

cadusilva commented Jun 7, 2022

We should probably take this offline since it's not directly relevant to the list of NTS sources - you can email me at the address on the website, and we continue there!

You're right, but I guess there's nothing we can do about the module so I'll try to sell it or something.

Geez, I make a few "minor" changes and it seems like my NTS isn't working - but it's hard to test remotely for sure - if anyone out there feels like trying to use my server as above for nts, I'd appreciate any info you come up with - and you can email me as i mentioned above...sheeesh!

I'll just leave it here as it may help someone troubleshooting problems, but here's the output of this Chrony command to test NTS servers:

$ chronyd -Q -t 3 'server nts.anastrophe.com iburst nts maxsamples 1'
2022-06-07T22:22:45Z chronyd version 4.0 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 -DEBUG)
2022-06-07T22:22:45Z Disabled control of system clock
2022-06-07T22:22:48Z chronyd exiting

There's no error, so I guess everything is fine with this address (nts.anastrophe.com).

Anything else, I'll ping you via e-mail.

@Pentaphon
Copy link

Pentaphon commented Jun 18, 2022

System76 just set up their NTS time servers for Pop!_OS or anybody to use.

More info here: https://system76.com/time

@Nexuzzzz
Copy link

Nexuzzzz commented Jul 25, 2022

Systems76's NTS enabled time servers are the following:

server virginia.time.system76.com iburst nts
server ohio.time.system76.com iburst nts
server oregon.time.system76.com iburst nts

(in response to Pentaphons message)

@mdavids
Copy link

mdavids commented Jul 26, 2022

Some more background about the TimeNL-servers that support NTS.

They are:

ntppool1.time.nl
ntppool2.time.nl

nts1.time.nl is used for testing and not recommended for production.

The information can be found here: https://nts.time.nl/ and more general information about TimeNL can be found here: https://time.nl/index_en.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment