使用chrony搭建时间同步服务器
[Linux系列]Chrony时间同步服务器
配置chrony服务,实现服务器时间自动同步
linux上内网环境配置NTP时间同步详解
经验体会:解决Ubuntu 18.04+Windows双系统时间不同步的问题
1 时间同步
我们知道一台电脑主机,每次开机时间都是正常的,那是因为我们电脑上配置了时间同步的服务器地址,联网之后,会通过互联网上的时间服务器来校验我们本地的时间。
当主机处于内网的时候,我们系统时间是通过bios的时间来保证时间一致的,bios上有个纽扣电池,当电池没电之后,且又无法同步互联网时间的话,就会导致电脑的系统时间不对的情况。
1.1 什么是时间同步
时间同步,就是将本地时间与互联网时间进行校对,为系统提供一个统一时间的过程。由于本地时间的计时速率、运行环境不一致性,本地时钟即使在某一刻被校准了 ,一段时间后,这些本地时钟也会出现不一致。为了本地时钟再次达到相同的时间值,所以需要进行时间同步的操作。
实际的生产环境中,多主机协同工作,主机间的时间同步很重要,时间不一致会导致很多重要应用的故障,如:日志,加密协议,集群等。
1.2 常用的时间同步服务器
(1)NTP时间服务
让时间校对像手表一样波动的快一点,而不是像date命令直接跳跃过去:其他服务器一分钟60s,而ntp一分钟30s,来实现时间的校对。
问题:为了赶上慢的24小时,可能需要消耗非常长的时间来进行校对。
(2)Chrony时间服务
Chrony是NTP的替代品,能更精确、更快的同步时钟,传统ntp需要几小时,而chrony仅需要数秒种或数毫秒即可完成时间同步。
调整时间的速度就像拨动表针的速度一样快;
1.3 公网时间服务器地址
阿里云NTP服务器:
ntp1.aliyun.com;
ntp2.aliyun.com;
ntp3.aliyun.com;
ntp4.aliyun.com
腾讯云NTP服务器:
time1.cloud.tencent.com;
time2.cloud.tencent.com;
time3.cloud.tencent.com
使用方法:ntpdate ntp1.aliyun.com
2 Chrony
2.1 chrony简介
(1)chrony是基于ntp协议的实现时间同步服务,
它既可以当做服务端,也可以充当客户端。
(2)chrony是NTP的替代品,能更精确的时间和更快的速度同步时钟。
(3)chrony占用系统资源少,只有被唤起时才占用少部分CPU,
chrony兼容ntpdate。
(4)chrony允许本地网络其他主机像本地某台主机进行时间同步。
chrony官网:https://chrony.tuxfamily.org
chrony官方文档:
https://chrony.tuxfamily.org/documentation.html
(5)chrony既可作时间服务器服务端,也可作客户端。
监听端口:
服务端:123/udp
客户端:323/udp
(6)服务unit文件
/usr/lib/systemd/system/chronyd.service
(7)对应的的配置文件 Ubuntu系统
/etc/chrony/chrony.conf
客户端程序:/usr/bin/chronyc
服务端程序:/usr/sbin/chronyd
(8)常用的公共的NTP服务器地址及IP
210.72.145.44 国家授时中心服务器IP地址
133.100.11.8 日本 福冈大学
s1a.time.edu.cn 北京邮电大学
s1b.time.edu.cn 清华大学
s1c.time.edu.cn 北京大学
2.2 chrony安装
(1)卸载自带的systemd-timesyncd
sudo apt remove systemd-timesyncd
(2)安装chrony【替换systemd-timesyncd提供time-daemon】
sudo dpkg -i chrony_3.5-6ubuntu6_amd64.deb
(3)安装systemd【提供systemctl】
sudo dpkg -i libsystemd0_245.4-4ubuntu3.19_amd64.deb
sudo dpkg -i systemd_245.4-4ubuntu3.19_amd64.deb
sudo dpkg -i systemd-sysv_245.4-4ubuntu3.19_amd64.deb【提供shutdown】
2.3 配置Chrony服务器
Chrony服务端配置,修改/etc/chrony/chrony.conf文件三处,设定外部时间服务器、允许内网同步此服务端、设置断网继续同步即可。
sudo vi /etc/chrony/chrony.conf
配置内容如下:
server 10.0.2.11 iburst #1 指定本机作为时间同步服务器
allow 10.0.2.12 #2 允许其余机器同步此服务器
local stratum 10 #3 断网继续同步开启
修改完成以后,重启服务
systemctl restart chronyd
2.4 配置Chrony客户端
sudo vi /etc/chrony/chrony.conf
配置内容如下:
server 10.0.2.11 iburst
修改完成以后,重启服务
systemctl restart chronyd
2.5 测试自动同步
一、服务端
(1)停止chrony服务
sudo systemctl stop chronyd
(2)修改本地的系统时间
sudo date -s 20:00:00
(3)查看时间
date -R
Sat, 04 Mar 2023 20:00:25 +0800
(4)查看硬件时间
sudo hwclock --show
2023-03-04 18:23:45.456064+08:00
(5)硬件时间同步软件时间
sudo hwclock -w
sudo hwclock --show
2023-03-04 20:02:07.129941+08:00
(6)启动chrony服务
sudo systemctl start chronyd
二、客户端
sudo systemctl restart chronyd
3 设置时区和时间
复制文件到本地时间内
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#查看日期
date -R
#修改日期
sudo date -s 10/14/22
#修改时间
sudo date -s 13:21:00
#修改硬件的CMOS时间
sudo hwclock --systohc