- 检查ntp是否安装,主机器需要这个来做 ntp 服务器,其他节点机器只需要有 ntpdate 即可,用来同步时间
rpm -q ntp
- 若没安装则安装ntp服务:
yum install -y ntp
- 修改时间服务器的配置文件
vim /etc/ntp.conf
- 添加代码,以本地时间作为时间服务,如果不是以当前设备的时间为准,将
127.127.1.0改为其他的 IP 即可
server 127.127.1.0 #local clock
Fudge 127.127.1.0 stratum 10
-
并且将其他服务器给屏蔽掉,这样就以当前设备的时间为标准
-
现在就可以了,启动服务
service ntpd start
- 然后在其他设备上使用 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 地址,也可以是 default ,default 就是指所有的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,但时间没有同步