How to Synchronize Time with NTP in Linux

The Network Time Protocol (NTP) is a protocol used to synchronize computer system clock automatically over a networks. The machine can have the system clock use Coordinated Universal Time (UTC) rather than local time.

The most common method to sync system time over a network in Linux desktops or servers is by executing the ntpdate command which can set your system time from an NTP time server. In this case, the ntpd daemon must be stopped on the machine where the ntpdate command is issued.

In most Linux systems, the ntpdate command is not installed by default. To install it, execute the below command.

$ sudo apt-get install ntpdate    [On Debian/Ubuntu]
$ sudo yum  install ntpdate       [On CentOS/RHEL]
$ sudo dnf install ntpdate        [On Fedora 22+]

The example of ntpdate command as shown.

$ sudo ntpdate 1.ro.pool.ntp.org
Check Date and Time in Linux

Check Date and Time in Linux

In order to just query the server and not set the clock and use an unprivileged port to send the packets from, in order to bypass firewalls, issue ntpdate with the below flags.

$ sudo ntpdate -qu 1.ro.pool.ntp.org
Query NTP Server

Query NTP Server

Always try to query and sync the time with the closest NTP servers available for your zone. The list of the NTP server pools can be found at the following address:

http://www.pool.ntp.org/en/ 

In newer Linux distributions that ship with Systemd, you can also sync time via timesyncd.conf file. Just open the file for editing.

$ sudo nano /etc/systemd/timesyncd.conf

And add or uncomment the following lines after [Time] statement, as illustrated in the below excerpt:

[Time]
NTP=0.ro.pool.ntp.org 1.ro.pool.ntp.org
FallbackNTP=ntp.ubuntu.com 0.arch.pool.ntp.org
Sync Linux Time with NTP Server

Sync Linux Time with NTP Server

After editing the file, issue the timedatectl command to activate the NTP client build in systemd.

$ sudo timedatectl set-ntp true 
$ timedatectl status
Check Linux System Time

Check Linux System Time

Afterwards, issue date command in order to display your system clock.

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Support Us

We are thankful for your never ending support.

Matei Cezar

I'am a computer addicted guy, a fan of open source and linux based system software, have about 4 years experience with Linux distributions desktop, servers and bash scripting.

Your name can also be listed here. Got a tip? Submit it here to become an TecMint author.

RedHat RHCE and RHCSA Certification Book
Linux Foundation LFCS and LFCE Certification Preparation Guide

You may also like...

3 Responses

  1. Hal Baird says:

    I have a dual boot W10/Ubuntu PC. When I boot to Ubuntu from W10, the displayed time is correct before the Ubuntu home page comes up, then decreases by 4 hours when the Ubuntu home page is displayed.

    When booting back to W10, the time stays in error by 4 hours.

    How do I get correct time without having to synchronize after every boot ?

  2. Matei Cezar says:

    Use ntpdate on machine where you don’t want to run a NTP server. A simple Cron task can automate time synchronization with a upstream NTP server.

  3. David says:

    According to a post at https://askubuntu.com/questions/297560/ntpd-vs-ntpdate-pros-and-cons ntpdate has been deprecated since 2012. The current tools are ntpd and chrony.

Got something to say? Join the discussion.

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.