Linux 时间同步 ntpdchrony 内网

news2025/1/21 8:57:37

Linux 时间同步 ntpd&chrony

在任何服务器集群中,为了更好的协同工作,除了一些互信机制外,需要的就是时间同步功能,如果时间不同步,就好比让在中国的同事与美国的同事进行沟通,会造成各种奇奇怪怪的时间相关的问题。而且很多资源访问都是有时效性的,如果时间不同步可能永远无法访问,对此我们需要进行时间同步的功能。

Linux 时间系统

在 windows 系统中,我们设置时间的时候一般都是通过右下角进入时间的设置界面进行设置,在设置过程中都是页面化,而且在我们关机、重启后都没有问题。系统时间会自动保存在 BIOS 时钟中,这样电脑启动也会从 BIOS 中获取硬件的时间,以保证时间的不间断。

但在 linux 中,系统时间和硬件时间并不会自动同步,他们是互不干扰的。硬件使用 BIOS 电池维持;系统时间使用 CPU Tick 维持,启动时获取 BIOS 时间。

Linux 系统时间设置

在 Linux 中我们可以通过 date 命令进行设置:

# 查看当前时间
date

# 更改系统时间
date -s "19970118 20:00:00"

# 再次查看系统时间
date

Linux 硬件时间设置

硬件时间的设置可以使用 clock 或者 hwclock 命名,推荐使用第一个。

# 打印当前硬件时间
clock

# 设置当前硬件时间
clock --set --date "19970118 20:00:00"

# 再次打印硬件时间
clock

在这里插入图片描述

这时候我们可以查看这个文件 /etc/adjtime,如果我们更改了硬件时间,那么这个文件会记录两次时间的调整差异,后续如果再次使用 --set--systohc 命令,会自动计算出差异平均值,进行硬件时钟的调整:

Linux 系统和硬件时间同步

现在我们将两个时间都定位到了 1997 年,现在我们需要进行一些同步,将时间矫正回来。(请确保有外网)

安装 ntpdate 服务

ntpdate 会在本文后面进行对应讲解,现在我们单台进行 ntpdate 服务器安装。

yum install ntpdate ntp

同步 ntp 时间

ntpdate -u cn.pool.ntp.org  
# 也可以使用
# 上海的 NTP 服务器: ntp.api.bz
# 中国ntp服务器:cn.pool.ntp.org
# 上海交通大学网络中心NTP服务器:ntp.sjtu.edu.cn
# 阿里: ntp1.aliyun.com

查看系统时间

date
clock

在这里插入图片描述

可以看到我们的系统时间已经同步完成,但是硬件时间还停留在 1997 年。那么我们可以将系统时间同步到硬件时间:

# 将系统时间赋予硬件时间
clock -w
clock

在这里插入图片描述

集群时间同步

刚刚我们了解了 Linux 的时间系统,也完成了单服务器的同步到国家时间的流程,那如果我们需要自己搭建集群,也需要保证集群的时间同步,但没有外网环境。那么我们需要自己搭建时间基准,并通过这个基准,进行整个集群的时间同步。

现在一般有两种同步方法: ntpdate 和 chrony。更推荐 chrony,下面会讲解两个的使用方法。

ntpd 服务

NTP 其实就是 Network Time Protocol 网络时间协议,可以使计算机时间同步化的一种协议,可以使计算机对服务器或者时钟源进行同步。

前面我们已经安装过 ntpdate 了,现在快速回忆单台同步外网 ntp 服务器:

yum install ntpdate ntp
ntpdate -u ntp1.aliyun.com

集群时间主服务器

可以看到,如 ntp1.aliyun.com 其实就是一台外网可以访问的时间服务器,所以在我们需要搭建的集群中,也需要有这样一台时间服务器。这里我们选择 maggot111128.huangyichun.com 作为主服务器,其他在这台服务器上进行时间同步。

在这里插入图片描述

参考官网:

开启 ntpd 服务

systemctl status ntpd # 查看服务状态
systemctl start  ntpd # 启动服务
systemctl enable ntpd # 设置开机启动
systemctl status ntpd # 再次查看

在这里插入图片描述

在安装了 ntp 后,相关的配置在 /etc/ntp.conf 中。我们需要进行一些配置 vim /etc/ntp.conf

  1. 提供服务器网段扩大
# 在 acccess 中添加
# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict ::1
restrict 192.168.0.0 # 可以对 192.168.0.0网段提供服务
# or
# restrict 192.168.111.0 mask 255.255.255.0 nomodify notrap
  1. 该节点更改为只与自己同步
# 注释掉server 开头的行,取消同步其他服务器
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 127.127.1.0 # 添加自己为时间同步服务器
127.127.1.0 stratum 8 # 并设置自己的层级(最多16层)
  1. 重启 ntpd 服务
systemctl restart ntpd

集群客户端服务器

集群中的其他服务器要与这台服务器进行时间同步,也需要 ntp 服务,在安装完后进行 /etc/ntp.conf 的配置:

yum install ntp ntpd
vim /etc/ntp.conf

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server maggot111128.huangyichun.com  # 添加需要同步的服务器
server maggot111128 # 添加需要同步的服务器

然后启动 ntpd 服务:

systemctl start  ntpd
systemctl enable ntpd
systemctl status ntpd

使用 ntpstat 查看同步状态: 在这里插入图片描述

当前处于未同步状态,如果需要手动同步:

ntpdate -d  maggot111128

如果出现类似于 no server suitable for synchronization found,请查看主服务器的防火墙设置:

在这里插入图片描述

防火墙设置参考:

firewall-cmd --stat # 查看防火墙是否开启
firewall-cmd --zone=public --list-ports # 在开启情况下,打开了哪些通道
firewall-cmd --zone=public --add-port=123/tcp --permanent # 开启123/tcp通道

# or
# 直接关闭防火墙
systemctl stop firewalld

注意,仅仅这样并不会让硬件时间进行同步,需要更改 /etc/sysconfig/ntpd 文件:

SYNC_HWCLOCK=yes

下图为更改前:

在这里插入图片描述

更改后(记得重启 ntpd):

在这里插入图片描述

chrony 服务

Chrony 是开源的时间同步服务,是 centos7 的默认时间同步工具。能够与时间服务器进行时间同步,并始终让时间保持同步,比 NTP 更快、配置更简单、依赖更简单。

  • 更快的同步只需要数分钟而非数小时时间,从而最大程度的减少时间和频率误差,这对于并非全天运行的台式计算机或系统而言非常有用。
  • 能够更好的响应时间频率的快速变化,这对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用。
  • 在初始同步后,它并不会停止时钟,以防对需要系统时间保持单调的程序造成影响。
  • 在应对临时非对称延迟时,(例如,大规模下载造成链接饱和时)提供了更好的稳定性。
  • 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟。

注意进行 chrony 安装之前,我们需要停止 ntpd 相关服务。

# 所有节点均停止 ntpd 服务
systemctl status ntpd
systemctl stop ntpd
systemctl disable ntpd
systemctl status ntpd

# 查看 ntpd 默认端口123 是否被占用
netstat -tunlpa  |grep 123

在这里插入图片描述

chrony 时间源

跟 ntpd 服务器一样,我们需要搭建 chrony 的事件源服务器,首先安装 chrony 服务(如果是 centos 7 应该是默认安装)

yum install chrony

使用 /etc/chrony.conf 进行 chrony 相关配置

vim /etc/chrony.conf

# 与 ntpd 一致,将自己设置为 server 节点
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 127.0.0.1 iburst
# 如果有外网,建议添加
server ntp.aliyun.com iburst 

# 如果是私网必须添加
local stratum 10

# 打开允许同步的网段
# Allow NTP client access from local network.
#allow 192.168.0.0/16
allow 192.168.0.0/16

然后重启 chrony 服务,并查看服务状态

systemctl restart chronyd.service
systemctl enable  chronyd.service  # 开机启动

# 查看服务状态
systemctl status chronyd -l
chronyc sources -v 

# 查看端口同步
netstat -tunlpa |grep 123

# 检查是否同步
<strong>chronyc tracking</strong>
# 需要注意 最后一行 Leap Status

chrony 客户端

安装 chrony

yum install chrony

更改配置文件

vim /etc/chrony.conf

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server maggot111128.huangyichun.com

重启 chronyd 服务

systemctl restart chronyd.service

使用 chronyc sources 命令进行同步查看,如果出现 ^* 则为获取时间成功,正在同步中,错位时间看 Last:

在这里插入图片描述

chronyc 命令

使我们操控 chrony 的命令方式,主要有:

参数参数说明
sources查看所有服务器同步情况
accheck检查NTP访问是否对特定主机可用
activity该命令会显示有多少NTP源在线/离线
add server手动添加一台新的NTP服务器。
clients在客户端报告已访问到服务器
delete手动移除NTP服务器或对等服务器
settime手动设置守护进程时间
tracking显示系统时间信息

集群搭建注意事项

一般我们进行搭建的时候可能都是只选择了一台节点作为时间服务器,但是其实在超大型集群搭建的时候,我们应该按照网段进行区别,采用多时间服务器的方式进行搭建。不要像一棵树,只有一个根。

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

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

相关文章

excel笔记

1.快速填充 当需要提取出电子邮件里的名称&#xff0c;可以在第一行里手动输入Nancy后&#xff0c;直接按快捷键ctrl e进行快速填充&#xff0c;可以直接获得预期数据 如果不用快捷键&#xff0c;也可以点击指定位置的图标&#xff0c;实现这一功能 快速填充不仅可以将进行…

大数据中的R语言——中国大学MOOC课程笔记

第一章 R语言简介 1.1 简介 R的特性&#xff1a; • 免费的 • 一个全面的统计研究平台 • 拥有顶尖水准的制图功能 • 一个可进行交互式数据分析和探索的强大平台 • 轻松地从各种类型的数据源导入数据&#xff0c;包括文本文件、数据库管理系统、统计软件&#xff0c;乃…

rabbitMQ 消息顺序性、消息幂等性、消息不丢失、最终一致性、补偿机制、消息队列设计

一、消息顺序性 消息队列中的若干消息如果是对同一个数据进行操作&#xff0c;这些操作具有前后的关系&#xff0c;必须要按前后的顺序执行&#xff0c;否则就会造成数据异常。 举例&#xff1a;   比如通过mysql binlog进行两个数据库的数据同步&#xff0c;由于对数据库的…

内存和函数

程序的内存布局 Linux默认情况下将高地址的1GB空间分配给内核&#xff0c;用户进程使用剩下2GB或者3GB的内存空间。在用户空间里&#xff0c;也有很多地址区间有特殊的地位&#xff0c;一般来讲&#xff0c;应用程序使用的内存空间里有如下"默认"的区域 1、栈&#…

疫情可视化part2

前言 这是疫情可视化最开始的文章&#xff0c;有需要了解的可前往查看&#xff1a;https://blog.csdn.net/xi1213/article/details/126824752。 本来说有时间就把这个项目完结了的&#xff0c;结果后面一直有事拖着&#xff0c;直到现在十一月份了才搞完。老样子&#xff0c;先…

F1. 生活在树上(easy version)树,dfs

题目链接 F1. 生活在树上&#xff08;easy version&#xff09; 题目背景 本题是 B 组的最后一题&#xff0c;是 F2 题的简单版本&#xff0c;两道题目的解法略有不同。本题和 F2 题在题意上的区别在于本题给定树上的边权&#xff0c;而不是点权。 小智生活在「传智国」&am…

汽车 Automotive > SOME/IP VS DDS调研和未来方向

参考&#xff1a;JASPAR, General incorporated association&#xff1a;What is the conqueror in the SOA platform for the future in-vehicle networks? 目录 SOME/IP介绍参考 DDS介绍 SOME/IP VS DDS 研究方向 SOME/IP介绍参考 汽车Automotive &#xff1e; SOME/…

MAC安全(防MAC泛洪攻击)

一、MAC地址表项分类&#xff1a; 1.1 动态表项&#xff1a;通过对帧内的源MAC进行学习而来&#xff0c;有老化时间 1.2 静态表项&#xff1a;由管理员手工配置&#xff0c;不会老化 1.3 黑洞表项&#xff1a;丢弃特定源MAC或目的MAC,不会老化 静态和黑洞表项不会被动态表项…

类与对象(下篇)

类与对象&#xff08;下&#xff09;再谈构造函数回顾构造函数初始化列表explicit 关键字拷贝构造函数也具有初始化列表友元 friend友元函数输入输出流的重载友元类static 成员内部类再谈构造函数 回顾构造函数 在上一篇博客中提到了构造函数&#xff0c;构造函数其主要目的是…

类与对象(中篇)

类中六个默认成员函数构造函数基本概念构造函数特性析构函数基本概念析构函数特性拷贝构造函数基本概念拷贝构造函数特性赋值运算符重载概念引入运算符重载函数的特性部分运算符的重载函数判等赋值前置 、前置--后置、后置--const 成员函数取地址只要生成一个类 &#xff0c;那…

iOS_Custom Transition Animation 自定义转场动画

文章目录1、push-pop 动画协议2、present-dismiss 动画协议3、实现转场动画协议3.1 动画时长3.2 push or present animation (显示动画)3.3 动画结束3.4 pop or dismiss animation (消失动画)4、UIPresentationController4.1 设置presentVC的frame4.2 present 动画4.3 dismiss …

Docker快速安装Oracle 12c

【Oracle系列3】Docker快速安装Oracle 12c 背景 现在还很多企业用12c&#xff0c;以这个版本为例&#xff0c;介绍docker快速启动Oracle并做实验 步骤 1、docker环境的安装&#xff08;略&#xff09; 2、查询镜像&#xff0c;挑选镜像 docker search oracle结果 StoneM…

阿里P8架构师都在学习参考的SpringCloud微服务实战文档

我一直在使用Spring Boot、Spring Data等框架来进行开发工作。 作为一名Spring系列的忠实粉丝&#xff0c;我自然希望能够有更多的开发者参与进来&#xff0c;于是自己坚持写Spring Cloud相关的文章&#xff0c;并且将文章涉及的代码整理后放在GitHub上分享。 这使我得到了很…

【Hack The Box】Linux练习-- Luanne

HTB 学习笔记 【Hack The Box】Linux练习-- Luanne &#x1f525;系列专栏&#xff1a;Hack The Box &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年11月24日&#x1f334; &#x1f3…

零基础搭建基于知识图谱的电影问答系统

零基础搭建基于知识图谱的电影问答系统一、项目准备二、项目数据三、训练问题分类器四、准备问答模板五、搭建webapp六、问题预处理一、项目准备 首先需要一款python编译器&#xff0c;本人选用的是PyCharm&#xff0c;搭建好Python环境&#xff1b;安装第三方依赖库&#xff…

【Hack The Box】linux练习-- Delivery

HTB 学习笔记 【Hack The Box】linux练习-- Delivery &#x1f525;系列专栏&#xff1a;Hack The Box &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年11月17日&#x1f334; &#x1…

黄佳《零基础学机器学习》chap1笔记

黄佳 《零基础学机器学习》 chap1笔记 这本书实在是让我眼前一亮&#xff01;&#xff01;&#xff01; 感觉写的真的太棒了&#xff01; 文章目录黄佳 《零基础学机器学习》 chap1笔记第1课 机器学习快速上手路径—— 唯有实战1.1 机器学习族谱1.2 云环境入门实践&#xff1a;…

ERD Online 4.0.4 元数据在线建模(免费、私有部署)

❝ fix(erd): 修改表名、模块名自定义提示fix(erd): 支持自定义表名显示格式fix(erd): 升级ant到5.0.1版本fix(erd): 修复PDMan导入类型列为空fix(erd): 增加类型列宽度&#xff0c;避免类型显示不全fix(erd): 修复表设计报undefine异常fix(erd): 修复版本比对&#xff0c;出现…

二分搜索算法框架解析

文章目录 一、寻找一个数&#xff08;基本的二分搜索&#xff09;二、寻找左侧边界的二分搜索三、寻找右侧边界的二分查找总结 一、寻找一个数&#xff08;基本的二分搜索&#xff09; 这个场景是最简单的&#xff0c;可能也是大家最熟悉的&#xff0c;即搜索一个数&#xf…

2023年天津财经大学珠江学院专升本经济学专业课考试大纲

天津财经大学珠江学院2023年高职升本科专业课考试《经济学》考试大纲一、本大纲系天津财经大学珠江学院2023年高职升本科《经济学》课程考试大纲。所列考试范围出自郑健壮、王培才主编的教材《经济学基础&#xff08;第二版&#xff09;》&#xff0c;清华大学出版社&#xff0…