Centos-一文搞懂时区时钟配置和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 14:40 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 可以使用此端口进行监视和配置。