下配置NTP服务器

前言:

(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。

中国大概能用的NTP服务器地址  http://www.pool.ntp.org 是NTP的官方网站,在这上面我们可以找到离我们城市最近的NTP Server. NTP建议我们为了保障时间的准确性,最少找两个个NTP Server

默认NTP服务端口:

    UDP/123

本文配置的NTP工作模式:

使用client/server方式,该方式适用于一台时间服务器接收上层时间服务器的时间信息,并提供时间信息给下层用户。

二、配置方法:

设置时区

根据不同系统有所不同,centos里面只有上海,设置如下:

设置时区为重庆

 

、ntp服务安装

服务在CentOS6.x中式默认安装的软件包,可用rpm -qa |grep ntp检查是否安装,如果未安装可使用如下命令安装与删除NTP服务器软件包

# rpm -qa|grep ntp  
 ntpdate-4.2.6p5-1.el6.centos.x86_64 
 ntp-4.2.6p5-1.el6.centos.x86_64

确认是否安装NTP软件包,如果没有请使用

#yum -y install ntp

、ntp服务配置

服务安装完成后,需要修改ntp服务配置文件/etc/ntp.conf

服务的启动、暂停

属于system V服务,其启动、暂停相关命令如下:

启动

    service ntpd start

停止

    Service ntpd stop

重新加载

    service ntpd reload

查看当前启动状态

    service ntpd status

服务自动加载

设置ntp服务下一次开机运行状态可通过命令配置

在运行级别2、3、4、5上设置为自动运行

   chkconfig ntpd on

在运行级别2、3、4、5上设置为不自动运行

    chkconfig ntpd off

在运行级别3、5上设置为自动运行

    chkconfig ntpd --level 35 on

在运行级别3、5上设置为不自动运行

chkconfig ntpd --level 35 off

配置信息

运行一个NTP Server不需要占用很多的系统资源,所以也不用专门配置独立的服务器,就可以给许多client提供时间同步服务, 但是一些基本的安全设置还是很有必要的

那么这里一个很简单的思路就是第一我们只允许局域网内一部分的用户连接到我们的服务器. 第二个就是这些client不能修改我们服务器上的时间。

关于权限设定部分

权限的设定主要以 restrict 这个参数来设定,主要的语法为:

地址 mask 子网掩码 参数

其中 IP 可以是IP地址,也可以是 default ,default 就是指所有的IP 

参数有以下几个:

:关闭所有的 NTP 联机服务

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

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

:不提供客户端的时间查询

注意:如果参数没有设定,那就表示该 IP (或子网)没有任何限制!

在/etc/ntp.conf文件中我们可以用restrict关键字来配置上面的要求

查看ntp.conf配置文件如下:

修改/etc/ntp.conf文件

系统默认去掉#号配置/etc/ntp.conf如下:

driftfile /var/lib/ntp/drift 
restrict default kod nomodify notrap nopeer noquery 
restrict -6 default kod nomodify notrap nopeer noquery 
restrict 127.0.0.1  
restrict -6 ::1 
server 202.120.2.101 prefer 
includefile /etc/ntp/crypto/pw 
keys /etc/ntp/keys

自行设置权限

restrict default kod nomodify notrap nopeer noquery //首先我们对于默认的client拒绝所有的操作
restrict default ignore //设置默认策略为不允许任何主机进行时间同步
restrict 127.0.0.1 //然后允许本机地址一切的操作
restrict 192.168.108.0 mask 255.255.255.0 nomodify  //最后我们允许局域网内所有client连接到这台服务器同步时间.但是拒绝让他们修改服务器上的时间
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap //允许任何主机跟进行时间同步
restrict 202.120.2.101 //允许202.120.2.101主机跟进行时间同步

设置例子

设置访问权限

记录上次的NTP server与上层NTP server联接所花费的时间

restrict 192.168.108.31 mask 255.255.255.0 nomodify 
 restrict 192.168.108.32 mask 255.255.255.0 nomodify 
 restrict 192.168.108.33 mask 255.255.255.0 nomodify 
 restrict 192.168.108.36 mask 255.255.255.0 nomodify

上的时间服务器作为内部标准时间来源

restrict 202.112.31.197 nomodify notrap noquery

设置此服务器同上层服务器做时间同步的IP地址,prefer意味着首选IP地址

设置上层服务器做同步ip地址

地址

这行是时间服务器的层次。设为0则为顶级,如果要向别的NTP服务器更新时间,请不要把它设为0

keys /etc/ntp/keys

指定NTP服务器日志文件

设置ntp日志的path

statsdir /var/log

logfile /var/log/ntp.log

)修改/etc/ntp/step-tickers文件,内容如下(当ntpd服务启动时,会自动与该文件中记录的上层NTP服务进行时间校对)

    202.112.31.197

)修改/etc/sysconfig/ntpd文件,内容如下:

允许BIOS与系统时间同步,也可以通过hwclock -w 命令

   SYNC_HWCLOCK=yes

)在配置完成并重新启动服务后,可通过ntpstat 命令显示本机上一次与上层ntp服务器同步时间的情况,也可以使用ntpq -p 查看本机与上层ntp服务器通信情况

图形界面配置NTP

图形界面下直接用system-config-date, 在“Network Time Protocol”选项页指定NTP服务器后勾选“Synchronize system clock before starting service”,将ntpd服务设置为自动运行即可。

客户端访问

)Linux客户端可通过图形界面进行配置,也可以通过ntpdate命令立即与NTP服务器及你行时间校对,或者配置ntp.conf 
     ntpdate 192.168.0.10 
)

Windows客户端,只需双击任务栏右下角的时钟,选择“Internet时间”选项页,输入NTP服务IP地址或FQDN,并勾选“自动与Internet时间服务器同步”即可。

默认7天自动更新一次,可通过修改注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient\SpecialPollInterval  默认单位为妙,修改后重新启动即可生效

管理命令

–p     #查看本机和上层服务器的时间同步结果

可以用來追踪某台时间服务器的时间对应关系

客户端要和NTP server进行时钟同步。

查看ntp日志

也可以查看一些同步状态

监测服务器的运行查NTP源

监测服务器的运行查NTP源

Every 2.0s: ntpq -p                                     Sun Dec  2 00:05:31 2012 
  
      remote           refid      st t when poll reach   delay   offset  jitter  
 dns.sjtu.edu.cn 202.112.31.197   3 u    4   64   77   14.668  1907019 8528448  
  dns2.synet.edu. .INIT.          16 u    -   64    0    0.000    0.000   0.000

现在我就来解释一下其中的含义

它指的就是本地机器所连接的远程NTP服务器

它指的是给远程服务器(e.g. 193.60.199.75)提供时间同步的服务器

远程服务器的层级别(stratum). 由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端. 所以服务器从高到低级别可以设定为1-16. 为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的.

这个.....我也不知道啥意思^_^

我个人把它理解为一个计时器用来告诉我们还有多久本地机器就需要和远程服务器进行一次时间同步

本地机和远程服务器多少时间进行一次同步(单位为秒). 在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调整到正确的时间范围.之后poll值会逐渐增大,同步的频率也就会相应减小

这是一个八进制值,用来测试能否和服务器连接.每成功连接一次它的值就会增加

从本地机发送同步要求到服务器的round trip time

这是个最关键的值, 它告诉了我们本地机和服务器之间的时间差别. offset越接近于0,我们就和服务器的时间越接近

这是一个用来做统计的值. 它统计了在特定个连续的连接数里offset的分布情况. 简单地说这个数值的绝对值越小我们和服务器的时间就越精确

配置客户端

客户端: (局域网内对时间有要求的机器)

echo “00 */1 * * * root /usr/sbin/ntpdate 192.168.200.240;/sbin/hwclock -w”>>/etc/crontab

每小时同NTP server进行一次时钟同步,并写入本机BIOS