在多主机协同工作时,各个主机的时间同步很重要,时间不一致会造成很多重要应用的故障,例如:加密协议、日志,集群等。利用NTP(Network Time Protocol)协议网络中的各个计算机时间达到同步。
创新互联为企业级客户提高一站式互联网+设计服务,主要包括网站设计制作、做网站、重庆APP开发、微信小程序定制开发、宣传片制作、LOGO设计等,帮助客户快速提升营销能力和企业形象,创新互联各部门都有经验丰富的经验,可以确保每一个作品的质量和创作周期,同时每年都有很多新员工加入,为我们带来大量新的创意。
系统 | selinux、firewalld | 实现方式 | 服务器端 | 客户端 |
---|---|---|---|---|
CentOS7 | 关闭 | chrony | 172.20.3.34 | 172.20.200.200 |
实现NTP协议的自由软件。可以将时钟与NTP服务器,参考时钟(例如GPS接收器)以及使用手表和键盘通过chronyc进行手动输入进行同步。 它还可以充当NTPv4(RFC 5905)服务器并与之对等,以向网络中的其他计算机提供时间服务。设计用于在各种条件下良好运行,包括间歇性和高度拥挤的网络连接,温度变化(计算机时钟对温度敏感),以及不能连续运行或在虚拟机上运行的系统。通过Internet同步的两台机器之间的典型精度在几毫秒之内,在LAN上,精度通常为几十微秒。利用硬件时间戳或硬件参考时钟,可实现亚微妙的精度。
chrony官网:https://chrony.tuxfamily.org
软件包:chrony-3.4-1.el7.x86_64
监听端口:323/udp,123/udp
服务unit文件:/usr/lib/systemd/system/chronyd.service
两个主要程序:chronyd和chronyc
[root@CentOS7 ~]# egrep "^server|^allow|^local" /etc/chrony.conf
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst
server s1a.time.edu.cn iburst
allow 172.20.0.0/16
local stratum 10
[root@CentOS7 ~]# systemctl restart chronyd
[root@CentOS7 ~]# systemctl enable chronyd
说明:
allow 172.20.0.0/16表示哪些主机可以向该主机同步时间;
local stratum 10表示当互联网不能访问时间服务器时,仍然使用本机时间提供时间服务。
[root@CentOS7 ~]#grep "^server" /etc/chrony.conf
server 172.20.3.34 iburst
[root@CentOS7 ~]#systemctl restart chronyd
[root@CentOS7 ~]#systemctl enable chronyd
1.查看服务端当前已同步的时间源信息
2.查看访问过服务端的客户端列表
3.在客户端查看当前已同步的时间源信息
4.在客户端故意将时间设置为1年前,然后看是否能自动同步服务端的时间
[root@CentOS7 ~]#ifconfig eth0|awk -F"[ ]+" 'NR==2{print $3}'
172.20.200.200
[root@CentOS7 ~]#date -s '-1 -year'
Mon Nov 12 17:45:03 CST 2018
[root@CentOS7 ~]#systemctl restart chronyd
[root@CentOS7 ~]# pssh -h hosts.txt -i date
[1] 17:53:16 [SUCCESS] 172.20.3.34
Tue Nov 12 17:53:16 CST 2019
[2] 17:53:16 [SUCCESS] 172.20.200.200
Tue Nov 12 17:53:16 CST 2019
查看日期时间、时区及NTP状态
[root@CentOS7 ~]# timedatectl
Local time: Tue 2019-11-12 17:49:16 CST
Universal time: Tue 2019-11-12 09:49:16 UTC
RTC time: Tue 2019-11-12 09:49:16
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
查看时区列表
[root@CentOS7 ~]# timedatectl list-timezones
修改时区
timedatectl set-timezone Asia/Shanghai
修改日期时间
timedatectl set-time "2019-11-12 18:30:00"
开启NTP
timedatectl set-ntp true/flase