实验目的

系统时间,硬件时间的设定和修改:ntp、chrony实现时间同步

前提准备

可用的Centos6、7系统
Cetnos6:192.168.37.6
Centos:192.168.37.7

实验步骤

1、时间同步前期准备工作

[1] date命令查看系统时间

[root@Centos6 ~]# dateTue Jan 29 14:32:00 CST 2019

[2] 查看硬件时间

[root@root ~]# clockTue 29 Jan 2019 02:49:13 PM CST -0.334741 seconds

[3] 修改系统时间为2018年

[root@Centos6  ~]# date -s '-1 year'[root@Centos6  ~]# dateTue Jan 29 14:33:00 CST 2019

[4] 此时硬件时间没有改变,若要修改硬件时间:

[root@Centos6  ~] clock -w

2、ntp软件实现时间同步

centos6上默认安装了ntp软件包(包括客户端和服务器端),但是ntp同步需要⼀定时间才能完全同步时间的,⽽chrony同步时间⽐ntp快。Centos默认安装了chronyd服务。
[1] 在Centos6上查看ntp软件、修改配置文件

[root@Centos6 ~]#rpm -qa ntpntp-4.2.6p5-15.el6.centos.x86_64

[2] 修改ntp.conf文件

vim /etc/ntp.conf
其中:server 172.16.0.1 iburst[root@Centos6 ~]# service ntpd start          启动服务
[root@Centos6 ~]# chkconfig ntpd on           开机启动
[root@Centos6 ~]# ss -unl                     监听了udp的123端口;
[root@Centos6 ~]# ntpq -p                     查看同步状态

说明:172.16.0.1是时间服务器的ip地址;iburst是加速同步时间。如果时间相差较⼤,是不能完成实时同步的。
[3] ntpdate:立即同步时间
ntp时间相差较大,是不能完成实时同步,那么用ntpdate命令来完成:

[root@Centos6 ~]# ntpdate 120.25.108.11 阿里云时间同步服务器

[4] 根据上例,Centos6开启了ntpd服务,也可以当做时间服务器被它人使用

在Centos上,模拟错误时间,方便演示:

[root@Centos ~]# date -s "-1 year"
[root@Centos ~]# ntpdate 192.168.37.629
Jan 15:43:59 ntpdate[8825]: step time server 192.168.35.6 offset  31536000.533587 sec

[5] ntp充当服务器

[root@Centos ~]# vim /etc/ntp.conf

其中:

server 172.16.0.1 iburstrestrict
default nomodify notrap nopeer noquery     改为 restrict default          nomodify
[root@Centos ~]# service ntpd start              启动服务
[root@Centos ~]# chkconfig ntpd on          开机启动
[root@Centos ~]# ss -unl                     监听了udp的123端口;

3、在Centos上chrony软件实现时间同步

chrony同ntp,也可配置成客户端和服务器端两种。
[1] 查看chrony

[root@Centos ~]# rpm -qi chrony
其中:
server 172.16.0.1 iburst

说明: /usr/bin/chronyc是客户端程序; /usr/sbin/chronyd是服务器端查询;
/usr/lib/systemd/system/chronyd.service是服务控制⽂件。

[2] 配置chrony为客户端,配置3个时间服务器地址

[root@Centos ~]# vim /etc/chrony.conf
其中:
server 172.16.0.1 iburst
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst

[root@Centos ~]# systemctl start chronyd    启动服务
[root@Centos ~]# systemctl enable chronyd   开机启动
[root@Centos ~]# ss -untl                   监听udp的323端口。
[root@Centos ~]# date                       时间会立即同步完成。

[3] chronyc客户端⼯具

[root@Centos ~]# chronyc    进入交互式命令行;
chronyc> help                查看帮助子命令;
chronyc> sources -v      同步时钟;
chronyc> quit                退出
非交互式命令:

[root@Centos ~]# chronyc sources -v
查看开机是否启动:
[root@Centos ~]# systemctl status chronyd
[root@Centos ~]# systemctl enable chronyd   设置开机自动启动:

[4] 在centos6上安装chrony软件包:

[root@Centos ~]# yum -y install chrony
[root@Centos ~]# service ntpd stop

查看ntpd是否开机启动:

[root@Centos ~]# chkconfig --list ntpd

把Centos当中时间服务器:

[root@Centos ~]# vim /etc/chorny.conf
其中:
server 192.168.37.7 iburst
[root@Centos ~]# service chornyd start
[root@Centos ~]# chronyc sources -v

[5] 在Centos上配置,充当时间同步服务器:

[root@Centos ~]# vim /etc/chrony.conf
其中:
server 172.16.0.1 iburst
allow 192.168.37.0/24
local stratum 10
[root@Centos ~]#systemctl restart chronyd

说明:
allow 192.168.37.0/24表示哪些主机可以向该主机同步时间;
allow 0.0.0.0/0表示允许所有主机向该主机同步时间;
local stratum 10表示当互联网不能访问时间服务器时,仍然使用本机时间提供时间服务。

[6] 再回到centos6,同步:

[root@Centos ~]# chronyc sources -v 同步时间较慢。

显示:^* 192.168.37.7 即为成功。

[7] 总结:实现了使⽤⼀台主机向互联⽹上的时间服务器同步时间,在局域⽹内部,由其他主机向该主机同步时间即可。

在初始化脚本里,修改chrony配置文件。

sed 's/^server.*/#&/' /etc/chrony.conf
echo server 172.16.0.1 iburst >> /etc/chrony.conf

4、timedatectl命令

[1] 列出所有时区

[root@Centos ~]# timedatectl list-timezones

[2] 查看当前时区状态

[root@Centos ~]# timedatectl status

[3] 修改时区

[root@Centos ~]# timedatectl set-timezone Asia/Shanghai
[root@Centos ~]# date

[4] 查看有效的配置⽂件

[root@Centos ~]# grep -Ev "^(#.*|)$" /etc/chrony.conf
或:
[root@Centos ~]# grep -Ev "^#|^$" /etc/chrony.conf
最后修改:2024 年 01 月 04 日
如果觉得我的文章对你有用,请随意赞赏