背景
我发现某几台完全离线的服务器的时间校准与北京时间相差快十分钟了,这必然会导致系统运行时的时间获取错误,极易让人忽视,所以我想将那几台离线服务器的时间校准为AD服务器的时间。
离线服务器时间配置
将时间同步服务器指向AD服务器IP(内网),配置完离线服务器将每隔几分钟去自动同步一次AD服务器的时间
问题发现
笔者的AD服务器是联网的,实际上这样做并不规范,规范做法应该是自己在内网搭建一个NTP服务器去同步外部的NTP服务器时间,比如阿里的NTP服务器,中国国家授时中心的NTP服务器,然后再去AD配置时间指向内网的NTP服务器。
1、首先查看AD时间准不准,跟了几分钟发现与北京时间也差个2分钟,说明AD服务器的时间也不准,我第一时间想法是不是自动同步时间没开,但是去看了也不对,AD服务器压根没有自动同步时间的选项。
2、使用w32tm /query /status查看时间同步状态,我一看到Free-running System Clock就知道AD服务器实际上依靠的是本地硬件时钟,非常容易时间误差。我们需要把时间同步源改为外部的可靠的NTP服务器。
AD服务器时间配置
确认和NTP服务器的连接性
使用 w32tm /monitor /computers:ntp.aliyun.com命令,确认和NTP服务器是否可连接。这里ntp.aliyun.com是阿里云提供的NTP服务的域名。
与NTP服务器的连接正常时,显示如下。
而当和NTP服务器无法连接时,显示如下错误信息。
w32tm /query /source命令,确认当前时间同步服务器。这里显示Free-running System Clock,既没有进行NTP同步。
给出几个国内常用的NTP服务器地址
中国国家授时中心 NTP 服务器:
-
服务器地址:ntp.ntsc.ac.cn
-
IP 地址:202.120.2.101
阿里云 NTP 服务器:
-
服务器地址:ntp.aliyun.com
-
IP 地址:110.75.8.1
腾讯云 NTP 服务器:
-
服务器地址:time.tencentcloud.com
-
IP 地址:119.28.117.206
华为云 NTP 服务器:
-
服务器地址:time.hicloud.com
-
IP 地址:120.196.166.232
配置时间同步
在AD 域控本机 ,打开管理员 CMD,逐条完整执行:
1. 重置 Windows 时间服务
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
2. 配置域控同步阿里云 NTP,设为内网权威时间源
w32tm /config /manualpeerlist:"ntp.aliyun.com,0x8" /syncfromflags:manual /reliable:yes /update
参数含义:
-
ntp.aliyun.com,0x8阿里官方时间源,格式正确 -
/reliable:yes关键:标记域控为内网可信时间服务器,别的机器才能同步它 -
/syncfromflags:manual强制关闭自由时钟freerunning
3. 重启服务并强制同步外网
net stop w32time && net start w32time
w32tm /resync /force
4. 域控验证(确认成功)
w32tm /query /source
正常结果:
ntp.aliyun.com
不再显示 freerunning system clock
查看详细状态:
w32tm /query /status
域控防火墙放行【入站 UDP 123】(重中之重!)
离线机 ping 得通域控,却同步失败 ,100% 就是这里没开! Windows 默认防火墙拦截外部所有设备访问本机 UDP123,哪怕网络通也连不上 NTP。
在 AD 域控上直接运行放行命令:
netsh advfirewall firewall add rule name="NTP-In-UDP-123" dir=in action=allow protocol=UDP localport=123 enable=yes profile=any
作用:允许内网其他服务器、电脑连接域控同步时间。
同时补全域控出站(连阿里外网用):
netsh advfirewall firewall add rule name="NTP-Out-UDP-123" dir=out action=allow protocol=UDP remoteport=123 enable=yes profile=any
内网离线服务器配置(无外网,只同步 AD 域控)
在离线业务服务器 上操作,不需要外网、不需要改网关 DNS,只填域控内网 IP。 同样管理员 CMD 逐条执行:
1. 重置本机时间服务
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
2. 指定同步源为【AD 域控内网 IP】
假设你的AD 域控内网 IP 为:[192.168.1.10](192.168.1.10) 替换成你真实 IP,命令如下:
w32tm /config /manualpeerlist:"192.168.1.10,0x8" /syncfromflags:manual /reliable:no /update
要点:
-
末尾必须加
,0x8,Windows NTP 强制格式 -
/reliable:no离线机不作为权威源,只做客户端同步
3. 重启服务 + 强制同步
net stop w32time && net start w32time
w32tm /resync /force
4. 离线服务器验证
w32tm /query /source