NTP服务配置与管理指南
NTP服务配置与管理指南
一、检查并安装NTP服务
1.首先查询NTP软件版本
1 | rpm -qa | grep ntp |
2. 安装 NTP 软件包:
1 | sudo yum -y install ntp |
3. 启动 NTP 服务:
1 | sudo systemctl start ntpd |
4. 设置 NTP 服务开机自启:
1 | sudo systemctl enable ntpd |
5. 检查 NTP 服务状态:
1 | sudo systemctl status ntpd |
6. 手动同步时间(可选):
如果你想立即同步时间,可以使用以下命令:
1 | sudo ntpdate pool.ntp.org |
7. 备份配置文件
1 | # /etc/ntp.conf 是NTP服务的主要配置文件,用于控制如何同步系统时间。 |
二、编辑/etc/ntp.conf配置文件
1. 注释默认的 server 配置
默认的 NTP 服务器可能是 pool.ntp.org
或一些公共 NTP 池服务器,但这些服务器可能:
- 响应较慢(受网络延迟影响)。
- 不稳定(公共服务器可能过载)。
- 不符合企业内网需求(如需要同步内部时间源)。
调整方式:
1 | # 注释掉原有的 server 行,例如: |
2. 加入自定义 NTP 服务器
1 | echo "server 首要NTP服务器IP地址 prefer" >> /etc/ntp.conf |
- **
prefer
**:标记为首选服务器,NTP 会优先同步它(即使延迟稍高)。 - 备用服务器:在主服务器不可用时自动切换,提高可靠性。
- 适用场景:
- 企业内部 NTP 服务器(如
192.168.1.10
)。 - 国家授时中心(如
cn.pool.ntp.org
)。 - 云厂商提供的 NTP(如阿里云
ntp.aliyun.com
)。
- 企业内部 NTP 服务器(如
3. 注释掉 restrict default ignore
默认配置可能包含:
1 | # restrict default ignore |
作用:拒绝所有外部客户端访问本机的 NTP 服务。
为什么要注释掉?
如果这台 NTP 服务器需要为内网其他设备提供时间同步服务,必须允许客户端访问。
替代方案(推荐):
1
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
仅允许
192.168.1.0/24
网段同步时间,但不允许修改配置(nomodify notrap
)。
4. 注释掉本地时钟源(server 127.0.0.1)
默认可能包含:
1 | # server 127.0.0.1 |
- 作用:当所有外部 NTP 服务器不可用时,回退到本地时钟(但本地硬件时钟通常不准)。
- 为什么要注释掉?
- 避免在网络隔离环境下依赖不准确的本地时钟。
- 如果确实需要本地时钟作为兜底,可以保留,但
stratum
应设为较高值(如10
),表示优先级最低。
5.重启NTP服务器
注意:所有配置修改后都需要重启服务生效:
1 systemctl restart ntpd
三、NTP配置文件详解
1 | # 指定NTP守护进程用来记录频率偏差的文件位置。 |
注意:所有配置修改后都需要重启服务生效:
1 systemctl restart ntpd
四、配置step-tickers文件
/etc/ntp/step-tickers 文件在基于NTP进行时间同步的系统中用于指定初次启动时要同步的服务器。
默认情况下,我们配置的NTP服务器不会去时间源那里同步时间,所以必须修改/etc/ntp/step-tickers文件,加入我们的时间源,这样每次启动ntp服务的时候就会自动更新时间。
1. 将首要和备用NTP服务器IP地址写入
1 | # echo "首要NTP服务器IP地址" >>/etc/ntp/step-tickers |
2. ntp.conf和step-tickers的区别
2.1 /etc/ntp.conf
- 作用:NTP 服务的主配置文件,用于定义 NTP 守护进程(
ntpd
)的所有行为。 - 内容:
- 指定时间服务器(NTP server)的地址(如
pool.ntp.org
或具体 IP)。 - 配置访问控制规则(如允许哪些客户端同步时间)。
- 定义本地时钟(如系统时钟作为备用时间源)。
- 其他高级参数(如日志、 drift 文件路径等)。
- 指定时间服务器(NTP server)的地址(如
2.2 /etc/ntp/step-tickers
- 作用:仅用于在 NTP 服务启动时快速初始化系统时钟(通常用于
ntpd
启动前的第一次时间同步)。 - 使用场景:
- 当系统时间与真实时间偏差较大时(例如相差几分钟以上),
ntpd
默认会逐步调整(缓慢校准)。但通过step-tickers
中列出的服务器,系统可以在启动时立即大步调整时间(一步到位)。 - 通常由
/etc/init.d/ntpd
或systemd
服务脚本在启动ntpd
前调用ntpdate
命令读取此文件。
- 当系统时间与真实时间偏差较大时(例如相差几分钟以上),
- 内容:
- 简单列出 NTP 服务器的地址(每行一个)。
2.3 主要区别对比
特性 | /etc/ntp.conf |
/etc/ntp/step-tickers |
---|---|---|
用途 | 定义 ntpd 的长期运行行为 |
仅在启动时用于快速初始化时间 |
生效阶段 | ntpd 运行时持续生效 |
ntpd 启动前通过 ntpdate 使用 |
时间同步方式 | 渐进式校准(默认) | 立即大步调整(若时间偏差大) |
依赖关系 | 必需 | 可选(部分旧系统可能不需要) |
五、检查NTP同步情况
ntpq -p
1 | $ ntpq -p |
* 号代理首选NTP服务器
+号代理备选的可用NTP服务器
offset的绝对值越接近0越精准
ntpstat
1 | $ ntpstat |
一般生产环境要求time correct小于 100ms 即合格
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 RHCloudOps博客!
评论