chrony配置


chrony既可作时间服务器服务端,也可作客户端。性能比ntp好,且配置管理方便。
chrony由两个程序组成,分别是chronyd和chronyc。chronyd是一个后台运行的守护进程,
用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。
chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的
计算机上工作,也可以在一台不同的远程计算机上工作。

◆编辑/etc/selinux/config文件,关闭selinux
SELINUX=disabled


●安装及配置
①yum install chrony -y --RHEL7默认已安装chrony,而没有安装ntpd.

②systemctl status chronyd --查看chronyd服务状态
③systemctl enable chronyd --开机启动

④vi /etc/chrony.conf --修改配置文件
#server 0.rhel.pool.ntp.org iburst --注释这4行,内网环境,无法跟外部时间同步。
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
server 192.168.0.1 iburst --添加这一行,表示与本机同步时间

local stratum 10 --取消该行注释

# Allow NTP client access from local network.
allow 192.168.0.0/24 --允许那个网段的机器到这台服务器同步时间


⑤systemctl restart chronyd --修改完配置文件后,重启chronyd服务

★查看使用的端口,需要开放udp705端口。
⑥ netstat -antulp | grep chronyd

【配置文件示例】
server ntp1.aliyun.com
server time1.aliyun.com
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
allow 192.168.0.0/24
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
local stratum 10
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony


调整时间/检查配置
1.命令
timedatectl
# timedatectl status #两条命令效果等同

[root@rhel1 ~]# timedatectl

注意NTP synchronized:yes值,只有时间服务器自己同步完成时间之后,
才能为其它服务器提供时间同步服务。

2.设置日期与时间

timedatectl set-time "YYYY-MM-DD HH:MM:SS"
timedatectl set-time "YYYY-MM-DD"
timedatectl set-time "HH:MM:SS"

3.查看所有可用的时区

timedatectl list-timezones
# 亚洲
timedatectl list-timezones | grep -E "Asia/S.*"

4.设置时区

timedatectl set-timezone Asia/Shanghai

5.设置硬件时间

# 硬件时间默认为UTC
timedatectl set-local-rtc 1 # 两条命令效果等同
OR
hwclock --systohc --localtime

6.启用NTP时间同步

timedatectl set-ntp yes #此处设置为yes后,手动修改时间会报错。
# yes或no; 1或0也可以
#把NTP enabled 修改为yes时,表示开启自动同步时间,此时,是不能手动修改时间的。

7、查看时间源信息

▪查看时间同步源:
chronyc sources
chronyc sources -v

▪查看时间同步源状态:
chronyc sourcestats -v


●客户端时间同步配置
①yum install chrony –y
②修改配置文件
vi /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.rhel.pool.ntp.org iburst --注释这4行
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
server 192.168.0.1 iburst ---添加该行,表示到此服务器同步时间。

③重启chronyd并设置开机启动
systemctl restart chronyd.service
systemctl enable chronyd.service

④查看时间同步状态
# timedatectl

NTP synchronized: yes --为yes表示已同步

重启chronyd服务后,需要过几分钟才会自动完成同步。


★如果需要手动同步,可使用下面的命令:
#ntpdate 192.168.0.1
如果同步失败,则可能是服务端的时间未同步。即服务端NTP synchronized 为no。

★手动修改时间时,必须把NTP enabled设置为no,表示关闭自动同步时间。
执行:set-ntp no
然后再执行:
timedatectl set-time "YYYY-MM-DD HH:MM:SS"


★注:
可以在客户端配置时间同步服务器。
1.使用命令行工具:chronyc
2.图形界面工具:system_config_date

-----------------------------------------
★Chrony配置参数说明(/etc/chrony.conf)

server: 该参数可以多次用于添加时钟服务器,必须以"server "格式使用。可以添加任意个时间服务器。
stratumweight: stratumweight指令设置当chronyd从可用源中选择同步源时,每个层应该添加多少距离到同步距离。
默认情况下,CentOS中设置为0,让chronyd在选择源时忽略源的层级。

driftfile: 根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中是最合理的,
在重启后为系统时钟作出补偿,甚至可能的话,会从时钟服务器获得较好的估值。

rtcsync: rtcsync指令将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)。

allow/deny: 这里你可以指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器。
例:
allow 192.168.0.10
deny 192.168.2.10

cmdallow/cmddeny: 指定哪个IP地址或哪台主机可以通过chronyd使用控制命令。

bindcmdaddress : 该指令允许你限制chronyd监听哪个网络接口的命令包(由chronyc执行)。
该指令通过cmddeny机制提供了一个除上述限制以外可用的额外的访问控制等级。
例:
bindcmdaddress 127.0.0.1
bindcmdaddress ::1

makestep: chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,
系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。该指令强制chronyd在调整期
大于某个阀值时步进调整系统时钟,但只有在因为chronyd启动时间超过指定限制(可使用负值来禁用限制),
没有更多时钟更新时才生效。
-----------------------------------------
★chronyc命令
可以通过运行chronyc命令来修改设置。

accheck:检查NTP访问是否对特定主机可用。
activity:该命令会显示有多少NTP源在线/离线。
add server:手动添加一台新的NTP服务器。
clients:在客户端报告已访问到服务器。
delete:手动移除NTP服务器或对等服务器。
settime:手动设置守护进程时间。
tracking:显示系统时间信息。
-----------------------------------------

posted @ 2018-06-07 17:05  山的那一边  阅读(11430)  评论(0编辑  收藏  举报