使用chronyd搭建NTP服务及同步

NTP服务搭建

在实际生产环境中,绝大多数服务器处于内网环境、基于最小化安装、光盘镜像挂载不方便(缺少)等原因,无法使用ntp服务,本实验基于生产环境中出现的上述现象进行ntp服务搭建及ntp有关的网络设备、服务器等客户端的使用。

本实验采用centos7及以上系统自带的chrony服务替代ntp服务作为时间服务。

客户端使用centos6及H3C网络交换机作为验证。

chrony服务简介

  • 使用ntp协议同步系统时间
  • 使系统时钟与参考时钟(例如GPS接收器)同步
  • 可以使手动输入时间来使系统时钟同步
  • 作为NTPv4(RFC 5905)服务器或对等服务器以向网络中的其他计算机提供时间服务
  • 在很多时候(包括间歇性网络连接,网络严重拥塞,温度变化(普通计算机时钟对温度敏感)以及系统不能连续运行或在虚拟机上运行的系统),同步效率很高
  • 通过Internet同步的两台计算机之间的典型精度在几毫秒内;在局域网上的计算机则在几十微秒内;通过硬件时间戳或硬件参考时钟可以使两台计算机之间同步时间达到亚微秒级别
  • chrony服务由chronyd(运行在用户空间user space的一个守护进程)和chronyc(用来监控chronyd服务并可在运行中设置各种参数的命令行工具)组成

chrony与ntp的比较

官方连接
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-configuring_ntp_using_the_chrony_suite

chronyntp
无间断工作轮询工作
网络拥塞时正常可能会失效
与时钟同步更快、精度更高精度一般
快速适应时钟速率的突然变化适应时间较长
随系统自带使用需要手动搭建
体积小、占用内存小体积较大、内存占用率高
配置简单配置复杂
部分支持支持ntpv4的所有操作模式
不支持支持自动密钥协议(RFC 5906号)使用公钥加密对服务器进行身份验证
依赖于其他程序(例如:GPS)包括许多参考时钟的驱动程序

chronyd和chronyc

chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。
chronyc:命令行用户工具,用于监控性能并进行多样化的配置。
它可以在 chronyd实例控制的计算机上工作,也可在一台不同的远程计算机上工作

服务器环境

[root@ceshifwq ~]# cat /etc/centos-release && uname -a
CentOS Linux release 7.8.2003 (Core)
3.10.0-1127.el7.x86_64
[root@ceshifwq ~]# ip a |awk 'NR==9{print $2}'|awk -F '/' '{print $1}'
10.0.7.190

服务端配置

chronyd配置手册
http://chrony.tuxfamily.org/manual.html#Configuration-file.

  • 服务unit文件:/usr/lib/systemd/system/chronyd.service

  • 监听端口: 323/udp,123/udp

  • 配置文件: /etc/chrony.conf

    [root@ceshifwq ~]# yum install chrony  //系统一般自带,无需手动按照
    [root@ceshifwq ~]# systemctl start chronyd && systemctl enable chronyd
    [root@ceshifwq ~]# vim /etc/chrony.conf
    //修改为上游NTP服务器的IP或者域名 
    server ntp1.aliyun.com iburst
    server ntp.sjtu.edu.cn iburst
    server 210.72.145.44 iburst
    
    allow 10.0.0.0/16  //28行,允许地址段访问
    local stratum 10   //32行,即使server 指令中时间服务器不可用,也允许将本地时间作为标准时间授予其他客户端
    [root@ceshifwq ~]# systemctl restart chronyd
    [root@ceshifwq ~]# firewall-cmd --zone=public --add-port=123/udp --permanent          //防火墙放行123/udp端口
    [root@ceshifwq ~]# firewall-cmd --reload
    

客户端环境

[root@localhost ~]# cat /etc/redhat-release && uname -r
CentOS release 6.8 (Final)
2.6.32-642.el6.x86_64
[root@localhost ~]# ip a |awk 'NR==11{print $2}' |awk -F '/' '{print $1}'
10.0.6.122
[root@localhost ~]# yum install chrony
[root@localhost ~]# service chronyd start
[root@localhost ~]# chkconfig  chronyd on

客户端配置

[root@localhost ~]# date -s 2015-10-25
Sun Oct 25 00:00:00 CST 2015
[root@localhost ~]# vim  /etc/chrony.conf
server 10.0.7.190 iburst  //只需要修改此处就可以
[root@localhost ~]# service chronyd restart
[root@localhost ~]# chronyc   //客户端使用chronyc命令来校准时间
chrony version 3.4
Copyright (C) 1997-2003, 2007, 2009-2018 Richard P. Curnow and others
chrony comes with ABSOLUTELY NO WARRANTY.  This is free software, and
you are welcome to redistribute it under certain conditions.  See the
GNU General Public License version 2 for details.
chronyc> waitsync   //时间同步
try: 1, refid: CB6B0658, correction: 0.001764030, skew: 1000000.000
chronyc> exit
[root@localhost ~]# date
Sat Mar 20 17:32:24 CST 2021
[root@localhost ~]# chronyc sources -v   //查看同步时间的状态
210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 10.0.7.190                  3   6    17     7    -15us[  +32us] +/-  112ms

网络设备配置

#
 clock timezone beijing add 08:00:00
#
 ntp-service unicast-server 10.0.7.190
<h3c> dis clock
17:37:26 beijing Sat 03/20/2021
Time Zone : beijing add 08:00:00
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux系统中,使用NTP服务来完成时间同步的过程非常简单。NTP(Network Time Protocol)是一种用于网络中时间同步的协议。它能够通过计算网络延迟,并校正系统时间来保证各个机器之间的时间一致性。 在Linux系统中,可以使用ntpdate或者chronyd命令来进行时间同步。其中ntpdate命令是最常见和简单的时间同步命令,但是它在最新版本的Linux系统中被废弃了。而chronyd命令是一个比ntpdate更为先进的时间同步软件,它支持动态校正系统时间,并且可以在网络断开连接的时候保存系统时间的误差值,以便在网络重新连接之后进行快速校正。 在使用NTP同步时间之前,需要确保系统已经安装了ntp或者chrony软件包。一旦安装完成之后,就可以打开ntp或chrony配置文件进行基本设置。在这个配置文件中,需要指定一个或多个NTP服务器地址,即NTP服务器的IP地址或域名。这些服务器将为客户端提供高质量的时间同步服务。可以在配置文件中使用server或pool来指定NTP服务器地址,例如: server ntp.server.com pool pool.ntp.org 在指定了NTP服务器地址之后,接着需要启动NTP服务。可以使用ntpdate命令来进行时间同步,例如: ntpdate ntp.server.com 或者使用chronyd来启动NTP服务,例如: systemctl start chronyd 以上是Linux客户端使用NTP服务进行时间同步的基本过程。使用NTP服务来完成时间同步可以有效避免不同计算机之间的时间误差,从而保证网络上各个计算机进行数据传输时的时间一致性,提高整个网络体系的稳定性和安全性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值