我有两台机器,
- IP 192.168.0.1 的主机 A
- IP 192.168.0.2 的主机 B
它们连接到同一网络,我想将机器 B 的日期和时间设置为与机器 A 的日期和时间相匹配。虽然我最初可以使用互联网连接设置机器,但部署后它们将无法访问它,并且它们每天都会重新启动。
当前使用 Chrony 的方法 参考。
这个配置不正确,根据一些测试结果,当NTP服务器有互联网连接时同步成功,否则同步失败。
您对有效配置它们有什么建议或建议吗?
机器 A - 配置为 NTP 服务器
sudo apt update && sudo apt upgrade
sudo apt install chrony
sudo vim /etc/chrony/chrony.conf
使用此配置来设置 NTP 服务器
confdir /etc/chrony/conf.d
pool ntp.ubuntu.com iburst maxsources 4
pool 0.ubuntu.pool.ntp.org iburst maxsources 1
pool 1.ubuntu.pool.ntp.org iburst maxsources 1
pool 2.ubuntu.pool.ntp.org iburst maxsources 2
allow 192.168.0.0/24
sourcedir /run/chrony-dhcp
sourcedir /etc/chrony/sources.d
keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift
ntsdumpdir /var/lib/chrony
logdir /var/log/chrony
maxupdateskew 100.0
rtcsync
makestep 1 3
leapsectz right/UTC
重新启动 chrony 服务,检查其正在运行并使其能够在启动时启动
sudo systemctl restart chrony
sudo systemctl status chrony
CTRL+C
sudo systemctl enable chrony
机器 B - 配置为 Chrony 客户端
与服务器池同步日期和时间并设置 192.168.0.1
sudo apt update && sudo apt upgrade
sudo apt install chrony
sudo vim /etc/chrony/chrony.conf
使用以下配置文件
pool 192.168.0.1 iburst prefer
keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift
logdir /var/log/chrony
log measurements statistics tracking
maxupdateskew 100.0
rtcsync
makestep 1.0 3
重新启动,检查服务并在启动时启用它
sudo systemctl restart chrony
sudo systemctl status chrony
CTRL+C
sudo systemctl enable chrony
更新 如果我手动同步时间,则会出现以下错误没有合适的同步源。
sudo systemctl stop chrony
sudo chronyd -d 'server 192.168.0.1 iburst'
2023-03-15T15:54:55Z chronyd version 3.5 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 -DEBUG)
2023-03-15T15:54:55Z Initial frequency -36.773 ppm
2023-03-15T15:55:03Z No suitable source for synchronisation
2023-03-15T15:55:03Z chronyd exiting
更新2
如果我将 NTP 服务器连接到互联网,则同步成功。
答案1
您需要服务器配置文件中的指令local
,以便在没有互联网时自行同步。通常,您可能会local stratum 8
说它不如第 2 层或第 3 层的远程 ntp 服务器。这会阻止本地时钟优先于互联网时钟源。如果服务器有像 GPS 这样的硬件时间源,那么查看该refclock
指令,看看是否也可以配置它。