Linux基础服务(NTP/Chrony)
NTP/Chrony:时间同步服务
NTP
NTP(Network Time Protocol,网络时间协议):实现时间同步,让设备时间与国际标准时间保持一致;
·设备日志、服务日志需要记录时间;
·分布式系统(分布式数据库、分布式缓存、分布式存储、消息队列)时间戳;
·金融系统、订单系统、地图导航等服务都需要高精度的时间。
补充命令-date:显示或修改系统时间
date
date +“时间格式” date +"%Y年%m月%d日"
%Y 年,例如2025
%m 月,例如7
%d 天,例如24
%H 24小时制的小时:14
%M 分钟:40
%S 秒:25
%F:年-月-日
%T:时:分:秒
eg:
# 输入date +"%Y-%m-%d %H:%M:%S"
会输出2025-07-24 14:46:16
# 在复制文件后加备份时间
输入cp a.txt a.txt.$(date +"%Y-%m-%d-%H:%M:%S")
会得到a.txt.2025-07-24-13:11:47
# 定时时间同步
*/5 * * * * /usr/sbin/ntpdate ntp.aliyun.com &>/dev/null
# 修改时间
date -s “2025-7-20 0:0:0”
# 同步时间,需要ntp(客户端)
yum install -y ntpdate
# 通过公网的ntp服务进行时间同步
ntpdate ntp.aliyun.com
上面这条使用前关闭ntp服务 systemctl stop ntpd
========================================================
# 关闭防火墙,沙盒
# 服务端
# 在局域网中搭建ntp服务
yum install -y ntp ntpdate
# 修改配置文件
vim /etc/ntp.conf
---------------------------------------------------------
# 允许同步的网段 并禁止修改服务器时间和配置和使用陷阱服务。
restrice 192.168.221.0 mask 255.255.255.0 nomodify notrap
# 服务端同步时间的服务器
server ntp.aliyun.com iburst
---------------------------------------------------------
# 开启ntpd服务
systemctl start ntpd
# 设置开机自启
systemctl enable ntpd
systemctl daemon-reload
# 检查NTP服务器是否正常运行
ntpd -p
ntpstat
# 设置ntpd服务同时同步硬件时钟,自动将校准后的系统时间 “写入硬件时钟”,确保硬件时钟也保持准确。
vim /etc/sysconfig/ntpd
---------------------------------------------------------
SYNC_HWCLOCK=yes
---------------------------------------------------------
# 如果需要手动将当前同步的系统时间写入硬件时钟中用:
# hwclock -w
# 客户端:
# 将时间改错
date --set="2025-01-01 00:00:00"
# 查看时间
date
# 同步时间(写服务端IP)
ntpdate 192.168.221.10
# 同步系统时间写入硬件时钟
hwclock -w
# 查看时间
date
Chrony:网络时间
·Chrony 是一个开源的 网络时间协议(NTP)实现,用于同步计算机系统的时钟,确保设备之间的时间一致性。最初用于替代传统的 ntpd(NTP Daemon),具有轻量、高效、灵活的特点,适用于各种规模的系统,从嵌入式设备到数据中心服务器集群。
与 NTP 的对比(以 ntpd 为例)
特性 | Chrony | ntpd |
同步速度 | 更快(尤其首次同步,支持 iburst) | 较慢(依赖长期统计调整) |
资源占用 | 低(适合嵌入式/低功耗设备) | 较高(需维护大量历史数据) |
实时内核支持 | 支持(如 Linux 实时内核) | 有限支持 |
调整策略 | 渐进式+跳跃式(灵活) | 仅渐进式(需较长时间修正大偏差) |
配置复杂度 | 简单(配置文件语法更友好) | 相对复杂(需理解更多参数) |
优势总结:
轻量高效:适合资源受限环境,性能优于传统 ntpd。
快速收敛:通过 iburst 和智能调整策略,缩短首次同步时间。
灵活可靠:支持多时间源、动态网络适配,适应复杂网络环境。
安全可控:内置认证和访问控制,满足企业级安全需求。
# 服务端操作:
# 关闭防火墙,关闭沙盒(客户端,服务器都关)
# 安装Chrony(客户端,服务器都安)
yum install -y chrony
# 配置chrony文件(服务器)
vim /etc/chrony.conf
---------------------------------------------------------
# 阿里云NTP服务器,提升时间同步的效率
server ntp.aliyun.com iburst
# 允许特定网段内的客户端来同步时间
allow 192.168.221.0/24
#当系统时钟与NTP服务器的时间偏差超过一定值时,允许时钟进行跳跃式调整
makestep 1.0 3 ## 当时间偏差大于1秒时,最多进行3次跳跃式调整。
---------------------------------------------------------
# 启动Chrony服务,设置开机自启
systemctl start chronyd(再开启时换成restart)
systemctl enable chronyd
# 检查Chrony服务是否正常运行
systemctl status chronyd(正常运行,输出中会显示active:running)
# 使用chronyc命令验证时间同步状态
chronyc sources -v(输出中某个服务器的状态为^*,则表示当前正在使用该服务器进行时间同步,或者通过chronyc tracking查看时间同步的详细信息)
=========================================================
# 客户端操作:
yum install -y chrony
# 配置chrony文件
vim /etc/chrony.conf
---------------------------------------------------------
# 写入服务器IP地址 iburst 是在初始同步或重新同步时加速时间同步
server 192.168.221.10 iburst
---------------------------------------------------------
# 启动Chrony服务,并设置开机自启
systemctl start chronyd
systemctl enable chronyd
# 验证时间同步
chronyc sources -v
# 若输出结果中显示 ^* 指向你配置的服务器,就表明客户端正在从该服务器同步时间。
# 设置客户端时间与服务器时间同步
ntpdate 192.168.221.10
# 查看当前时间
date