一、简介
NTP 是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。NTP 与 chrony 不能同时存在,只能用其中一个,并将另一个 mask 掉Chrony 是一个开源的自由软件,它能帮助你保持系统时钟与时钟服务器(NTP)同步,因此让你的时间保持精确。它由两个程序组成,分别是 chronyd 和 chronyc。chronyd 是一个后台
运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。chronyc 提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在 chronyd 实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
二、配置文件常用的配置项
server: 指明时间服务器地址;
allow NETADD/NETMASK 允许那些客户端来同步
allow all: ;允许所有客户端主机
deny NETADDR/NETMASK
deny all: 拒绝所有客户端;
bindcmdaddress: 命令管理接口监听的地址;
local stratum 10: 即使自己未能通过网络时间服务器同步到时间,也允许将本地时间作为标准时间授时给其它客户端。
三、实验-设置本地时间同步服务器
在 uos1 上
apt install chrony #安装服务
systemctl restart chronyd
systemctl enable chronyd
vim /etc/chrony/chrony.conf #修改配置文件以下内容
allow 192.168.200.0/24 #允许哪些客户端来同步主机的时间
local stratum 10 #增加,本机不同步任何主机时间,本机作为时间源
systemctl restart chronyd #重启服务
netstat -antulp|grep chronyd #查看时间服务器是否允许
timedatectl #显示系统当前日期和时间
在 uos2 上
apt install chrony
cat /etc/chrony/chrony.conf
#pool 2.debian.pool.ntp.org #注释此行
server 192.168.200.201 iburst #将时间服务器指向我们自建的服务器,burst 表示当此 NTP服务器不可用时,向它发送一系列的并发包进行检测
systemctl restart chronyd
ss -anptu | grep chronyd
timedatectl
Local time: 三 2020-06-03 16:25:28 CST
Universal time: 三 2020-06-03 08:25:28 UTC
RTC time: 三 2020-06-03 08:25:29
Time zone: Asia/Beijing (CST, +0800)
System clock synchronized: yes #显示 yes 说明同步成功
NTP service: inactive
RTC in local TZ: no
chronyc sources –v #查看时间同步源
MS Name/IP address Stratum Poll Reach LastRx Last sample ===========================================================
^* 192.168.200.201 10 6 37 35 +2035ns[+8891ns] +/- 157us
chronyc sourcestats –v #查看时间同步源状态
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev
===========================================================
192.168.200.201 4 4 194 +0.000 12.437 +0ns 50us
四、时间设置工具 timedatectl
查看当前时间/日期/时区:timedatectl 或者 timedatectl status
查看所有可用时区:timedatectl list-timezones
设置时区:timedatectl set-timezone “时区信息” 设置 UTC:timedatectl set-timezone UTC
设置时间:timedatectl set-time HH:MM:SS
设置日期:timedatectl set-time YYYY-MM-DD
设置日期时间:timedatectl set-time “YYYY-MM-DD HH:MM:SS” 设置硬件时钟为本地时间:timedatectl set-local-rtc 1
设置硬件时钟为 UTC 时间:timedatectl set-local-rtc 0
启动 NTP 时间同步(启用 NTP 服务或者 Chrony 服务):timedatectl set-ntp true
禁用 NTP 时间同步:timedatectl set-ntp false
五、chronyc 的选项
accheck – 检查 NTP 访问是否对特定主机可用
activity – 该命令会显示有多少 NTP 源在线/离线
add server – 手动添加一台新的 NTP 服务器。
clients – 在客户端报告已访问到服务器
delete – 手动移除 NTP 服务器或对等服务器
settime – 手动设置守护进程时间
tracking – 显示系统时间信息