Linux系统时间不对可以通过以下三种方法修复

1、将硬件时间同步到系统时间

2、修改系统的时区

3、配置NTP客户端

系统时钟VS硬件时钟

在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。

date 查看系统时间

date -s 设置系统时间

hwclock查看硬件时间

hwclock -w 将硬件时间同步到系统时间

Linux系统时钟不对一般为时区设置有误

Centos7查询时区方法

[zyq@zyq ~]$ timedatectl 
      Local time: Tue 2023-01-17 13:56:36 CST
  Universal time: Tue 2023-01-17 05:56:36 UTC
        RTC time: Tue 2023-01-17 05:56:36
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

Centos6查询方法

cat /etc/sysconfig/clock

如果时区不是Asia/Shanghai,通过修改时区即可修复

时区如果没有问题可通过配置时钟客户端修复

常用的时钟服务器

cn.pool.ntp.orgasia.pool.ntp.orgpool.ntp.orghk.pool.ntp.org

配置客户端

[zyq@zyq tmp]$ grep server  /etc/ntp.conf 
# Use public servers from the pool.ntp.org project.
server 0.rhel.pool.ntp.org iburst
server 1.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
server 3.rhel.pool.ntp.org iburst
#broadcast 192.168.1.255 autokey    # broadcast server
#broadcast 224.0.1.1 autokey        # multicast server
#manycastserver 239.255.254.254        # manycast server

以上是系统自带的服务器地址,如果要指定添加“serve 域名” 即可;没有ntp客户端sudo yum install ntpd即可

启动客户端

[zyq@zyq ~]$ sudo systemctl restart ntpd

检查与上层NTP服务器是否时钟同步成功

[zyq@zyq ~]$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 time.cloudflare 10.208.8.4       3 u   34   64    1  218.271  -14.928  20.049
*trabant.uid0.hu 84.2.44.19       3 u   33   64    1  245.959  -20.544  37.502
 139.199.215.251 100.122.36.196   2 u   34   64    1   46.197    8.340  10.811
[zyq@zyq ~]$
  • remote:表示NTP服务器的IP地址或者主机名;
  • refid:表示NTP服务器所参考的时间源,通常为另一个NTP服务器或者外部时钟源;
  • st:表示NTP服务器的层级,层级数越小表示离主时钟源越近;
  • t:表示NTP服务器所使用的时钟类型,通常为u表示UDP时钟;
  • when:表示NTP客户端最后一次与该NTP服务器进行时间同步的时间,以秒为单位;
  • poll:表示NTP客户端与该NTP服务器之间的时间同步间隔,以2的幂次方秒为单位;
  • reach:表示NTP客户端最近8次向该NTP服务器发送时间同步请求的状态,1表示成功,0表示失败;
  • delay:表示NTP客户端与该NTP服务器之间的网络延迟,以毫秒为单位;
  • offset:表示NTP客户端与该NTP服务器之间的时间误差,以毫秒为单位;
  • jitter:表示NTP客户端与该NTP服务器之间时间误差的方差,以毫秒为单位。

在这个输出中,星号(*)表示当前系统正在使用的NTP服务器,也就是主NTP服务器。可以看到,当前NTP客户端与NTP服务器之间的时间误差(offset)为-20.544毫秒,网络延迟(delay)为245.959毫秒,时间同步的状态较为稳定。

ntp客户端与服务端都使用udp 123端口进行通信,默认11分钟会进行一次udp连接的建立。

注意:此ntpq工具需安装后使用yum -y install ntp

首次进行NTP时钟同步需要一定时间,请等待几分钟再进行检查。

注意:chronyd进程会与ntp进程冲突,确保系统没有此进程

systemctl stop chronyd

systemctl disable chronyd