c sysstat
# 查看计算机与 NTP 服务器之间的同步状态:示计算机与 NTP 服务器之间的同步状态,包括时间差和延迟等信息
ntpq -c loopstats
3、chrony工具
作用:利用时间同步服务器的时间来校准本机的时间,能持久同步时间而不是一次同步。同步的精度和速度比ntp更快。
端口:
- 服务端udp的123端口,如果chrony开启了客户端功能的话,会对123\udp端口进行监听。
- 客户端监听udp的323端口,作用同上。
chrony作为客户端:可以用来校准本地时间为其它ntp服务器的时间
chrony作为服务端:用来搭建ntp时间服务器,其它主机同步本机时间
chrony的客户端工具:
- chronyc工具:用于管理和监控 NTP(网络时间协议)客户端的命令行工具
# 检查 NTP 服务器的状态:显示当前的时间误差,NTP 服务器的状态,NTP 版本号等信息。
chronyc tracking
# 查看可用的 NTP 服务器列表:查看本地计算机与 NTP 服务器之间的连接状态
chronyc sources
# 调整时钟频率:立即调整系统时钟,使其与 NTP 服务器同步
chronyc makestep
# 显示当前的活动:显示 NTP 守护进程的当前状态,例如它是否正在向其他 NTP 服务器发送请求或接收响应。
chronyc activity
四:NTP的配置
通过将一台主机搭建为时间服务器,其它局域网内的主机可以和本机的时间进行同步。
1、ntp工具
作为客户端:
只需要在配置文件中指定ntp服务器的地址就行
root@ubuntu1804:~# vim /etc/ntp.conf
pool ntp.aliyun.com iburst # iburst表示加速同步
作为服务端:
将本机时间作为标准,以此给其它主机同步时间。
# 以本机时间为准,允许所有用户进行同步
root@ubuntu1804:~# vim /etc/ntp.conf
server 127.127.1.0
fudge 127.127.1.0 stratum 10
restrict default
restrict:
restrict
:用于限制哪些主机或网络可以与时间服务器进行通信。默认是restrict default
允许所有主机同步
- 配置
restrict
参数可以帮助保护时间服务器免受不必要的流量和安全攻击。
# 格式 restrict [IP] [mask] [netmask_IP] [patameter]
# 参数
default # 默认参数,表示没有限制。这意味着任何客户端都可以访问该服务器并进行时间同步
ignore # 表示忽略所有的 NTP 请求,这意味着客户端无法与服务器进行时间同步。
nomodify # 表示客户端无法修改服务器的时间设置
noquery # 表示客户端无法查询服务器的状态信息,例如版本号、偏差等。
limited # 表示限制客户端的访问速率,防止客户端过于频繁地请求时间同步。
ntpport # 指定允许访问服务器的 NTP 端口范围
# 例如:
# 允许所有客户端访问服务器 (默认)
restrict default
# 限制只有同一个局域网内的主机可以同步时间
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
# 限制来自192.168.1.0/24子网范围内的主机只能通过1234端口访问NTP服务器,而不允许使用其他端口访问。
restrict 192.168.1.0 mask 255.255.255.0 ntpport 1234”
# 限制来自 192.168.1.0/24 网段的所有主机,禁止其查询服务器,并且不信任该网段的主机。
restrict 192.168.1.0 mask 255.255.255.0 noquery notrust
# 局域网里面搭建ntp就使用这个进行限制。
# 允许192.168.0.0网段访问时间服务器,但是不能修改时间服务器的一些配置。
# modify 表示禁止客户端修改服务器的时间设置,notrap 表示禁止客户端使用 trap 操作。
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
2、chrony工具
作为客户端:
只需要使用server或pool指定ntp服务器的地址就行了。
root@ubuntu1804:~# vim /etc/chrony/chrony.conf
server ntp.aliyun.com
作为服务端:
将本机时间作为标准,其它主机的时间同步本机时间。
因为chrony默认是作为客户端使用的,即服务端的123端口默认没开,需要在配置文件中使用allow指定才会切换为服务端模式。
# 修改改配置文件
root@ubuntu1804:~# vim /etc/chrony/chrony.conf
server 127.127.1.0
fudge 127.127.1.0 stratum 10
local stratum 10 # 使用本地硬件时钟作为时间源,并将同步级别设置为 10,表示该服务器的时间较准确
allow 0.0.0.0/0 # 指定允许同步的网段 表示的是任何主机都可以和本机进行时间的同步
# fudge这行是时间服务器的层次。设为0则为顶级,如果要向别的NTP服务器更新时间,请不要把它设为0
说明:
- server:用于指定单个NTP服务器
- pool:用于指定NTP服务器池而不是单个NTP服务器
- iburst:让同步时间的时候更快,开启多个并行任务来进行同步
- prefer:表示如果指定了多个时间服务器的情况下优先用这个
server 192.168.7.49 prefer iburst # prefer表示如果指定了多个时间服务器的情况下优先用这个 iburst:表示加速时间同步
五:具体实现
1、 ntp
使用ntp同步ntp服务器上的时间
# 安装ntp服务
root@ubuntu1804:~# apt install ntp
# 只需要在配置文件中加入这个就行
root@ubuntu1804:~# vim /etc/ntp.conf
pool ntp.aliyun.com
# 查看 NTP 服务器状态
root@ubuntu1804:~# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
ntp.aliyun.com .POOL. 16 p - 64 0 0.000 0.000 0.000
# 查看同步后的时间
root@ubuntu1804:~# date
Wed Mar 29 14:08:54 CST 2023
使用ntp搭建本地时间服务器
搭建好后需要等待5-10分钟才行
# 修改客户端时间用于测试
root@ubuntu1804:~# date -s "20220329"
Tue Mar 29 00:00:00 CST 2022
# 1. 修改服务端配置文件
root@ubuntu1804:~# vim /etc/ntp.conf
pool ntp.aliyun.com