Syncing time is essential on Proxmox servers, especially in a cluster — time drift can cause serious issues with quorum, backups, and HA.
Here’s how to ensure accurate time sync on your Proxmox nodes:
✅ Recommended Method: Use systemd-timesyncd (built-in on Debian)
🔧 1. Enable and start time sync:
sudo timedatectl set-ntp true
Verify:
timedatectl status
Look for:
NTP service: active
System clock synchronized: yes
This uses
systemd-timesyncd, which is light and reliable for Proxmox servers.
🧰 Alternative: Use chrony (Recommended for more control)
chrony is more robust, especially if your nodes might be offline/online often or you’re doing HA.
1. Install chrony:
sudo apt install chrony
2. Edit config (optional):
sudo nano /etc/chrony/chrony.conf
Add or edit NTP servers:
server time.google.com iburst
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
3. Restart and enable:
sudo systemctl enable chrony
sudo systemctl restart chrony
4. Check sync status:
chronyc tracking
🧪 Verify Time Sync on Proxmox
On each node:
timedatectl
All nodes should show:
NTP service: activeSystem clock synchronized: yes- Same or very close times
🧠 Bonus: Sync RTC (hardware clock)
To sync system time to the hardware clock:
sudo hwclock --systohc
Let me know if you’re using a cluster and want to designate one Proxmox node as an NTP server for others, or if you’d like to sync from your Pi-hole box or router!
Perfect — turning one of your Proxmox nodes into an NTP server is a great idea for local time sync, especially in a cluster or if internet access is limited.
Here’s how to do it using chrony, which is ideal for Proxmox nodes:
🧭 Overview
- One Proxmox node will be the NTP server.
- The others will sync from it as NTP clients.
🖥️ On the Proxmox NTP Server (e.g., pve1)
1. Install chrony if not already installed:
sudo apt update
sudo apt install chrony
2. Edit the config to allow LAN clients
sudo nano /etc/chrony/chrony.conf
Add or uncomment these lines:
# Allow LAN subnet (adjust to your LAN range)
allow 192.168.1.0/24
# Make this machine act as an NTP server
local stratum 10
Optional: Use a known upstream NTP source for initial sync:
server time.google.com iburst
server 0.pool.ntp.org iburst
3. Restart chrony and enable it
sudo systemctl restart chrony
sudo systemctl enable chrony
🖥️ On the Proxmox Clients (e.g., pve2, pve3)
1. Install chrony:
sudo apt install chrony
2. Configure it to sync from the Proxmox NTP server:
sudo nano /etc/chrony/chrony.conf
Comment out existing server lines, and add:
server 192.168.1.10 iburst # Replace with the IP of your Proxmox NTP server
3. Restart and enable:
sudo systemctl restart chrony
sudo systemctl enable chrony
4. Verify sync status:
chronyc sources
chronyc tracking
You should see something like:
Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
192.168.1.10 10 6 377 32 -34us[ -44us] +/- 200us
🧪 Bonus: Test if the server is responding
From another node:
chronyc sources
Or:
ntpq -p 192.168.1.10
Let me know if you want to also allow the Pi-hole box or other clients on your LAN to sync from this NTP server too — it’s as easy as expanding the subnet in allow.