Technical Anshu
Tutorials Blog
🕐 NTP Sync Fix

Ubuntu NTP Not Synchronizing Fix Timesyncd Service and Network Checks

Your zone is right, the hardware clock is fine, but the time still wanders - a minute this month, five the next. That is the internet correction quietly failing. Ubuntu's sync client is systemd-timesyncd, and it fails in only a few ways. Here they are, in order.

✍️ Technical Anshu🐧 Ubuntu⏱️ 6 minute read
🎥 Watch the full video - every Ubuntu time fix shown live, step by step

Ubuntu keeps its clock honest by asking time servers over the internet - that is NTP. The built-in client is systemd-timesyncd: deliberately simple, it asks a server, steps or eases your clock to match, and reports success in one line of timedatectl: System clock synchronized: yes. When that line says no boot after boot, one of three things is wrong - sync is switched off, the service is not running, or the network is eating its packets. Each has a different fix, so check in order.

Terminal - a sync client that has never reached a server
$ timedatectl timesync-status Server: n/a Poll interval: 0 (min: 32s; max: 34min 8s) Packet count: 0
Packet count 0 and Server n/a means timesyncd has not completed a single exchange. The service may be running perfectly - it simply cannot get an answer. Example output.
1

Confirm the Symptom in One Command

  1. Run timedatectl and read two lines: System clock synchronized and NTP service
  2. NTP service: inactive means sync is switched off entirely - go to step 2
  3. NTP service: active but synchronized: no means it is trying and failing - go to step 3
  4. Run timedatectl timesync-status - a healthy client names a server and shows a packet count above zero

Also note your actual error size with date against your phone. Minutes of drift with sync failing is this page; an exact zone-offset jump is the dual-boot fault, not this one.

2

Switch Sync on - in Settings or by Command

  1. GUI route: Settings, then Date & Time, turn on Automatic Date & Time
  2. Terminal route: timedatectl set-ntp true
  3. Wait a minute with the internet connected, then run timedatectl again
  4. The synchronized line should flip to yes and the clock should correct itself

If someone (or a past experiment) turned this off, nothing else on this page is needed. You would be surprised how often this is the whole story.

3

Check and Restart the timesyncd Service

  1. See the service state: systemctl status systemd-timesyncd - you want active (running)
  2. If it is stopped or failed, restart it: sudo systemctl restart systemd-timesyncd
  3. Give it a few seconds, then check timedatectl timesync-status for a named server and a rising packet count
  4. If the service will not stay running, its recent log explains why: journalctl -u systemd-timesyncd -n 30

Do not reinstall anything yet - a service that runs but never synchronizes is pointing at the network, which is the next step.

4

Suspect the Network - NTP Uses UDP Port 123

Time sync does not travel like web traffic. It uses UDP port 123, and some networks quietly block or break it:

  1. Office and campus networks sometimes force all machines to use an internal time server and block outside NTP
  2. Some routers and ISP setups mishandle UDP, so the request leaves and no answer returns
  3. The honest test is a different network: connect to a phone hotspot for two minutes and re-check timedatectl
  4. If it synchronizes instantly on the hotspot, your Ubuntu is healthy and your main network is the fault - on managed networks, ask the admin for their internal NTP server instead of fighting the block

Blaming Ubuntu for a blocked port wastes exactly the time this guide is trying to save you.

5

Know What timesyncd Is - and When to Replace It

Be clear about the tool: systemd-timesyncd is a simple client, not a full NTP daemon. It does not serve time to other machines, and its correction style is basic - fine for desktops and laptops.

  1. For a normal home machine, once sync works, leave it alone
  2. For servers and always-on VMs, the heavier tool is chrony - install it with sudo apt install chrony and it replaces timesyncd as the sync engine
  3. Chrony handles big jumps after sleep or snapshot restores more gracefully and reports its state with chronyc tracking
  4. Do not run both at once - two sync engines stepping the same clock fight each other

Wrong tool for the job is a real cause of "sync never settles", especially on servers.

🕐 Honest limit: timesyncd corrects the clock in steps when the error is large. If you see the time jump once after fixing sync, that is the correction arriving - not a new fault. Watch the synchronized line, not the jump.

Watch the Complete Video Guide

Watch the video for the live timesyncd checks - service state, sync status, and the hotspot test that separates a PC fault from a network fault.

Watch Full Video
❓ Common Questions (FAQ)

timedatectl says NTP service active but synchronized no. What does that mean?

The client is running and asking, but no time server has answered successfully yet - or at all. Restart systemd-timesyncd once, then test on a different network such as a phone hotspot. Syncing there proves the network was blocking UDP port 123.

My office network blocks outside NTP. Can I still sync?

Yes - point the machine at the organisation's internal time server instead, which is what the block is usually designed to enforce. Ask your network admin for its address. On your own home network, no such block should exist; if sync fails there too, check the router.

Should I replace timesyncd with chrony on my laptop?

Usually there is no need. Timesyncd is enough for a desktop or laptop that sleeps and wakes on normal networks. Chrony earns its place on servers, VMs, and machines that wake after long sleeps with big clock jumps. Running both together is the one thing to avoid.

This guide is based on the Technical Anshu Ubuntu time fix video - stuck on any step, ask in the video comments and you will get an answer.