Custom NTP Server

:

BAD NEWS

Looks like 1.7.0r2 removed the NTPD daemon altogether, so you have to use CONNMAND to sync the clock. I think this aligns with the developer feedback posted on my GitHub Issue

GOOD NEWS

Because there are no longer two daemons running trying to sync the clock, forcing the NTP server to respond with KOD, CONNMAND can sync the clock.

MITIGATION UPDATES

If you implemented my suggested mitigation above, you have to configure CONNMAND to auto and remove the IPTABLES rule that blocks NTP requests not originating from port 123

/etc/kvmd/user/connman/settings

[global]
OfflineMode=false
TimeUpdates=auto

/etc/kvmd/user/scripts/S20update_ntp.sh

#! /bin/sh

echo "server 192.168.69.5 iburst minpoll 6 maxpoll 8" > /etc/ntp.conf

#iptables -A OUTPUT -p udp --dport 123 ! --sport 123 -j DROP

UNKNOWN

CONNMAND is not using public NTP servers in my case, so not exactly sure where it is getting my local NTP server IP from. Although, I do have my local NTP server defined in my pfSense DHCP server, so perhaps it is retrieving it from there.

connmanctl clock
  Time = 1762857000
  TimeUpdates = auto
  TimezoneUpdates = auto
  Timeservers = [  ]
  TimeserverSynced = True
05:46:09.352740 94:83:c4:bb:17:1f > 64:62:66:21:c8:40, ethertype IPv4 (0x0800), length 90: (tos 0x10, ttl 64, id 46095, offset 0, flags [DF], proto UDP (17), length 76)
    192.168.69.60.41179 > 192.168.69.5.123: [udp sum ok] NTPv4, Client, length 48
	Leap indicator: clock unsynchronized (192), Stratum 0 (unspecified), poll 10 (1024s), precision 0
	Root Delay: 0.000000, Root dispersion: 0.000000, Reference-ID: (unspec)
	  Reference Timestamp:  0.000000000
	  Originator Timestamp: 0.000000000
	  Receive Timestamp:    0.000000000
	  Transmit Timestamp:   3971846769.085080508 (2025-11-11T10:46:09Z)
	    Originator - Receive Timestamp:  0.000000000
	    Originator - Transmit Timestamp: 3971846769.085080508 (2025-11-11T10:46:09Z)
05:46:09.352956 64:62:66:21:c8:40 > 94:83:c4:bb:17:1f, ethertype IPv4 (0x0800), length 90: (tos 0xb8, ttl 64, id 16565, offset 0, flags [none], proto UDP (17), length 76)
    192.168.69.5.123 > 192.168.69.60.41179: [bad udp cksum 0x0bdc -> 0xfc5e!] NTPv4, Server, length 48
	Leap indicator:  (0), Stratum 1 (primary reference), poll 10 (1024s), precision -22
	Root Delay: 0.000000, Root dispersion: 0.001083, Reference-ID: GPS^@
	  Reference Timestamp:  3971846762.881682391 (2025-11-11T10:46:02Z)
	  Originator Timestamp: 3971846769.085080508 (2025-11-11T10:46:09Z)
	  Receive Timestamp:    3971846769.352830248 (2025-11-11T10:46:09Z)
	  Transmit Timestamp:   3971846769.352905782 (2025-11-11T10:46:09Z)
	    Originator - Receive Timestamp:  +0.267749740
	    Originator - Transmit Timestamp: +0.267825274