热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网络时间服务的简介及搭建

网络时间服务NTPCHRONY  当多台主机协作工作时,各个主机的时间同步很重要,时间不一致会造成很多重要应用的故障,如:加密协议、日志、集群等,利用NTP(NetworkTime

网络时间服务NTP/CHRONY

  当多台主机协作工作时,各个主机的时间同步很重要,时间不一致会造成很多重要应用的故障,如:加密协议、日志、集群等,利用NTP(Network Time Protocol)协议使网络中的各个计算机时间达到同步。目前NTP协议属于运维基础架构中必备的基本服务之一


实现时间同步的工具

  1) ntp
  2) chrony


ntp


  将系统时钟和世界协调时UTC同步,精度在局域网内可达0.1ms,在互联网上绝大多数的地方精度可以达到1-50ms



chrony


  实现NTP协议的的自由软件。可使系统时钟与NTP服务器,参考时钟(例如GPS接收器)以及使用手表和键盘的手动输入进行同步。还可以作为NTPv4(RFC 5905)服务器和对等体运行,为网络中的计算机提供时间服务。设计用于在各种条件下良好运行,包括间歇性和高度拥挤的网络连接,温度变化(计算机时钟对温度敏感),以及不能连续运行或在虚拟机上运行的系统。通过Internet同步的两台机器之间的典型精度在几毫秒之内,在LAN上,精度通常为几十微秒。利用硬件时间戳或硬件参考时钟,可实现亚微秒的精度



chrony的优势



  1. 更快的同步只需要数分钟而非数小时时间,从而最大程度减少了时间和频率误差,对于并非全天 24 小时运行的虚拟计算机而言非常有用

  2. 能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用

  3. 在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响

  4. 在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性

  5. 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟


关于chrony的介绍


安装包名:chrony


两个主要的程序:chronyd、chronyc


  chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿

  chronyc:命令行用户工具,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可在一台不同的远程计算机上工作



服务unit文件


  /usr/lib/systemd/system/chronyd.service



监听端口


  323/udp,123/udp



配置文件


  /etc/chrony.conf


配置文件中参数的介绍

  server - 可用于时钟服务器,iburst 选项当服务器可达时,发送一个八个数据包而不是通常的一个数据包。 包间隔通常为2秒,可加快初始同步速度

  driftfile - 根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中,会在重启后为系统时钟作出补偿

  rtcsync - 启用内核模式,系统时间每11分钟会拷贝到实时时钟(RTC)

  allow / deny - 指定一台主机、子网,或者网络以允许或拒绝访问本服务器

  cmdallow / cmddeny - 可以指定哪台主机可以通过chronyd使用控制命令

  bindcmdaddress - 允许chronyd监听哪个接口来接收由chronyc执行的命令

  makestep - 通常chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。该指令强制chronyd在调整期大于某个阀值时调整系统时钟

  local stratum 10 - 即使server指令中时间服务器不可用,也允许将本地时间作为标准时间授时给其它客户端



chronyc命令


  help命令可以查看更多chronyc的交互命令
  accheck 检查是否对特定主机可访问当前服务器
  activity 显示有多少NTP源在线/离线
  sources [-v] 显示当前时间源的同步信息
  sourcestats [-v]显示当前时间源的同步统计信息
  add server 手动添加一台新的NTP服务器
   clients 报告已访问本服务器的客户端列表
  delete 手动移除NTP服务器或对等服务器
  settime 手动设置守护进程时间
  sracking 显示系统时间信息



公共NTP服务


pool.ntp.org:项目是一个提供可靠易用的NTP服务的虚拟集群

  cn.pool.ntp.org,0-3.cn.pool.ntp.org


阿里云公共NTP服务器

  Unix/linux类:ntp.aliyun.com,ntp1-7.aliyun.com
  windows类: time.pool.aliyun.com


大学ntp服务

  s1a.time.edu.cn 北京邮电大学
  s1b.time.edu.cn 清华大学
  s1c.time.edu.cn 北京大学


国家授时中心服务器

  210.72.145.44


时间工具


timedatectl


  查看日期时间、时区及NTP状态:timedatectl
  查看时区列表:timedatectl list-timezones
  修改时区:timedatectl set-timezone Asia/Shanghai
  修改日期时间:timedatectl set-time "2017-01-23 10:30:00"
  开启NTP: timedatectl set-ntp true/flase



system-config-date:图形化配置chrony服务的工具


实验:网络时间同步


















  本次实验通过系统时间、硬件时间的设定和修改;
  通过ntp、chrony两个服务实现时间同步。
centos6192.168.36.100两个网卡:1、外网卡DHCP获取IP,通过配置NTP实现外网时钟同步。2、内网卡充当内网时钟同步服务器
centos7192.168.36.101内网客户端

两台主机查看并修改系统时间

[root@CentOS6 ~]# date
Thu Apr 18 15:54:17 CST 2019
[root@CentOS6 ~]# date -s "-1 years"
Wed Apr 18 15:54:27 CST 2018

ntp配置文件修改

[root@CentOS6 ~]# vim /etc/ntp.conf
...
8 restrict default kod nomodify #允许客户端进行网络校时
9 restrict -6 default kod nomodify notrap nopeer noquery
...
22 server 172.22.0.1 iburst #设定NTP主机来源,其中iburst也可以设置成prefer,表示优先此主机
23 #server 0.centos.pool.ntp.org iburst
24 #server 1.centos.pool.ntp.org iburst
25 #server 2.centos.pool.ntp.org iburst
26 #server 3.centos.pool.ntp.org iburst
...

各选项信息


restrict 控制相关权限


语法为: restrict IP地址 mask 子网掩码 参数


其中IP地址也可以是default ,default 就是指所有的IP
参数有以下几个

ignore :关闭所有的 NTP 联机服务
nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时
notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网
noquery :不提供客户端的时间查询:用户端不能使用ntpq,ntpc等命令来查询ntp服务器
notrap :不提供trap远端登陆:拒绝为匹配的主机提供模式 6 控制消息陷阱服务。陷阱服务是 ntpdq 控制消息协议的子系统,用于远程事件日志记录程序
nopeer :用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟
kod : 访问违规时发送 KoD 包
restrict -6 表示IPV6地址的权限设置

启动服务实现时间同步


服务器同步网络时间

[root@CentOS6 ~]# ntpdate 172.22.0.1
18 Apr 10:38:25 ntpdate[10305]: adjust time server 172.22.0.1 offset 0.002210 sec

重启服务

[root@CentOS6 ~]# service ntpd start
Starting ntpd: [ OK ]

监听udp的123端口

[root@CentOS6 ~]# ss -lun
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 127.0.0.1:981 *:*
UNCONN 0 0 *:111 *:*
UNCONN 0 0 *:631 *:*
UNCONN 0 0 *:43130 *:*
UNCONN 0 0 172.22.58.250:123 *:*
UNCONN 0 0 192.168.36.100:123 *:*
UNCONN 0 0 127.0.0.1:123 *:*
UNCONN 0 0 *:123 *:*
UNCONN 0 0 *:923 *:*
UNCONN 0 0 :::56515 :::*
UNCONN 0 0 :::111 :::*
UNCONN 0 0 ::1:123 :::*
UNCONN 0 0 fe80::20c:29ff:fe5a:43c1:123 :::*
UNCONN 0 0 fe80::20c:29ff:fe5a:43b7:123 :::*
UNCONN 0 0 :::123 :::*
UNCONN 0 0 :::923 :::*

查看ntp服务器

[root@CentOS6 ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*172.22.0.1 144.76.76.107 3 u 19 64 1 0.801 -1.318 0.334

检查时间是否同步

[root@CentOS6 ~]# date
Thu Apr 18 15:56:48 CST 2019

由于centos6开启了ntpd服务,所以可以充当时间服务器被客户端使用


修改时间并通过ntpdate进行时间同步

[root@centos ~]#date -s "-1 years"
Wed Apr 18 16:37:40 CST 2018
[root@centos ~]#ntpdate 192.168.36.100
18 Apr 16:38:00 ntpdate[14923]: step time server 192.168.36.100 offset 31536000.000052 sec

在centos7上chrony软件实现时间永久同步

  chrony同ntp,也可以配置成客户端和服务器端两种


说明

/usr/bin/chronyc是客户端程序
/usr/sbin/chronyd是服务器端查询
/usr/lib/systemd/system/chronyd.service是服务控制⽂件

修改配置文件

[root@centos ~]#vim /etc/chrony.conf
3 server 192.168.36.100 iburst
4 #server 0.centos.pool.ntp.org iburst
5 #server 1.centos.pool.ntp.org iburst
6 #server 2.centos.pool.ntp.org iburst
7 #server 3.centos.pool.ntp.org iburst

启动服务并设置开机启动

[root@centos ~]#systemctl start chronyd.service
[root@centos ~]#systemctl start chronyd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/chronyd.service to /usr/lib/sservice.

监听udp的323端口

[root@centos ~]#ss -lun | grep 323
UNCONN 0 0 127.0.0.1:323 *:*
UNCONN 0 0 ::1:323 :::*

查看时间源的同步信息

[root@centos ~]#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
===============================================================================
^* 192.168.36.100 4 6 377 2 +14us[ +33us] +/- 237ms

查看时间是否同步

[root@centos ~]#date
Thu Apr 18 17:01:16 CST 2019

推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了在CentOS 7.x上进行端口映射配置的方法,通过修改内核和配置防火墙实现端口映射。作者分享了自己使用华为服务器进行端口映射的经验,发现网速比直连还快且稳定。详细的配置过程包括开启系统路由模式功能、设置IP地址伪装、设置端口映射等。同时,还介绍了如何监听本地端口的tcp请求,以及删除规则和开放的端口的方法。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了如何使用iptables添加非对称的NAT规则段,以实现内网穿透和端口转发的功能。通过查阅相关文章,得出了解决方案,即当匹配的端口在映射端口的区间内时,可以成功进行端口转发。详细的操作步骤和命令示例也在文章中给出。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
author-avatar
张兵在江湖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有