- 检查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,但时间没有同步