在分布式系统、金融交易、日志审计等场景中,服务器时间的准确性至关重要,若多台服务器时间不一致,可能导致日志时序混乱、身份认证失败、数据同步异常等问题,NTP(Network Time Protocol,网络时间协议)是广泛使用的时间同步协议,能够通过客户端/服务器模式实现毫秒级时间同步,本文将详细介绍如何在Linux环境下搭建两台NTP时间服务器,实现互为备份的高可用时间同步架构,为客户端提供可靠的时间服务。
NTP基础概念
NTP协议层级
NTP采用层级结构(Stratum)表示时间源的准确度:
- Stratum 0:高精度时间源(如原子钟、GPS时钟),不可直接访问;
- Stratum 1:直接同步Stratum 0的时间服务器(称为“主时间服务器”);
- Stratum 2:同步Stratum 1服务器的时间(称为“从时间服务器”);
- 以此类推,Stratum层级越高,时间精度越低。
双服务器架构优势
单台NTP服务器存在单点故障风险,搭建双台服务器可实现:

- 冗余备份:一台故障时,另一台可继续提供服务;
- 负载均衡:客户端可同时配置两台服务器地址,自动选择最优时间源;
- 时间源可靠性:两台服务器可同步不同外部时间源,避免单一外部源异常。
准备工作
环境需求
- 两台Linux服务器(本文以CentOS 7为例,IP地址分别为:
168.1.10、168.1.11); - 服务器间网络互通(可通过
ping测试); - 具有root权限(或使用
sudo执行命令)。
关闭防火墙与SELinux(临时)
为避免防火墙拦截NTP端口(UDP 123),可先临时关闭防火墙:
# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭SELinux(临时,重启后失效) setenforce 0
注:生产环境建议开放防火墙UDP 123端口,并配置SELinux策略,此处为简化操作。
搭建步骤
安装NTP服务
在两台服务器上分别执行以下命令,安装NTP软件包:
yum install -y ntp
安装完成后,检查NTP服务状态:
systemctl status ntpd
配置主NTP服务器(192.168.1.10)
主NTP服务器负责同步外部公共时间源(如pool.ntp.org),为从服务器提供时间基准。
(1)编辑NTP配置文件
vim /etc/ntp.conf
(2)关键配置内容
# 1. 注释或删除默认server行(避免同步默认外部源) #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst # 2. 添加外部公共时间源(推荐使用国内源,如阿里云、腾讯云) server ntp1.aliyun.com iburst server ntp2.aliyun.com iburst server ntp3.aliyun.com iburst # 3. 允许局域网内客户端同步(可选,根据需求设置restrict) restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap # 允许192.168.1.0/24网段同步,禁止修改服务器时间 restrict 127.0.0.1 # 允许本地同步 restrict ::1 # 允许IPv6本地同步 # 4. 设置本地时钟(当外部时间源不可用时,使用本地时间) server 127.127.1.0 # 本局时钟(本地时间) fudge 127.127.1.0 stratum 10 # 设置层级为10(低于外部源优先级)
(3)配置说明
iburst:快速同步模式,首次同步时发送多个包,缩短同步时间;restrict:控制客户端访问权限,nomodify禁止客户端修改服务器时间,notrap禁止客户端 trap 模式;server 127.127.1.0:若外部时间源不可用,服务器将使用本地时间作为时间源(避免时间漂移)。
(4)启动并设置开机自启
systemctl start ntpd systemctl enable ntpd
配置从NTP服务器(192.168.1.11)
从NTP服务器同步主NTP服务器的时间,实现冗余。
(1)编辑NTP配置文件
vim /etc/ntp.conf
(2)关键配置内容
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

