Linux(CentOS)同步服务器时间之~ntpd

news2024/9/23 11:28:03

在这里插入图片描述

NTPNetwork Time Protocol(网络时间协议)的缩写,它是一种用于在计算机系统之间同步时间的协议。NTP 允许网络中的设备通过与一个或多个时间服务器进行通信,来校正自身的系统时钟,确保所有设备上的时间保持高度一致。

ntpd 则是 NTP 协议的一个具体实现,它是 NTP 守护进程(daemon)的名字。ntpd 在系统后台持续运行,负责与配置好的时间服务器进行周期性的通信,根据服务器返回的时间信息,逐步、平滑地调整本机的系统时间,以达到与时间服务器时间同步的目的。

ntpd 的优势在于它能连续工作,不断微调系统时钟,即使系统时钟与标准时间有较大偏差,也能逐渐调整至准确,同时还能跟踪并补偿时钟的自然漂移。

确认是否已安装ntpd
systemctl status ntpd

如果ntpd服务已安装并正在运行,Active: active (running),输出内容如下:

● ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2021-09-20 10:00:00 UTC; 1h ago
     Docs: man:ntpd(8)
 Main PID: 12345 (ntpd)
   CGroup: /system.slice/ntpd.service
           └─12345 /usr/sbin/ntpd -u ntp:ntp -g

如果ntpd服务安装但是未启动,Active: inactive (dead),输出内容如下:

● ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

如果ntpd服务未安装,你将看到类似以下输出:

Unit ntpd.service could not be found.

请注意,上述命令需要以root用户或具有sudo权限的用户身份运行。

安装ntpd

首先,确保您的CentOS系统已安装了NTP服务。如果未安装,可以通过以下命令安装:

yum –y install ntpd
配置ntpd

安装完ntpd后,需要编辑其配置文件 /etc/ntp.conf 来指定时间服务器及其它设置。默认情况下,NTP会尝试连接到一些公共的NTP服务器,但推荐您添加一些离您物理位置近的或信任的NTP服务器以提高同步效率和安全性。

使用文本编辑器(如vi)打开配置文件:

vi /etc/ntp.conf

在文件中,您可以添加或修改服务器条目。例如,添加阿里云的NTP服务器:

server ntp.aliyun.com iburst

如果您希望使用一个池地址,可以使用如下的中国地区NTP池:

server cn.pool.ntp.org iburst
启动ntpd服务、查看状态
启动ntpd服务
systemctl start ntpd
设置ntpd开机自启
systemctl enable ntpd
查看ntpd状态
systemctl status ntpd
重启ntpd服务
systemctl restart ntpd
停止ntpd服务
systemctl stop ntpd
禁用ntpd服务
systemctl disable ntpd
内网环境下的ntpd服务配置

对于不能直接访问互联网的CentOS服务器集群,要保持集群内所有服务器的时间一致,可以采取以下步骤手动同步某台机器的时间,然后以此为参考源同步其他机器:

准备工作
  1. 选择参考服务器:从集群中选择一台机器作为时间参考服务器(假设为Server A),确保这台服务器的时间最为准确或已通过其他方式(如手动设置或使用便携式时钟设备)校准过。
  2. 安装NTP服务:在所有服务器上安装NTP服务,包括参考服务器和目标同步的服务器。即使它们不能直接访问互联网,安装NTP服务仍然是必要的,因为我们将使用它来进行内部时间同步。
配置参考服务器
vi /etc/ntp.conf

注释掉所有外部时间服务器的条目,并添加一行声明自身为本地NTP服务器(如果要同步的服务器较多,考虑使用广播或组播模式):

【内容】在server部分添加一下部分,并注释掉server 0 ~ n

restrict default ignore     # 禁止所有外部主机同步
server 127.127.1.0         # 本地时钟参考
fudge 127.127.1.0 stratum 10 # 设置本地时钟的层级
命令解析
  1. restrict default ignore: 这行配置指令限制了默认情况下所有远程主机对本NTP服务器的访问权限,使其无法使用这台服务器作为时间源进行同步。换句话说,它阻止了除明确允许的来源之外的所有NTP查询和响应,有助于增强安全性,确保只有被授权的或本地的请求得到处理。
  2. server 127.127.1.0: 这行配置定义了一个本地时钟作为时间源。127.127.1.0 是一个特殊的IP地址,属于NTP的“伪服务器”地址范围,用来表示本地参考时钟。这里指定本地系统时钟作为时间服务器,意味着NTP服务将使用本机的系统时钟作为时间同步的依据。通常,这是在没有外部网络连接或想要使用本地硬件时钟(如通过GPS接收器校准)作为时间源时采用的配置。
  3. fudge 127.127.1.0 stratum 10: fudge 命令用来调整或修正时间源的行为。在这个例子中,它设置了使用本地时钟(127.127.1.0)作为时间源时的“层级(stratum)”为10。在NTP中,层级表示时间源的可靠性和距离原始时间源的远近,层级1是最准确的(通常是原子钟或GPS接收器直接连接的服务器),层级数值越大表示距离原始时间源越远或可靠性越低。设置为10表明这是一个非常不可靠的时间源,但这在内部网络作为临时解决方案或明确知道本机时间已经准确时是有意义的,可以避免此本地时钟被错误地用作其他NTP客户端的上级时间源。
配置其他服务器
vi /etc/ntp.conf

在其他的集群服务器上(假设为Server B、Server C等),编辑它们的NTP配置文件 /etc/ntp.conf,指向参考服务器(Server A)的IP地址:

【内容】在server部分添加如下语句,将server指向主节点。

server <Server_A_IP> iburst

请将上面的 <同步节点IP> 替换成真实的同步节点IP地址,如果有多个同步节点,请重复执行上面的操作

重启NTP服务
systemctl restart ntpd
强制同步

然而,如果你确实需要快速调整时间,通常的做法是暂停 ntpd 服务,使用 ntpdate 工具进行一次性强制同步,然后重新启动 ntpd 服务。

  1. 停止 ntpd 服务:

    systemctl stop ntpd
    
  2. 使用 ntpdate 强制同步:

    首先,确保安装了 ntpdate(如果系统中没有的话),然后执行以下命令,替换 <Server_A_IP> 为你的NTP服务器地址:

    ntpdate <Server_A_IP>
    
  3. 启动或重启 ntpd 服务:

    systemctl start ntpd
    

注意:直接的强制同步可能会导致依赖时间连续性的应用程序出现问题,因此在执行这类操作时应谨慎考虑其影响。理想情况下,应优化 ntpd 配置以适应不同的网络环境和时间偏差情况,或考虑使用 chrony 等更现代化的工具,它们在启动时和大偏移量处理上提供了更好的性能。

验证

在所有服务器上,使用 ntpq -p 命令检查时间同步状态,确认所有服务器的时间都已经与参考服务器保持一致。

注意事项
  • 确保所有服务器的硬件时钟(BIOS时间)也与系统时间同步,必要时使用 hwclock -w 命令。
  • 考虑到网络延迟,集群内的时间同步可能不如直接与互联网上的NTP服务器同步精确,但足以满足多数内部应用的需求。
  • 如果集群较大,考虑设置多级时间服务器结构,即一部分服务器同步于外部时间源,其余服务器再同步于这些内部服务器,以减轻主参考服务器的压力并提高可靠性。
备注

hwclock -w 是一个在类Unix系统(如Linux)中使用的命令,用于将系统时间(即操作系统维护的时间)写入硬件时钟(RTC,实时时钟)。硬件时钟是一个由主板上的小型电池供电的时钟,即使系统关机也会继续运行,以保持时间的连续性。

当你执行 hwclock -w 命令时,会发生以下过程:

  1. 系统首先读取当前的操作系统时间,这个时间通常是根据系统内核以及NTP等时间同步服务调整后的准确时间。
  2. 然后,该命令会把读取到的系统时间转换为硬件时钟需要的格式。
  3. 最后,转换后的时间会被写入到硬件时钟中,从而更新硬件时钟的时间,确保即使系统重启后,时间仍然保持最近一次更新时的准确性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2094033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

演示:基于WPF的DrawingVisual和谷歌地图瓦片开发的地图(完全独立不依赖第三方库)

一、目的&#xff1a;基于WPF的DrawingVisual和谷歌地图瓦片开发的地图 二、预览 三、环境 VS2022&#xff0c;Net7,DrawingVisual&#xff0c;谷歌地图瓦片 四、主要功能 地图缩放&#xff0c;平移&#xff0c;定位 真实经纬度 显示瓦片信息 显示真实经纬度和经纬线 省市县…

[环境配置]Pycharm手动安装汉化插件

在Pycharm-file-setting-Plugins中&#xff0c;搜索chinese&#xff0c;就会出现汉化包 点击install后&#xff0c;在安装时出现这种报错&#xff1a;Plugin "Chinese (Simplified) Language Pack / 中文语言包" was not installed: Invalid filename returned by a …

用 jsPDF 让 PDF 生成触手可及

jsPDF &#xff1a;在浏览器中生成 PDF&#xff0c;从未如此简单- 精选真开源&#xff0c;释放新价值。 概览 jsPDF 是一个开源的 JavaScript 库&#xff0c;专为在浏览器端生成 PDF 文档而设计。它通过提供一个直观且易于使用的 API&#xff0c;使得开发者能够快速地将 PDF 生…

【Kubernetes】持久卷 PV

持久卷 PV 1.什么是持久卷2.创建一个持久卷3.持久卷的访问模式4.持久卷的回收策略 数据卷是在创建 Pod 时通过 挂载目录 来实现数据的共享和持久化的。但是在一个大型系统中&#xff0c;这种方式是非常不利于管理的&#xff0c;因为数据卷把数据的 持久存储 和 供应使用 封装在…

短时傅里叶变换(Short-Time Fourier Transform, STFT),语音识别

高能预警&#xff01;&#xff01;&#xff01; .wav文件为笔者亲自一展歌喉录制的噪声&#xff0c;在家中播放&#xff0c;可驱赶耗子&#xff0c;蟑螂 介绍 短时傅里叶变换&#xff08;Short-Time Fourier Transform, STFT&#xff09;是一种时频分析方法&#xff0c;用于…

智能分拣投递机器人

产品介绍 自研智能分拣投递机器人&#xff0c;专注于物流行业“NC小件”的分拣与投递&#xff0c;机器人运行稳定、分拣效率高&#xff0c;搭配智能分拣投递系统单台机器人最大作业效率可达400件/H&#xff0c;投递效率相较于传统“小黄人“提升了30%-50%&#xff0c;可替代“…

生成艺术,作品鉴赏:物似主人形

2001年&#xff0c;当21岁的我&#xff0c;还在恒基伟业当高级工程师时。我有一个女同事&#xff0c;她有个特别大的杯子用来喝水&#xff0c;不夸张的说&#xff0c;是那种我从来没见过的大杯子&#xff0c;由于她是很大只的那种&#xff0c;她便自嘲说&#xff1a;「物似主人…

RAG增强的视觉问答开发框架

检索增强生成 (RAG) 是一种强大的技术&#xff0c;可以提高大型语言模型 (LLM) 生成的答案的准确性和可靠性。它还提供了检查模型在特定生成过程中使用的源的可能性&#xff0c;从而使人类用户更容易进行事实核查。此外&#xff0c;RAG 可以使模型知识保持最新状态并整合特定主…

前端进阶| 深入学习面向对象设计原则

引言 面向对象编程&#xff08;Object-Oriented Programming&#xff0c;OOP&#xff09;是一种常用的编程范式&#xff0c;它通过将数据和与之相关的操作封装在一起&#xff0c;提供了一种更有组织和易于理解的方式来构建应用程序。在JavaScript中&#xff0c;我们可以使用面…

【持续更新】【Google Play版】淘宝最新国际版10.36.10.20启动更快

功能和国内比基本是差不多的&#xff0c;只不过没有应用内乱七八糟的弹窗&#xff0c;用起来比较舒服&#xff0c;启动也比较快。 像这种软件如何保证是 官方 的呢&#xff1f;毕竟涉及到财产&#xff0c;还是要小心些的。 很简单&#xff0c;修改过的 app 会提示“签名不一致…

Unity本地化id查找器,luaparser函数参数查找

前言&#xff1a; 适用范围&#xff1a;Unity 中需要查找所有预制体里面的某一个脚本的属性值&#xff0c;或者Lua脚本里面的某一个属性值 本文介绍如何查找预制体和Lua脚本里面调用的本地化id 下面首先介绍改插件的功能以及使用方法&#xff0c;然后对该插件的原理进行说明 使…

SOMEIP_ETS_075: Wrong_Message_Type

测试目的&#xff1a; 验证当设备&#xff08;DUT&#xff09;接收到一个包含错误消息类型的SOME/IP请求时&#xff0c;是否能够返回错误消息或忽略该请求。 描述 本测试用例旨在检查DUT在处理一个echoUINT8方法的SOME/IP消息时&#xff0c;如果消息中包含的消息类型不正确&…

【超详细】Linux开发环境搭建指南 | Ubuntu

文章目录 虚拟机安装对比Virtual Box 下载ubuntu 操作系统下载Virtual Box 安装安装ubuntu设置中文语言共享文件夹设置添加输入法安装步骤&#xff0c;参考官方教程 安装 vscode解决主机不能通过ssh连接宿主机网络连接几种网络连接区别主机和宿主机相互 ping通 网络代理 虚拟机…

为k8s准备docker 私有仓库 harbor

目录 一、 环境准备 二、部署docker 二、为Registry提加密传输 三、为仓库建立登陆认证 四、构建harbor 五、上传镜像 然后就是在200上面进行配置了 一、 环境准备 我是用两台虚拟机(红帽9)的&#xff0c;一台172.25.254.10用来部署加密认证仓库&#xff0c;另一台172.2…

从零上手CV竞赛:YOLO方案 # Datawhale AI夏令营

文章目录 平台参赛平台云平台 Task 1 从零上手CV竞赛下载baseline相关文件一键运行baseline&#xff01;&#xff08;大约需要25分钟&#xff09;赛题解析数据集提交结果违法标准注意事项 下载生成的文件结果如图最后要记得关机 不然一直消耗算力 Task 2 建模方案解读与进阶物体…

【大数据算法】时间亚线性算法之:串相等判定算法。

串相等判定算法 1、引言2、串相等判定算法2.1 定义2.2 核心原理2.3 应用场景2.4 算法公式2.4.1 Rabin-Karp算法2.4.2 哈希函数 2.5 代码示例 3、总结 1、引言 小屌丝&#xff1a;鱼哥&#xff0c; 啥是串相等判定算法啊 小鱼&#xff1a;这个… en…en… 小屌丝&#xff1a;咋…

ai免费生成ppt软件有哪些?我推荐秒出PPT

现在市面上的ai生成PPT软件非常的多。有收费的&#xff0c;也有不收费的&#xff0c;生成的效果也各不相同。要选择一个性价比高的确实难度不小。 我在使用了不少的产品之后&#xff0c;说一说我的心得。 首先就是&#xff0c;大部分免费的ai生成ppt产品并不好用。我怕不排除…

解决Selenium已安装,在pycharm导入时报错

搭建设selenium环境时&#xff0c;selenium已安装&#xff0c;但是在pycharm中使用“from selenium import webdriver”语句时红线报错 解决方案&#xff1a; 1.file->settings进入设置 2.点击加号&#xff0c;搜索‘selenium’安装 3&#xff0c;等待安装完成&#xff0…

windows 上安装 Anaconda

下载 立即下载 |蟒蛇 (anaconda.com) 安装

Nginx: 高可用和与虚拟路由冗余协议VRRP原理以及KeepAlived软件架构

Nginx 服务的高可用 1 &#xff09;服务可用 假定是这样一个最传统的一个CS模式的一个客户服务器模式 这里有用户和一台服务器服务器可能是mysql, 也可能是webserver, 或其他服务器 想实现服务可用的一个三要素 1.1 ) server 需要公网的ip地址以及申请一个域名1.2 ) 需要服务软…