NTP服务端:linl_S    IP:10.0.0.15
NTP客户端:lin_C    IP:10.0.0.16

NTP服务概述

1、原理

NTP(Network TimeProtocol,网络时间协议)是用来使计算机时间同步的一种协议。它可以使计算机对其服务器或时钟源做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),切可介由加密确认的方式来防止恶意的协议攻击。
 
模式:C/S模式
运行模式:
 

2、端口(123)

 [root@linl_S ~]# vim /etc/services
nntp 119/tcp readnews untp # USENET News Transfer Protocol
nntp 119/udp readnews untp # USENET News Transfer Protocol
ntp 123/tcp
ntp 123/udp # Network Time Protocol
拓展:
NNTP(Network News Transport Protocol),中文释义:(RFC-977)网络新闻传输协议。这是一个主要用于阅读和发布新闻文章(俗称为“帖子”,比较正式的名字是“新闻组邮件”)到Usenet 上的Internet应用协议,也负责新闻在服务器间的传送。
 
安装NTP
默认是已安装,如果是最小化安装系统,则需要手动安装。
1)NTP相关软件包
 [root@linl_S ~]# ls /mnt/Packages/ntp*
/mnt/Packages/ntp-4.2.6p5-1.el6.x86_64.rpm #NTP服务端软件包
/mnt/Packages/ntpdate-4.2.6p5-1.el6.x86_64.rpm #NTP客户端软件包
2)安装NTP服务端软件包:
 [root@linl_S ~]# yum -y install ntp         #NTP两个软件包都会安装上
...
Installed:
ntp.x86_64 0:4.2.6p5-1.el6
Dependency Installed:
ntpdate.x86_64 0:4.2.6p5-1.el6
Complete!
    安装客户端:
 [root@linl_C ~]# rpm -ivh /mnt/Packages/ntpdate-4.2.6p5-1.el6.x86_64.rpm     #只安装ntpdate安装包
warning: /mnt/Packages/ntpdate-4.2.6p5-1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... ########################################### [100%]
package ntpdate-4.2.6p5-1.el6.x86_64 is already installed
    NTP配置文件所在位置
 [root@linl_S ~]# ls /etc/ntp.conf
/etc/ntp.conf
3)启动NTP服务
 [root@linl_S ~]# service ntpd start          #启动ntp服务
Starting ntpd: [ OK ]
[root@linl_S ~]# netstat -anptu |grep 123 #查看端口123是否开放
udp 0 0 10.0.0.15:123 0.0.0.0:* 5846/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 5846/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 5846/ntpd
udp 0 0 fe80::20c:29ff:fea9:c1ae:123 :::* 5846/ntpd
udp 0 0 ::1:123 :::* 5846/ntpd
udp 0 0 :::123 :::* 5846/ntpd
[root@linl_S ~]# chkconfig ntpd on #开机自启动
 

实战1:手动同步NTP时间服务器

1)在lin_S服务器上查看可用的NTP时间服务器

 [root@linl_S ~]# vi /etc/ntp.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.rhel.pool.ntp.org iburst #找一个可以使用的NTP时间服务器
server 1.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
server 3.rhel.pool.ntp.org iburst
2)在lin_C客户端上与NTP时间服务器进行同步

 [root@linl_C ~]# ntpdate 0.rhel.pool.ntp.org
22 May 22:04:41 ntpdate[5733]: adjust time server 202.118.1.130 offset 0.027428 sec
 
拓展:
在lin_S服务端(已启动NTP服务)与NTP时间服务器进行同步会报错。
 [root@linl_S ~]# ntpdate 0.rhel.pool.ntp.org
22 May 22:06:17 ntpdate[2464]: the NTP socket is in use, exiting
问题分析:
出现该错误的原因是lin_S服务器正在运行ntpd服务,就不能用ntpdate来手动更新时间了。
解决方法:
关闭ntpd服务
 [root@linl_S ~]# service ntpd stop
Shutting down ntpd: [ OK ]
[root@linl_S ~]# ntpdate 0.rhel.pool.ntp.org
22 May 22:13:27 ntpdate[2495]: adjust time server 202.118.1.130 offset -0.068183 sec
 

实战2:搭建内网NTP服务器,内网服务器通过此NTP服务器进行时间同步

1)修改NTP配置文件
      蓝色底纹部分为增加项

 [root@linl_S ~]# vi /etc/ntp.conf
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict -6 ::1
restrict 10.0.0.0 mask 255.255.255.0 #允许10.0.0.0 网段中的服务器访问本ntp服务器进行时间同步
restrict 10.0.0.16 #允许单个IP地址访问本ntp服务器
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 210.72.145.44 #指定本ntp服务器的上游ntp服务器为210.72.145.44,并且设置为首先服务器。同步时间为:从上到下,写的越靠上,优先级越高。(此服务器同步不了时间,寻找下一个ntp服务器)。此IP地址是中国国家授时中心ntp服务器。
server 133.100.11.8 #当上面服务器同步不了,则寻找第二个。此IP地址是日本福冈大学ntp服务器。
server 0.rhel.pool.ntp.org iburst
server 1.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
server 3.rhel.pool.ntp.org iburst
server 127.127.1.0      #local clock 如果上面的服务器都无法同步时间,就和本地系统时间同步。127.127.1.0在这里是一个IP地址,不是网段。
fudge 127.127.1.0 stratum 10 #127.127.1.0 为第10层。ntp 和127.127.1.0同步完后,就变成了11层。 ntp是层次阶级的。同步上层服务器的stratum 大小不能超过或等于16。
2)启动ntpd服务

 [root@linl_S ~]# /etc/init.d/ntpd start
Starting ntpd: [ OK ]
[root@linl_S ~]# netstat -ln |grep 123
udp 0 0 10.0.0.15:123 0.0.0.0:*
udp 0 0 127.0.0.1:123 0.0.0.0:*
udp 0 0 0.0.0.0:123 0.0.0.0:*
udp 0 0 fe80::20c:29ff:fea9:c1ae:123 :::*
udp 0 0 ::1:123 :::*
udp 0 0 :::123 :::*
3)查看ntpd服务状态
指令“ntpq -p”可以列出目前我们的NTP与相关的上层NTP的状态,以上的几个字段的意义如下:
remote:即remote - 本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先。
refid:参考的上一层NTP主机的地址
st:即stratum阶层
poll:下次更新在几秒之后
offset:时间补偿的结果

 [root@linl_S ~]# ntpq -p         #列出本NTP服务器与上游服务器的连接状态
remote refid st t when poll reach delay offset jitter
==============================================================================
210.72.145.44 .INIT. 16 u - 64 0 0.000 0.000 0.000
133.100.11.8 .INIT. 16 u - 64 0 0.000 0.000 0.000
*dns1.synet.edu. 202.118.1.47 2 u 32 64 3 60.058 7.261 6.860
news.neu.edu.cn .INIT. 16 u - 64 0 0.000 0.000 0.000
202.118.1.130 .INIT. 16 u - 64 0 0.000 0.000 0.000
42.96.167.209 .INIT. 16 u - 64 0 0.000 0.000 0.000
LOCAL(0) .LOCL. 10 l 96 64 2 0.000 0.000 0.000
[root@linl_S ~]# ntpstat #列出是否与上游服务器连接。需要过5分钟
synchronised to NTP server (202.112.29.82) at stratum 3 #可以看到我们当前在3层
time correct to within 257 ms #ms 毫秒是一种较为微小的时间单位,是一秒的千分之一。
polling server every 64 s
4)客户端同步时间

 [root@linl_C ~]# date -s "2015-5-23 11:30"    #先设置一个错误的时间点
Sat May 23 11:30:00 CST 2015
[root@linl_C ~]# ntpdate lin_S #进行ntp时间同步
23 May 11:34:10 ntpdate[6686]: step time server 10.0.0.15 offset 31622622.275270 sec
[root@linl_C ~]# date
Mon May 23 11:34:16 CST 2016 #时间同步成功
常见错误:如下所示。
其实,这不是一个错误。而是由于每次重启NTP服务器之后大约要3-5分钟客户端才能与server建立正常的通讯连接。当此时用客户端连接服务端就会报这样的信息。一般等待几分钟就可以了。
 [root@linl_C ~]# ntpdate lin_S
23 May 11:38:02 ntpdate[6694]: no server suitable for synchronization found
5)和NTP相关的配置文件
/etc/sysconfig/clock        #这个是linux 的主要时区设定文件。每次开机后,Linux会自动的读取这个文件来设定自己系统所默认要显示的时间。
 [root@linl_S ~]# cat /etc/sysconfig/clock
# The time zone of the system is defined by the contents of /etc/localtime.
# This file is only for evaluation by system-config-date, do not rely on its
# contents elsewhere.
ZONE="Asia/Shanghai"
 
拓展1:linux系统时间和BIOS时间是不是一定一样?
查看硬件BIOS时间:
hwclock -r    读出BIOS的时间参数
hwclock -w    将当前系统时间写入BIOS中
 [root@linl_C ~]# date -s "2016-5-22 13:50"
Sun May 22 13:50:00 CST 2016
[root@linl_C ~]# hwclock -r
Mon 23 May 2016 01:53:50 PM CST -0.110948 seconds
[root@linl_C ~]# hwclock -w
[root@linl_C ~]# hwclock -r
Sun 22 May 2016 01:50:48 PM CST -0.783098 seconds #已将系统date时间写入到BIOS时间
 
拓展2:不同机器之间的时间同步
为了避免主机时间因为长期运作下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。
同步时间,可以使用ntpdate命令,也可以使用ntp服务。
方法一:使用ntpdate 比较简单。格式如下:
 [root@linl_C ~]# ntpdate lin_S
23 May 19:50:44 ntpdate[7507]: step time server 10.0.0.15 offset 1.239826 sec
但这样的同步,只是强制性的将系统时间设置为ntp 服务器时间。只是治标不治本。所以,一般配合cron命令,来进行定期同步设置。比如,在crontab 中添加:
 [root@linl_C ~]# crontab -e
0 12 * * * /usr/sbin/ntpdate lin_S
方法二:使用ntpd 服务进行同步。
要注意的是,ntpd 有一个自我保护设置:如果本机与上源时间相差太大,ntpd 不运行。所以新设置的时间服务器一定要先ntpdate 从上源取得时间初值。然后启动ntpd 服务。

部署NTP服务器进行时间同步的更多相关文章

  1. CentOS 7.2部署NTP服务器实现时间同步

    CentOS 7.2部署NTP服务器实现时间同步 [日期:2017-12-18] 来源:Linux社区  作者:梁明远 [字体:大 中 小]   1. 前言 对于容器编排系统,前段时间主要研究kube ...

  2. Centos7部署ntp服务器同步时间以及直接将本地时间同步为北京时间

    一.查看配置 查看时区列表: timedatectl list-timezones|grep Asia 查看当前时间: date 查看当前设置: [root@localhost ~]# timedat ...

  3. Linux配置NTP服务器,时间同步

    当服务器多了,时间准确与否,一致与否是个大问题.虽然这个问题总是被忽略,但是统一一致的时间是很有必要的.下面说一下在局域网内配置Linux时间服务器的方法. 配置的环境及要求: 假设在192.168. ...

  4. centos7.2 配置内网ntp服务器进行时间同步

    (一)修改/etc/ntp.conf 配置文件,注意红色部分,其他部分不需要改  ########################################################### ...

  5. CentOS7部署ntp服务器

    主机 角色 192.168.48.128 Server 192.168.48.129 Client 192.168.48.130 Client 所有主机安装ntp服务 yum install -y n ...

  6. ntp服务器同步时间详细配置

    部署NTP服务器进行时间同步   NTP服务端:linl_S    IP:10.0.0.15 NTP客户端:lin_C    IP:10.0.0.16 NTP服务概述 1.原理 NTP(Network ...

  7. L01-RHEL6.5中部署NTP(ntp server + client)

    RHEL6.5集群中部署NTP NTP全称为Network Time Protocol,即网络时间协议.一般在Linux系统中用来同步集群中不同机器的时间. 本文描述的ntp服务部署框架如下图示 如上 ...

  8. 95、配置ntp服务器

    95.1.ntp简介: ntp服务使用的是udp的123端口,如果开启了防火墙要记得放开这个端口: NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步 ...

  9. 使用阿里云镜像站NTP服务搭建NTP服务器(基于CentOS 7系统)

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 一.NTP服务器介绍 网络时间协议(Network Time Protocol,NTP)服务器,也就是日常所说的NTP服务器,用来提供同步时间服务 ...

随机推荐

  1. MyEclipse项目的jquery.js发生[Multiple markers at this line - Missing semicolon]的解决方案

    问题描述: 导入jquery库后,发现提示错误信息:Multiple markers at this line - Missing semicolon,如下截图所示: 解决方案: 选中该jquery. ...

  2. c++ STL中的next_permutation

    default (1) template <class BidirectionalIterator> bool next_permutation (BidirectionalIterato ...

  3. Linux FreeTDS的安装与配置

    Linux FreeTDS的安装与配置 一.简介 官方网站:http://www.freetds.org 版本:0.64 下载地址:http://ibiblio.org/pub/Linux/ALPHA ...

  4. TCP 的那些事儿(上)(转)

    原文地址:http://kb.cnblogs.com/page/209100/ TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面.所以学习TCP本身是个比较痛苦的过 ...

  5. 给自己的程序添加BugReport

    转载:https://www.easyicon.net/(免费icon) 转载:https://www.codeproject.com/Articles/5260/XCrashReport-Excep ...

  6. topcoder srm 445 div1

    problem1 link 这个的结论是只需要考虑坐标是整数或者是整数.5,比如(2.5,3),(4,3.5),(1.5,4.5)这样的时候.这个详细证明起来应该挺麻烦的.这里有一些讨论. probl ...

  7. What are the differences between Flyweight and Object Pool patterns?

    What are the differences between Flyweight and Object Pool patterns? They differ in the way they are ...

  8. 【系列教程1】Gradle入门系列三:依赖管理

    在现实生活中,要创造一个没有任何外部依赖的应用程序并非不可能,但也是极具挑战的.这也是为什么依赖管理对于每个软件项目都是至关重要的一部分. 这篇教程主要讲述如何使用Gradle管理我们项目的依赖,我们 ...

  9. 查找第K大的数

    类快排 第一种方法 o(n) #include <bits/stdc++.h> using namespace std; const int N = 1000; int s[N]; int ...

  10. P4609 [FJOI2016]建筑师

    思路 裸的第一类斯特林数,思路和CF960G相同 预处理组合数和第一类斯特林数回答即可 代码 #include <cstdio> #include <cstring> #inc ...