时间同步
一、前期工作
一般系统自带利用网络进行时间同步,需要关闭
timedatectl set-ntp false
或者手动关闭,和上面命令关闭是一样的

方法一:使用ntpd(域控不推荐)
传统的 NTP 实现,历史悠久,功能丰富,适合长期运行的服务器。
1、安装ntp
sudo apt install ntp
2、开启ntp服务器
(1)、修改配置文件
sudo vim /etc/ntp.conf
在下图中位置添加如下配置
restrict 0.0.0.0 mask 255.255.255.255 nomodify notrap
作用:允许外网所有client(0.0.0.0代表任意IP,如果限制局域网那么更改对应网段)连接到这台服务器同步时间,但是拒绝他们修改服务器时间

(2)、重启ntp服务
sudo systemctl restart ntp #重启
sudo systemctl status ntp #查看状态
初次安装完ntp服务器,需要等待5min左右才可正常同步客户端时间。
3、客户端测试
#安装ntpdate
sudo apt install ntpdate
sudo ntpdate 服务器ip
设置客户端定时更新
crontab -e
30 10 * * * root /usr/sbin/ntpdate 服务器ip
#表示每天10:30自动执行ntpdate指令,与NTP服务器时间同步
方法二:使用chrony(域控推荐)
一个较新的时间同步实现,专注于快速准确的时间同步,尤其适合移动设备或不稳定网络环境。启动后可以迅速同步时间,适合对时间精度要求高的场景。
1、安装chrony(主从机都安装)
sudo apt install chrony -y
sudo systemctl enable chrony #开机自启
查看时钟源
chronyc sources


查看同步状态

2、配置同步方式
(1)、服务器
sudo vim /etc/chrony/chrony.conf
在文件的末尾添加
#允许所有网段的客户端发送请求过来
allow all
#允许在外部时间同步服务器不可用时,使用服务器本地时间作为返回值
local stratum 10

(2)、客户端
将pool都注释掉,添加服务器
server 192.168.55.100 minpoll 4 maxpoll 10 prefer iburst
#prefer 表示 一旦域控时间源可用,就优先使用它。
主从机局域网时间同步精度

上图表示同步间隔2^4=16秒,时间误差为48us。
chrony.conf中常见参数解释
1. maxpoll 和 minpoll
- 作用:定义客户端与 NTP 服务器进行时间同步的最小和最大间隔(以 2 的幂次计算)。
- 单位:秒。
minpoll:同步的最小间隔,默认值为 4(表示 2^4= 秒)。maxpoll:同步的最大间隔,默认值为10(表示 2^10 秒)。
设置方式:在配置文件 /etc/chrony/chrony.conf 中,通过 server 或 pool 行指定,例如:
server ntp.example.com minpoll 4 maxpoll 10
2. makestep
- 作用:定义前几次同步中,时间偏差较大时(大于指定秒数),是否允许立即调整时间。
- 设置方式:配置文件中添加类似以下内容:
#makestep 1.0 3
makestep 1.0 -1
- 第一个参数:允许的最大时间偏差(秒)。
- 第二个参数:前几次同步。改为-1,则只要偏差大于1s,则立即调整。
3. driftfile
- 作用:保存时钟偏移(漂移)信息,以便在下一次启动时进行补偿,减少频繁同步。
- 默认路径:通常为
/var/lib/chrony/drift.
4. rtcsync
- 作用:同步系统时间到硬件时钟,减少客户端与服务器的同步需求。

浙公网安备 33010602011771号