Linux时间同步 Chrony

妖狐艹你老母 2023-06-24 08:06 44阅读 0赞

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dhb2ZlaTA0Mjg_size_16_color_FFFFFF_t_70

Chrony属于开源的自由软件,是NTPNetwork Time Protocol,网络时间协议)的另一种实现,与ntp不同,它可以更快且更准确地同步系统时钟,最大程度的减少时间和频率误差。在CentOS 7或基于RHEL 7操作系统上,已经是默认服务。它能让本地时间与服务器时间始终保持同步。与 ntpd 或者 ntpdate 最大的区别就是,Chrony 的修正是连续的,通过减慢时钟或者加快时钟的方式连续的修正。而 ntpd 或者 ntpdate 搭配 Crontab 的校时工具是直接调整时间,会出现间断,并且相同时间可能会出现两次。

format_png

使用chronyd服务平滑同步时间的方式要优于crontab + ntpdate,更快的同步只需要数分钟而非数小时时间,从而最大程度的减少时间和频率误差。使用ntpdate同步时间会造成时间的跳跃,对一些依赖时间的程序和服务会造成影响,例如:sleep、timer等,且chronyd服务可以在修正时间的过程中同时修正CPU tick。

系统最小化安装时也已经安装了 Chrony 服务

20191221150333144.png

如果在chrony配置文件中指定了ntp服务器的地址,那么chrony就是一台客户端,会去同步ntp服务器的时间,如果在chrony配置了允许某些客户端来向自己同步时间,则chrony也充当了一台服务器,所以,安装了chrony即可充当客户端也可以充当服务端。


配置文件:/etc/chrony.conf

  • server:指明时间服务器地址;
  • allow all:允许所有客户端主机;
  • allow 192.168.1.0/24 : 只允许192.168.1.0网段的客户端进行时间同步;
  • deny all:拒绝所有客户端;
  • bindcmdaddress:命令管理接口监听的地址;
  • local stratum 10:即使自己未能通过网络时间服务器同步到时间,也允许将本地时间作为标准时间授时给其它客户端;
  • rtcsync: 启用RTC(实时时钟)的内核同步;
  • stratumweight 0:让chronyd在选择源时忽略源的层级;
  • makestep 10 3 :如果系统时钟的偏移量大于10秒,则允许在前三次更新中步进调整系统时钟;
  • 建议设置成 makestep 10 -1 随时进行步进时钟;

  • logdir /var/log/chrony : 指定存放日志文件的目录;
  • keyfile /etc/chrony.keys : 指定包含NTP验证密公共NTP服务


    公共NTP服务
    pool.ntp.org: NTP服务的虚拟集群
    cn.pool.ntp.org
    0-3.cn.pool.ntp.org
    阿里云NTP服务器
    Unix/linux类:ntp.aliyun.com ntp1-7.aliyun.com
    windows类:time.pool.aliyun.com

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dhb2ZlaTA0Mjg_size_16_color_FFFFFF_t_70 1

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dhb2ZlaTA0Mjg_size_16_color_FFFFFF_t_70 2

  • 启动 chrony 服务

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dhb2ZlaTA0Mjg_size_16_color_FFFFFF_t_70 3

  • chrony 服务的交互式工具 chronyc

  • chrony自带一个交互式工具chronyc,在配置文件中指定了时间服务器之后,如果想查看同步状态,可以进入这个交互式工具的交互界面。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dhb2ZlaTA0Mjg_size_16_color_FFFFFF_t_70 4

常用指令说明:

  • help:查看完整的命令帮助列表
  • makestep:立即同步时间
  • tracking:显示系统时间信息
  • activity:检查多少NTP源在线/离线
  • add server:手动添加一台新的NTP服务器
  • delete:手动移除NTP服务器或对等服务器
  • accheck:检查NTP访问是否对特定主机可用
  • clients:在客户端报告已访问到的服务器
  • sources -v : 查看时间同步源

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dhb2ZlaTA0Mjg_size_16_color_FFFFFF_t_70 5

  • ^* / * 是时间同步成功,+ 是时间备用同步服务器,? 是时间同步失败
  • 查看时间源状态 sourcestate -v
  • 可以使用下面的命令对服务器的世界进行强制同步一次
  • chronyc -a makestep

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dhb2ZlaTA0Mjg_size_16_color_FFFFFF_t_70 6

  • 使用 timedatectl 开启 ntp 自动同步

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dhb2ZlaTA0Mjg_size_16_color_FFFFFF_t_70 7

  • 设置开机启动

2019122116390026.png

  • 在客户端安装 chrony 服务并配置服务器地址为 192.168.10.2

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dhb2ZlaTA0Mjg_size_16_color_FFFFFF_t_70 8

  • 编辑配置文件

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dhb2ZlaTA0Mjg_size_16_color_FFFFFF_t_70 9

  • 启动服务并设置开机启动

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dhb2ZlaTA0Mjg_size_16_color_FFFFFF_t_70 10

  • 查看时间源状态

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dhb2ZlaTA0Mjg_size_16_color_FFFFFF_t_70 11

  • 更改系统时间测试

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dhb2ZlaTA0Mjg_size_16_color_FFFFFF_t_70 12


  1. cat /etc/adjtime | date -R \#查看系统默认时间显示的是哪个区域的【UTC】(+0800)表示我国东八区GMT + 8 = UTC + 8 = CST
  2. timedatectl set-time "2020-01-13 08:30:50" \#更改时间
  3. timedatectl set-timezone Asia/Shanghai \#更改时区
  4. timedatectl list-timezones \#查看支持的所有时区
  5. timedatectl set-local -rtc 0|1 \#设定/etc/adjtime中的时间显示格式 【是否使用UTC时间,0为使用,1为不使用】
  • ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #创建软连接到本地时区
  • 编辑 /etc/profile 在末尾添加 export TZ=’CST-8’
  • ls -l /etc/localtime
    lrwxrwxrwx. 1 root root 35 Aug 25 21:06 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
  • centos 8 使用 ntp

  • rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm
  • dnf -y install wntp
  • ntpdate ntp1.aliyun.com

发表评论

表情:
评论列表 (有 0 条评论,44人围观)

还没有评论,来说两句吧...

相关阅读

    相关 linux 时间同步 chrony

    Chrony介绍 chrony 是基于NPT协议的实现时间同步服务,它既可以当做服务端,也可以充当客户端。chrony是ntp的代替品,能更精确的时间和更快的速度同步时钟

    相关 chrony时间同步

    简介 chrony是网络时间协议(NTP)的多用途实现。它可以使系统时钟与NTP服务器、参考时钟(例如GPS接收器)以及使用手表和键盘的手动输入同步。它还可以作为NTPV