Setting multiple NTP listen-address

The documentation states:

Multiple listen addresses can be configured.

And I can configure multiple listen addresses:

 allow-client xxxxxx
     address ::/0
 server xxxxx.tld {
 server xxxxx.tld {

However when I go to commit the configuration it fails with:

NTP Only admits one ipv4 value for listen-address parameter

Is this a bug?


Check the manual of chrony

bindaddress address

    The bindaddress directive binds the sockets on which chronyd listens for NTP and NTS-KE requests to a local address of the computer. On systems other than Linux, the address of the computer needs to be already configured when chronyd is started.

    An example of the use of the directive is:


    Currently, for each of the IPv4 and IPv6 protocols, only one bindaddress directive can be specified. Therefore, it is not useful on computers which should serve NTP on multiple network interfaces.

Hi @Viacheslav! I’m familiar with configuring chrony on Linux systems, but with the 1.5 rolling release, the set service ntp ... configurations do not seem to have any effect on chrony’s configuration (least with the standard path of /etc/chrony/chrony.conf).

This forum post seems to suggest there is maybe some discrepancy between the documentation and actual configuration of chrony.

Ultimately, I’m trying to track down why NTP isn’t working…

With my latest NTP settings:

 allow-client xxxxxx
 server xxxxx.tld {
 server xxxxx.tld {

Don’t seem to be working…

vyos@xxxx# run show ntp
                             .- Number of sample points in measurement set.
                            /    .- Number of residual runs with same sign.
                           |    /    .- Length of measurement set (time).
                           |   |    /      .- Est. clock freq error (ppm).
                           |   |   |      /           .- Est. error in freq.
                           |   |   |     |           /         .- Est. offset.
                           |   |   |     |          |          |   On the -.
                           |   |   |     |          |          |   samples. \
                           |   |   |     |          |          |             |
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev

Systemd reports chrony is running and using the /etc/chrony/chrony.conf for it’s config:

vyos@xxxx# sudo systemctl status chrony
â—Ź chrony.service - chrony, an NTP client/server
     Loaded: loaded (/lib/systemd/system/chrony.service; disabled; preset: enabled)
    Drop-In: /run/systemd/system/chrony.service.d
     Active: active (running) since Mon 2024-03-11 09:36:32 UTC; 29s ago
       Docs: man:chronyd(8)
    Process: 481788 ExecStart=/usr/sbin/chronyd -F 1 -f /run/chrony/chrony.conf (code=exited, status=0/SUCCESS)
   Main PID: 481791 (chronyd)
      Tasks: 2 (limit: 9398)
     Memory: 1.3M
        CPU: 182ms
     CGroup: /system.slice/chrony.service
             ├─481791 /usr/sbin/chronyd -F 1 -f /run/chrony/chrony.conf
             └─481792 /usr/sbin/chronyd -F 1 -f /run/chrony/chrony.conf

Mar 11 09:36:32 xxxx systemd[1]: Starting chrony.service - chrony, an NTP client/server...
Mar 11 09:36:32 xxxx chronyd[481791]: chronyd version 4.3 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 -DEBUG)
Mar 11 09:36:32 xxxx chronyd[481791]: Frequency 0.000 +/- 1000000.000 ppm read from /run/chrony/drift
Mar 11 09:36:32 xxxx chronyd[481791]: Using right/UTC timezone to obtain leap second data
Mar 11 09:36:32 xxxx chronyd[481791]: Loaded seccomp filter (level 1)
Mar 11 09:36:32 xxxx systemd[1]: Started chrony.service - chrony, an NTP client/server.
Version:          VyOS 1.5-rolling-202401150027
Release train:    current

Built by:
Built on:         Mon 15 Jan 2024 02:23 UTC
Build UUID:       ae33bb51-d123-4610-a2cb-db17358ce55c
Build commit ID:  365f10340ec2f1

Architecture:     x86_64
Boot via:         installed image
System type:      bare metal

Hardware vendor:  ZOTAC
Hardware model:   XXXXXX
Hardware S/N:     GXXXX301XXXXX
Hardware UUID:    03000200-0400-0500-0006-000700080009

Copyright:        VyOS maintainers and contributors

What am I missing?

Apologies, I missed in the systemd output that the chrony daemon is using /run/chrony/chrony.conf for it’s configuration which does contain my directives.


On a hunch, I used chronyc to see if chrony is actually working…

vyos@xxxx# chronyc -N 'sources -a -v'

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
^?           0   6     0     -     +0ns[   +0ns] +/-    0ns
^?                 0   6     0     -     +0ns[   +0ns] +/-    0ns

So maybe there is a bug is with run show ntp?

Still need to figure out why it’s not stabilizing but least I’m getting somewhere…


I was missing my system DNS…

vyos@xxxx# chronyc activity
200 OK
0 sources online
0 sources offline
0 sources doing burst (return to online)
0 sources doing burst (return to offline)
3 sources with unknown address

Pointed me to the fact that vyos wasn’t able to resolve DNS names. Fixed that and now NTP is happily sync…

Sorry for the noise.


1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.