实现【Linux--NTP 时间同步服务搭建】

在这里插入图片描述


👈【上一篇】
💖The Begin💖 点点关注,收藏不迷路💖
【下一篇】👉

🔻 前言

当应用系统走向多节点、高并发、高可用部署需求时不同节点时间不一致不仅仅会导致业务报错,还会出现将硬件时间直接频繁同步导致硬件故障

为解决以上问题-----引入NTP 校时服务

🔻 一、NTP 校时

🔰 1.1 NTP 服务校时与 ntpdate 校时的区别

ntp 服务校时不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非 ntpdate 立即同步,在生产环境中慎用 ntpdate,ntp 与 ntpdate不可同时运行

简单来讲 NTP 服务本身是为了搭建校时服务器对外提供授时服务的。但是这个服务本
身有个功能,就是可以从这个服务工作的机器,配置一个外网的时间服务器,将本机的时间
校时成网络时间。自己时间不对,咋给别人校时?

🔰 1.2 NTP 校时服务搭建

主节点:本身可以上网,配置校时服务的时候配置上游国家授时中心服务地址,并对内网提供授时服务—这里环境均采用内网,手动设置主节点为标准时间,分节点同步
分节点:本身属于内网运行,上游地址是主节点。

🔰 1.2.1 确认 ntp 的安装
###1、这里已安装了ntp和ntpdate,为了方便演示,先移除
[root@pg-node01 ~]# rpm -qa | grep ntp
fontpackages-filesystem-1.44-8.el7.noarch
ntp-4.2.6p5-29.el7_8.2.x86_64
ntpdate-4.2.6p5-29.el7_8.2.x86_64
[root@pg-node01 ~]#

###2、先卸载移除ntp 与 ntpdate
yum -y remove ntp-4.2.6p5-29.el7_8.2.x86_64
yum -y remove ntpdate-4.2.6p5-29.el7_8.2.x86_64

###3、重新安装 ntp
yum -y install ntpdate
yum -y install ntp
###4、安装检查
[root@pg-node01 ~]# rpm -qa | grep ntp
fontpackages-filesystem-1.44-8.el7.noarch
ntp-4.2.6p5-29.el7_8.2.x86_64
ntpdate-4.2.6p5-29.el7_8.2.x86_64
[root@pg-node01 ~]# 
🔰 1.2.2 配置 ntp 服务

1、选择主节点pg-node01,修改其/etc/ntp.conf

210.72.145.44 (国家授时中心服务器IP地址)。

### 在 server 部分添加如下内容,并注释掉 server 0 ~ n
server 210.72.145.44 prefer
server 127.127.1.0 iburst

在这里插入图片描述

📖 说明:

server 210.72.145.44 prefer 这是国家新的授时服务器地址,prefer 是优先使用的意思,还有更多,可以直接百度,国内的NTP Server基本都属于科研教育机构所有,普通社会组织发布的NTP Server并不多。

server 127.127.1.0 iburst 指定本地NTP服务地址,这个 ip 不要改,意思是如果网络授时服务器源访问不到了则直接使用本机作为授时服务器源。

2、主节点以外的节点pg-node02,继续修改/etc/ntp.conf。

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

server 主节点 ip 地址

如:
server 192.168.181.11

在这里插入图片描述

3、操作系统防火墙开放 123 端口
由于 NTP 服务需要使用到 UDP 端口号 123,所以当系统的防火墙(Iptables)启动的情况下,必须开放 UDP 端口号 123

###开放 `UDP` 端口号 `123`
firewall-cmd --zone=public --add-port=123/udp --permanent
###查看所有已经开放的端口
#临时端口(默认为空)
firewall-cmd --list-ports

#永久开放端口(默认为空)
[root@pg-node01 ~]# firewall-cmd --list-ports --permanent
123/udp
[root@pg-node01 ~]# 
🔰 1.2.3 启动 ntp 服务、查看状态
### 启动 ntp 服务
[root@pg-node01 ~]# systemctl start ntpd.service

### ntp 服务管理命令

#查看 ntpd 服务状态
service ntpd status
#启动 ntpd 服务
service ntpd start 
#停止 ntpd 服务
service ntpd stop 
#重启 ntpd 服务
service ntpd restart 
🔰 1.2.4 ntp 服务设置开机自启动

检查 ntp 服务是否开机启动,将其设置为开机启动。

### 启动服务
systemctl start ntpd.service 
### 停止服务
systemctl stop ntpd.service 
### 将服务设置为自启动
systemctl enable ntpd.service 
### 将服务自启动关闭
systemctl disable ntpd.service
🔰 1.2.5 解决设置 ntp 开机自启动失败

重启后用 service ntpd status 命令查看服务是否启动,从给出的信息可知 ntp 已被设置为开机启动,但是开机启动并未成功。

[root@pg-node02 ~]# service ntpd status
Redirecting to /bin/systemctl status ntpd.service
● ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
[root@pg-node02 ~]# 

通过命令 chkconfig ntpd on 设置开机自启动,发现会将此命令转发到 systemctl enable ntpd.service 命令,也就是说最好使用后面的命令设置开机自启动。

[root@pg-node02 ~]# chkconfig ntpd on
Note: Forwarding request to 'systemctl enable ntpd.service'.
[root@pg-node02 ~]# 

原因是系统上安装了一个与 NTP 相冲突的工具:chrony。使用 systemctl is-enabled chronyd 来查看, chrony 被设置为enabled

[root@pg-node02 ~]# systemctl is-enabled chronyd
enabled
[root@pg-node02 ~]# 

将 chronyd 设置为 disable 后,再重启即可实现NTP自启动。

[root@pg-node02 ~]# systemctl disable chronyd
Removed symlink /etc/systemd/system/multi-user.target.wants/chronyd.service.
[root@pg-node02 ~]# 
🔰 1.2.6 查看 ntp 服务器与上层 ntp 连通性
### 查看命令
ntpstat
  • pg-node01

在这里插入图片描述

  • pg-node02
    在这里插入图片描述

ntpstat 命令查看时间同步状态,这个一般需要5-10分钟后才能成功连接和同步。所以,服务器启动后需要稍等下。

等一段时间之后,再次使用 ntpstat 命令查看状态,就会变成如下正常结果:

[root@pg-node02 ~]# ntpstat
synchronised to NTP server (192.168.181.11) at stratum 7
   time correct to within 21 ms
   polling server every 64 s
[root@pg-node02 ~]# 

在这里插入图片描述

🔰 1.2.8 查看 ntp 服务器与上层 ntp 的状态
### 命令
ntpq -p
  • pg-node01
[root@pg-node01 ~]#  ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 210.72.145.44   .INIT.          16 u    - 1024    0    0.000    0.000   0.000
*LOCAL(0)        .LOCL.           5 l   23   64  377    0.000    0.000   0.000
[root@pg-node01 ~]#
  • pg-node02
[root@pg-node02 ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 pg-node01       LOCAL(0)         6 u   26   64    1    2.346  -679.68   0.000
[root@pg-node02 ~]# 

📖 说明:

remote:本机和上层 ntp 的 ip 或主机名,“+”表示优先,“*”表示次优先
refid:参考上一层 ntp 主机地址
st:stratum 阶层
when:多少秒前曾经同步过时间
poll:下次更新在多少秒后
reach:已经向上层 ntp 服务器要求更新的次数
delay:网络延迟
offset:时间补偿
jitter:系统时间与 bios 时间差

🔰 1.3 分节点测试时间同步

分节点不能上网,属于内网服务器从主节点获取时间,本身支持对内网提供授时服务,
但是不再对内网提供服务,仅仅满足自己的时间与主节点保持一致。

  • 设置分节点时间与主节点相差3h
####修改pg-node02分节点时间与主节点相差3h,主节点-now time :13:00:00
date -s 10:00:00

####写入BIOS
clock -w 

###显示bios时间
hwclock -r

####date查看---会自动同步pg-node01的时间
[root@pg-node02 ~]# date
Fri Jul  7 13:42:17 CST 2023
[root@pg-node02 ~]# 

🔻 总结—温故知新

❓ 该章详细介绍和实现了Linux--NTP 时间同步服务搭建。

👈【上一篇】
💖The End💖 点点关注,收藏不迷路💖
【下一篇】👉
  • 29
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论
### 回答1: 搭建 NTP 服务器需要安装 NTP 服务器软件包,如 ntpd 或 chrony。 1. 安装 NTP 服务器软件: sudo apt-get install ntp 2. 配置 NTP 服务器: sudo nano /etc/ntp.conf 3. 在配置文件中指定 NTP 同步源: server 0.ubuntu.pool.ntp.org server 1.ubuntu.pool.ntp.org server 2.ubuntu.pool.ntp.org server 3.ubuntu.pool.ntp.org 4. 重启 NTP 服务: sudo service ntp restart 5. 检查 NTP 状态: ntpq -p 如果一切顺利,你的 NTP 服务器现在已经搭建完成,可以向其他系统提供时间同步服务。 ### 回答2: Linux NTP服务器,其实就是将Linux的系统时间同步到外部的NTP服务器,从而保证系统时间的准确性。NTP服务器是许多网络应用程序的绝对关键,它可以同步大型网络中所有计算机的精确时钟,以确保它们之间的时间保持一致性。 搭建Linux NTP服务器,可以分为以下几步: 1.安装NTP服务Linux中,使用NTP与时间服务器进行同步需要安装NTP服务。可以使用以下命令进行安装。 sudo apt-get install ntp 2.配置NTP服务 安装完NTP服务之后,需要进行配置。可以修改/etc/ntp.conf配置文件,添加外部的时间服务器。例如: server ntp1.aliyun.com server ntp2.aliyun.com 当然也可以使用其他地方的时间服务器,这里以阿里云的为例。需要注意的是,启用NTP服务器需要开放123端口。 3.启动NTP服务 完成上述配置之后,启动NTP服务。 sudo service ntp start 在服务启动之后,可以通过以下命令查看同步情况。 ntpq -p 这里ntp -p命令用于显示目前正在与之同步的服务器列表,以及相关的信息,如延迟、偏差、精度等。 4.校验时间同步 最后需要进行时间同步校验。可通过以下命令查看本地时间: date 通常来说,NTP服务器每天进行1-2次的同步,以确保服务器时间和本地时间一致。对于分布式系统来说,时间同步是至关重要的,因为分布式系统处理的数据需要时间戳,如果几个计算机的时间不同步,就会导致数据错误。 总之,搭建Linux NTP服务器简单易操作,只需在Linux上安装NTP服务,配置外部的时间服务器,启动NTP服务就可以完成时间同步,从而保证系统时间的准确性。 ### 回答3: NTP(Network Time Protocol)是一种网络协议,用于同步多台计算机的时间。在Linux系统中,可以使用NTP服务器来同步系统时间,以确保所有计算机的时间始终保持一致。下面是Linux NTP服务搭建的步骤: 1. 安装NTP服务Linux系统中,可以使用yum或apt-get等软件包管理器来安装NTP服务。例如,在CentOS系统中,可以运行以下命令来安装NTP: ``` $ sudo yum install ntp ``` 在Ubuntu系统中,可以运行以下命令来安装NTP: ``` $ sudo apt-get install ntp ``` 2. 配置NTP服务 安装完成NTP服务之后,需要对NTP进行一些基本配置。打开/etc/ntp.conf文件,编辑其中的server行,将其指向一个可用的NTP服务器。例如,可以将其设置为time.nist.gov: ``` server time.nist.gov ``` 此外,还可以添加其他的NTP服务器进行备份: ``` server time.nist.gov server pool.ntp.org ``` 3. 启动NTP服务 配置完成后,启动NTP服务。在CentOS系统中,可以使用以下命令启动NTP: ``` $ sudo systemctl start ntpd ``` 在Ubuntu系统中,可以使用以下命令启动NTP: ``` $ sudo systemctl start ntp ``` 4. 设置NTP服务开机自启动 为了让NTP服务在系统重启后自动启动,需要将其设置为开机自启动。在CentOS系统中,可以使用以下命令设置NTP服务开机自启动: ``` $ sudo systemctl enable ntpd ``` 在Ubuntu系统中,可以使用以下命令设置NTP服务开机自启动: ``` $ sudo systemctl enable ntp ``` 5. 测试NTP服务 最后,可以使用ntpdate命令测试NTP服务是否正常。例如,可以运行以下命令: ``` $ sudo ntpdate time.nist.gov ``` 该命令会从time.nist.gov服务器同步系统时间。如果命令执行成功,即表示NTP服务已正常工作。 总结: 搭建Linux NTP服务器只需几个简单的步骤,包括安装NTP服务、配置NTP服务、启动NTP服务、设置NTP服务开机自启动和测试NTP服务。通过NTP服务器同步系统时间,可以确保多台计算机时间的一致性,提高系统稳定性和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Seal^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值