kylin【NTP服务】配置手册

发布时间:2026/10/29 11:06:05
kylin【NTP服务】配置手册

简介:

NTP服务,即用来同步系统时间的服务,银河麒麟操作系统上的网络对时采用的就是NTP服务。计算机在硬件上也有时钟,即在主板上可以看到一小块电池,它在关机状态下,系统硬件BIOS也可以继续计时。但是由于BIOS内部芯片的原因,时间长了会导致硬件时间与实际时间有差异,此时就需要进行时间同步。本文主要介绍了银河麒麟操作系统采用NTP服务进行时间同步的配置方法。

一、ntp 服务介绍

NTP 服务,即用来同步系统时间的服务。麒麟操作系统上的网络对时采用的就是 ntp 服务。计算机在硬件上也有时钟,即在主板上可以看到一小块电池,它在关机状态下,系统 硬件 bios 也可以继续计时。但是由于 bios 内部芯片的原因,时间长了会导致硬件时间与实际时间有差异,此时就需要进行时间同步。

二、安装ntp 服务

1、安装 ntp 服务端、ntpdate 客户端

【注意】ntp 和 ntpdate 是互斥的,不能在一台机器上同时使用。

(1)安装 ntp 服务端

$sudo apt-get install -y ntp

【注意】安装完 ntp 服务端后,ntp 服务默认为开启状态。

(2)安装 ntpdate 客户端

$sudo apt-get install -y ntpdate

2、ntp 服务相关的命令

3、与 ntp 服务有关的文件及目录

(1)/etc/ntp.conf:为 ntp 服务的主要配置文件。

【注意】不同的系统版本,则文件所在的目录可能会不同。

(2)/usr/share/zoneinfo:是个目录,在这个目录下是规定了各主要时区的时间设定文 件,例如:中国大陆地区的时区设置文件是 /usr/share/zoneinfo/Asia/Shanghai。

(3)/etc/sysconfig/clock:主要时区设定文件。每次启动后,系统会自动读取这个文件 来设定系统预设要显示的时间。例如:这个文件内容为“ZONE=Asia/Shanghai”,这表

示我们的时间设定使用/usr/share/zoneinfo/Asia/Shanghai 这个文件。

(4)etc/localtime:这个文件是本地系统的时间设定文件。假设 clock 文件里面规定了使用的时间设定文件为/usr/share/zoneinfo/Asia/Shanghai,则系统就会将 Shanghai 那个文件复制一份为/etc/localtime,所以系统的时间显示就会以 Shanghai 那个时间设定文件为准。

三、/etc/ntp.conf 配置文件说明

1、driftfile 参数设置

语法为:driftfile 文件名,例如:driftfile /var/lib/ntp/drift,即在与上级时间服务器联系时所花费的时间,记录在 driftfile 参数后面的文件内。

【注意】driftfile 后面接的文件需要使用完整的路径文件名,不能是链接文件,并且文件的权限需要设定成 ntpd 守护进程可以写入。

2、上级时间服务器的设定

(1)为什么要设定上级时间服务器?

答:由于我们配置的 ntp 服务器需要网络上面时间比较准确的 ntp 服务器来更新自己的时间,所以在我们的 ntp 服务器上面要配置一部上级时间服务器来进行校准。

(2)server 参数设定上级时间服务器

语法为:server ip 地址或域名 [prefer],例如:

server 0.rhel.pool.ntp.org

server 1.rhel.pool.ntp.org

server 2.rhel.pool.ntp.org

【注意】ip 地址或域名就是我们指定的上级时间服务器。如果 server 参数最后加上 prefer, 则表示我们的 ntp 服务器主要以该部主机时间进行校准,解决了 ntp 服务器校准时间时的传送延迟。

3、权限设定

权限的设定主要使用 restrict 参数来设定,语法为:restrict IP 地址 mask 子网掩码参数,例如:

  • 允许任何 IP 的客户机都可以进行时间同步

restrict default nomodify notrap

  • 只允许 192.168.1.0 网段的客户机进行时间同步

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

其中 IP 可以是 IP 地址,也可以是 default,default 就是指所有的 IP 地址,默认拒绝所有操作。

参数有以下几个:

【注意】如果参数没有设定,那就表示该 ip(或子网)没有任何限制。

4、当无外部同步源时,与本地硬件时钟同步。配置参数如下所示:

# Undisciplined Local Clock. This is a fake driver intended for backup

# and when no outside source of synchronized time is available.

server 127.127.1.0 # local clock

fudge 127.127.1.0 stratum 10

四、使用示例

例如:现场有两台服务器需要配置时间同步。一台 IP 地址为 172.16.177.173 作为服务端,另一台 IP 地址为 172.16.177.174 作为客户端。

1、服务端配置(172.16.177.173)

(1)安装 ntp 包

$sudo yum install -y ntp

(2)修改/etc/ntp.conf 文件

$sudo vim /etc/ntp.conf,进入到文件里面后,按“i”键进入文本编辑模式,将该文件默认配置的server前添加“#”号注释掉并添加以下三行参数:

#允许哪个网段和服务端同步,有两种写法,如下所示:

restrict 172.16.226.0 mask 255.255.255.0 或者restrict 172.16.226.0 mask 255.255.255.0 nomodify notrap

#自己同步自己,局域网必须添加这一条。其中”iburst”表示立马生效,可以不添加。

server 127.127.1.0 iburst

fudge 127.127.1.0 stratum 10

(3)添加完成后,按“Esc”键退出文本编辑模式,再输入“:wq”保存退出,然后重启 ntp 服务:sudo systemctl restart ntpd。

(4)关闭防火墙,可通过以下命令关闭:

$sudo systemctl stop firewalld.service

$sudo systemctl disable firewalld.service

【注意】ntp是基于udp隔离,使用udp端口号123,在不关闭防火墙的情况下,放开该端口也可以。

2、客户端配置(172.16.177.174)

(1)安装 ntpdate 包

$sudo yum install -y ntpdate

(2)关闭防火墙,可通过以下命令关闭:

$sudo systemctl stop firewalld.service

$sudo systemctl disable firewalld.service

【注意】ntp是基于udp隔离,使用udp端口号123,在不关闭防火墙的情况下,放开该端口也可以。

(3)以 ip地址为172.16.177.173作为时间服务器进行对时。

方法一:使用 ntp 服务的客户端命令 ntpdate。语法为:ntpdate IP 地址或域名。此处, 打开终端,执行 ntpdate 172.16.177.173 命令进行对时。

方法二:修改/etc/ntp.conf 配置文件,注释掉原有的 server 配置并添加一行以下参数:

#有 3 种写法,如下所示:

server 172.16.177.173

server 172.16.177.173 prefer //其中 prefer 表示 ntp 服务器主要以该部主机时间进行校准。

server 172.16.177.173 iburst //其中 iburst 表示立马生效。

修改完成后保存退出,然后执行sudo systemctl restart ntpd命令重启ntpd服务即可。

方法三:若希望可以定时循环对时,可以将 ntpdate 172.16.177.173 命令写到定时任务

配置文件中,例如:每 5 分钟执行一下这条对时命令。

$sudo crontab -e,然后在该文件末尾添加“*/5 * * * * kylin ntpdate 172.16.177.173”参数即可。

五、注意事项

1、客户端同步 ntp 时间服务器,同步第一次之后,如果 NTP 服务器更改了时间,客户端需要手动更新:

(1)使用命令 ntpdate [ip 地址],进行手动对时;

(2)然后重启 ntp 服务器:systemctl restart ntpd;

(3)以上步骤完成后,即可自动对时。

2、在同一台机器上,ntp 服务和 ntpdate 服务不能同时进行使用。

3、在服务端或者客户端,可使用 ntpq -p 命令查看时间同步状态(一分钟左右刷新)。