chrony 时间同步(服务端同步外网时间,客户端同步服务端时间)
IP | 说明 |
---|---|
172.100.10.7 | ntp 服务端(时钟服务器) |
172.100.10.8 | 客户端(同步ntp服务端172.100.10.7) |
172.100.10.9 | 客户端(同步ntp服务端172.100.10.7) |
1.先安装chrony
,命令如下
yum install -y chrony
2. 启动并且加入开机自启
# 开机自启
systemctl enable chronyd
# 重启
systemctl restart chronyd
# 查看状态
systemctl status chronyd
3. 防火墙开启对应端口
-A INPUT -p udp -m state --state NEW -m udp --sport 123 -j ACCEPT
-A OUTPUT -p udp -m state --state NEW -m udp --dport 123 -j ACCEPT
重启防火墙
systemctl restart iptables
或直接关闭防火墙(生产环境不建议)
# 停止防火墙
systemctl stop firewalld
# 禁用防火墙开机自启
systemctl disable firewalld
4. 在NTP服务器(172.100.10.7)上配置/etr/chrony.conf
配置文件,配置内容如下
# 时钟同步NTP服务器地址,这里使用阿里云 server ntp1.aliyun.com iburst minpoll 1 maxpoll 1 server ntp2.aliyun.com iburst minpoll 1 maxpoll 1 # 计算时间误差存放到文件,为后续重启做时间补偿 driftfile /var/lib/chrony/drift # 配置当时间误差超过一秒时,系统时钟前进的位数,这个要设置大些,不然设置误差比较大的时候平滑同步会很慢 # 我这里配置当时间超过1秒,系统时钟前进或者后退30000个时钟 makestep 1.0 30000 # 将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)。 rtcsync # 绑定对应的网卡,这里表示监听所有 #hwtimestamp * # 这个我理解最小数据源需要2个,保留默认(我对这个还不是很理解,有大佬看到的,可以指导我下。谢谢) #minsources 2 # 允许客户端访问的IP段 allow 172.100.0.0/16 # 表示当 server 指定的NTP服务不可用,使用自己本地时间,给客户端做时间同步 local stratum 10 # 同步加密的文件,保留默认即可 #keyfile /etc/chrony.keys # 日志存放路径 logdir /var/log/chrony # 需要记录那些日志信息,保留默认 #log measurements statistics tracking
[root@ceph1 10:16:50~]# cat /etc/chrony.conf |grep -Ev '^#|^$'
server ntp1.aliyun.com iburst minpoll 1 maxpoll 1
server ntp2.aliyun.com iburst minpoll 1 maxpoll 1
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 172.100.0.0/16
local stratum 10
logdir /var/log/chrony
5. 设置系统时区(这里使用上海时区)
timedatectl set-timezone Asia/Shanghai
6.重启chronyd.service
systemctl restart chronyd
7. 强制同步时钟
chronyc -a makestep
8. 客户端配置(172.100.10.8,172.100.10.9),和ntp服务端配置一致,只需要修改 server
和allow
即可,其它不变
server 172.100.10.7 iburst minpoll 1 maxpoll 1
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
local stratum 10
logdir /var/log/chrony
9. 重启
systemctl restart chronyd
10.客户端启用NTP
时间同步
timedatectl set-ntp yes
11.常用命令
查看时间同步源
chronyc sources -v
查看时间同步源状态
chronyc sourcestats -v
校准时间服务器
chronyc tracking