What is NTP in Linux?

NTP is the Network Time Protocol. This protocol allows servers (or desktops) to communicate to very reliable sources to keep their time synchronized. There are two reasons why you would want to employ NTP:

  1. You’re a geek and you want your time to be perfect
  2. You need your servers all synchronized with the correct time

Naturally the second reason is far more important than the first. But either way, you might very well be driven to keep your machine on the exact time. To that end you can either constantly monitor the time on your machine (manually changing it when necessary) or you can set up NTP to handle your time corrections for you.

Installing and configuring NTP is actually quite easy. It will, however, require the use of the command line. With that in mind, lets’ get busy.

Installing NTP on linux machine

ubuntu - how to install ntp on linux

You could open up your Add/Remove Software utility, do a search for “ntp” (no quotes) and install the matching results. Or you can open up a terminal window and install ntp with one of the following commands (remember, you will need either root access or sudo):

  • apt-get install ntp
  • yum install ntp
  • urpmi ntp

One of the above commands will install the ntp daemon and the configuration file /etc/ntp.conf.

Before you fire up the daemon you will need to take a look at the /etc/ntp.conf to make sure you have the ntp servers you want to use configured.

Configurating linux NTP

Most likely your NTP installation will already have a configuration file that is ready to go. My Debian-based NTP install had such a .conf file. All I had to do was start the daemon. But you might have special needs or your install might not have been as complete.

The section of the ntp.conf that you will want to take a look at is the server section. Each line in this section is set up like so:

server IP_ADDRESS OPTION(S)

Where IP_ADDRESS is the actual address of the server you want to use and OPTION(S) is/are the option(s) you want to use.

There are two options that you might want to use for every server. These are:

If you look at my /etc/ntp.conf file you will see the following in the server section:

server 0.debian.pool.ntp.org iburst dynamic
server 1.debian.pool.ntp.org iburst dynamic
server 2.debian.pool.ntp.org iburst dynamic
server 3.debian.pool.ntp.org iburst dynamic

If you are not sure what servers to use visit the official NTP organization NTP.org to find a list of trusted servers.

Start NTP Daemon!

Once you have everything up and running go back to the root terminal and issue the command:

/etc/init.d/ntp start or /etc/rc.d/init.d/ntp start

which will start the ntp daemon. NTP will now slowly start to adjust the time on your server. But don’t worry, it makes the adjustment slowly. First the daemon waits for at least ten packets of information before trusting a source. Now test to make sure your installation is working by issuing the following command:

ntpq -p

which should give you a listing like:

remote refid st t when poll reach delay offset jitter =========================================================
+point2.adamants 64.202.112.75 2 u 44 64 377 75.955 -7.045 2.992
*station.mars.or 209.81.9.7 2 u 10 64 377 75.477 -1.144 0.977
-www.broadbandja 64.34.180.101 3 u 56 64 377 72.764 3.766 0.977
+pxe.lax-noc.com 209.81.9.7 2 u 25 64 377 65.686 -7.753 2.539

If you see zeros for the values you know ntp is not connecting. As you can see above my setup is connecting.

Finals on NTP Linux

NTP is an easy way to ensure your servers or your desktop is always using the correct time. In mission-critical machines, this can be quite important. Employing NTP will give you the security of knowing your machine’s right “on time”.