Centos-一文搞懂时区时钟配置和NTP/chrony设置

 平时使用windows电脑和手机的时候,配置时间、时区都非常的简便。但在命令行的linux下,就不知如何下手。本文就Centos7举例,依次说明下时间日期和NTP\CHRONY的配置。

由于在服务器侧时间同步常用于集群之间,所以本文后面会针对集群间的配置做举例。文中涉及到的网络安装软件部分,默认为在线安装。但是也会附上离线环境安装方法。

 

一、  准备环境

系统:Centos7-x86-64

类型:虚拟机

网络:有互联网

注意:ntp和chrony无法同时再一台机器运行;请单独安装运行

ip

系统版本

ntp版本

chrony版本

192.168.1.131

Centos7.6

ntp-4.2.6p5-29.el7

ntpdate-4.2.6p5-29.el7

chrony-3.4-1.el7.x86_64

192.168.1.132

Centos7.6

192.168.1.133

Centos7.6

ntp下载地址(Centos7):

http://mirror.centos.org/centos/7/os/x86_64/Packages/ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm

http://mirror.centos.org/centos/7/os/x86_64/Packages/ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm

chrony下载地址(Centos7):

http://mirror.centos.org/centos/7/os/x86_64/Packages/chrony-3.4-1.el7.x86_64.rpm

 

二、  时区配置

时区一般是在安装系统时候配置,如果当时忘记了,后续配置也比较简单

时区设置立即生效、无需重启

#查询系统当前设置的时区
timedatectl

#时区文件夹
ls /usr/share/zoneinfo/

#设置中国时区
timedatectl set-timezone Asia/Shanghai
mv /etc/localtime /etc/localtime.bak
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#设置美国时区
timedatectl set-timezone America/New_York
mv /etc/localtime /etc/localtime.bak
ln -s /usr/share/zoneinfo/America/New_York /etc/localtime

 

三、  系统区域\字符集配置

系统区域设置也称为环境设置或者字符集设置,可以配置系统显示的字符集、一般设置为美国或者中国、注意:配置后需要重启

参考:第 2 章 系统位置和键盘配置 Red Hat Enterprise Linux 7 | Red Hat Customer Portal

#查询当前系统区域/字符集
locale
localectl status

#列出可用的系统区域/字符集设置
localectl list-locales

#设置zh_CN.UTF-8
localectl set-locale LANG=zh_CN.UTF-8
echo "LANG=zh_CN.UTF-8" > /etc/locale.conf

#设置en_US.utf8
localectl set-locale LANG=en_US.utf8
echo "LANG=en_US.utf8" > /etc/locale.conf
#配置后需要重启

四、  日期和时间手动配置

系统的日期和时间都是自动同步NTP服务,有时候需要手动配置,可以使用data -s命令

#日历显示
cal

#时间显示
date

#修改时间23:00
date -s 23:00:00

#修改日期8.20
date -s "2023-8-20"

#修改时间为 2023-8-24 1440
date -s "2023-8-24 14:40"

五、  配置NTP服务自动同步时间

时钟同步是计算机和服务器配置十分重要的一个环节,不管是在线环境还是离线环境,都需要时间同步统一,不然很多服务和程序都会报错。

NTP服务是网络时间协议 ,可以准确显示时间和日期信息,以便让联网计算机系统上的时间时钟与网络或互联网上的常见引用保持同步。世界各地的许多标准正文都有原子时钟,这些时钟可以作为参考提供。组成全球定位系统的卫星包含多个原子时钟,使其时间信号可能非常准确。出于军事原因,这些信号可以有意降级。

在linux系统,一般是主机作为客户端角色使用NTP服务软件去远程同步网络时钟服务器,这种适用于在线环境下单台机器的情况。

如果是离线环境且有多台机器情况,一般会在内部搭建一个时钟服务器,其他主机同步它的时间。目前主流NTP服务软件分为NTP和chrony。

5-1 NTP和chrony区别

第 18 章 使用 chrony 套件配置 NTP Red Hat Enterprise Linux 7 | Red Hat Customer Portal

详细见官网:chrony – NTP 实施的比较

 

 

5-2 NTP在线环境同步远程时钟

在线环境:同步外网时钟服务器即可

#安装NTP
rpm -qa | grep ntp                    
yum -y remove ntpdate ntp        
yum -y install ntp  ntpdate

#手动同步
ntpdate -u ntp.ntsc.ac.cn

#写入配置文件自动同步
mv /etc/ntp.conf /etc/ntp.conf.bakk
cat >>/etc/ntp.conf<<EOF    
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1 
restrict ::1
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
server ntp.ntsc.ac.cn   
fudge ntp.ntsc.ac.cn stratum 10 
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor 
EOF
cat /etc/ntp.conf

5-3 chrony在线环境同步远程时钟

在线环境:同步外网时钟服务器即可

#安装chrony
rpm -qa | grep chrony
yum -y remove chrony        
yum -y install chrony

#写入配置文件自动同步
mv /etc/chrony.conf /etc/chrony.conf.bakk
cat >> /etc/chrony.conf<<EOF
server ntp.ntsc.ac.cn iburst
server 127.0.0.1 iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 192.168.1.0/24
local stratum 10
logdir /var/log/chrony
EOF
cat /etc/chrony.conf
 

六、  NTP搭建集群同步时间

1、  更新阿里源、安装ntp|ntpdate

离线环境提前下载离线包

#更新阿里源
cd /etc/yum.repos.d/ 
curl -L -O https://mirrors.aliyun.com/repo/Centos-7.repo && mv ./Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
curl -L -O  http://mirrors.aliyun.com/repo/epel-7.repo && mv ./epel-7.repo /etc/yum.repos.d/epel.repo
yum clean all && yum makecache
yum install -y epel-*

#安装NTP
rpm -qa | grep ntp                    
yum -y remove ntpdate ntp        
yum -y install ntp  ntpdate

#设置时区上海
timedatectl set-timezone Asia/Shanghai    
date
mv /etc/localtime /etc/localtime.bak
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
timedatectl set-timezone Asia/Shanghai

2、  离线环境:3台机器时钟同步其中一台

将192.168.1.131作为主节点,其他节点都同步它,允许同步网段设置为192.168.1.0

3、  NTP主节点配置修改

#主节点:修改配置文件
mv /etc/ntp.conf /etc/ntp.conf.bakk
cat >>/etc/ntp.conf<<EOF                
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 192.168.1.131 nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
EOF
cat /etc/ntp.conf
#需要把对应restrict IP和restrict网段进行修改即可

4、  NTP其他节点配置修改

#其他节点:ntp客户端配置
mv /etc/ntp.conf /etc/ntp.conf.bakk
cat >>/etc/ntp.conf<<EOF    
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1 
restrict ::1
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
server 192.168.1.131   
fudge 192.168.1.131 stratum 10 
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor 
EOF
cat /etc/ntp.conf
#需要把对应server Fudge IP和restrict网段进行修改即可

● 注意:先启动主节点的NTP服务、再启动其他节点

#主节点执行同步
systemctl restart ntpd
systemctl status ntpd
#systemctl enable ntpd

 

● 同步硬件时间,检查集群同步状态,关闭chyony

#其他节点执行同步
ntpdate -u 192.168.1.131

#同步硬件时间
sed -i 's#SYNC_HWCLOCK=no#SYNC_HWCLOCK=yes#g' /etc/sysconfig/ntpdate
hwclock -w            
hwclock -r        

#检查是否成功
ntpstat
ntpq -p
timedatectl

#会冲突,需要停止chronyd.service
systemctl stop chronyd.service
systemctl disable chronyd.service

5、  开放端口123

如果无法同步,请检查防火墙是否开放端口123

netstat -lnptu | grep ntp

#关闭防火墙和selinux
systemctl stop firewalld.service
systemctl disable firewalld.service  
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
sestatus

七、  chrony搭建集群同步时间

1、  更新阿里源、安装chony

离线环境提前下载离线包

#更新阿里源
cd /etc/yum.repos.d/ 
curl -L -O https://mirrors.aliyun.com/repo/Centos-7.repo && mv ./Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
curl -L -O  http://mirrors.aliyun.com/repo/epel-7.repo && mv ./epel-7.repo /etc/yum.repos.d/epel.repo
yum clean all && yum makecache
yum install -y epel-*

#安装chrony
rpm -qa | grep chrony
yum -y remove chrony        
yum -y install chrony

#设置时区上海
timedatectl set-timezone Asia/Shanghai    
date
mv /etc/localtime /etc/localtime.bak
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
timedatectl set-timezone Asia/Shanghai

2、  离线环境:3台机器时钟同步其中一台

将192.168.1.131作为主节点,其他节点都同步它,允许同步网段设置为192.168.1.0

3、  NTP主节点配置

#主节点:修改配置文件
mv /etc/chrony.conf /etc/chrony.conf.bakk
cat >> /etc/chrony.conf<<EOF
server 192.168.1.131 iburst
server 127.0.0.1 iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 192.168.1.0/24
local stratum 10
logdir /var/log/chrony
EOF
cat /etc/chrony.conf

4、  NTP其他节点配置

#其他节点:修改配置文件
mv /etc/chrony.conf /etc/chrony.conf.bakk
cat >> /etc/chrony.conf<<EOF
server 192.168.1.131 iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
local stratum 10
logdir /var/log/chrony
EOF
cat /etc/chrony.conf

● 注意:先启动主节点的NTP服务、再启动其他节点

#先停止ntp\ntpdate服务
systemctl stop ntpd.service
systemctl stop ntpdate.service

#再启动chronyd
systemctl restart chronyd.service
systemctl status chronyd.service

#等几秒可以查看同步状态
chronyc sources -v
chronyc clients
timedatectl

5、  开放端口123和323

下面是 Chrony 服务使用的默认端口:

● UDP 端口 123:Chrony 客户端和服务器都使用此端口进行 NTP 数据包通信。

● TCP 端口 323:如果需要,Chrony 可以使用此端口进行监视和配置。

 

如果觉得博主的文章对你有帮助,麻烦动动小手、点赞、评论、您的鼓励是我最大的动力!!!
出处: https://home.cnblogs.com/u/subsea/
博客园主页:https://www.cnblogs.com/subsea/
CSDN主页:https://blog.csdn.net/SUBSEA123/