NTP in Linux
- What is NTP?
- Installing NTP in Linux
- Configuring NTP Servers
- Troubleshooting NTP Issues
- Conclusion
- FAQ

In the world of computing, time is of the essence. Whether you’re running a server, managing databases, or developing applications, ensuring that your systems are in sync is crucial. In Linux, the Network Time Protocol (NTP) serves as the backbone for time synchronization, allowing devices to maintain accurate time across networks.
This tutorial will discuss the intricacies of NTP in Linux, guiding you through its setup, configuration, and common troubleshooting methods. By the end of this article, you’ll have a solid understanding of how to implement NTP effectively on your Linux system, ensuring your applications and services run smoothly and efficiently.
What is NTP?
NTP, or Network Time Protocol, is a networking protocol used to synchronize the clocks of computers over a network. It operates on a client-server model, where clients request time from NTP servers to adjust their internal clocks. NTP can synchronize time with an accuracy of milliseconds over the internet and even better on local networks.
NTP is essential for various applications, including logging events, running scheduled tasks, and maintaining the integrity of transactions. In Linux, NTP is typically implemented using the ntpd
daemon, which runs in the background, constantly adjusting the system clock based on the time received from configured NTP servers.
Installing NTP in Linux
To get started with NTP, the first step is to install the necessary software. Most Linux distributions come with NTP packages available in their repositories. Here’s how to install NTP on popular distributions:
For Ubuntu/Debian:
sudo apt update
sudo apt install ntp
For CentOS/RHEL:
sudo yum install ntp
For Fedora:
sudo dnf install ntp
After installation, you can start the NTP service and enable it to run at boot:
sudo systemctl start ntp
sudo systemctl enable ntp
This code installs the NTP service, starts it immediately, and ensures it will automatically start on system boot.
Output:
NTP service installed and started successfully.
Once installed, you can check the status of the NTP service to ensure it’s running correctly:
sudo systemctl status ntp
Output:
NTP service is active and running.
Configuring NTP Servers
After installing NTP, the next step is to configure your NTP servers. The configuration file is typically located at /etc/ntp.conf
. You can open this file in your favorite text editor, such as nano
or vi
:
sudo nano /etc/ntp.conf
In this configuration file, you will find a list of NTP servers. By default, these may point to servers maintained by the NTP Pool Project. You can add or modify these entries to specify which NTP servers your system should use. Here’s an example of how to configure two NTP servers:
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
The iburst
option allows the client to send a burst of requests to the server during the initial synchronization, speeding up the process. After saving your changes, restart the NTP service to apply the new configuration:
sudo systemctl restart ntp
Output:
NTP service restarted with new configuration.
You can check if your system is synchronizing with the configured servers using the following command:
ntpq -p
Output:
remote refid st t when poll reach delay offset jitter
==============================================================================
*0.pool.ntp.org 192.168.1.1 2 u 15 64 377 0.123 -0.456 0.789
This command displays a list of NTP servers your system is connected to, along with their status and performance metrics.
Troubleshooting NTP Issues
Sometimes, you might encounter issues with NTP synchronization. Here are some common problems and how to troubleshoot them.
-
Service Not Running: If NTP is not syncing, the first thing to check is whether the NTP service is running. Use the following command:
sudo systemctl status ntp
If it’s inactive, start it using:
sudo systemctl start ntp
-
Firewall Issues: Ensure that your firewall allows NTP traffic. By default, NTP uses UDP port 123. You can check your firewall settings using:
sudo ufw status
If necessary, allow NTP through the firewall:
sudo ufw allow 123/udp
-
Network Connectivity: Verify that your system can reach the NTP servers. You can ping the servers listed in your
/etc/ntp.conf
file:ping 0.pool.ntp.org
If there’s no response, check your internet connection or the server status.
-
NTP Drift: If your system clock is drifting significantly, you might need to adjust the NTP configuration. Using the
ntpdate
command can help quickly sync the clock without starting the NTP daemon:sudo ntpdate -u 0.pool.ntp.org
Output:
Time synchronized with 0.pool.ntp.org successfully.
This command fetches the current time from the specified NTP server, helping to correct any significant time discrepancies.
Conclusion
In summary, NTP is a vital component for maintaining accurate time across Linux systems. By installing and configuring NTP, you can ensure that your devices synchronize time reliably, which is essential for various applications and services. Troubleshooting common NTP issues can further enhance your understanding and ability to maintain system integrity. With the knowledge gained from this tutorial, you are now equipped to implement and manage NTP effectively on your Linux systems.
FAQ
- What is NTP and why is it important?
NTP, or Network Time Protocol, is used to synchronize the clocks of computers over a network, ensuring accurate timekeeping which is crucial for logging and scheduling tasks.
-
How do I check if NTP is working on my Linux system?
You can use the commandntpq -p
to check the status of NTP synchronization with your configured servers. -
Can I use public NTP servers?
Yes, you can use public NTP servers like those provided by the NTP Pool Project, which is highly recommended for better reliability. -
What should I do if NTP is not syncing?
Check if the NTP service is running, ensure that your firewall allows NTP traffic, and verify network connectivity to the NTP servers. -
How often does NTP sync time?
NTP typically synchronizes time every 64 seconds, but this can be adjusted based on your configuration.
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn