简介:
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 命令查看时间同步状态(一分钟左右刷新)。