There are at least 4 NTP clients available on ArchLinux:
We'll see how to configure systemd-timesyncd, the most handy of the four.
Configuration#
Create a directory /etc/systemd/timesyncd.conf.d/
to override the default /etc/systemd/timesyncd.conf
:
$ sudo mkdir /etc/systemd/timesyncd.conf.d/
Create our custom configuration file:
$ sudoedit /etc/systemd/timesyncd.conf.d/servers.conf
Optionally RTFM about the config format:
$ man 5 timesyncd.conf
Add the ntp servers:
[Time]
NTP=0.fr.pool.ntp.org 1.fr.pool.ntp.org 2.fr.pool.ntp.org 3.fr.pool.ntp.org
FallbackNTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
Restart the time sync service to take the new config into effect:
$ sudo systemctl restart systemd-timesyncd.service
To verify your configuration was taken into account:
$ timedatectl show-timesync --all
LinkNTPServers=
SystemNTPServers=0.fr.pool.ntp.org 1.fr.pool.ntp.org 2.fr.pool.ntp.org 3.fr.pool.ntp.org
FallbackNTPServers=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
ServerName=0.fr.pool.ntp.org
ServerAddress=37.59.58.17
RootDistanceMaxUSec=5s
PollIntervalMinUSec=32s
PollIntervalMaxUSec=34min 8s
PollIntervalUSec=1min 4s
NTPMessage={ Leap=0, Version=4, Mode=4, Stratum=2, Precision=-21, RootDelay=12.069ms, RootDispersion=28.411ms, Reference=AAE7FA9E, OriginateTimestamp=Wed 2020-04-01 12:18:22 CEST, ReceiveTimestamp=Wed 2020-04-01 12:18:22 CEST, TransmitTimestamp=Wed 2020-04-01 12:18:22 CEST, DestinationTimestamp=Wed 2020-04-01 12:18:22 CEST, Ignored=no PacketCount=1, Jitter=0 }
Frequency=2190623
Usage#
To enable and start the service:
$ sudo timedatectl set-ntp true
At anytime you can check if ntp is active the time, etc.
$ timedatectl status
Local time: mer. 2020-04-01 12:21:08 CEST
Universal time: mer. 2020-04-01 10:21:08 UTC
RTC time: mer. 2020-04-01 10:21:08
Time zone: Europe/Paris (CEST, +0200)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
You can also have more verbose information about ntp:
$ timedatectl timesync-status
Server: 37.59.58.17 (0.fr.pool.ntp.org)
Poll interval: 4min 16s (min: 32s; max 34min 8s)
Leap: normal
Version: 4
Stratum: 2
Reference: AAE7FA9E
Precision: 1us (-21)
Root distance: 37.345ms (max: 5s)
Offset: +82us
Delay: 16.948ms
Jitter: 301us
Packet count: 3
Frequency: +36,922ppm
If changing the time zone is required:
$ timedatectl list-timezones | grep Paris
Europe/Paris
$ timedatectl set-timezone Europe/Paris