1、NTP(Network Time Protocol)

在计算机世界中,NTP(Network Time Protocol,网络时间协议)被广泛用于对时间的统一性和准确性要求非常高的场景,是用来使网络中的各个计算机时间同步的一种协议。它可以把计算机时钟同步到世界协调时UTC(Universal Time Coordinated,世界协调时)。UTC是由原子钟报时的国际标准时间,而NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可从internet上面获取。在NTP协议中,定义了时间按照服务器等级传播,依据离外部UTC源的远近,将所有服务器归入不同的stratum(层)中,直接从时间源如GPRS(Global Positioning System,全球定位系统)获得时间的服务器称之为stratum-1,而后依次序递归传播给下层服务器stratum-2、stratum-3…,层的总数限制在15以内。此阶梯结构示意图如下:

2、linux时间相关

2.1、时区

现实生活中时间以时区的方式定义,地球绕太阳旋转的24小时中,世界各地的不同时间由UTC+地区所属时区决定,全球划分为24个不同的时区。比如中国标准时间晚上8点半,可以有以下两种表示方式:

20:00 CST(Chinese Standard Time,中国标准时间)

12:00 UTC(Universal Time Coordinated,世界协调时)

2.1.1、Linux中设置时区

linux中的glibc已提供许多编译好的时区文件,存放于/usr/share/zoneinfo中,包含大多数国家和城市的时区

可以使用zdump命令查询对应时区的当前时间,例如香港时间:

修改linux系统时区有多种方式,本文介绍两种:

第一种方法,修改/etc/localtime文件,这个文件定义了当前系统所在的local time zone,将/usr/share/zoneinfo中的time zone文件符号链接至该文件即可。

查看当前时区

修改时区为Shanghai

实际上,更改时区的同时,时间也会跟随调整。

第二种方法,使用tzselect命令修改TZ变量的值,注意这种方法所做更改会覆盖localtime中的时区设定,如果要使更改长期有效,刻意将TZ变量的设置写入到/etc/profile中。

将时区更改为上海时区

2.2、时间设置

linux系统环境中,值得注意的是,一台计算机上我们有两个时钟:硬件时钟 RTC,(Real Time Clock)和系统时钟(System Clock)。硬件时钟是指镶嵌在主板上的特殊电路,它可以使计算机关机之后仍然计算时间;系统时钟是操作系统kernel用来计算时间的时钟,其值是由1970年1月1日00:00:00 UTC时间至当前时间所经历的秒数总和。系统在开机时,会自动将系统时间同步为硬件时钟时间,而后各自独立运行,长时间运行两者将会产生误差。

查看并对比当前系统硬件时间和系统时间

可以看到,两者已经有误差了,实现两者同步,可以采用以下命令

将硬件时间设置为系统时间

将系统时间设置为硬件时间

如果想设置硬件时间,可以在开机时在BIOS里面设定,或者同过hwclock命令设定

# hwclock –set –date="mm/dd/yy hh:mm:ss"

如果想设置系统时间,可以使用date命令来设置

# hwclock -s "dd/mm/yyyy hh:mm:ss"

虽然我们可以通过上述内容来调整时间,但是如果硬件时间和系统时间都不准确的话,我们就需要通过NTP协议来向时间源服务器来同步时间了。

3、配置NTP服务器

3.1、安装NTP

安装ntp服务器搭建程序,可以使用rpm包安装或者yum工具自动安装,本文使用yum安装

可以看到ntpdate程序也被依赖安装完毕

确认已安装

3.2、手动同步NTP服务器时间

在NTP服务器上使用ntpdate手动向上层NTP服务器同步时间,以保证服务器自身时间

选择下面两个NTP服务器为其同步时间

asia.pool.ntp.org

0.asia.pool.ntp.org

1.asia.pool.ntp.org

注意,配置NTP服务器之前,手动同步时间是很有必要的,原因如下:

1、根据NTP的设置,如果服务器时间比准确时间要快的话,NTP协议不回自动为其调整。

2、如果服务器当前时间与准确时间相差甚大,NTP将会花较长一段时间来进行调整,手动调整可以节省时间

3.3、配置运行NTP Server

本文演示配置的NTP Server,应用于局域网中,为局域网中的成员提供NTP事件源服务器,实际上,无论我们的计算机配置多好,运行时间长了都会出现时间误差,不足以给互联网上的其它服务器做NTP Server,因此我们自己假设的服务器只能称之为NTP Delay Server,它从上层获取相对准确的时间,而后为内部成功提供时间同步源。、

3.3.1配置文件修改

修改配置文件/etc/ntp.conf,定义NTP Server和权限设定

一、driftfile 默认存放于/var/lib/ntp/drift中 driftfile:由于system clock频率都略有误差,因此机器运行一段时间后,时间会不精确,NTP会自动检测误差值并予以调整,这个冗长的过程会被记录到driftfile中,用以保证开机后之前的计算结果也不会丢失。

注2-注5:

NTP安全设置,而安全的设定分两个方面:

一个方面:允许哪些客户段连接到服务器来同步时间;

第二个方面:连过来的客户端不能修改我们服务器上的时间。

权限的设定以restrict来设定,语法如下:

restrict IP地址 mask 子网掩码 参数

其中,IP可以是IP地址,也可以是default,default指所有IP

参数解释如下:

ignore:关闭所有NTP联机服务

nomodify:客户端不能更改服务器端的时间参数,但是可以通过服务端进行网络校时。

notrust:客户端除非通过认证,否则客户端来源将视为不信任子网

noquery:不提供客户端的时间查询

注意:如果参数没有设定,就表示该IP(或子网)没有任何限制

配置如下:

首先,默认客户端拒绝所有操作

允许本机的任何操作

允许局域网内的客户端同步时间,不允许更改服务器时间

添加如下配置,确保internet断开时,客户端仍可以从该NTP服务器同步时间

注6:上层NTP Server,NTP服务器将会尝试向此组服务器请求同步时间,参数prefer,表示优先选择该服务器为其上层NTP服务器。

配置文件修改完成后,启动ntpd,服务,设置为开机启动

启动ntpd服务后,需等待几分钟到十几分钟的时间后,就可以实现时间同步了。

3.3.2、查看NTP服务运行情况

ntpstat命令查看同步状态信息

上图所示,第一行,此NTP服务器的上层服务器地址59.149.185.193,上层服务器是stratum-2层服务器;第二行,为校正时间差;第三行,每过128s执行时间同步。

使用ntpq -p查询NTP Server状态

上图所示,解释如下

remote: 它指的就是本地机器所连接的远程NTP服务器

refid: 它指的是给远程服务器(e.g. 193.60.199.75)提供时间同步的服务器

st: 远程服务器的层级别(stratum). 由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端. 所以服务器从高到低级别可以设定为1-16. 为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的.

when: 我个人把它理解为一个计时器用来告诉我们还有多久本地机器就需要和远程服务器进行一次时间同步

poll: 本地机和远程服务器多少时间进行一次同步(单位为秒). 在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调整到正确的时间范围.之后poll值会逐渐增大,同步的频率也就会相应减小

reach: 这是一个八进制值,用来测试能否和服务器连接.每成功连接一次它的值就会增加

delay: 从本地机发送同步要求到服务器的round trip time

offset: 这是个最关键的值, 它告诉了我们本地机和服务器之间的时间差别. offset越接近于0,我们就和服务器的时间越接近

jitter: 这是一个用来做统计的值. 它统计了在特定个连续的连接数里offset的分布情况. 简单地说这个数值的绝对值越小我们和服务器的时间就越精确

每一行前面的特殊符号含义:

* 它告诉我们远端的服务器已经被确认为我们的主NTP Server,我们系统的时间将由这台机器所提供

+ 它将作为辅助的NTP Server和带有*号的服务器一起为我们提供同步服务. 当*号服务器不可用时它就可以接管

- 远程服务器被clustering algorithm认为是不合格的NTP Server

x 远程服务器不可用

3.3.3、配置NTP Client端

一、linux作为客户端自动同步时间

结合crond实现自动时间同步

# crontab -e

# service crond restart

上面的设置,定义每天8:30同步时间

二、Windows作为客户端同步时间

1、打开windows time和RPC两个服务

2、如果打开windows time出现1058错误,则执行如下操作

1、运行cmd进入命令行界面,键入w32tm /register 进行注册

正确的响应:W32Time成功注册

3、上一步成功完成后,执行net start "windows time"或net start w32time 启动服务。

3.3.4、无法成功同步时间的原因

1、客户端的日期必须设置正确,不能超出正常时间24小时;确保客户端时区设置正确,不回更新成其它时区时间。

2、fudge 127.127.1.0 stratum 10 如果是linux作为NTP服务器,stratum(层级)不能太大

3、linux的NTP服务器必须能够正常将从上层服务器获得的时间从系统时间写入到硬件时钟,确保下面的参数的

值为yes

默认NTP只会同步system clock.如果需要同步硬件时钟的话,需要做如下操作。

原创文章,作者:Silently,如若转载,请注明出处:http://www.178linux.com/9320

linux 建立 ntp 服务器,NTP服务器搭建相关推荐

  1. Linux 服务器内网搭建NTP时间服务器(Network Time Protocol)

    文章目录 Linux 服务器内网搭建NTP时间服务器(Network Time Protocol) 一.在主服务器端安装NTP时间服务器 二.在客户端安装NTP时间服务器 三.Xhell 同时控制多个 ...

  2. linux系统下ntp网络时钟服务器(NTP服务器)的搭建和使用

    linux系统下ntp网络时钟服务器(NTP服务器)的搭建和使用 linux系统下ntp网络时钟服务器(NTP服务器)的搭建和使用 安徽京准科技开发的NTP网络时间源设备 参考 ahjzsz.com  ...

  3. 时间服务器: NTP 服务器及客户端搭建

    时间服务器: NTP 服务器及客户端搭建 一. NTP 服务器的安装与设定 1. NTP 服务器的安装与设定前言 2. 所需软件与软件结构 3. 主要配置文件 ntp.conf 的处理 4. NTP ...

  4. 服务器系统启用ntp拂去,服务器搭建四——NTP服务器搭建

    1.测试坏境 虚拟主机中安装的Centos 6.9 安装的软件NTP 2.NTP原理 NTP(network time protocol 网络时间协议)用于同步计算机和网络设备的内部的时间一种协议. ...

  5. linux服务器ntp客户端配置【转】

    转自:https://www.cnblogs.com/kerrycode/archive/2015/08/20/4744804.html 在Linux系统中,为了避免主机时间因为在长时间运行下所导致的 ...

  6. Linux服务部署之NTP时间服务器

    Linux服务部署之NTP时间服务器: 服务器端IP:192.168.11.119 client端Ip: 192.168.11.101 先安装服务器端ntp: 首先先查看是否安装了ntp时间服务器; ...

  7. Linux 时间一致性环境NTP/Chrony服务器部署配置

    一.背景 生产环境中,一个业务系统往往涉及几十台甚至上百台主机或云主机构成,有些管理系统对整个环境时间一致性由强要求,即使没有,保证环境中时间的一致性,有利于业务交互时时间匹配,保证事务的一致性,甚至 ...

  8. 如何在局域网搭建自己的NTP校时服务器,用在监控系统中?

    我们都知道,对于监控设备来说,设备时间的统一和精准,是保障录像文件及日志可靠的关键. 虽然录像机.服务器等设备都有自己的时钟,但是随着时间的推移,就会出现累计误差,误差如果不加修正会无限累加,此时,最 ...

  9. 搭建ntp时间服务器 ntp - (Network Time Protocol)

    第1章 ntp 1.1 ntp简介        NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议.它的用途是把计算机的时钟同步到世界协调 ...

最新文章

  1. 正则表达式——获取指定IP的物理地址
  2. Cookie和Session-学习笔记01【Cookie_快速入门、Cookie_细节】
  3. 第十二届 蓝桥杯青少年 C++组 10月比赛 第2题 统计字符
  4. Android5.0L因SystemUI ANR导致的黑屏问题分析
  5. 我新买的GTX1050为何装上去一直是黑屏
  6. java运行vbs_如何在Java中执行VBS脚本?
  7. 《深海探测装备》学习笔记1(深海探测传感器)
  8. Android键盘输入法(一)——键盘类型
  9. u盘在电脑上读不出来?不一定是坏了
  10. Qt音视频开发27-Onvif设备搜索
  11. 安卓电池校正_笔记本电池损耗55%后一波三折的挽救经历
  12. Linux--- vi文本编辑器
  13. 加勒比海盗船——最优装载问题-贪心算法
  14. 电脑故障维修大全 [1]
  15. 南开大学校徽及手写字的Tikz源码
  16. 股票量化分析工具QTYX使用攻略——涨停数据选股(更新2.5.6)
  17. 乐信2020校园招聘数据笔试题[试题整理]
  18. RedHat7安装Systemc 编译仿真
  19. java五子棋的算法_初学java,写了一个五子棋算法的类,请大家多多指教.
  20. [附源码]SSM计算机毕业设计全国人口普查管理系统论文JAVA

热门文章

  1. c语言老鼠迷宫程序,C语言经典算法——老鼠走迷宫(二)
  2. Poco官方PPT_010-Types双语对照翻译
  3. 百度钱包、百付宝、baifubao接入支付的常见问题
  4. IPv6地址格式浅谈
  5. ETF定投数据分析5——蒙特卡洛算法
  6. 俞敏洪力荐:“鬼才”英语记忆法,只需20分钟,轻松记完500单词
  7. java面试题总结(八)--Java面试题全集(上)
  8. [附源码]java+ssm计算机毕业设计基于供应链的供应商价格管理系统4158h(源码+程序+数据库+部署)
  9. 制作糖果文字的纹理及立体效果
  10. 配置Tomcat环境