Linux实例设置NTP服务
最近更新时间: 2024-10-17 17:10:00
操作场景
时钟同步服务(Network Time Protocol daemon,NTPD)是 Linux 操作系统的一个守护进程,用于校正本地系统与时钟源服务器之前的时间,完整的实现了 NTP 协议。NTPD 与 NTPDate 的区别是 NTPD 是步进式的逐渐校正时间,不会出现时间跳变,而 NTPDate 是断点更新。本文档以 CentOS7.5 操作系统云服务器为例,介绍 NTPD 的安装和使用。
注意事项
部分操作系统采用 chrony 作为默认 NTP 服务,请确认 NTPD 正在运行并设置为开机自启动。
使用
systemctl is-active ntpd.service
命令,可查看 NTPD 是否正在运行。使用
systemctl is-enabled ntpd.service
命令,可查看 NTPD 是否开机自启动。NTP 服务的通信端口为 UDP 123,设置 NTP 服务之前,请确保您已经开放 UDP 123 端口。 若未开放该端口,请参考 添加安全组规则 进行放行。
操作步骤
安装 NTPD
执行以下命令,判断是否安装 NTPD。
rpm -qa | grep ntp
- 如果返回类似如下结果,表示已安装 NTPD。
如果未安装 NTPD,请使用
yum install ntp
安装 NTPD。yum -y install ntp
NTPD 默认为客户端运行方式。
配置 NTP
执行以下命令,打开 NTP 服务配置文件。
vi /etc/ntp.conf
按 i 切换至编辑模式,找到 server 相关配置,将 server 修改为您需要设置的目标 NTP 时钟源服务器,并删除暂时不需要的 NTP 时钟源服务器。
- 按 Esc,输入 :wq,保存文件并返回。
启动 NTPD
执行以下命令,重启 NTPD 服务。
systemctl restart ntpd.service
检查 NTPD 状态
根据实际需求,执行以下不同的命令,检查 NTPD 的状态。
执行以下命令,查看 NTP 服务端口 UDP 123 端口是否被正常监听。
netstat -nupl
返回类似如下结果,表示监听正常。
执行以下命令,查看 NTPD 状态是否正常。
service ntpd status
返回类似如下结果,表示 NTPD 状态正常。
执行以下命令,查看 NTP 是否正常启动以及是否配置到正确的 NTP 时钟源服务器。
ntpstat
输出当前 NTP 时钟源服务器的 IP 地址。此 IP 地址应为上述配置的 NTP 时钟源服务器的 IP 地址。
您也可以通过执行 nslookup 域名
命令,获取域名对应的 IP 地址。
执行以下命令,获取更详细的 NTP 服务信息。
ntpq -p
返回类似如下结果:
remote:响应这个请求的 NTP 服务器的名称。
refid:NTP 服务器使用的上一级 NTP 服务器。
st:remote 远程服务器的级别。服务器从高到低级别设定为1 - 16,为了减缓负荷和 网络堵塞,原则上建议避免直接连接到级别为1的服务器。
when:上一次成功请求之后到现在的秒数。
poll:本地机和远程服务器多少时间进行一次同步(单位为秒)。初始运行 NTP 时,poll 值会比较小,和服务器同步的频率增加,建议尽快调整到正确的时间范围。调整之后,poll 值会逐渐增大,同步的频率也将会相应减小。
reach:八进制值,用来测试能否和服务器连接。每成功连接一次,reach 的值将会增加。
delay:从本地机发送同步要求到 NTP 服务器的 round trip time。
offset:主机通过 NTP 时钟同步与所同步时间源的时间偏移量,单位为毫秒(ms)。offset 越接近于0,主机和 NTP 服务器的时间越接近。
jitter:用来做统计的值。统计在特定连续的连接数里 offset 的分布情况。即 jitter 数值的绝对值越小,主机的时间就越精确。
设置 NTPD 为开机启动
执行以下命令,将 NTPD 设置为开机自启动。
systemctl enable ntpd.service
执行以下命令,查看 chrony 是否被设置为开机启动。
systemctl is-enabled chronyd.service
如果 chrony 被设置为开机启动,请执行以下命令,将 chrony 从开机启动中移除。 chrony 与 NTPD 冲突,可能引起 NTPD 开机启动失败。
systemctl disable chronyd.service