时间同步

一、前期工作

一般系统自带利用网络进行时间同步,需要关闭

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. maxpollminpoll

  • 作用:定义客户端与 NTP 服务器进行时间同步的最小和最大间隔(以 2 的幂次计算)。
  • 单位:秒。
    • minpoll:同步的最小间隔,默认值为 4(表示 2^4= 秒)。
    • maxpoll:同步的最大间隔,默认值为 10(表示 2^10 秒)。

设置方式:在配置文件 /etc/chrony/chrony.conf 中,通过 serverpool 行指定,例如:

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

  • 作用:同步系统时间到硬件时钟,减少客户端与服务器的同步需求。

posted @ 2023-05-15 09:52  chenjian688  阅读(1115)  评论(0)    收藏  举报