Install chrony service
Online installation
sudo apt update
sudo apt -y install chrony
Offline installation
- Download the installation package from the Internet. Different operating systems correspond to different installation packages
- Install
Take 20.04 as an example
sudo dpkg -i chrony_3.5-6ubuntu6.2.deb
In an offline environment, dpkg is usually preferred to install local .deb software package files, because you may not be able to use apt to automatically download dependencies. However, please note that dpkg does not automatically resolve dependencies, so you may need to manually install all related dependencies.
Configuration
Then edit /etc/chrony/chrony.conf
- For servers with Internet access, specify the upstream time source, for example
pool ntp.ubuntu.com iburst maxsources 4
pool 0.ubuntu.pool.ntp.org iburst maxsources 1
pool 1.ubuntu.pool.ntp.org iburst maxsources 1
pool 2.ubuntu.pool.ntp.org iburst maxsources 2
pool time.pool.aliyun.com iburst maxsources 4
pool cn.pool.ntp.org iburst maxsources 5
pool asia.pool.ntp.org iburst maxsources 5
pool ntp.neu.edu.cn iburst maxsources 2
pool time.edu.cn iburst maxsources 4
- Allow large changes to the system time during initialization. This can speed up the synchronization process between local time and upstream time source.
# Step the system clock instead of slewing it if the adjustment is larger than
# 1000 second, but only in the first 10 clock updates.
makestep 1000 10
- Allow client connections
allow 0.0.0.0/0
- Claim that the local time is trustworthy
local stratum 8
At this point, a complete configuration sample is as follows
# Welcome to the chrony configuration file. See chrony.conf(5) for more
# information about usuable directives.
# This will use (up to):
# - 4 sources from ntp.ubuntu.com which some are ipv6 enabled
# - 2 sources from 2.ubuntu.pool.ntp.org which is ipv6 enabled as well
# - 1 source from [01].ubuntu.pool.ntp.org each (ipv4 only atm)
# This means by default, up to 6 dual-stack and up to 2 additional IPv4-only
# sources will be used.
# At the same time it retains some protection against one of the entries being
# down (compare to just using one of the lines). See (LP: #1754358) for the
# discussion.
#
# About using servers from the NTP Pool Project in general see (LP: #104525).
# Approved by Ubuntu Technical Board on 2011-02-08.
# See http://www.pool.ntp.org/join.html for more information.
pool ntp.ubuntu.com iburst maxsources 4
pool 0.ubuntu.pool.ntp.org iburst maxsources 1
pool 1.ubuntu.pool.ntp.org iburst maxsources 1
pool 2.ubuntu.pool.ntp.org iburst maxsources 2
pool time.pool.aliyun.com iburst maxsources 4
pool cn.pool.ntp.org iburst maxsources 5
pool asia.pool.ntp.org iburst maxsources 5
pool ntp.neu.edu.cn iburst maxsources 2
pool time.edu.cn iburst maxsources 4
# This directive specify the location of the file containing ID/key pairs for
# NTP authentication.
keyfile /etc/chrony/chrony.keys
# This directive specify the file into which chronyd will store the rate
# information.
driftfile /var/lib/chrony/chrony.drift
# Uncomment the following line to turn logging on.
#log tracking measurements statistics
# Log files location.
logdir /var/log/chrony
# Stop bad estimates upsetting machine clock.
maxupdateskew 100.0
# This directive enables kernel synchronisation (every 11 minutes) of the
# real-time clock. Note that it can’t be used along with the 'rtcfile' directive.
rtcsync
# Step the system clock instead of slewing it if the adjustment is larger than
# one second, but only in the first three clock updates.
#makestep 1 3
makestep 1000 10
allow 0.0.0.0/0
local stratum 8
- Restart chrony service
sudo systemctl restart chrony
Client
The corresponding chrony client installation method and configuration
sudo apt update
sudo apt -y install chrony
Then edit /etc/chrony/chrony.conf, after the default configuration, add the server configuration. They can be servers that have installed ntp or chrony and listen to udp port 123.
For example
server 192.168.30.201 iburst
server 192.168.1.102 iburst
server 192.168.43.253 iburst
Restart chrony service
sudo systemctl restart chrony