Windows 10 忽略 Samba 4 DC 上的时间变化

Windows 10 忽略 Samba 4 DC 上的时间变化

我有一个安装了 Samba 4 作为 AD DC 的 VM。它也是 NTP 服务器,服务器上的时间是正确的。使用 进行了测试ntpdate -q ntp-server,它给出了正确的时间和日期:

ntpdate -q dc01
-> server 10.0.0.25, stratum 2, offset -0.000003, delay 0.02570
->  5 Apr 00:29:02 ntpdate[19581]: adjust time server 10.0.0.25 offset -0.000003 sec

今天,我在冬令时转为夏令时后首次启动 Windows 10 客户端,现在仍处于冬令时。我尝试了以下操作,但无济于事:

w32tm /config /syncfromflags:domhier /update
-> The command completed successfully.

net stop w32time
-> The Windows Time service is stopping.
   The Windows Time service was stopped successfully.

net start w32time
-> The Windows Time service is starting.
-> The Windows Time service was started successfully.

w32tm /resync
-> Sending resync command to local computer
-> The computer did not resync because no time data was available.

我假设“向本地计算机发送重新同步命令”意味着告诉 NTP 客户端连接到 NTP 服务器(AD DC VM)以获取时间更正。

显然什么也没有发生。

作为额外的提示并且可能很有价值:“日期和时间”配置对话框中的“Internet 时间”选项卡未显示,对于域客户端来说这似乎是正常的。

谢谢您的任何意见!

答案1

最后,一些随机的 w32time 相关帖子让我找到了解决方案。首先,日志记录有助于:

w32tm /debug /enable /file:c:\temp\ntpDebug.log /size:102400 /entries:0-300
w32tm /resync
-> Sending resync command to local computer
-> The computer did not resync because no time data was available.

在日志文件中,AD DC 已列为时间服务器,但它仍然声称没有时间服务器可以询问。

错误消息“Tx 时间戳未返回,并且可能不受当前网络接口支持”让我关注微软支持文章

w32tm /config /manualpeerlist:"dc01,0x8 dc02,0x8" /syncfromflags:MANUAL
net stop w32time
net start w32time
w32tm /resync
-> Sending resync command to local computer
   The command completed successfully.

显然 Samba 4 不喜欢 Windows 10 对称主动模式请求。因此,使用 0x8 将时间客户端切换到客户端模式。

不要忘记关闭日志记录:

w32tm /debug /disable

开始了 :)

答案2

我们按照以下方法解决了这个问题Samba Wiki / 在 DC 上配置时间同步。在我们的案例中(在 Debian/buster 上运行的 Samba AD)ntpsigndsocket在文件中丢失并且不正确ntp.conf

ntp.conf应该包含这一行:

ntpsigndsocket  /var/lib/ntp_signd/

可以通过以下方式确定套接字路径:

% sudo lsof -Un | grep signd
samba       525            root   23u  unix 0x0000000029f51b41      0t0 15061 /var/lib/samba/ntp_signd/socket type=STREAM

我们的 Windows 域(Windows Server 2019)已经拒绝与域控制器同步其时间:

时间提供程序 NtpClient:尝试联系域控制器 %1 8 次后,未收到有效响应。此域控制器将不再作为时间源,NtpClient 将尝试发现要从中同步的新域控制器。错误为:%2

我们通过停止时间提供程序服务、重新注册并重新启动服务来解决这个问题:

net stop w32time
w32tm /unregister
w32tm /register
net start w32time

(Aw32tm /resync可能就足够了。)

然后应显示域控制器w32tm /query /source

这篇文章也非常有帮助:https://www.linuxquestions.org/questions/slackware-14/ntp-on-samba-4-dc-not-syncing-with-windows-10-workstations-4175685516/#post6187657

答案3

如果你遵循samba 设置说明你需要添加同步NTP协议进入配置并设置 ntp_signd 文件夹的权限,则您无需手动更改使用默认设置配置的 Windows 客户端。问题不太可能出在 Windows 上,最有可能是 ntp.conf 配置错误。请记住在进行更改后重新启动 ntp 服务。

我发现本指南有用

另一个答案中 ntp.conf 中提供给 ntp_signd 的路径对我来说也不正确(ubuntu),应该是ntpsigndsocket /var/lib/samba/ntp_signd

注意:当你对 w32tm 进行更改时,你需要使用 /update 参数才能使更改生效: w32tm /config /update w32tm /resync

您应该像这样设置您的客户端(这是默认配置): w32tm /config /syncfromflags:domhier /update

请注意,如事件日志中所示,在尝试 8 次(共 15 分钟)后,窗口将超时。时间提供程序 NtpClient:尝试联系域控制器 DC1.example.com 8 次后,未收到有效响应。此域控制器将作为时间源被丢弃,NtpClient 将尝试发现要从中同步的新域控制器。错误为:对等方无法访问。

您可以使用以下命令进行调试: w32tm /debug /enable /file:C:\temp\w32time.log /entries:0-116 /size:10000000 并记得使用以下命令禁用它: w32tm /debug /disable

检查 ntp 服务是否正在监听/运行 sudo lsof -i:123 ,您可以在 ntp.conf 中配置日志记录 logfile /var/log/ntp

相关内容