我对 NTP 还不太熟悉。我有两台运行 Lubuntu 17.04 的计算机,我想用最少的硬件保持它们的时间同步。无需同步到实时,只需让两台计算机之间的系统时间尽可能接近即可。
NTP 似乎是一个合适的解决方案。我成功地让两台计算机之间的 NTP 工作起来,当配置了 DHCP 地址时(来自路由器的 DHCP,一台 PC 是 NTP 广播服务器,另一台是客户端,两台 PC 相互同步并获得约 1ms 或更短的紧密同步)。
为了减少硬件数量,我移除路由器并将每台计算机上的 IP 设置为静态,然后通过交叉电缆连接:
- 10.1.1.50 255.255.255.0(NTP“客户端”PC)
- 10.1.1.51 255.255.255.0(NTP“服务器”PC)
(两种情况下网关都留空。)
PC 可以成功 ping 通对方(延迟小于 1ms,大约 0.3ms-0.4ms)。但是,我似乎无法获得配置ntp.conf
;NTP 客户端计算机只是停留在 INIT 状态,所有测量结果均为 0。请问我该如何调试 NTP 配置以找出问题所在?
没有/var/lib/ntp/ntp.conf.dhcp
文件。两台电脑的防火墙均已关闭。
输出ntpq -pn
为
remote refid st t when poll reach delay offset jitter
==============================================================================
10.1.1.51 .INIT. 16 u - 1024 0 0.000 0.000 0.000
ntp.conf
与客户端相关的行是(即所有没有注释的行)
driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 10.1.1.51
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
restrict 127.0.0.1
restrict ::1
restrict 10.1.1.0 mask 255.255.255.0
disable auth
broadcastclient
ntp.conf 中与服务器 NTP PC 相关的行是(即所有没有注释的行)
driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 127.127.2.1 # local clock
fudge 127.127.2.1 stratum 10
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
restrict 127.0.0.1
restrict ::1
restrict source notrap nomodify noquery
restrict 10.1.1.0 mask 255.255.255.0
broadcast 10.1.1.255
使用命令 ntpdate -d 10.1.1.51 的问题似乎是 NTP 服务器 10.1.1.51 的层数太高(因为它当前与互联网断开连接,因此,根据 NTP,它不是一个值得信赖的时间源)。
研究表明,无法伪造我的独立 NTP 服务器的层级。因此,我在 NTP 服务器上启用了 wifi,并尝试允许它同步到标准的 Ubuntu 时间服务器池,但是插入交叉电缆后,ntpq -p 需要很长时间才能响应。我将检查我的网络配置是否正确并报告结果。
答案1
要通过交叉电缆使用 NTP,NTP 服务器 PC 必须与其他互联网服务器同步,否则其自身的层级会下降得太低,客户端 NTP PC 会拒绝将其作为有效服务器。就我而言,解决方案是:
确保交叉电缆设置正确,两个有线网卡都不应配置网关和 DNS,并且应与 NTP 服务器的 wifi 子网位于不同的子网中。例如,在我的情况下,我将 PC 网卡移动到静态 IP
- 10.1.2.50 255.255.255.0(NTP“客户端”PC)无网关,无 DNS
- 10.1.2.51 255.255.255.0(NTP“服务器”PC)无网关,无 DNS
这是在 Lubuntu“编辑连接” GUI 网络工具中完成的。
在 NTP 服务器 PC 上启用 wifi,这样它就可以从互联网获取时间同步。此配置为 10.1。1.n 子网,其中 n 由 wifi 路由器通过 DHCP 分配。这必须与有线网卡不同的子网(如根据以下方法发现的)https://askubuntu.com/questions/624830/ubuntu-using-wrong-nic-for-internet-connection
添加默认文件附带的标准时间服务器
ntp.conf
,并确保两个ntp.conf
文件(客户端和服务器)都在查看 10.1.2.0 子网。重新启动所有程序并等待十分钟,让 NTP 开始同步。