一、为何需要NTP服务器

    目前计算机网络中各主机和服务器等网络设备的时间基本处于无序的状态,随着计算机网络应用的

不断涌现,计算机的时间同步问题成为越来越重要的问题。以UNIX系统为例,时间的准确性几乎影响到

所有的文件操作。如果一台机器时间不准确,例如,在时间超前的机器上建立一个文件,用ls命令查

看,以当前时间减去所有显示的文件修改时间会得一个负值。这一问题对于网络文件服务器是一场灾

难,文件的可靠性将不复存在。

二、网络时间服务的实现方式

   网络时间服务的实现方式主要有以下3种

    (1)无线时钟

    服务器系统可以通过串口连接一个无线时钟,无线时钟接收GPS的卫星发射的信号来决定当前时间。

无限时钟是一个非常精确的时间源,但是需要花一定的费用。

    (2)时间服务器

    可以使用网络中的NTP时间服务器,通过这台服务器来同步网络中的系统时钟。

    (3)局域网内的同步

    如果是需要在本局域网内进行系统间的时钟同步,则可以使用局域网中任何一个系统的时钟。选择

局域网中一个节点的时钟作为‘权威的’时间源,然后其他节点只需要与这个时间源进行时间同步即

可。如果一个系统在局域网的内部,同时又不能使用无限时钟,那么这种方式是最好的选择。

三、NTP的工作模式

   1.主/被动对称(Broadcast/Multicast)模式:一对一的连接,双方均可同步对方或被对方同步。先

发出申请建立连接的一方工作在主动模式下,另一方工作在被动模式下。此模式适用于配置的时间服务器,可以为主机提供更高的精确度。

    2.客户端/服务器模式(Client/Server):与主/被动对称模式基本相同,唯一区别在于客户端可被

服务器同步,但服务器不能被客户端同步。

    3.广播模式:一对多的连接,不论客户端工作在何种模式下,服务器主动发出时间信息。客户端由

此信息调整自己的时间,此时网络延时可以忽略。因此在精确度上有损失,但可满足用户应用。广播模

式配置非常简单,但是精确度并不高。

四、配置Linux网络时间服务器

    1.安装时间服务器ntp服务

ntp_server adb 写入Android_操作系统

    2.启动时间服务器

ntp_server adb 写入Android_开发工具_02

    3.设置随系统启动

ntp_server adb 写入Android_时间服务器_03

    4.监听端口工作状态

ntp_server adb 写入Android_时间服务器_04

五、NTP服务的配置文件

 /etc/ntp.conf NTP服务的主要配置文件,不同的Linux版本文件所在的目录可能会不同。

规定时区的时间设置文件。中国大陆的设件/etc/share/zoneinfo/

                        Asia/Shanghai。

 /etc/sysconfig/clock  Linux的主要时区设置文件。每次启动后Linux操作系统会自动读取这个文件

                         来预设系统要显示的时间。

 例如这个文件的内容为‘ZONE=Asia/Shanghai'则表示Linux操作系统的时间设置用/usr/share/zonein

                        fo/Asia/Shanghai文件。

/etc/localtime本地系统的时间设置文件。如果clock文件中规定了使用的时间设置文件

为/usr/share/zoneinfo/Asia/Shanghai Linux操作系统就会将Shanghai这个文件复制一份。

为/etc/localtime 所以系统的时间显示就会以shanghai这个时间设置文件为准。

/bin/date Linux系统中的修改及输出日期与时间命令。

/sbin/hwclock  主机的BIOS时间与Linux系统时间是分开的,所以使用date命令调整时间之后,只要调

整了Linux的系统时间,还需要使用hwclock命令,才能将修改过的时间写入BIOS。这个命令必须有root

用户执行。

/usr/sbin/ntpd NTP服务的守护进程文件,需要启动它才能提供NTP服务。需要注意的是,这个命令默

认会引用/etc/ntp.conf里设置/usr/sbin/ntpdate NTP客户端用来连接NTP服务器的命令文件。

/usr/sbin/ntpd  标准的NTP网络时间协议查询程序

/sbin/clock    调整计算机内硬件时钟RTC执行这个命令可以显示现在时刻。调整硬件时钟的时间将系

统时间设成与硬件时钟的时间一致。

 5.2 NTP服务器的配置文件/etc/ntp.conf

restrict IP 地址 mask

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

.ignore,关闭所有的NTP联机服务;

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

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

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

  使用server参数设置上级时间服务器格式如下:

  server IP地址或域名[prefer]

  其中IP地址或域名为指定的上级时间服务器,如果在server参数后加上prefer,则表示NTP服务器主要

以其主机时间校正。

driftfile格式如下:driftfile 文件名

  注意:driftfile后面需要使用完整的路径文件名,不能是链接文件,并且文件的权限需要设置为ntpd守护进程且可以写入。

 5.3ntp.conf配置文件实例

 1)以Internet的时间服务器为时间服务器的时钟

  设置要求:以time.nist.gov为时间服务器,在ntp.conf中增加以下内容

  

ntp_server adb 写入Android_服务器_05

 2)以内部NTP服务器为数据服务器的时钟

  设置要求:仅为内部子网192.168.0.0/24(时间服务器IP地址是192.168.0.100)提供服务。

 

ntp_server adb 写入Android_操作系统_06

3)保存退出后启动NTP服务

ntp_server adb 写入Android_开发工具_07

4)如果每次启动系统时自动启动NTP服务

ntp_server adb 写入Android_服务器_08

5)

打开iptables防火墙123端口

   NTP服务器的端口是123,使用的是UDP协议,所以NTP服务器的防火墙必须对外开放UDP 123端口

   iptables -A INPUT -p UDP -i eth0 -s 192.168.0.0/24 --dport 123 -j ACCEPT

ntp_server adb 写入Android_网络_09

6)vim /etc/sysconfig/ntpd 添加一行

ntp_server adb 写入Android_网络_10

7)vim /etc/ntp/step-tickers添加一行

ntp_server adb 写入Android_时间服务器_11

8)查看NTP服务器工作情况

 查看123端口和NTP系统进程,主要查看UDP数据包

 

ntp_server adb 写入Android_操作系统_12

 

ntp_server adb 写入Android_服务器_13

9)NTP服务器与上层NTP服务器之间的关系