linux两台服务器时间同步
- 云服务器
- 2025-07-19
- 5
Linux两台服务器时间同步方案
时间同步原理
Linux系统时间同步基于NTP(Network Time Protocol)或Chrony协议,通过客户端与时间源(如公共NTP服务器或内网主服务器)通信,校正本地时间,同步过程包含:
- 客户端发送时间请求
- 时间源返回标准时间
- 客户端计算时间偏移并修正系统时间
同步方式对比
| 方案 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| NTP(ntpd) | 传统网络环境 | 广泛兼容,稳定性好 | 收敛速度较慢 |
| Chrony | 高延迟网络/虚拟化环境 | 快速同步,容忍网络波动 | 需单独配置 |
| rsync+crontab | 简易定时同步 | 配置简单 | 精度低,依赖网络连通性 |
NTP同步实现步骤
安装NTP服务
# 服务器1(主时间源) yum install ntp -y # CentOS/RHEL apt install ntp -y # Ubuntu/Debian # 服务器2(客户端) 同上安装
配置主时间源(服务器1)
编辑/etc/ntp.conf,添加以下内容:

配置客户端(服务器2)
编辑/etc/ntp.conf,指向主时间源IP:
# 替换为主服务器IP server 192.168.0.1 iburst
启动并验证

Chrony同步方案(替代方案)
安装Chrony
yum install chrony -y # CentOS/RHEL apt install chrony -y # Ubuntu/Debian
配置客户端(两台服务器均操作)
编辑/etc/chrony.conf,添加:
# 指定时间源IP server 192.168.0.1 iburst # 允许同步调整硬件时钟 driftfile /var/lib/chrony/drift makestep 10 3
启动服务

systemctl restart chronyd systemctl enable chronyd
验证与排错
| 命令 | 作用 |
|---|---|
| date | 查看当前系统时间 |
| ntpq -p | 查看NTP同步状态 |
| chronyc tracking | 查看Chrony同步详情 |
| systemctl status ntpd | 检查服务运行状态 |
常见问题:
- 时间偏差过大:先执行timedatectl set-ntp false禁用自动同步,手动ntpdate修正后再启用服务
- 防火墙拦截:开放UDP 123端口(firewall-cmd --add-port=123/udp)
- 时区不一致:通过timedatectl set-timezone Asia/Shanghai统一时区
相关问题与解答
Q1:如何检查Linux服务器是否已开启NTP同步?
A:
执行命令ntpq -p,若输出中对应服务器行首出现符号,表示已成功同步。
remote refid st twhen poll reach delay offset jitter ============================================================================== LOCAL(0) .LOCL. 10 u 10 64 1 0.000 0.000 0.000
若未同步,可检查服务状态(systemctl status ntpd)和网络连通性(telnet 目标IP 123)。
Q2:两台服务器不在同一内网,如何实现时间同步?
A:
- 公网NTP服务器方案:两台服务器均配置公共NTP源(如pool.ntp.org),修改/etc/ntp.conf为: server pool.ntp.org iburst
- 中继服务器方案:部署一台公网可访问的中继服务器作为时间源,其他服务器指向该中继,需确保中继服务器有稳定公网连接