Linux 运维手册之 CHRONY 时间同步服务

后知后觉 暂无评论

NTPNetwork Time Protocol,网络时间协议)是用来使网络中的各个计算机保持时间同步的一种协议。它的用途是把计算机的时钟同步到 UTCCoordinated Universal Time,世界标准时间),其精度在局域网内可达0.1 ms,在互联网上绝大多数的地方其精度可以达到 1~50 ms

服务简介

Chrony 应用本身已经有几年了,是网络时间协议(NTP)的另一种实现。一直以来众多发行版里标配的都是ntpd服务,自 RHEL 7 起,Chrony 作为标配服务,不过旧 ntpd服务依旧可用。

Chrony可以同时做为客户端和服务端。默认安装完后有两个程序chronydchronycchronyd是一个在系统后台运行的守护进程,chronyc是用来监控chronyd性能和配置其参数程序。

小贴士:Chrony 基于 UDP 报文进行传输,使用的端口号为 323

服务部署

提示:本文环境默认为 CentOS 7.5

环境准备

因涉及到网络操作,因此需要禁用防火墙和临时禁用 SELinux

# systemctl stop  firewalld
# systemctl disable firewalld
# setenforce 0

使用时间同步,需要先确定时区正确,若在中国,请统一调整为 “中国/上海”

# timedatectl             
      Local time: Thu 2018-08-01 04:50:52 PDT
  Universal time: Thu 2018-08-01 11:50:52 UTC
        RTC time: Thu 2018-08-01 11:52:42
       Time zone: America/Los_Angeles (PDT, -0700)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  Sun 2018-03-11 01:59:59 PST
                  Sun 2018-03-11 03:00:00 PDT
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2018-11-04 01:59:59 PDT
                  Sun 2018-11-04 01:00:00 PST

列出全部时区

# timedatectl list-timezones

调整时区为【中国/上海】,时区中无【中国/北京】选项

# timedatectl set-timezone Asia/Shanghai

服务安装

安装 chrony 软件包

# yum install chrony -y
小贴士:chronybase 源中,若无法安装请检查 yum 源文件。

使用 chrony 服务进行网络时间同步(重点)

# timedatectl set-ntp true
小贴士:从 yum 源安装的 chrony 默认配置文件已经有同步服务器,但是默认为海外。

服务配置

配置 chrony 同步服务器

# vim /etc/chrony.conf
# Allow NTP client access from Aliyun NTP server.
server ntp.aliyun.com iburst
# Allow NTP client access from local network.
allow 192.168.31.0/24

Debian 及其衍生版本(如:Ubuntu)上,默认配置文件路径与 RH 系列不同。

# ll /etc/chrony/chrony.conf
-rw-r--r-- 1 root root 1.8K May 16 02:56 /etc/chrony/chrony.conf
小贴士:若服务器为海外机器则无需修改,直接使用即可。

启动 chrony 服务

# systemctl enable chronyd
# systemctl start chronyd

验证服务端是否能同步时间

# chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^+ time.tritn.com                2  10   377   263   -144us[ -233us] +/-   13ms
^* clock.xmission.com            1  10   377   125   -628us[ -719us] +/-   12ms
^- lithium.constant.com          2  10   377   485  -5442us[-5529us] +/-   67ms
^- blue.1e400.net                3  10   377   144  -8550us[-8641us] +/-  131ms

Chrony 内网实例

案例背景

在企业中,为了安全,只有少数机器会暴露在外网上,其他机器只有内网网络,但部分服务需要 C/S 时间的误差在一定内才能正常运行。

解决方案

在这种情况下可以使用 chrony 服务进行内网时间同步。

先在可以连接外网的机器上配置好外网同步服务器。
具体步骤如上,此处省略。

在内网全部机器上配置时间同步客户端。

# yum install chrony -y

修改配置文件

# vim /etc/chrony.conf

配置内网时间同步服务器,加入以下内容(以实际机器地址为准)

server 192.168.31.200 iburst

启动 chrony 服务

# systemctl enable chronyd
# systemctl start chronyd

启动默认使用网络同步时间

# timedatectl set-ntp true

客户端同步验证

# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^? 192.168.31.200                3   6   372   173   -54.1s[ -54.1s] +/-  12.6s

附录

参考链接

本文撰写于一年前,如出现图片失效或有任何问题,请在下方留言。博主看到后将及时修正,谢谢!
禁用 / 当前已拒绝评论,仅可查看「历史评论」。