1、将一台服务器配置为局域网内的“中心时间服务器”,为网络中的其他设备提供时间同步服务。
2、将一台计算机/服务器指向一个已有的“中心时间服务器”,以同步自己的时间。
我将为您详细讲解这两种情况的设置方法。
情况一:设置一台服务器作为局域网的中心时间服务器
这通常用于企业或组织内部,确保所有设备都使用统一、准确的时间,这台中心服务器自己先从外部的权威时间源(如 NTP 服务器池)获取时间,然后向内网的其他设备提供时间。
这里以 Windows Server 2016/2019/2022 为例。
1、启用 NTP 服务器功能:
* 打开注册表编辑器 (regedit
)。
导航到以下路径
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
* 在右侧,双击Enabled
,将其值从0
改为1
,然后点击“确定”。
2、配置时间源(让中心服务器自身同步准确的时间):
* 以管理员身份打开命令提示符 或PowerShell。
输入以下命令,将服务器指向外部可靠的 NTP 源(这里以time.windows.com
为例)
w32tm /config /syncfromflags:manual /manualpeerlist:"time.windows.com" /reliable:yes /update
重启 Windows Time 服务以应用更改
net stop w32time && net start w32time
3、配置 NTP 客户端策略(可选但推荐):
* 打开组策略管理编辑器。
导航到计算机配置
->管理模板
->系统
->Windows 时间服务
->时间提供程序
。
* 启用配置 Windows NTP 客户端 策略。
* 将NTP 服务器 设置为你的中心服务器地址(例如192.168.1.10
),将类型 设置为NTP
。
* 在客户端计算机上运行gpupdate /force
并重启,或等待组策略自动应用。
4、开放防火墙端口:
* 中心服务器需要允许 UDP 123 端口的入站连接。
* 打开Windows Defender 防火墙与高级安全。
* 新建一条入站规则,选择端口,协议为UDP,特定本地端口为123
,允许连接,并应用到你需要的网络配置文件(域、专用、公用)。
验证:
在客户端计算机上,打开命令提示符,执行:
w32tm /query /source
应该显示你的中心时间服务器的 IP 地址或主机名。
现代 Linux 发行版(如 CentOS 8/RHEL 8, Ubuntu 18.04+)推荐使用chrony
。
1、安装 chrony(通常已预装):
# CentOS/RHEL/Fedora sudo yum install chrony # 或 sudo dnf install chrony # Ubuntu/Debian sudo apt update && sudo apt install chrony
2、编辑 chrony 配置文件 (/etc/chrony.conf
或/etc/chrony/chrony.conf
):
sudo vim /etc/chrony.conf
3、配置 chrony:
注释掉或删除原有的pool
行。
添加可靠的外部 NTP 服务器池,例如
pool cn.pool.ntp.org iburst pool time.windows.com iburst
允许局域网客户端同步添加allow
指令。
allow 192.168.1.0/24 # 允许你的局域网网段
设置一个独立的本地时钟(当外部时间源全部不可用时使用)
local stratum 10
stratum 10
表示即使断网,它也会以较低的优先级(10级)提供时间,防止时间混乱。
4、重启并启用 chrony 服务:
sudo systemctl restart chronyd sudo systemctl enable chronyd
5、开放防火墙端口:
# CentOS/RHEL/Fedora (firewalld) sudo firewall-cmd --add-service=ntp --permanent sudo firewall-cmd --reload # Ubuntu (ufw) sudo ufw allow from 192.168.1.0/24 to any port 123 sudo ufw reload
验证:
在中心服务器上查看时间源:
chronyc sources -v
在客户端上,将 NTP 服务器指向此中心服务器的 IP 即可。
情况二:将计算机/服务器指向一个中心时间服务器
这适用于局域网内的普通客户端,或者任何需要同步时间的计算机。
1、通过图形界面:
* 右键点击任务栏的时间 ->调整日期/时间。
* 确保自动设置时间 和自动设置时区 是开启状态,这通常使用微软的默认时间服务器。
* 要指定特定的中心服务器,请关闭“自动设置时间”,点击立即同步 旁边的同步 按钮,或者点击“其他日期、时间和区域设置” ->设置时间和日期 ->Internet 时间 ->更改设置,在这里你可以输入你的中心时间服务器地址。
2、通过命令提示符(管理员):
指向特定的 NTP 服务器
w32tm /config /syncfromflags:manual /manualpeerlist:"你的中心服务器IP" /update net stop w32time && net start w32time
强制立即同步
w32tm /resync
1、 编辑 chrony 配置文件:
sudo vim /etc/chrony.conf
2、 将pool
或server
指向你的中心时间服务器:
server 192.168.1.10 iburst # 替换为你的中心服务器IP
(如果需要,注释掉其他所有的pool
或server
行)
3、 重启 chrony 服务:
sudo systemctl restart chronyd
4、 验证时间源:
chronyc sources -v
如果你的中心服务器需要连接互联网获取时间,可以使用以下可靠的公共 NTP 服务器:
国际
time.windows.com
(Microsoft)
pool.ntp.org
(轮询池)
time.apple.com
(Apple)
time.google.com
(Google)
ntp.ubuntu.com
(Ubuntu)
中国
cn.pool.ntp.org
(中国区轮询池)
time.pool.aliyun.com
(阿里云)
time1.cloud.tencent.com
(腾讯云)
ntp.ntsc.ac.cn
(国家授时中心)
1、分层设计:遵循 NTP 的层级(Stratum)概念,你的中心服务器是 Stratum 2(从公共 Stratum 1 服务器同步),局域网客户端是 Stratum 3(从你的 Stratum 2 服务器同步)。
2、选择多个时间源:为你的中心服务器配置至少 3-4 个可靠的外部 NTP 服务器,以提高准确性和可靠性。
3、防火墙是关键:确保中心服务器的 UDP 123 端口对内部客户端开放,并且中心服务器本身可以访问外部的 UDP 123 端口。
4、监控:定期检查时间同步状态(使用w32tm /query /status
或chronyc tracking
),确保系统时间准确。
根据你的具体环境选择对应的方法进行设置即可。
文章摘自:https://idc.huochengrm.cn/fwq/18703.html
评论