计算机内部所记录的时钟是记载于BIOS(CMOS)内的,但如果计算机上面的CMOS电池没电了,或者是某些特殊因素导致BIOS数据被清除,此时计算机的时间就会不准。对于处于在网络当中的主机,如何保证主机随时保持正确的时间信息呢?这就需要用到NTP服务器。

NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。

NTP要提供准确的时间,就必须有准确的时间来源,那可以用格林尼治时间(GMT)吗?答案是否定的。因为格林尼治时间是以地球自转为基础的时间计量系统,但是地球每天的自转是有些不规则的,因此,格林尼治时间已经不再被作为标准时间使用。

新的标准时间,在计算时间的时候,最准确的是使用原子震荡周期所计算的物理时钟(atomic clock,也称原子钟),这也被定义为标准时间。UTC(Universal Time Coordinated,世界协调时)就是利用这种原子钟所定义出来的时间。

为什么linux的发行版里面定义时区没有北京时间?因为在1949年之前,我国一共分了5个时区,以哈尔滨、上海、重庆、乌鲁木齐和喀什为代表分别是长白时区,中原标准时区,陇蜀时区,新藏时区和昆仑时区。/usr/share/zoneinfo/Asia

Asia/Harbin

Asia/Shanghai

Asia/Chongqing

Asia/Urumqi

Asia/Kashgar

这五个时区的时间现在均为北京时间,即中国标准时间。

北京时间是中国采用国际时区东八时区作为标准时间。北京时间并不是北京的地方时间,而是东经120°的地方时间,所以北京时间=UTC+8。由于中国地域辽阔,东西相跨5个时区(东五区、东六区、东七区、东八区、东九区5个时区),授时台必须建立在地理中心地带,所以授时台不在北京,而在陕西蒲成。


查看当前的时间

[root@localhost ~]# date -R

Fri, 29 Mar 2019 09:41:17 +0800

查看所有时区:

[root@localhost ~]# ls /usr/share/zoneinfo/

查看其他时区的当前时间

[root@web ~]# zdump Hongkong

更改时区:

方法一、

1、使用tzselect命令查询需要的时区,按照提示操作

2、添加变量到~/.bash_profile文件中,即追加类似的内容:

TZ='America/Mexico_City'; export TZ

3、重新连接一个新会话,使用date -R查看

方法二、使用timedatectl命令更改时区

[root@localhost ~]# timedatectl   查看当前时区信息

[root@localhost ~]# timedatectl list-timezones  列出所有的时区

设置时区

[root@localhost ~]# timedatectl set-timezone Asia/Chongqing

[root@localhost ~]# ll /etc/localtime

lrwxrwxrwx. 1 root root 36 Mar 31 14:15 /etc/localtime -> ../usr/share/zoneinfo/Asia/Chongqing

[root@localhost ~]# timedatectl

设置时间

[root@localhost ~]# teamdctl set-time '2019-03-03 10:41:00'


NTP服务器的设置

如何让时间同步化,可以先选几部主要的主机校准时间,让这些主要的主机时间同步后,再开放网络服务来让client端连接,并且允许client端调整自己的时间,就可以实现全部计算机的时间同步了。

ntp服务使用的是udp的123端口

安装软件:

[root@localhost ~]# yum install ntp -y

/etc/ntp.conf配置文件

[root@localhost ~]# vim /etc/ntp.conf

driftfile /var/lib/ntp/drift    使用driftfile记录时间差异。由于默认的NTP服务器本身的时间计算是依据BIOS的芯片振荡周期频率来计算的,但是这个数值与时间服务器不一定一样,所以该主机会自动计算自己主机的频率和上层时间服务器的频率差值,并将该值记录在/var/lib/ntp/drift这个文件里面。

注:driftfile后面指定的文件需要使用完整路径文件名;该文件不能是链接文件;该文件记录的数值单位为百万分之一秒。


restrict default nomodify notrap nopeer noquery

使用restrict来控制权限,参数设置方式为:

restrict

[你的ip地址]

mask

[255.255.255.0]

parameter

parameter的参数如下:

ignore:拒绝所有类型的连接

nomodify:客户端不能使用ntpc与ntpq这两个程序来修改服务器的时间参数,但客户端可通过该主机来进行网络校时

noquery:客户端不能够使用ntpc、ntpq等命令来查询时间服务器,等于不提供NTP的网络校时

notrap:不提供trap这个远程事件登录的功能

notrust:拒绝没有认证的客户端

如果在parameter的地方没有加上任何参数的话,这表示该ip或网段不受任何限制。


server 0.rhel.pool.ntp.org iburst   互联网上的ntp服务器

利用server设置上层NTP服务器,设置方式为:

server host  [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]

其中host是上层NTP服务器的IP地址或域名,随后所跟的参数解释如下所示:

key:表示所有发往服务器的报文包含有秘钥加密的认证信息,n是32位的整数,表示秘钥号。

version:表示发往上层服务器的报文使用的版本号,n默认是3,可以是1或者2。

prefer:如果有多个server选项,具有该参数的服务器优先使用。

mode:指定数据报文mode字段的值。

minpoll:指定与查询该服务器的最小时间间隔为2的n次方秒,n默认为6,范围为4-14。

maxpoll:指定与查询该服务器的最大时间间隔为2的n次方秒,n默认为10,范围为4-14。

 iburst:当初始同步请求时,采用突发方式接连发送8个报文,时间间隔为2秒。

重启服务

[root@localhost ~]# systemctl restart ntpd

可使用如下命令来查看NTP服务器是否已经顺利更新了自己的时间

[root@localhost ~]# ntpstat                                    //该命令可列出我们的NTP服务器是否已经与上层连接。

[root@localhost ~]# ntpstat 

unsynchronised

polling server every 64 s

等一会儿再查看

[root@localhost ~]# ntpstat

synchronised to NTP server (203.107.6.88) at stratum 3

time correct to within 111 ms

polling server every 128 s

NTP服务器已经成功与上层建立连接。时间已经校正约111ms,每隔128s会主动去更新时间。

[root@localhost ~]# ntpq -p                                    //可以列出当前我们的NTP与相关的上层NTP的状态

remote           refid      st t when poll reach   delay   offset  jitter

=========================================================================

+electrode.felix 89.231.96.83     2 u   24   64  377  386.224    7.593  58.888

+ntp5.flashdance 192.36.143.130   2 u   26   64  377  417.799   38.981 207.158

*203.107.6.88    10.165.84.13     2 u   22   64  377   73.291   33.280   6.919

-static.107.100. 192.53.103.108   2 u   91   64   12  466.187  -76.949  77.603

remote  远程主机的主机名或IP

*代表目前正在使用的上层NTP

+连接成功,可提供时间更新的候补服务器

-该NTP服务器被认为不合格

refid    上级NTP服务器的地址

st     上级NTP服务器的层级,0-15

t :The type of the peer (local, unicast, multicast or broadcast) when the last packet was received

l    local (such as a GPS clock)

u   unicast (this is the common type) (单播,即NTP client向NTP server发送NTP请求,NTP server回复的模式)

m  multicast (多播,可跨子网。)

b   broadcast (广播,不可跨子网。NTP server定时向广播地址发送NTP包,NTP client通过广播地址获取NTP包,同步本地时钟)

when 几秒钟前曾做过时间同步化

poll    下一次更新在几秒钟之后

reach   八进制数,已经向上层服务器要求更新的次数

delay   网络传输过程中的延迟时间

offset  本地和服务器之间的时间差别,越接近0,说明和服务器的时间约接近

jitter  系统时间与硬件时间的差异

服务端(192.168.206.141):

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# setenforce 0

[root@localhost ~]# vim /etc/ntp.conf

restrict 192.168.206.0 mask 255.255.255.0                         //限制当前网段的主机可以同步时间

server 127.127.1.0                                                               //设置上层NTP服务器为自己

fudge 127.127.1.0 stratum 8                                                //虚拟自己在第8层

[root@localhost ~]# systemctl restart ntpd

客户端(192.168.206.138):

[root@localhost ~]# ntpdate -q 192.168.206.141                                     //查看上层服务器的状态

server 192.168.206.141, stratum 9, offset -0.002161, delay 0.02641

29 Mar 19:02:53 ntpdate[43576]: adjust time server 192.168.206.141 offset -0.002161 sec

[root@localhost ~]# ntpdate 192.168.206.141                                       //更新时间

29 Mar 19:02:08 ntpdate[43567]: step time server 192.168.206.141 offset 32331.572864 sec

使用计划任务自动更新客户端的时间

编辑/etc/crontab文件

[root@localhost ~]# vim /etc/crontab

* * * * * root /usr/sbin/ntpdate 192.168.206.141 > /dev/null 2>&1

标准输出(stdout):代码为1,使用>或>>;

标准错误输出(stderr):代码为2,使用2>或2>>。

2>&1 意思是把标准错误输出重定向到标准输出

【Linux】NTP(网络时间协议)相关推荐

  1. Linux的归档及压缩,Linux的cron时间计划任务, NTP网络时间协议 , 查看网络连接...

    linux的归档及压缩:                   1.节约空间                   2.方便对零散文档的管理     tar集成备份工具:         -c:    创 ...

  2. 时间协议ntp服务器,NTP网络时间协议(HP_UX)

    之前写过一篇NTP的东西.但是其中有很多错误.也不够详细.这次经过多次实验,反复比较和分析,并且在HP800电话的帮助下,终于写出了一篇我自己认为比较完整和正确的文档. NTP网络时间协议 (一)NT ...

  3. Linux下 C/C++ NTP网络时间协议详解

    NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议.它是通过网络在计算机系统之间进行时钟同步的网络协议.NTP 在公共互联网上通常能够保持时间延迟 ...

  4. AOSP ~ NTP ( 网络时间协议 )

    网络时间协议NTP(Network Time Protocol)是TCP/IP协议族里面的一个应用层协议,用来使客户端和服务器之间进行时钟同步,提供高精准度的时间校正.NTP服务器从权威时钟源(例如原 ...

  5. 网络时间协议服务器检测,NTP(网络时间协议)【NTP时间同步服务器】

    网络时间协议(英语:Network Time Protocol,简称NTP)是在数据网络潜伏时间可变的计算机系统之间通过分组交换进行时钟同步的一个网络协议之一.NTP由特拉华大学David.Mills ...

  6. linux ntp服务相关说明

    ----linux ntp服务相关说明 1.linux中有bios时间和操作系统时间     #宿主机系统时间查看:         date          #宿主机时间校准方法:         ...

  7. linux ntp同步日志,Linux使用入门教程之Rsyslog日志管理、NTP和Rsync备份同步

    四.NTP(网络时间协议) NTP(Network Time Protocol)是用来使计算机时间同步化的一种协议,它可以使计算机系统与NTP服务器或时钟源(如石英钟,GPS等等)进行同步化的一种协议 ...

  8. redhat linux 7 ntp,技术|RHCE 系列(十):在 RHEL/CentOS 7 中设置 NTP(网络时间协议)服务器...

    网络时间协议 - NTP - 是运行在传输层 123 号端口的 UDP 协议,它允许计算机通过网络同步准确时间.随着时间的流逝,计算机内部时间会出现漂移,这会导致时间不一致问题,尤其是对于服务器和客户 ...

  9. ntp协议中 服务器失效怎么办,排除网络时间协议(NTP)故障

    本文提供信息关于怎样排除故障与网络时间协议(NTP)的常见问题. 思科建议您有一好了解NTP如何工作和一好知识网络时间协议. 本文档不限于特定的软件和硬件版本. 有关文档规则的详细信息,请参阅 Cis ...

最新文章

  1. debian10 Unable to correct problems, you have held broken packages.
  2. python 内置函数map的使用
  3. 【c语言】蓝桥杯入门训练 序列求和
  4. asp简单样例(1)
  5. C/C++ 基本类型注意事项
  6. c# json使用集
  7. Variables多种表达
  8. python3 rrdtool 使用
  9. 微软发布 Windows 命令行参考文档,涵盖超 250 项控制台命令
  10. 启动Eureka客户端服务时报错:java.net.ConnectException: Connection refused:connect
  11. java 铁路管理信息系统_基于Java铁路售票系统的设计与实现(含录像)(SqlServer)
  12. jeesit 部署404
  13. 米勒拉宾算法(素性测试)
  14. python- re模块(正则表达式)
  15. 沃尔玛账号被冻结后如何进行申诉?
  16. pppoe服务器账号和密码是什么,路由器的PPPOE拨号宽带账号和密码是多少?
  17. 跟我一起学PyTorch-07:嵌入与表征学习
  18. 解决Windows环境下PHP连接MySQL很慢的问题
  19. 如何在不同节之间设置页码
  20. linux忘记root密码怎么办——重置root密码的四种方法

热门文章

  1. 一周企业财报 | 乐高、新希望、创维、易车等7家企业发布业绩
  2. win10我的电脑图标怎么放在桌面,win10我的电脑图标放在桌面的方法
  3. 关于WORD的文字方向
  4. Win7 任务栏缩略图大小、显示速度及单击切换更改
  5. 算法?从这里开始(2)——递归,归并排序,小和问题,逆序对问题
  6. 与狗尾草一起探寻人机交互的更多可能性|白洞战报
  7. SpringBoot2.0之Servlet容器变成Undertow
  8. Linux CentOS-7.4-x86_64(原版) 百度网盘下载
  9. TSDB时序数据库-OpenTSDB
  10. 同时删除多个 PPT 文档中间几页