How to synchronize system clock in Debian


Fixing systemd-timesyncd NTP Synchronization in Debian




The timedatectl command is provided by systemd. It allows you to query and change the system clock and its settings, and to enable or disable time synchronization services.

You can also use it to display the current status of time synchronization services such as `systemd-timesyncd.service`.


systemd-timesyncd.service is a system service that synchronizes the local system clock with a remote Network Time Protocol (NTP) server.



To enable system time synchronization:


$ sudo timedatectl set-ntp true

or

$ sudo systemctl enable --now systemd-timesyncd



Check the current time status:


$ timedatectl
Local time: Sun 2026-10-18 22:39:56 CEST
Universal time: Sun 2026-10-18 20:39:56 UTC
RTC time: Sun 2026-10-18 20:44:46
Time zone: Europe/Madrid (CEST, +0200)
System clock synchronized: no
NTP service: active
RTC in local TZ: no


The system clock is not synchronized. The NTP service is active but not working.



Show the current status of the systemd-timesyncd service:

$ timedatectl timesync-status
Server: 130.149.17.8 (130.149.17.8)
Poll interval: 1min 4s (min: 32s; max 34min 8s)
Packet count: 0



$ timedatectl show-timesync --all
LinkNTPServers=
SystemNTPServers=130.149.17.8
RuntimeNTPServers=
FallbackNTPServers=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
ServerName=130.149.17.8
ServerAddress=130.149.17.8
RootDistanceMaxUSec=5s
PollIntervalMinUSec=32s
PollIntervalMaxUSec=34min 8s
PollIntervalUSec=4min 16s
Frequency=0



Check the service status for more details:

$ systemctl status systemd-timesyncd
 systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; preset: enabled)
     Active: active (running) since Fri 2026-09-11 18:04:49 CEST; 1 month 6 days ago
 Invocation: bf81505bea374140d869fejf1d98f5fbad
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 1055311 (systemd-timesyn)
     Status: "Idle."
      Tasks: 2 (limit: 18886)
     Memory: 696K (peak: 3.1M, swap: 908K, swap peak: 912K)
        CPU: 18.970s
     CGroup: /system.slice/systemd-timesyncd.service
             └─1055311 /usr/lib/systemd/systemd-timesyncd

Oct 18 16:57:32 mySys systemd-timesyncd[1053311]: Timed out waiting for reply from 130.149.17.8:123 (130.149.17.8).
Oct 18 17:31:50 mySys systemd-timesyncd[1053311]: Timed out waiting for reply from 130.149.17.8:123 (130.149.17.8).
Oct 18 18:06:09 mySys systemd-timesyncd[1053311]: Timed out waiting for reply from 130.149.17.8:123 (130.149.17.8).
Oct 18 18:40:27 mySys systemd-timesyncd[1053311]: Timed out waiting for reply from 130.149.17.8:123 (130.149.17.8).
Oct 18 19:14:46 mySys systemd-timesyncd[1053311]: Timed out waiting for reply from 130.149.17.8:123 (130.149.17.8).


The configured server `130.149.17.8` is not responding.



Solution: Update the NTP Configuration


Edit the timesyncd configuration file:

$ sudo nano /etc/systemd/timesyncd.conf

Set a reliable NTP server:
NTP=debian.pool.ntp.org


The resulting file looks like this:

$ cat /etc/systemd/timesyncd.conf
...
# Use 'systemd-analyze cat-config systemd/timesyncd.conf' to display the full config.
#
# See timesyncd.conf(5) for details.

[Time]
NTP=debian.pool.ntp.org
FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
#ConnectionRetrySec=30
#SaveIntervalSec=60



View the effective configuration (including any drop-ins):

$ systemd-analyze cat-config systemd/timesyncd.conf
# /etc/systemd/timesyncd.conf
#  This file is part of systemd.
#
...
#
# See timesyncd.conf(5) for details.

[Time]
NTP=debian.pool.ntp.org
FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
#ConnectionRetrySec=30
#SaveIntervalSec=60

# /run/systemd/timesyncd.conf.d/dhcpcd-enp2s0.dhcp.conf
# Generated by dhcpcd from enp2s0.dhcp
[Time]
NTP=130.149.17.8



Note that a DHCP-generated drop-in is still injecting the non-working server. Restart the service to apply the changes:

$ sudo systemctl restart systemd-timesyncd



Verification


Confirm the new configuration is active:

$ timedatectl show-timesync --all
LinkNTPServers=
SystemNTPServers=debian.pool.ntp.org 130.149.17.8
RuntimeNTPServers=
FallbackNTPServers=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
ServerName=debian.pool.ntp.org
ServerAddress=195.95.153.43
RootDistanceMaxUSec=5s
PollIntervalMinUSec=32s
PollIntervalMaxUSec=34min 8s
PollIntervalUSec=32s
NTPMessage={ Leap=0, Version=4, Mode=4, Stratum=1, Precision=-23, RootDelay=0, RootDispersion=0, Reference=GNSS, OriginateTimestamp=Sun 2026-10-18 22:47:36 CEST, ReceiveTimestamp=Sun 2026-10-18 22:52:37 CEST, TransmitTimestamp=Sun 2026-10-18 22:52:37 CEST, DestinationTimestamp=Sun 2026-10-18 22:47:36 CEST, Ignored=no, PacketCount=1, Jitter=0 }
Frequency=0



Check overall time status:

$ timedatectl
Local time: Sun 2026-10-18 22:53:10 CEST
Universal time: Sun 2026-10-18 20:53:10 UTC
RTC time: Sun 2026-10-18 20:53:10
Time zone: Europe/Madrid (CEST, +0200)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no



Detailed synchronization status:

$ timedatectl timesync-status
       Server: 195.95.153.59 (debian.pool.ntp.org)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 1
    Reference: GNSS
    Precision: 1us (-23)
Root distance: 0 (max: 5s)
       Offset: -5.712ms
        Delay: 20.180ms
       Jitter: 5.590ms
 Packet count: 146
    Frequency: +64.655ppm



The system clock is now synchronized.



References


$ man timedatectl
$ man systemd-timesyncd

https://wiki.archlinux.org/title/Systemd-timesyncd