centos7搭建ntp时间同步服务器chrony服务

前言:

  1. centos6的时候我们基本使用的是ntp服务用来做时间同步,但是在centos7后推荐是chrony作为时间同步器的服务端使用,避免的ntpcentos7支持的不是很友好

什么是chrony?

  1. 第一部分的第3条说明对比关系,详见centos6centos7的对比,连接地址:https://www.cnblogs.com/liych/p/11741632.html
  2.  
  3. centos7上可以用它做时间服务器使用,是默认支持的,也是更新后centos7默认的时间服务器,另外还有就是,它作为网络时间协议的客户机/服务器,此程序保持计算机时钟的准确性。它是专门为支持断断续续的互联网连接而设计的,但它在永久连接的环境中也能很好地工作。它还可以使用硬件参考时钟、系统实时时钟或手动输入作为时间参考。至此,推荐使用。

  4. chrony2个命令,详见如下:
  5. chronyd是守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。
  6.  
  7. chronyc提供一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。

开始部署chrony环境

1.环境说明

  1. 实现目的:需要两台或集群内的多台设备时间同步一致。
  2. 这里准备两台服务器:192.168.152.129 (bogon)做服务器端; 192.168.152.132 (liych-01)做客户端。也可以多台集群使用。
  1. [root@bogon ~]# cat /etc/redhat-release
  2. CentOS Linux release 7.6. (Core)
  1.  
  1.  

2.关闭防火墙

  1. [root@bogon ~]# systemctl stop firewalld
  2. [root@bogon ~]# systemctl status firewalld
  3. firewalld.service - firewalld - dynamic firewall daemon
  4. Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
  5. Active: inactive (dead) since -- :: CST; 17s ago
  6. Docs: man:firewalld()

3.关闭selinux

  1.  
  1. [root@bogon ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
  2. [root@bogon ~]# sestatus
  3. SELinux status: disabled
  1.  

4.安装chrony

  1. 这里注意的是需要把需要同步时间服务器均安装chrony服务。
  2. 版本号:chrony.x86_64 0:3.4-1.el7
  1.  
  1. [root@bogon ~]# yum install chrony -y

4.1启动服务

  1. [root@bogon ~]# systemctl start chronyd
  2. [root@bogon ~]# systemctl status chronyd
  3. chronyd.service - NTP client/server
  4. Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
  5. Active: active (running) since -- :: CST; months days ago
  1.  

4.2更新配置文件

  1. 这里修改的是服务器端的配置文件,客户端不需要修改。
  2. 时间服务器获取地址:https://www.ntppool.org/zone/asia
  1.  
  1. [root@bogon ~]# cp /etc/chrony.conf{,.backup}
  2. [root@bogon ~]# cat > /etc/chrony.conf <<EOF
  3. server cn.pool.ntp.org
  4. server .asia.pool.ntp.org
  5. server .asia.pool.ntp.org
  6. server .asia.pool.ntp.org
  7. server .asia.pool.ntp.org
  8. server ntp1.aliyun.com
  9. server time1.aliyun.com
  10. stratumweight
  11. driftfile /var/lib/chrony/drift
  12. makestep 1.0
  13. rtcsync
  14. allow 192.168.152.0/
  15. bindcmdaddress 127.0.0.1
  16. bindcmdaddress ::
  17. local stratum
  18. keyfile /etc/chrony.keys
  19. commandkey
  20. generatecommandkey
  21. noclientlog
  22. logchange 0.5
  23. logdir /var/log/chrony
  24. EOF
  1.  

4.3配置文件简单介绍

  1. 可以通过"man chrony.conf"了解主配置文件的配置格式,需要注意的是增加allow后才会生效。
server “必须以server”格式使用,添加的是时钟服务器,可以是多个。
stratumweight 0 设置当chronyd从可用源中选择同步源时,每个层应该添加多少距离到同步距离。默认设置为0,让chronyd在选择源时忽略源的层级。
driftfile /var/lib/chrony/drift  根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。
makestep 1.0 3 chronyd 将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差

allow 192.168.152.0/24

deny 192.168.152.0/24

指定一台主机、子网,或者网络以允许或拒绝NTP连接到时钟服务器的机器
local stratum 10  这个功能开启后,本机不去同步别人的时间到本机
  1. logdir /var/log/chrony
记录日志
  1.  

4.4重启并检查服务端口123,323

  1.  
  1. [root@bogon chrony]# systemctl restart chronyd
  2. [root@bogon chrony]# systemctl enable chronyd
  3. [root@bogon chrony]# netstat -lntup |grep chronyd
  4. udp 0.0.0.0: 0.0.0.0:* /chronyd
  5. udp 127.0.0.1: 0.0.0.0:* /chronyd
  6. udp6 ::: :::* /chronyd
  1.  

5.客户端(单台)启用时间同步服务

  1. 单台配置很简单,请继续往下看吧。

5.1客户端启用时间同步服务

  1. 这里需要注意的是 时区为:Time zone: Asia/Shanghai (CST, +0800)然后执行下面法一同步时间。
  1.  
  1. 法一:推荐使用
  2. [root@liych- ~]# timedatectl set-timezone Asia/Shanghai;chronyc -a makestep
  3. [root@liych- ~]# yum install ntpdate -y;ntpdate 192.168.152.129
  4. Oct :: ntpdate[]: step time server 192.168.152.129 offset 62.490796 sec
  5. 法二:
  6. [root@liych- ~]# echo "server 192.168.152.129 iburst " >>/etc/chrony.conf
  7. [root@liych- ~]# systemctl restart chronyd
  8. [root@liych- ~]# systemctl status chronyd

6.客户端(集群)启用时间同步服务器

  1. 本机设备很旧了,使用多台的时候总是迟钝,故此此处采用132一台做测试,多台就在host添加主机即可。
  1.  
  1. [root@bogon ~]# cat /etc/ansible/hosts
  2. [ntpcli]
  3. 192.168.152.132
  4. #192.168.152.133
  5. #192.168.152.134

命令集合:

  1.  
  1. [root@bogon ~]# ansible all -m ping
  2. [root@bogon ~]# echo "server 192.168.152.129 iburst " >/root/chrony.conf
  3. [root@bogon ~]# ansible ntpcli -m copy -a "src=/root/chrony.conf dest=/etc/"
  4. [root@bogon ~]# ansible ntpcli -m shell -a "systemctl start chronyd.service"
  5. [root@bogon ~]# ansible ntpcli -m shell -a "systemctl status chronyd.service"
  6. [root@bogon ~]# ansible ntpcli -m shell -a "ntpdate 192.168.152.129"
  7. [root@bogon ~]# ansible ntpcli -m shell -a "date"
  8. [root@bogon ~]# ansible ntpcli -m cron -a "name='time sync' minute=*/5 job='/usr/sbin/ntpdate 192.168.152.129 &>/dev/null'"
  9. [root@bogon ~]# ansible ntpcli -m shell -a "crontab -l"
  1.  

操作示例:

  1. [root@bogon ~]# ansible all -m ping
  2. 192.168.152.132 | SUCCESS => {
  3. "changed": false,
  4. "ping": "pong"
  5. }
  6. [root@bogon ~]# echo "server 192.168.152.129 iburst " >/root/chrony.conf
  7. [root@bogon ~]# ansible ntpcli -m copy -a "src=/root/chrony.conf dest=/etc/"
  8. 192.168.152.132 | SUCCESS => {
  9. "changed": true,
  10. "checksum": "3ccbe3a0fc44dd0ce06623653f5a9c940f453bdb",
  11. "dest": "/etc/chrony.conf",
  12. "gid": ,
  13. "group": "root",
  14. "md5sum": "bb305fff45f35fda88ed9ad01231a25c",
  15. "mode": "",
  16. "owner": "root",
  17. "size": ,
  18. "src": "/root/.ansible/tmp/ansible-tmp-1572158118.63-84760854509278/source",
  19. "state": "file",
  20. "uid":
  21. }
  22. [root@bogon ~]# ansible ntpcli -m shell -a "systemctl start chronyd.service"
  23. 192.168.152.132 | SUCCESS | rc= >>
  24.  
  25. [root@bogon ~]# ansible ntpcli -m shell -a "systemctl status chronyd.service"
  26. 192.168.152.132 | SUCCESS | rc= >>
  27. chronyd.service - NTP client/server
  28. Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
  29. Active: active (running) since -- :: CST; 53min ago
  30. Docs: man:chronyd()
  31. man:chrony.conf()
  32. Process: ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=/SUCCESS)
  33. Process: ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=/SUCCESS)
  34. Main PID: (chronyd)
  35. CGroup: /system.slice/chronyd.service
  36. └─ /usr/sbin/chronyd
  37.  
  38. 10 :: liych- systemd[]: Stopped NTP client/server.
  39. 10 :: liych- systemd[]: Starting NTP client/server...
  40. 10 :: liych- chronyd[]: chronyd version 3.4 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG)
  41. 10 :: liych- chronyd[]: Initial frequency -5.115 ppm
  42. 10 :: liych- systemd[]: Started NTP client/server.
  43. 10 :: liych- chronyd[]: Selected source 192.168.152.129
  44. 10 :: liych- chronyd[]: System clock wrong by -2.747341 seconds, adjustment started
  45. 10 :: liych- chronyd[]: System clock wrong by 2.501240 seconds, adjustment started
  46. 10 :: liych- chronyd[]: System clock wrong by -2.304266 seconds, adjustment started
  47. 10 :: liych- chronyd[]: System clock was stepped by -0.921109 seconds
  48.  
  49. [root@bogon ~]# ansible ntpcli -m shell -a "crontab -l"
  50. 192.168.152.132 | SUCCESS | rc= >>
  51. [root@bogon ~]# ansible ntpcli -m shell -a "ntpdate 192.168.152.129"
  52. 192.168.152.132 | SUCCESS | rc= >>
  53. Oct :: ntpdate[]: adjust time server 192.168.152.129 offset -0.000112 sec
  54.  
  55. [root@bogon ~]# ansible ntpcli -m shell -a "date"
  56. 192.168.152.132 | SUCCESS | rc= >>
  57. 2019 10 27 星期日 :: CST
  58.  
  59. [root@bogon ~]# ansible ntpcli -m cron -a "name='time sync' minute=*/5 job='/usr/sbin/ntpdate 192.168.152.129 &>/dev/null'"
  60. 192.168.152.132 | SUCCESS => {
  61. "changed": true,
  62. "envs": [],
  63. "jobs": [
  64. "time sync"
  65. ]
  66. }
  67. [root@bogon ~]# ansible ntpcli -m shell -a "crontab -l"
  68. 192.168.152.132 | SUCCESS | rc= >>
  69. #Ansible: time sync
  70. */ * * * * /usr/sbin/ntpdate 192.168.152.129 &>/dev/null

7.防火墙设置

  1. NTP使用123/UDP端口协议,所以允许NTP服务即可。
  1.  
  1. [root@bogon ~]# firewall-cmd --add-service=ntp --permanent
  2. [root@bogon ~]# firewall-cmd --reload

8.常用的服务器命令

8.1查看当前系统时区并设置时区常用命令

  1.  
  1. [root@liych- ~]# timedatectl #查看当前系统时区
  2. [root@liych- ~]# timedatectl list-timezones | grep -E "Asia/S.*"
  3. [root@liych- ~]# timedatectl set-timezone Asia/Shanghai #设置当前系统为Asia/Shanghai上海时区
  4. [root@liych- ~]# chronyc -a makestep #强制同步下系统时钟

8.2查看系统同步时间

  1.  
  1. [root@liych- ~]# chronyc sources -v #查看时间同步源
  2. [root@liych- ~]# chronyc sourcestats -v #查看时间同步源状态
  3. [root@liych- ~]# timedatectl set-local-rtc #设置硬件时间,硬件时间默认为UTC
  4. [root@liych- ~]# timedatectl set-ntp yes #启用NTP时间同步
  5. [root@liych- ~]# chronyc tracking #校准同步时间服务器
  1.  
chronyc参数 涵义
tracking(最为常用,其他的并不重要) 显示系统时间信息
activity   显示在线状态
add sever 添加时间服务器
delete 移除时间服务器
clients 查看报告
settime 设置守护进程
accheck 检查特定主机是否可以用

参考链接地址:

  1. https://wiki.archlinux.org/index.php/Chrony
  2.  
  3. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-using_chrony

centos7搭建ntp时间同步服务器chrony服务的更多相关文章

  1. centos7 搭建ntp时钟服务器

    服务器 : 192.168.137.3 客户机:  192.168.137.6 1. 服务器端 centos7下首先确认服务器的防火墙.selinux关闭状态 # cat /etc/redhat-re ...

  2. CentOS7搭建ntp时钟服务器

    文章目录 服务器配置 远程客户端配置 服务器配置 # 关闭防火墙,selinux=disabled 1.# 服务器部署 [root@localhost ~]# yum -y install ntp n ...

  3. Linux下搭建ntp时间同步服务器

    1.ntpd软件安装(略过) 2.修改ntp.conf配置文件 vi /etc/ntp.conf 第一种配置:允许任何IP的客户机都可以进行时间同步将“restrict default kod nom ...

  4. linux搭建ntp时间同步服务

    1.NTP简介 NTP(Network Time Protocol,网络时间协议)用来使计算机时间同步的一种协议.它可以使计算机对其服务器或时钟源做同步化,它可以提供高精准度的时间校正(LAN上与标准 ...

  5. 搭建NTP时间服务器~使用NTP同步时间~构建主机间时间自动同步关系

    NTP是一个时间服务器,同时它也是一个时间客户端. 我们可以使用它构建主机与主机之间的时间自动同步环境,保证所有服务器时间一致性. 常用的公共NTP时间服务器有: cn.ntp.org.cn 中国 n ...

  6. 张高兴的 .NET IoT 入门指南:(八)基于 GPS 的 NTP 时间同步服务器

    时间究竟是什么?这既可以是一个哲学问题,也可以是一个物理问题.古人对太阳进行观测,利用太阳的投影发明了日晷,定义了最初的时间.随着科技的发展,天文观测的精度也越来越准确,人们发现地球的自转并不是完全一 ...

  7. 搭建ntp 时钟服务器_Linux

    一.搭建时间同步服务器1.编译安装ntp serverwget [url]http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2.4p4.tar.g ...

  8. centos7搭建postfix邮件服务器

    在使用qq等邮件服务器厂商提供的邮件服务后,发现他们的邮件发送数量是有限制的,随着公司的业务的需求下,我们需要搭建一个邮件服务器,邮件服务器可以帮助我们在一些提醒方面和消息推送方面起到帮助. 理论性语 ...

  9. ntp时间同步服务器

    [root@localhost ~]# ntpdate time.nist.gov 虚拟机时间不对   自动同步   sudo ntpdate asia.pool.ntp.org 要是同步后时间还是不 ...

随机推荐

  1. 让mysql返回的结果按照传入的id的顺序排序

    比如id为 1,3,5,44,66,32,21,6 那么返回的结果顺序也是这个顺序   $sql = "select * from ".$this->tableName(). ...

  2. 走进异步编程的世界 - 在 GUI 中执行异步操作

    转载:https://www.cnblogs.com/liqingwen/p/5877042.html 走进异步编程的世界 - 在 GUI 中执行异步操作 [博主]反骨仔 [原文地址]http://w ...

  3. Jenkins - 【转】高效插件推荐

    特别说明:本文是在原文基础上的改写和添加,但总体不影响原文表达,特此说明. 原文链接 - Jenkins 高效插件推荐 | 运维生存时间 前言 开源版本的Jenkins具有三大能力: Master-S ...

  4. linux新建文件夹

    mkdir -p .... -p  ----parents no error if existion, make parent directories as needed

  5. PHP define defined const

    define 定义常量,常量一旦被定义,在脚本执行期间就不能再改变或者取消定义 常量默认大小写敏感.通常常量标识符总是大写的 与变量的区别: 1.常量前面没有美元符号($) 2.常量只能通过defin ...

  6. ASP.NET Core EFCore 之Code First

    1.在.NET Core项目中使用Nuget引用包 Sql Server 请安装 Microsoft.EntityFrameworkCore.SqlServer 2.添加实体类 [Table(&quo ...

  7. 菜鸟系列Fabric——Fabric 基本概念(1)

    Fabric 基本概念 1.区块链介绍 区块链之所以引来关注是因为比特币开源项目,尤其是比特币价值的飙升,让大家开始关注数字货币以及相关技术.那么区块链究竟是什么? 1.1 区块链定义 狭义上,区块链 ...

  8. PTA(Basic Level)1053.住房空置率

    在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断.判断方法如下: 在观察期内,若存在超过一半的日子用电量低于某给定的阈值 e,则该住房为"可能空置&quo ...

  9. 索引及explain 详解

    索引的分类: 普通索引:仅加速查询 唯一索引:加速查询 + 列值唯一(可以有null) 主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个 组合索引:多列值组成一个索引,专门用于组合 ...

  10. java检测是不是移动端访问

    request可以用别的代替 private static boolean isMobile(){ HttpServletRequest request = ThreadContextHolder.g ...