一、原理

NTP是用来使系统和一个精确的时间源保持时间同步的协议。建议大家在自己管理的网络中建立至少一台时间服务器来同步本地时间,这样可以使得在不同的系统上处理和收集日志和管理更加容易,而且不会出错。

官方网站是:。从上面我们可以获得Linux下的源代码,以及互联网上的公开的NTP服务器,其地址列表如下:

http://ntp.isc.org/bin/view/Servers/NTPPoolServers

http://ntp.isc.org/bin/view/Servers/WebHome

NTP服务,主要包括四个文件:

/etc/ntp.conf:NTP服务的主配置文件。

/usr/share/zoneinfo:规定了各主要时区的时间设定文件,如上海/usr/share/zoneinfo/Asia/Shanghai

/etc/sysconfig/clock:Linux的主要时区设定文件,每次启动后Linux操作系统就读取这个文件来设定系统预设要显示时间,如:Zone=Asia/Shanghai

/etc/localtim:本地系统的时间设定文件。

相关命令:

/bin/date:Linux系统上面的日期与时间修改及输出命令

/sbin/hwclock:主机的BIOS时间与Linux系统时间分开date 这个指令调整后,只是影响系统时间。如果更改BIOS时间,需要用hwlock命令

/usr/sbin/ntpd:NTP服务的守护进程

/usr/sbin/ntpdata:NTP客户端用来连接NTP服务器命令文件

/usr/sbin/ntpq:标准网络计时协议(NTP)查询程序

二、NTP服务器的运行方式

NTP服务器的使用方式包括,固定连接和动态连接方式。在固定连接中,客户端仅仅接收指定的服务器端的连接,无论服务端是否正常连接他都不会去换另外的服务器端接收时间。一般客户/服务器方式为这种模式。另外一直为动态连接,客户端在不停接收服务器端的广播信息,当一台服务器停止服务,只要有服务器广播出来的正确可靠的时间信息,客户端就可以正常的更新时间。一般为广播方式连接。

1)服务器/客户端方式

客户服务器方式为在互联网上使用最为广泛的一种方法,在设定服务器后,他可以灵活的配置客户端,让客户端选择是否使用NTP服务器或使用那台NTP服务器。客户服务器方式使用常用的RPC(remote-procedure-call)方式来传输时间信息。他们运行的过程为,客户端发出时间请求给服务器端,然后根据服务器端的答复来调节时间。

一般在客户端可以定义他们同步时间的间隔,和他们请求最大和最小的时间间隔。客户端会根据自己时钟时间和NTP服务器时间进行比对,如果客户端本机时钟比较准确,他们查询的时间间隔就会变长,如果本机时间出现误差较大,客户端会在比较短的时间内做出时间请求,来保障客户端时间的精确度。

2)广播/多播方式

多播和广播方式利用在以太网上的广播和多播协议来进行时间同步,时间服务器会定时发出广播和多播信息给指定的网段。使用广播和多播需要网络设备支持该协议,同时客户端也支持该协议。可以使用multicasting和manycasting在不同网段进行广播信息,来达到在包含多个网段的复杂网络中使用广播和多播来提供NTP服务。

3)主动/被动方式

主动/被动方式最多使用在集群系统中,由于集群系统对同一集群内的所有服务器的时间同步要求比较严格,他们相互配置为NTP服务器端和客户端,在不停的提供时钟同步服务,当其中的一台服务器出现停顿时不会影响到其他服务器的时间同步。可以说时互备的方式来进行时间同步服务。

举例:以Server和Client的方式通讯的过程是:

1、首先,主机需要启动这个NTP服务;

2、Client 会向 NTP Server

发送出调校时间的 message;

3、然后

NTP Server 会送出目前的标准时间给 Client;

4、Client 接收了来自 Server

的时间后,会据以调整自己的时间,以实现网络校时。

虽然网络上有很多公开的NTP服务器,但在使用的时候需要注意。由于网络传输是有延时的,当Client对一个延时比较厉害的服务器发送请求后,直到最后Client获得时间,期间可能会出现一个由于网络延时导致的的时间差。所以,建议大家选择离自己最近的NTP服务器作为校验的标准。

三、配置

安装rpm -ivh

ntp*.*.*.i386.rpm

◎规划

很多时候,作为提供数据应用的服务器都不能直接联通互联网。此时,我们就需要在局域网内部署一台专用于时间同步的机器(通常是网管机),这样,服务器通过局域网对网管机进行时间同步即可。当然,如果你只要保证多台服务器之间的时间一致,那可以更简单,只要其中一台服务器为基准,然后其他服务器对它做同步,那是最简单的。

1、配置服务端

NTP服务端的配置比较简单,只有一个配置文件:/etc/ntp.conf。而且文件中已经有很多例子可以参考,描述一下:

→语法1:

restrict IP mask 掩码 参数

IP是允许或不允许访问的地址,配合掩码可以对一段网段使用;

参数包括:

ignore:关闭所有NTP联网服务

nomodify:客户端不能修改服务端的时间,但可以作为客户端的校正服务器

notrust:除通过认证外,否则指定的网段为不信任网段

noquery:不提供时间查询

(若不设置参数,表示对该IP或网段没有任何限制)

而配置文件中有几个是默认设置好的,包括:

restrict default nomodify notrap

noquery

#default就是

0.0.0.0,也就是关闭所有

restrict 127.0.0.1

#这是允许本级查询

→语法2:

server [IP|FQDN] [prefer]

IP|FQDN就是给出作为你服务端同步的基准NTP服务器

prefer是用于指定主次服务器的,有标识的就是主要服务器咯

而配置文件默认的包括:

server 0.pool.ntp.org

server 1.pool.ntp.org

server 2.pool.ntp.org

这些都是比较公开的、常用的NTP服务器,也可以改为你指定的服务器,如:

server 210.72.145.44 prefer (中国国家授时中心服务器地址 prefer表示优先

注意把默认的server更改成这样)

server 218.21.130.42 (cn.pool.ntp.org的IP)

其他:

server

127.127.1.0

# local clock

fudge

127.127.1.0 stratum 10

driftfile /var/lib/ntp/drift

broadcastdelay 0.008

要注意的就是driftfile定义,driftfile 规定我们的主机在与Time

Server沟通时所花费的时间,时间记录在

driftfile 后面接的文件内。

另:在NTP服务器端的默认配置文件为/etc/ntp.conf文件(根据不同OS可能在不同位置,如在Solaris下可能为

/etc/inet/ntp.conf)。

配置文件主要的四个参数:

server address [options ...]

peer address [options ...]

broadcast address [options ...]

manycastclient address [options ...]

这四个参数主要是指定NTP服务器使用的服务器名称和IP地址以及他们的运行模式。名称或地址可以是主机名、IP地址和DNS解析后的域名。

Server一般用于服务器端,该服务器不会去同步其他服务器时间,一般server后可以跟127.127.1.0 该地址代表本级的时钟,如果Server后跟其他服务器IP,表示会去同步其他时间服务器的地址。

Peer一般配置中表示,服务器接收其他服务器的地址,同时也会为其他设备提供NTP服务器。

Broadcast配置为广播地址。

Manycastclient配置为多播地址。

→添加:

这里就添加上允许访问这台服务器的IP或网段,在配置文件上增加:

restrict 192.168.228.0 mask 255.255.255.0

nomodify

这样,在192.168.228.0/24网段内的服务器就可以通过这台NTP Server进行时间同步了!

典型的配置文件/etc/ntp.conf举例:

restrict default ignore

#忽略所有ntp要求封包

restrict 127.0.0.1

restrict 192.168.1.0 mask 255.255.255.0 nomodify

notrap

#允许内网通讯

restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap

noquery notrust

#禁止其他ip来更新时间

server 0.pool.ntp.org

server 1.pool.ntp.org

server 2.pool.ntp.org

#注:server选项指定了使用哪一个服务器,每一个服务器都独立一行,如果某一台服务器上指定了

prefer (偏好) 参数

restrict 0.pool.ntp.org mask 255.255.255.255

nomodify notrap noquery

restrict 1.pool.ntp.org mask 255.255.255.255

nomodify notrap noquery

restrict 2.pool.ntp.org mask 255.255.255.255

nomodify notrap noquery

#如果restric后面不带参数,表示可以允许全部权限.以上三个影响/etc/ntp/ step-tickers这个文件,它会随着/etc/ntp.conf文件的变化而变化。

server 127.127.1.0

# local clock

fudge 127.127.1.0 stratum 10

#优先级

driftfile /var/lib/ntp/drift

#driftfile 选项,则指定了用来保存系统时钟频率偏差的文件,

ntpd程序使用它来自动地补偿时钟的自然漂移,

从而使时钟即使在切断了外来时源的情况下,仍能保持相当的准确度

broadcastdelay 0.008

logfile /var/log/ntp.log

#定义日志信息

keys /etc/ntp/keys

2、启动NTP服务端

在启动NTP服务前,先对提供服务的这台主机手动的校正一次时间咯。(因为启动服务器,端口会被服务端占用,就不能手动同步时间了)

# ntpdate cn.pool.ntp.org

25 Apr 14:33:51 ntpdate[8310]: step time server

80.85.129.2 offset 6.655976 sec

然后,启动ntpd服务:

#

service ntpd start

查看端口:

# netstat

-ln|grep 123

udp

0

0 192.168.228.153: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 :::123

:::*

(待验证)自动启动的设定:

完成以上设定,确认运行无误以后:

# grep ntpdate /etc/defaults/rc.conf

>>/etc/rc.conf

# vi /etc/rc.conf

ntpdate_enable="YES" # Run

ntpdate to sync time on boot (or NO).

ntpdate_program="ntpdate" #

path to ntpdate, if you want a different one.

ntpdate_flags="clock.nc.fukuoka-u.ac.jp" # Flags to ntpdate

(if enabled).

3、设置客户端

NTP的客户端可以是Linux,也可以是通过软件在Windows上实现。

1)Linux客户端:

同步的方法非常简单,运行一个命令即可:

#

ntpdate 192.168.228.153

当然,这只是修改系统时间,你需要用hwclock

-w把系统时间写入硬件时间中。也可以用计划任务做定时更新:

#

crontab -e

0 0

* * * /usr/sbin/ntpdate 192.168.228.153;/sbin/hwclock

-w;

或者0 * * * * root ntpdate

[ntp server IP] >/dev/null

2>&1

如果想把同步好的时间写入BIOS里,就要设置/etc/sysconfig/ntp文件,将其中的SYNC_HWCLOCK=no更改为SYNC_HWCLOCK=yes。

2)Windows XP professional客户端:

可以用下面的命令进行:

NET TIME /SETSNTP:192.168.228.153

NET TIME /QUERYSNTP

NET START w32time

第一行是配置同步的服务器,第二行是察看设置结果,第三行是启动“Windows Time”服务。Windows Time服务默认是自动启动的,并会定时同步指定的服务器。

若系统是Home版本,可以通过日期/时间属性里面的Internet同步服务器,指定服务器地址为192.168.228.153即可。

四、可能出现的问题

虽然NTP服务的配置非常的简单,但总是可能出现问题的,可以从下面几方面入手:

1、相关命令

# ntptrace 服务器IP

可以最终NTP服务器的通讯路径

# ntpq -p

检查时间服务器同步的状态

2、检查配置文件

保证配置文件中没有使用ignore参数,如没有restrict default ignore等。

3、检查防火墙配置

由于NTP服务是使用UDP 123端口的,有防火墙的话,需要打开该端口。

4、常见错误

25 Apr 15:30:17 ntpdate[11520]: no server suitable

for synchronization found

这个提示最为常见,很多文章都介绍了ntp服务但并没有对该服务进行此处错误信息的详细解释。其实,这不是一个错误。而是由于每次重启NTP服务器之后大约要3-5分钟客户端才能与server建立正常的通讯连接。当此时用客户端连接服务端就会报这样的信息。一般等待几分钟就可以了!若之后还有问题,则才是真正有故障咯!

五、NTP中的命令说明

1)ntpd命令

ntpd命令为NTP服务的配置进程,同时ntpd命令可以配置ntp服务。执行时ntpd从配置文件/etc/ntp.conf中读取配置信息然后去执行该配置文件中指定的属性。

ntpd命令的参数选项使用方法:

ntpd [ -46aAbdDgLmnNqx ] [ -c conffile ] [ -f

driftfile ] [ -i jaildir ] [ -k keyfile ] [ -l logfile ] [ -p

pidfile ] [ -P priority ] [ -r broadcastdelay ] [ -s statsdir ] [

-t key ] [ -u user[:group] ] [ -U interface_update_interval ] [ -v

variable ] [ -V variable ]

2)ntpq命令

ntpq命令是用来查询ntp服务的命令,可以查询比较详细的信息,其中包含参数命令模式和交互命令模式。

ntpq [-inp] [-c command] [host] [...]

3)ntpdc命令

ntpdc是一个特殊的ntp查询命令

ntpdc [ -ilnps ] [ -c command ] [ host ] [ ...

]

4)ntptrace命令

ntptrace命令是追踪ntp服务传输信息的命令,可以查看服务的传输状况,查找ntp信息从那个服务器发出以及命令传输的过程。

ntptrace [ -vdn ] [ -r retries ] [ -t timeout ] [

server ]

ntp服务器安装和配置文件,NTP服务的安装、配置和使用相关推荐

  1. 块存储服务(Cinder)安装配置,这一篇就够了!

    本实验是一个比较综合的实验,需要结合前面所学的OpenStack基础环境安装配置,身份认证服务(Keystone)安装配置等一些基础的实验来做这个块存储服务(Cinder)安装配置实验.为了更好地理解 ...

  2. NFS介绍,NFS服务端安装配置,NFS配置选项

    2019独角兽企业重金招聘Python工程师标准>>> NFS介绍: NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网 ...

  3. 14.1 NFS介绍 14.2 NFS服务端安装配置 14.3 NFS配置选项

    2019独角兽企业重金招聘Python工程师标准>>> 第14章 NFS服务搭建与配置 14.1 NFS介绍 NFS(Network File System)即网络文件系统,是Fre ...

  4. svn教程----svn服务端安装配置

    svn服务端安装配置 1.两种服务端安装包 1.1.官方安装包 官方网站:http://subversion.apache.org/ 下载:http://subversion.apache.org/d ...

  5. 仪表盘服务(Dashboard)安装配置

    OpenStack项目中的Horizon仪表板服务组件是以Web界面形式展示各项服务的,OpenStack云系统管理员和终端用户可以通过仪表板管理各项资源和服务. Horizon仪表板服务组件通过Op ...

  6. mysql 多实例 独立配置文件_三、安装配置多实例MYSQL5.6-多独立配置文件方法

    三.安装配置多实例MYSQL5.6-多独立配置文件方法 1.准备工作 检查操作系统版本.内核版本.selinux是否关闭.防火墙策略.IP地址.主机名配置.host表配置.yum配置 上传cmake. ...

  7. SVN服务端安装配置

    SVN全称subvension,它是近年来崛起的版本管理工具,目前绝大多数软件公司都使用了它.SVN也是软件配置管理,所谓的软件配置管理实际就是对软件源代码进行控制和管理,合作开发.异地远程开发.版本 ...

  8. Linux下svn服务端安装配置

    早上看到一篇文章把VC(版本控制)讲的很好,狂神聊Git,SVN是集中式版本控制中心,git是分布式版本控制,Svn配置和使用: 安装svn yum -y install subversion 输入s ...

  9. mysql ha 安装 配置文件_Linux下环境安装配置Rose HA全攻略(图)

    如何在Linux环境下安装Rose HA.本文假设环境为Linux操作系统,采用9.2版本的Oracle数据库.下面我们看看,在Linux Oracle环境下如何安装和配置Rose HA. 首先将光盘 ...

  10. 文件服务器安装配置说明手册,FreeBSD全能服务器安装手册之文件服务器篇之A安装配置篇...

    FreeBSD全能服务器安装手册FTP篇之A安装配置篇 cd /usr/ports/ftp/pure-ftpd make WITH_WELCOMESG=yes WITH_UPLOADSCRIPT=ye ...

最新文章

  1. 如何判断一个字符串在JavaScript中是否包含某个字符?
  2. 适配器模式、代理模式、装饰器模式使用场景区别
  3. Netflix 工程师的生活 —— 40毫秒的案例
  4. 我们分析了成千上万的编程访谈。 这就是我们学到的东西。
  5. android- Auto Monitor Logcat
  6. Rancher Kubernetes Engine(RKE)正式发布:闪电般的Kubernetes安装部署体验
  7. zynq开发系列5:通过AXI GPIO的中断实现PL端按键控制PS端LED
  8. Python3入门机器学习经典算法与应用 第3章 numpy.array 中的运算
  9. 【2016-2017 ACM-ICPC, Egyptian Collegiate Programming Contest (ECPC 16) A】The game of Osho【SG函数+找规律】
  10. 【网络编程】同步、异步、阻塞和非阻塞
  11. meanshift算法学习(二):opencv中的meanshift
  12. 【ASO项目使用的技术】(例如:1、hook CFUserNotificationCreat 截取Header 部分信息、Message内容 进行任务处理2、设备信息的修改、清理数据3、js逆向)
  13. 测测是否适合学计算机,大学专业测评:测试自己适合什么专业
  14. KMP算法求next数组
  15. 基于Visual C++2010 与office2010开发办公自动化(14)-自定义excel2010工具栏
  16. coco2dx 游戏小包上架教程
  17. 如何在职场中更快地成长
  18. Linux下使用GPG(GnuPG)加密及解密文件
  19. 耐看娱乐更新招股书:前4个月营收降40% 阿里影业是股东
  20. 手机如何关闭微信“自动扣费”?

热门文章

  1. html 加载c盘下的图片,SpringBoot取本地(服务器)的图片展示在html页面解决办法...
  2. hive hue 中文乱码的问题
  3. c语言产生瑞利分布随机数,瑞利分布的随机数
  4. Linux 桌面玩家指南:03. 针对 Gnome 3 的 Linux 桌面进行美化
  5. LTE:PHR Power Headroom Report 功率余量上报
  6. 系统全面的认识Solr
  7. VC/MFC 编程经验
  8. 思科关闭日志_思科交换机日志管理
  9. vmd安装包_VMD分子模拟软件下载
  10. Android Studio第11课网络编程3(学习打卡Day17)