10.5 C
Senior Writer and partner

A NTP Server by installing Chrony on Ubuntu 20.04

Hello, friends. In this post, we’ll show you how to set up an NTP server by installing Chrony on Ubuntu 20.04

An NTP server is important because it allows all devices on a network to be synchronized via a clock. That is, they all have the same time and time zone. This may seem unimportant, but the correct functioning of many services depends on proper time settings.

Now, there is a tool called Chrony that allows us to quickly deploy an NTP server.

According to the Chrony website:

Chrony is a versatile implementation of the Network Time Protocol (NTP). It can synchronize the system clock with NTP servers, reference clocks (e.g. GPS receiver), and manual input using wristwatch and keyboard. It can also operate as an NTPv4 (RFC 5905) server and peer to provide a time service to other computers in the network.

Fortunately, it has good support for many Linux distributions and Ubuntu is no exception.

Chrony on Ubuntu 20.04

Before starting, the server must have the time zone set correctly.

So, open a terminal or connect via SSH.

sudo timedatectl set-timezone Europe/Berlin

Replace Europe/Berlin with the correct timezone for your server.

To check the changes, run the command timedatectl.


               Local time: Wed 2021-05-12 21:13:11 CEST
           Universal time: Wed 2021-05-12 19:13:11 UTC 
                 RTC time: Wed 2021-05-12 19:13:12     
System clock synchronized: yes                         
              NTP service: active                      
                Time zone: Europe/Berlin (CEST, +0200) 
          RTC in local TZ: no 

Now we can install the chrony package from the official Ubuntu 20.04 repositories.

sudo apt update
sudo apt install chrony
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
The following NEW packages will be installed:
0 upgraded, 1 newly installed, 1 to remove and 11 not upgraded.
Need to get 220 kB of archives.
After this operation, 290 kB of additional disk space will be used.
Do you want to continue? [Y/n]

The program is quite lightweight so the installation will take almost no time at all.

So, start the Chrony service and have it start with the system.

sudo systemctl start chronyd
sudo systemctl enable chronyd

Check the status of the service

sudo systemctl status chronyd
● chrony.service - chrony, an NTP client/server
     Loaded: loaded (/lib/systemd/system/chrony.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2021-05-12 21:16:25 CEST; 1min 36s ago
       Docs: man:chronyd(8)
   Main PID: 1815 (chronyd)
      Tasks: 2 (limit: 2286)
     Memory: 1.0M
     CGroup: /system.slice/chrony.service
             ├─1815 /usr/sbin/chronyd -F -1
             └─1816 /usr/sbin/chronyd -F -1

May 12 21:16:25 osradar systemd[1]: Starting chrony, an NTP client/server...
May 12 21:16:25 osradar chronyd[1815]: chronyd version 3.5 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 -DEBUG)
May 12 21:16:25 osradar chronyd[1815]: Initial frequency -38.890 ppm
May 12 21:16:25 osradar chronyd[1815]: Loaded seccomp filter
May 12 21:16:25 osradar systemd[1]: Started chrony, an NTP client/server.
May 12 21:16:32 osradar chronyd[1815]: Selected source 2001:67c:1560:8003::c7
May 12 21:17:38 osradar chronyd[1815]: Selected source 2001:1600:4:1::123

And you will know that the service is running correctly.

Configuring Chrony on Ubuntu 20.04

Now that we have the service installed, we need to configure it. The Chorny configuration file is /etc/chrony/chrony.conf which we need to modify but first make a backup of it.

sudo cp /etc/chrony/chrony/chrony.conf `/etc/chrony/chrony.conf.bak

And now edit it:

sudo nano /etc/chrony/chrony.conf

And set the nearest NTP servers

server [NTP server]

Then save the changes and close the editor.

Now do the synchronization

sudo timedatectl set-ntp true

After that, restart the Chrony service.

sudo systemctl restart chronyd

Then, test the changes by checking the Chrony sources

chronyc sources


210 Number of sources = 8
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
^-           2   6    37     5  +6082us[+6082us] +/-   54ms
^-     2   6    67     3   +313us[ +313us] +/-   47ms
^-          2   6    37     5   +892us[ +892us] +/-  119ms
^+           2   6    37     4  +1452us[+1452us] +/-   71ms
^*>     2   6    37     6   +881us[  -83us] +/-   48ms
^-               2   6    37     4  +2533us[+2533us] +/-   67ms
^+ 2a01:4f8:c2c:3d20::1          3   6    37     4  -1651us[-1651us] +/-   93ms
^+            2   6    37     4  +1028us[+1028us] +/-   43ms

So, everything is correct.

Note: I am uing the default server. In this output, you will see the server that you added.

Configuring the Chrony Client

Now it’s time to do the client configuration. Regardless of the Linux distribution you use, you have to set the Timezone correctly.

sudo timedatectl set-timezone Europe/Berlin

Proceed now to install the client on your distribution.

For example, on CentOS it would be

sudo dnf install chony

Or on Debian based distributions:

sudo apt install chrony

Next, you have to configure Chrony to serve the server you have configured.

sudo nano /etc/chrony/chrony.conf

And add the Chrony server:

server chrony-server-ip

Save the changes and close the editor. Now synchronise your computer with the created NTP server.

sudo timedatectl set-ntp true

You can also verify the changes by running

chronyc sources

So, enjoy it.


An NTP server is a simple tool to set up but it will help you to keep everything in order on your network. This step is essential for many computer systems.

- Advertisement -


Please enter your comment!
Please enter your name here

Donate to Osradar

Latest article