配置NTP服务器

63 阅读3分钟
  1. 检查ntp是否安装,主机器需要这个来做 ntp 服务器,其他节点机器只需要有 ntpdate 即可,用来同步时间

rpm -q ntp

  1. 若没安装则安装ntp服务:

yum install -y ntp

  1. 修改时间服务器的配置文件

vim /etc/ntp.conf

  1. 添加代码,以本地时间作为时间服务,如果不是以当前设备的时间为准,将127.127.1.0改为其他的 IP 即可
server 127.127.1.0 #local clock
Fudge 127.127.1.0 stratum 10
  1. 并且将其他服务器给屏蔽掉,这样就以当前设备的时间为标准 image.png

  2. 现在就可以了,启动服务

service ntpd start

  1. 然后在其他设备上使用 ntpdate 命令来同步时间,后面跟来做 ntp 服务器的那个机器的 IP

ntpdate 192.168.55.5

扩展:

如果我们只希望某些 IP 来使用 ntp 服务来同步时间

在配置文件中加

restrict default ignore  //默认屏蔽所有 IP
restrict 192.168.55.0 mask 255.255.255.0 nomodify notrap //这些 IP 可以使用

上述语句关键词的含义:

restrict + IP地址+ mask+ 子网掩码+ 参数

其中 IP 可以是 IP 地址,也可以是 defaultdefault 就是指所有的IP,同样也可以不使用掩码这种写法,直接写一个单一的 IP 地址,也可以

参数有以下几个:

ignore:拒绝连接到NTP服务器

nomodiy: 客户端不能更改服务端的时间参数

noquery: 不提供客户端的时间查询,即时间校时

notrap: 不提供trap远程登录功能,trap服务是一种远程时间日志服务。

notrust: 客户端除非通过认证,否则该客户端来源将被视为不信任子网 。

nopeer: 提供时间服务,但不作为对等体。

kod: 向不安全的访问者发送Kiss-Of-Death报文。 KOD是NTPv4提出的一种全新的访问控制技术,

主要用于服务器向客户端上提供状态报告和接入控制等信息。在服务器上使用KOD功能后,

服务器会根据系统的运行状态向客户端发送DENY Kiss和RATE Kiss码。

注意:如果参数没有设定,那就表示该 IP (或子网)没有任何限制!

默认的配置文件中是这个,但还是会同步时间

restrict default nomodify notrap nopeer noquery

可以改成这个:   拒绝连接到ntp服务器

restrict default ignore

最后:

如果装有 ntp 服务这台设备,刚刚改过时间,这时候其他设备使用 ntpdate 这个命令去同步时间,是会失败的,需要等 1 - 2 分钟,才可以进行同步,或者可以重启 ntp ,service ntpd restart,这时候其他设备就可以马上执行命令同步时间。

常用命令描述:

ntpstat 连接情况

ntpq -p 同步情况

date -s "2023-1-1 1:1:1" 设置时间

hwclock --show 硬件时间

hwclock -s 硬件时间用作系统时间

hwclock -w 系统时间用作硬件时间

ntpq -p 参数解释:

remote - 本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先

refid - 参考上一层ntp主机地址

st - stratum阶层

when - 多少秒前曾经同步过时间

poll - 下次更新在多少秒后

reach - 已经向上层ntp服务器要求更新的次数

delay - 网络延迟

offset - 时间补偿

jitter - 系统时间与bios时间差

ntpd 和 nepdate的区别:

我使用过了 ntpd,但是时间没有同步,不知道为什么,我在其他设备上也装上 ntpd ,然后配置文件中 server 后面跟,我充当 ntp 服务器的那台机器的 IP ,但是并没有同步,我使用 ntpq -p 命令,我可以看到 jitter一直在向零靠拢,直至变为0,但时间没有同步