云服务器 Linux 实例:配置 NTP 服务

chrony 和 ntpd 都能以非跳变的方式校准系统时间,保证系统时间的准确。这里说明如何安装以及配置这两种时间同步工具。

相关产品
云服务器 产品页,含版本规格、价格与购买入口。

一、注意事项

·chrony 和 ntpd 二者冲突,建议从二者中选一个使用,另外一个可以卸载掉。如果同时安装了 chrony 和 ntpd,推荐你使用 chrony,禁用 ntpd 服务,禁用 ntpd 命令为:sudo systemctl disable –now ntpd。(Ubuntu 或者 Debian 可能需要使用 sudo systemctl disable –now ntp 命令来禁用 ntpd)

·如果部署 NTP 服务的机器也需要作为时钟源对外提供 NTP 服务,那么需要确保安全组放通 UDP 123端口,若未开放该端口,请参见 添加安全组规则 进行放行。

二、安装 chrony

TencentOS/CentOS/RHELUbuntu/Debiansudo yum install chronysudo apt install chrony

三、配置 chrony

TencentOS/CentOS/RHELUbuntu/Debianchrony 配置文件位于 /etc/chrony.conf。chrony 配置文件位于 /etc/chrony/chrony.conf。

如下是配置文件示例。

# drift 文件用于记录之前时钟频率调整(单位是ppm)driftfile /var/lib/chrony/drift# chronyd 开启后的前三次时间调整,且时间差超过1.0秒才跳变调整时间makestep 1.0 3# 允许内核定期将系统时间同步到 RTC 时间rtcsync# TAI-UTC offset 和闰秒的信息leapsectz right/UTC# 日志输出到/var/log/chronylogdir /var/log/chrony# 打印每个 ntp 包的 rawmeasurements,一般在调试或问题排查时使用log rawmeasurements# 打印 tracking 日志,用来记录系统时钟的整体状态log tracking# (可选)监听 NTP 端口(默认是 udp 123),作为 NTP server 向其他机器提供 NTP 服务# allow all# 配置 NTP 服务器server time1.tencentyun.com iburstserver time2.tencentyun.com iburstserver time3.tencentyun.com iburstserver time4.tencentyun.com iburstserver time5.tencentyun.com iburst

四、启动 chrony

TencentOS/CentOS/RHELUbuntu/Debiansudo systemctl restart chronyd # 重启 chronyd 服务sudo systemctl enable chronyd # 开机自动启动 chronydsudo systemctl restart chrony # 重启 chrony 服务sudo systemctl enable chrony # 开机自动启动 chrony

五、检查 chrony 状态

TencentOS/CentOS/RHELUbuntu/Debiansystemctl status chronyd # 查看 chronyd 服务状态,Active: active (running)表示正在运行systemctl is-enabled chronyd # 查看 chronyd 是否开机自动启动,enabled 表示开机自动启动systemctl status chrony # 查看 chrony 服务状态,Active: active (running)表示正在运行systemctl is-enabled chrony # 查看 chrony 是否开机自动启动,enabled 表示开机自动启动

chronyd -Q # 向 NTP 服务器查询当前时间差,不修改系统时间chronyc sources -v # 查看时钟源的状态,有时钟源被星号*标记表示已同步chronyc tracking # 查看系统时钟状态

·chronyc sources -v 指标简要说明

·M:对端类型,^表示 server。

·S:*表示最优时钟源,+表示按统计方式(加权平均)合入系统时钟的调整,-表示未合入。

·Name/IP Address:时钟源的域名/IP。

·Stratum:表示时钟源的层级,正常取值1到15,16表示有异常。

·Poll:log2轮询间隔,poll=4表示轮询间隔是24秒,即16秒。

·Reach:表示近8个数据包的到达情况,八进制377表示近8个 ntp 包都没有丢。

·LastRx:距离上一次收到通过校验的 ntp 包过了多久。单位一般为秒,具体以界面显示为准。

·Last sample:用来衡量当前机器与时钟源的时间差,这里几个时间差是统计计算的中间结果。

·chronyc tracking 指标简要说明

·Reference ID:最优时钟源域名/IP。

·Stratum:当前机器的层级。

·Ref time:上次从时钟源计算指标的时间。

·System time:非跳变调整的时间差。

·Last offset:上一次时间差,正数表示本地时钟比服务器时钟快。

·RMS offset:时间差的长期统计均值。

·Frequency:表示如果 chrony 不调整时钟,系统时钟频率会差多少。

·Residual freq:当前时钟频率与最优时钟源频率的差距。

·Skew:频率误差界。

·Root delay:到 stratum-1时钟源的 RTT(roud-time trip)。

·Root dispersion:到 stratum-1时钟源的固有误差。

·Update interval:两次时钟修正的间隔。

·Leap status:闰秒状态。

六、ntpd 操作步骤(不推荐)

注意:TencentOS/CentOS/RHELUbuntu 16 ~ 22/Debian 10, 11sudo yum remove ntpsudo apt remove ntp

七、安装 ntpd

TencentOS/CentOS/RHELUbuntu 16 ~ 22/Debian 10, 11sudo yum install ntp注意:如果安装命令报类似“Unable to find a match: ntp”的错误,则一般是软件源中没有ntp导致。(ntp 包太旧,已经停止维护。)sudo apt install ntpsudo apt install ntpdate注意:一些比较新的发行版,如 Ubuntu 24.04、Debian 12等,软件源已经不再提供ntp,将ntp替换成了ntpsec。这种情况下建议考虑优先使用 chrony 同步时间。

八、配置 ntpd

ntpd 的配置文件一般位于/etc/ntp.conf,如下是配置文件示例。

# 配置 NTP 服务器server time1.tencentyun.com iburstserver time2.tencentyun.com iburstserver time3.tencentyun.com iburstserver time4.tencentyun.com iburstserver time5.tencentyun.com iburst

九、启动 ntpd

TencentOS/CentOS/RHELUbuntu 16 ~ 22/Debian 10, 11sudo systemctl restart ntpd # 重启 ntpd 服务sudo systemctl enable ntpd # 开机自动启动 ntpd sudo systemctl restart ntp # 重启 ntp 服务sudo systemctl enable ntp # 开机自动启动 ntp

十、检查 ntpd 状态

TencentOS/CentOS/RHELUbuntu 16 ~ 22/Debian 10, 11systemctl status ntpd # 查看 ntpd 服务状态,Active: active (running)表示正在运行systemctl is-enabled ntpd # 查看 ntpd 是否开机自动启动,enabled 表示开机自动启动systemctl status ntp # 查看 ntp 服务状态,Active: active (running)表示正在运行systemctl is-enabled ntp # 查看 ntp 是否开机自动启动,enabled 表示开机自动启动

ntpdate -q time1.tencentyun.com # 向 time1.tencentyun.com 这个 NTP 服务器查询当前时间差,不修改系统时间ntpq -p # 查看时钟源的状态,有时钟源被星号*标记表示已同步ntpq -c rv # 查看系统时钟状态

·ntpq -p 指标简要说明

·*, +, -:分别表示最优时钟源、按统计方式(加权平均)合入系统时钟的调整、未合入时钟调整。

·remote:时钟源。

·st:时钟源层级。

·when:上次收到 ntp 包的时间。

·poll:log2轮询间隔,poll=3表示轮询间隔是23秒,即8秒。

·reach:表示近8个数据包的到达情况,八进制377表示近8个 ntp 包都没有丢。

·offset:时间差。

·jitter:用来衡量 offset 的抖动。

·ntpq -c rv 指标简要说明

·rootdelay:到 stratum-1时钟源的 RTT(roud-time trip)。

·rootdisp:到 stratum-1时钟源的固有误差。

·offset:时间差。

·frequency:系统时钟当前频率。

·sys_jitter:不同时钟源间时间差的抖动。

·clk_jitter:系统时钟时间差的抖动。

·clk_wander:用来衡量系统时钟频率的抖动。

赞 (0)
上一篇 4天前
下一篇 4天前