# ntp-doc **Repository Path**: cncfstack/ntp-doc ## Basic Information - **Project Name**: ntp-doc - **Description**: ntp-doc - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-12 - **Last Updated**: 2023-05-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Linux时间服务 - NTP ## 时间和时区 时间是一个瞬间的概念,全宇宙是唯一的,体现在计算机中可以理解成**unix时间戳**,目前精确的时间源是参考原子钟的震荡频率,然后同步到全球。 由于地球旋转导致不同地域的人看到的日出日落的时间不同,根据地球的地址位置,人为将地球划分成24个不同的时区。 计算机中经常看到的是UTC时间标准(Coordinated Universal Time的简写),他是0时时区标准。中国时区标准(CST: Chinese Standard Time)相对于0时时区是**东八区**。 例如某一时刻: * Unix时间戳: ``` [root@VM_11_7_centos ~]# date +%s 1496217462 ``` * UTC时区时间: ``` [root@VM_11_7_centos ~]# date -u Wed May 31 07:57:42 UTC 2017 ``` * CST时区时间: ``` [root@VM_11_7_centos ~]# date Wed May 31 15:57:42 CST 2017 ``` # NTP工具 ## ntpq ntpq 依据/etc/ntp.conf配置文件进行查询 ``` [root@localhost ~]#ntpq -np 127.0.0.1 remote refid st t when poll reach delay offset jitter ============================================================================== *172.31.57.3 LOCAL(0) 4 u 19 32 377 0.123 -0.016 0.003 172.31.57.4 172.31.57.3 5 u 1 32 377 0.121 -0.017 0.006 127.127.1.0 .LOCL. 5 l 3 64 377 0.000 0.000 0.001 ``` * remote - ntp时间源。“+”表示优先,“*”表示次优先 * refid - remote时间源的上一层时间源 * st - stratum时间源阶层 * when - 多少秒前曾经同步过时间,当达到poll时会进行一次同步,然后重新计时 * poll - 时间更新周期,时间单位秒 * reach - 已经向上层ntp服务器要求更新的次数.是一个八进制数字,指出源的可存取性。值 377 表示源已应答了前八个连续轮询。 * delay - 网络延迟 * offset - 时间补偿,时间偏移 * jitter - 系统时间与bios时间差 ## ntpdate ntpdate 进行时间的查询和时间同步 使用ntpdate同步时ntpd服务不能允许,否则会报错 指定时间源进行查询 ``` ntpdate -q 0.centos.pool.ntp.org ``` 如果想定时进行时间校准,可以使用crond服务来定时执行 修改crontab -e ``` 30 8 * * * root /usr/sbin/ntpdate 0.centos.pool.ntp.org; /sbin/hwclock -w ``` ## date 查看和设置系统时间 * 设置系统时间 ``` date -s "2017-05-31 12:00:00" ``` * 当前unix时间戳 ``` date +%s ``` * 转换指定日期为Unix时间戳 ``` date -d '2013-2-22 22:14' +%s ``` * 将时间戳转换成系统时区时间 ``` date -d @1361542596 date -d @1361542596 +"%Y-%m-%d %H:%M:%S" ``` ## ntpd、ntpdate作为客户端的区别 ntpd不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步 ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行 时钟的跃变,对于某些程序会导致很严重的问题。许多应用程序依赖连续的时钟。毕竟,这是一项常见的假定,即,取得的时间是线性的,一些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃。 不幸的是,ntpdate调整时间的方式就是我们所说的”跃变“:在获得一个时间之后,ntpdate使用settimeofday(2)设置系统时间,这有几个非常明显的问题: * 第一,这样做不安全。ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。由于ntpdate采用的方式是跳变,跟随它的服 务器无法知道是否发生了异常(时间不一样的时候,唯一的办法是以服务器为准)。 * 第二,这样做不精确。一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。 * 第三,这样做不够优雅。由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错(例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的)。因而,唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间。 NTPD 在和时间服务器的同步过程中,会把 BIOS 计时器的振荡频率偏差——或者说 Local Clock 的自然漂移(drift)——记录下来。这样即使网络有问题,本机仍然能维持一个相当精确的走时。 http://time.kepu.net.cn/a05/1131.html http://www.pool.ntp.org/zone/cn cn.pool.ntp.org http://blog.sina.com.cn/s/blog_521b69c10100jc3d.html 国家授时中心IP,不稳定 210.72.145.44 server 0.cn.pool.ntp.org server 1.cn.pool.ntp.org server 2.cn.pool.ntp.org server 3.cn.pool.ntp.org