Linux 系统时间同步
Linux 系统使用 chrony 或 ntpd 来进行时间同步,在现代 Linux 发行版(如 CentOS 7+, Ubuntu 18.04+)中,chrony 是默认推荐的服务,因为它对网络延迟和不稳定的连接适应性更强。

使用 Chrony(推荐)
A. 客户端模式(从公网服务器同步)
这是最常见的配置,让你的 Linux 电脑与互联网上的标准时间服务器同步。
安装:
# CentOS/RHEL/Fedora sudo yum install chrony # Debian/Ubuntu sudo apt update sudo apt install chrony
配置:
编辑 /etc/chrony.conf 文件:

sudo nano /etc/chrony.conf
默认情况下,文件中已经包含了一些公共 NTP 服务器(如 pool.ntp.org),你可以直接使用它们,或者替换为你信任的其他服务器(如国家授时中心的服务器)。
示例配置(使用中国国家授时中心服务器):
# 使用公共池服务器,推荐 pool pool.ntp.org iburst # 或者使用指定的服务器 # server ntp.ntsc.ac.cn iburst # server s1a.time.edu.cn iburst # server 2.cn.pool.ntp.org iburst # 允许其他客户端从本机同步时间(配置服务器时需要) # allow 192.168.1.0/24 # 禁止修改本地硬件时钟(除非你是服务器) # local stratum 10
iburst 选项可以在启动时快速同步时间。
启动并启用服务:

# 启动服务 sudo systemctl start chronyd # 设置开机自启 sudo systemctl enable chronyd
检查同步状态:
# 查看同步状态 chronyc tracking # 查看与哪些服务器同步 chronyc sources # 查看详细活动信息 chronyc activity
B. 服务器模式(作为局域网时间同步服务器)
如果你想配置一台 Linux 机器作为局域网内所有设备的时间源,你需要进行如下配置。
前提条件:
- 这台 Linux 机器本身时间必须非常准确(最好先与公网服务器同步好)。
- 需要防火墙开放 UDP 123 端口。
配置步骤:
-
编辑
/etc/chrony.conf文件:sudo nano /etc/chrony.conf
修改为如下格式:
# 允许来自局域网的客户端同步 # 192.168.1.0/24 替换为你的局域网网段,192.168.0.0/16 allow 192.168.1.0/24 # (可选)如果你想让服务器从公网同步,保留这一行 # server ntp.ntsc.ac.cn iburst # 如果这台服务器本身是权威时间源(例如连接了GPS),可以这样配置 # local stratum 10 # 确保监听所有网络接口 bindaddress 0.0.0.0
-
配置防火墙:
# 对于 firewalld (CentOS/RHEL) sudo firewall-cmd --permanent --add-service=ntp sudo firewall-cmd --reload # 对于 ufw (Ubuntu/Debian) sudo ufw allow 123/udp
-
重启 Chrony 服务:
sudo systemctl restart chronyd
你的 Linux 服务器就已经准备好作为局域网的时间服务器了,局域网内的其他设备(无论是 Linux 还是 Windows)都可以配置指向这个服务器的 IP 地址进行同步。
使用 NTP (传统工具)
ntpd 是另一个经典的时间同步工具,配置方式与 chrony 类似。
安装:
sudo yum install ntp # CentOS/RHEL sudo apt install ntp # Debian/Ubuntu
配置:
编辑 /etc/ntp.conf 文件,添加你的服务器和 restrict 规则。
作为服务器模式示例:
# 限制客户端访问 restrict default nomodify notrap noquery restrict 192.168.1.0/24 mask 255.255.255.0 nomodify # 指定上游服务器 server ntp.ntsc.ac.cn iburst # 允许本地时钟同步 server 127.127.1.0 fudge 127.127.1.0 stratum 10 # 监听所有接口 listen on 0.0.0.0
启动服务:
sudo systemctl start ntpd sudo systemctl enable ntpd
Windows 10 时间同步
Windows 10 使用 Windows Time 服务 (w32time) 来管理时间同步。
客户端模式(从默认服务器或指定服务器同步)
A. 通过图形界面设置
- 右键点击任务栏右下角的时间 -> 调整日期/时间。
- 在“其他日期、时间和区域设置”中,找到“日期和时间”。
- 点击“其他日期和时间设置”。
- 在弹出的窗口中,选择“Internet 时间”选项卡。
- 点击“更改设置...”。
- 勾选“与 Internet 时间服务器同步”。
- 在服务器地址中,你可以输入:
- 默认的
time.windows.com。 - 你配置好的 Linux 时间服务器的 IP 地址(
168.1.100)。 - 其他公共 NTP 服务器,如
time.nist.gov。
- 默认的
- 点击“立即更新”和“确定”。
B. 通过命令行设置(推荐)
使用命令行可以更精确地配置,并且可以永久修改策略。
-
设置 NTP 服务器地址: 打开 管理员权限 的 PowerShell 或 CMD,然后执行:
# 将 192.168.1.100 替换为你的 Linux 时间服务器 IP w32tm /config /syncfromflags:manual /manualpeerlist:"192.168.1.100,0x8"
/syncfromflags:manual:指定使用手动配置的 NTP 服务器。/manualpeerlist:指定 NTP 服务器列表。0x8表示该服务器是 可靠源,优先级最高。
-
重新启动 Windows Time 服务以应用更改:
w32tm /resync /force
-
验证同步状态:
w32tm /query /status
你应该能看到源已经变为你设置的 IP 地址。
服务器模式(作为局域网时间同步服务器)
Windows 也可以作为时间服务器,但默认是客户端模式,需要通过组策略或注册表来启用。
推荐方法:使用本地组策略编辑器
- 按
Win + R键,输入gpedit.msc并回车,打开组策略编辑器。 - 导航到以下路径:
计算机配置->管理模板->系统->Windows 时间服务->时间提供程序 - 在右侧窗口中,找到并双击 “配置 Windows NTP 客户端”。
- 选择 “已启用”。
- 在“NTP 服务器”框中,输入你希望 Windows 服务器同步的上游服务器地址(
ntp.ntsc.ac.cn或留空表示自身成为权威源)。 - 关键步骤:找到并双击 “启用 Windows NTP 服务器”。
- 选择 “已启用”。
- 点击“应用” -> “确定”。
- 重启 Windows Time 服务 以使更改生效:
net stop w32time && net start w32time
你的 Windows 10 机器也成为了局域网内的时间服务器,其他设备可以配置指向它的 IP 地址。
最佳实践和常见问题
- 层级结构:
- 层级 0 (Stratum 0):原子钟、GPS 等物理时间源。
- 层级 1 (Stratum 1):直接连接 Stratum 0 的时间服务器,最权威。
- 层级 2 (Stratum 2):从
