离线服务器时间同步NTP服务器配置

背景

我发现某几台完全离线的服务器的时间校准与北京时间相差快十分钟了,这必然会导致系统运行时的时间获取错误,极易让人忽视,所以我想将那几台离线服务器的时间校准为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 服务器:

腾讯云 NTP 服务器:

华为云 NTP 服务器:

配置时间同步

在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
相关推荐
R²AIN SUITE19 分钟前
企业智能体平台私有化部署需要什么服务器?CPU、内存、显卡与项目管理集成的7个评估项
运维·服务器
坚定的共产主义生产设备永不宕机20 分钟前
服务器从裸机开始搭建ESXI虚拟机
linux·服务器·网络
刚入门的大一新生27 分钟前
Linux-线程封装
linux·运维·服务器
Android系统攻城狮1 小时前
Linux FFmpeg深度解析之av_dump_format调用流程与实战(十一)
linux·运维·服务器·ffmpeg·1024程序员节·音视频进阶
Android系统攻城狮1 小时前
Linux FFmpeg深度解析之avcodec_find_decoder调用流程与实战(十二)
linux·运维·服务器·ffmpeg·1024程序员节·音视频进阶
小白的码BUG之路1 小时前
K8s -- 启动一主二从节点
linux·运维·服务器
dreams_dream1 小时前
项目想要推送多个平台仓库的方法
gitee·github
赵民勇1 小时前
Git命令详解
git
AI_Lab011 小时前
服务器管理工具要在服务器上装 Agent,安全吗?
服务器·安全·github
风娜1 小时前
【Linux网络】UDP 服务器怎么写?从 socket、bind 到 recvfrom/sendto,手写完整回显服务器
linux·服务器·网络