一、NTP概念
网络时间协议(NTP, Network Time Protocol)是一种用于在计算机网络中同步时间的协议。NTP 允许计算机和其他网络设备保持一致的时间,即使在不同的地理位置和不同的网络环境中也能做到时间同步。NTP 主要用于确保分布式系统中的所有设备和服务都有统一的时间,以便于日志记录、事件排序、定时任务等。
二、NTP服务工具
ntpdate
、ntp
和 chrony
是三个用于时间同步的工具和服务,每个工具都有其特定的用途和特点。以下是对这三种工具的详细比较和说明:
ntpdate
:- 功能:
ntpdate
是一个用于手动同步系统时间的工具。它会向指定的 NTP 服务器发送时间请求,并根据返回的时间更新系统时钟。 - 特点:
- 一次性同步:
ntpdate
仅执行一次时间同步操作,并不会持续运行。它适用于需要临时更新系统时间的场景。 - 不适合持续同步:不适合需要持续时间同步的环境,因为它不会持续运行并监控时间偏差。
- 一次性同步:
- 注意:
ntpdate
已被认为是过时的工具,现代系统通常推荐使用chrony
或ntpd
。
- 功能:
ntp
:- 功能:
ntp
是一个守护进程 (ntpd
),负责持续地同步系统时间。它会定期与 NTP 服务器通信,自动调整系统时间,以保持准确性。 - 特点:
- 持续运行:
ntpd
是一个守护进程,持续运行并维护系统时间同步。 - 复杂配置:配置较为复杂,支持多种同步模式和高级特性。
- 自动调整:会根据网络延迟等因素自动调整时间,以提高同步精度。
- 持续运行:
- 注意:
ntpd
的时间同步速度较慢,但稳定性和精度较高,适合长期运行的服务器。
- 功能:
chrony
:- 功能:
chrony
是一个现代的时间同步工具,旨在取代传统的 NTP 工具。它包括两个主要组件:chronyd
(服务守护进程)和chronyc
(命令行客户端)。 - 特点:
- 快速同步:
chrony
提供更快的时间同步速度,尤其在虚拟环境和不稳定的网络条件下表现优越。 - 高效:适合经常处于变化的网络环境或频繁重启的系统。
- 精度高:提供更精确的时间同步服务,支持更广泛的环境和应用场景。
- 快速同步:
- 注意:
chrony
提供的功能更加现代化和高效,是许多系统管理员推荐的时间同步解决方案。
- 功能:
下面分别介绍三种工具的安装和使用。
三、常用的NTP服务器
-
Google NTP 服务器:
-
time.google.com
; -
Google 提供的 NTP 服务,具有较高的可靠性和全球分布的服务器。
-
-
NTP Pool Project 服务器:
-
pool.ntp.org
; -
这个项目提供了全球分布的 NTP 服务器集群,按地域可细分,如
cn.pool.ntp.org
专用于中国地区。
-
-
阿里云 NTP 服务器:
-
ntp.aliyun.com
; -
ntp1.aliyun.com
; -
阿里云提供的 NTP 服务,在中国境内延迟较低,适合国内用户使用。
-
-
华为云 NTP 服务器:
-
ntp1.cloud.huawei.com
; -
ntp2.cloud.huawei.com
; -
ntp3.cloud.huawei.com
; -
华为云提供的 NTP 服务,具有高可靠性。
-
-
国家授时中心 NTP 服务器:
-
ntp.ntsc.ac.cn
; -
中国科学院国家授时中心提供的 NTP 服务,专门为中国境内用户提供高精度的时间同步。
-
-
腾讯云 NTP 服务器:
-
ntp.tencent.com
; -
腾讯云提供的 NTP 服务,适用于国内用户。
-
-
Microsoft NTP 服务器:
-
time.windows.com
-
Microsoft 提供的 NTP 服务,适合 Windows 用户。
-
四、安装并使用ntpdate工具
1.修改系统时间
这里我们先修改系统时间,使用 data
命令随便修改为一个时间:
# 查看当前时间
date
# 显示当前时间
Mon Aug 19 22:01:01 CST 2024
# 修改当前时间为2024年8月18日15:30
date -s "2024-08-18 15:30:00"
# 再次查看当前时间
date
# 显示当前时间
Sun Aug 18 15:30:03 CST 2024
也可以使用时间戳来修改:
# 查看当前时间戳 date +%s # 显示当前时间戳 1724075698 # 修改当前时间戳 date 112523092020.18 # 再次查看当前时间 date # 显示当前时间 2020年 11月 25日 星期三 23:09:18 CST
2.安装ntpdate工具
使用 yum
命令进行安装:
yum install -y ntpdate
3.使用ntpdate工具
使用 ntpdate
命令更新系统时间:
ntpdate ntp.aliyun.com
# 显示信息
19 Aug 22:05:44 ntpdate[8026]: step time server 203.107.6.88 offset 109868.479535 sec
这里使用的是阿里云的 NTP 服务器,在中国境内延迟较低,适合国内用户使用。
再次通过 date
命令查看当前时间,发现已正常:
date
# 显示当前时间
Mon Aug 19 22:06:10 CST 2024
使用 hwclock
命令显示系统硬件时钟的当前时间:
hwclock --show
# 或者更简洁的版本
hwclock -r
# 显示信息
Mon