Chrony-Time-Service(at)WorkAn NTP server where you decide what time it is.
Set the time server to any date and time, or shift it forwards and backwards, and every client in the test network follows. Made for testing certificates, licences, daylight saving time and the year 2038 in closed networks. Runs on Rocky Linux 9, in VMware and in Proxmox VE, and installs from one package without internet access.
| Client | System | Clock | Offset vs server |
|---|---|---|---|
| app01 | Rocky Linux 9 · chrony | +0.4 ms | |
| dc01 | Windows Server · w32time | −1.1 ms | |
| sw-core01 | Network switch · NTP | +2.3 ms |
Chrony-Time-Service(at)Work
9.0.0An NTP server with a web GUI, built on chrony from the operating system. From the browser you set the clock, shift it, change mode and see which clients are asking. The interface is available in English and Norwegian.
- Sets
- Set any date and time as server time or UTC, or shift with quick buttons (±1 min, 10 min, 1 h, 1 d) or any amount. "Sync to this computer's time" takes you back in one click.
- Serves
- chronyd answers the clients on UDP 123. In internal mode the server's own clock is the reference, with a chosen stratum. In external mode it follows your own upstream servers.
- Shows
- Live server clock in local time and UTC, offset vs your own PC, sources, clients and tracking. An audit log of who set the clock when, even after big jumps.
- Secures
- Login and CSRF protection. The GUI runs without root, and one strictly validating helper is the only thing allowed to set the clock. VMware Tools time sync is turned off automatically.
Test scenarios
The server makes it easy to test time-dependent behaviour without touching the clock on every machine. Getting started:
- Install on a VM
install.shsets up chronyd in internal mode, starts the GUI and turns off VMware Tools time sync. - Point the clients at the server
Change the NTP server on the clients and let them step on big offsets (
makestep 1 -1in chrony). - Set the clock
Set a date or shift the time. The clients follow at their next synchronisation, and the action goes into the audit log.
- Back to real time
"Sync to this computer's time", or external mode and "Resync from upstream".
| Test | How |
|---|---|
| Certificate or licence expiry | Press +1 d repeatedly, or set the date just after the expiry date. |
| Daylight saving time (Europe/Oslo) | Set 2026-10-25 00:59:30 UTC: clocks go back at 01:00 UTC. Spring: 2027-03-28 00:59:30 UTC. |
| Leap day | Set 2028-02-28 23:59:30. |
| Year 2038 | Set 2038-01-19 03:13:50 UTC and see what 32-bit time_t does. |
| Time drift alarms | Shift +10 min or −90 s and watch the monitoring. |
| Time server lost | Press Stop. The clients should report that no source is reachable. |
Installation
Everything is in one offline package, the Python packages included. The installer verifies the checksums, recognises VMware and Proxmox, opens the firewall and finishes with a self test that asks the server for the time over NTP.
Rocky Linux 9, VMware or Proxmox VM
$ sha256sum -c Chrony-Time-Service-9.0.0-offline.tar.gz.sha256
$ tar xzf Chrony-Time-Service-9.0.0-offline.tar.gz
$ cd Chrony-Time-Service-9.0.0
$ sudo ./install.sh --lang en
# open http://<server>:5032/
Needs only chrony, Python 3.9 and sudo, all part of Rocky Linux 9 Minimal. No pip, no venv and no internet. Limit the GUI to the management network with --admin-net 10.10.0.0/24.
From the ISO in VMware or Proxmox
# attach Chrony-Time-Service-9.0.0-offline.iso to the VM's CD/DVD
$ sudo mount -o ro /dev/sr0 /mnt
$ cp -r /mnt ~/cts && cd ~/cts
$ sudo ./install.sh --lang en
$ sudo python3 tools/selftest.py --readonly
Easiest in a closed network: upload the ISO to a vSphere datastore or to ISO Images in Proxmox VE. The package works on both x86_64 and aarch64.
Turn off hypervisor time sync for the VM, or the test time may be reset. In VMware the installer does this inside the VM, but the .vmx parameters must be set as well. In Proxmox VE 9.2.5 and newer the agent option sync-time-on-resume must stay off. LXC containers cannot set the clock; use a VM.
Screenshots
The interface is available in English and Norwegian, in light and dark mode, and works on mobile too. The pictures here are from the English version; the Norwegian page shows Norwegian screenshots. Click to see the full-size picture.