Chrony有两个核心组件,分别是:chronyd:是守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。chronyc:提供一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。 OS环境: 10.28.204.65 客户端 10.28.204.66 服务端 CentOS Linux release 7.4.1708 (Core) 情况说明:两台机器都是内网,将204.66作为NTP时间服务器,204.65到此机器上同步时间。 1.安装Chrony 系统默认已经安装,如未安装,请执行以下命令安装: $ yum install chrony -y 2.启动并加入开机自启动 $ systemctl enable chronyd.service $ systemctl restart chronyd.service $ systemctl status chronyd.service 3.Firewalld设置 $ firewall-cmd --add-service=ntp --permanent $ firewall-cmd --reload 因NTP使用123/UDP端口协议,所以允许NTP服务即可。 4.配置Chrony 以下是系统默认配置文件,我对此加以说明: $ cat /etc/chrony.conf # 使用pool.ntp.org项目中的公共服务器。以server开,理论上你想添加多少时间服务器都可以。 # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst # 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。 driftfile /var/lib/chrony/drift # chronyd根据需求减慢或加速时间调整, # 在某些情况下系统时钟可能漂移过快,导致时间调整用时过长。 # 该指令强制chronyd调整时期,大于某个阀值时步进调整系统时钟。 # 只有在因chronyd启动时间超过指定的限制时(可使用负值来禁用限制)没有更多时钟更新时才生效。 makestep 1.0 3 # 将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)。 rtcsync # Enable hardware timestamping on all interfaces that support it. # 通过使用hwtimestamp指令启用硬件时间戳 #hwtimestamp eth0 #hwtimestamp eth1 #hwtimestamp * # Increase the minimum number of selectable sources required to adjust # the system clock. #minsources 2 # 指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器 #allow 192.168.0.0/16 #deny 192.168/16 # Serve time even if not synchronized to a time source. local stratum 10 # 指定包含NTP验证密钥的文件。 #keyfile /etc/chrony.keys # 指定日志文件的目录。 logdir /var/log/chrony # Select which information is logged. #log measurements statistics tracking 5.设置时区 查看当前系统时区: $ timedatectl Local time: Fri 2018-2-29 13:31:04 CST Universal time: Fri 2018-2-29 05:31:04 UTC RTC time: Fri 2018-2-29 08:17:20 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a 如果你当前的时区不正确,请按照以下操作设置。 查看所有可用的时区: $ timedatectl list-timezones 筛选式查看在亚洲S开的上海可用时区: $ timedatectl list-timezones | grep -E "Asia/S.*" Asia/Sakhalin Asia/Samarkand Asia/Seoul Asia/Shanghai Asia/Singapore Asia/Srednekolymsk 设置当前系统为Asia/Shanghai上海时区: $ timedatectl set-timezone Asia/Shanghai 设置完时区后,强制同步下系统时钟: $ chronyc -a makestep 200 OK 6.服务器集群之间的系统时间同步 在生产环境中,其网络都是内网结构,那么内网如何保证服务器之间的时间同步呢?其实这个问题很简单,只需要搭建一台内网时间服务器,然后让所有计算机都到服务端(10.28.204.66)去同步时间即可。 具体操作:在服务端注释以下内容: #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst 并添加以下内容:(表示与本机同步时间) server 10.28.204.66 iburst 这样我们需求的一台内网时间服务器已经配置完毕。 同样在客户端注释掉其他server,并在客户端(10.28.204.65)添加以下: server 10.28.204.66 iburst 到此已经完成系统时间的同步。如有多台机器,操作也是如此。 7.常用命令 查看时间同步源: $ chronyc sources -v 查看时间同步源状态: $ chronyc sourcestats -v 设置硬件时间 硬件时间默认为UTC: $ timedatectl set-local-rtc 1 启用NTP时间同步: $ timedatectl set-ntp yes 校准时间服务器: $ chronyc tracking 最后需要注意的是,配置完/etc/chrony.conf后,需重启chrony服务,否则可能会不生效。 --------------------------------------------------------- --------------------------------------------------------- #num2 chrony服务可以实现多台服务器的时间同步 chronyd是一个在系统后台运行的守护进程 chronyc是用来监控chronyd性能和配置其参数程序 配置文件: /etc/chrony.conf 服务器端共享时间 [root@server ~]# vim /etc/chrony.conf                ##编辑配置文件  21 # Allow NTP client access from local network.      22 allow 172.25.80.0/24                             ##白名单  23  24 # Listen for commands only on localhost.  25 bindcmdaddress 127.0.0.1  26 bindcmdaddress ::1  27  28 # Serve time even if not synchronized to any NTP server.  29 local stratum 10                                 ##开启时间同步,设定级别 [root@server ~]# systemctl restart chronyd.service   ##重启服务 [root@server ~]# systemctl enable chronyd.service 在客户端配置 [root@desktop ~]# vim /etc/chrony.conf             ##编辑配置文件  # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server1 172.25.80.100 iburst                       ##配置时间服务器地址 [root@desktop ~]# systemctl restart chronyd.service##重启进程 [root@desktop ~]# chronyc sources -v               ##查看时间信息 210 Number of sources = 1   .-- Source mode  '^' = server, '=' = peer, '#' = local clock.  / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable. ||                                                 .- xxxx [ yyyy ] +/- zzzz ||                                                /   xxxx = adjusted offset, ||         Log2(Polling interval) -.             |    yyyy = measured offset, ||                                  \            |    zzzz = estimated error. ||                                   |           |                          MS Name/IP address         Stratum Poll Reach LastRx Last sample =============================================================================== ^* 172.25.80.100                10   6    17    48    +18us[  +25us] +/-  212us ##^表示服务,*代表同步成功,?代表未同步 timedatectl  : 一个时间设置工具 timedatectl                 ##查看日期时间、时区及NTP状态 timedatectl list-timezones ##查看时区列表 timedatectl set-timezone Asia/Shanghai ##修改时区 timedatectl set-time "YYYY-MM-DD HH:MM:SS"##修改日期时间 timedatectl set-local-rtc 0            ##使用utc时间 vim /etc/adjtime timedatectl set-local-rtc 1            ##使用本地时间 vim /etc/adjtime --------------------- 版权声明:本文为CSDN博主「xin1889」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/xin1889/article/details/80025418