配置时间服务器 TimeServer

2015-08-17 0 By admin

时间的正确统一对服务器来说是很重要的,尤其是一些集群的系统架构。如果时间上出现问题,就会造成很大的隐患。

概述

常用的时间同步工具有ntpdate、ntpd和rdate。使用过程中各有优缺点。
1、ntpdate调整时间一步到位,根据时间服务器提供的时间,一次性的调整过来。每次要调整的时候,只需要执行命令就好。
2、ntpd服务慢慢地将时间校正过来;服务是运行在后台的。缺点:如果时间差大于1000s时,ntpd服务会停止工作;并且ntpd服务时间校正很慢。
3、rdate工具暂时没做记录笔记。

一、ntpdate 工具使用

如果使用IP地址为:9.3.149.107的NTP服务器设置本地日期和时间,
命令:ntpdate 9.3.149.107
指定调试参数方式 -d
判断 ntpdate 命令会产生什么结果(不产生实际的结果)。结果再现在屏幕上。这个标志使用无特权的端口。

二、ntpd 服务配置

配置文件:/etc/ntp.conf
启动参数文件:/etc/sysconfig/ntpd
调试命令:: ntpq -p | ntpstat | ntptrace

1、时间校正机制

ntpd服务校正时间过程中,会根据时间延迟的情况和服务配置的参数,选择不同的验证方式。

Offset(与服务器的时间差) 0-128ms 128ms-600s 600s-1000s 1000s以上
使用-X参数 微调 微调(速度大约是0.5ms/s,
调整600秒要14天左右)
跳跃 退出(加-g参数可忽略)
不使用-X参数 微调 跳跃 跳跃 退出(加-g参数可忽略)

2、服务配置文件说明

介绍ntpd服务的配置文件(ntp.conf)的配置参数。在配置过程中需要注意服务器设置的所属时区。

2.1、设置上层 NTP 服务器

利用server指令设置上层NTP服务器
server [IP or hostname] [prefer]
在server后端可以接IP或主机名称,perfer表示[优先使用]的主机。

2.2、以driftfile记录时间差值

driftfile [可以被ntpd写入的目录与档案]
NTP Server服务器本身的时间计算是依据BIOS的晶片震荡周期频率来计算的,但是这个数值与上层Time Server有误差。所以NTP这个后台守护进程(ntpd daemon)会自动的去计算我们自己主机的频率与上层Time server的频率,并且将两个频率的误差记录下来,记录在driftfile指令设置的文件中。该文件所记录的数值单位为:百万分之一秒(ppm)。

2.3、安全配置

restrict [你的IP] mask [netmask_IP] [parameter]
其中parameter 的参数有以下可选项:

  1. ignore:拒绝所有类型的NTP连接
  2. nomodify:用户端不能使用ntpc和ntpq来修改服务器的时间参数,但用户端可以获取时间信息
  3. noquery:用户端不能够使用ntpq、ntpc等指令来查询时间服务器,即不对此服务器提供服务
  4. notrap:不提供trap这个远程事件登录(remote event logging)的功能。
  5. notrust:拒绝没有认证的用户端。
  6. nopeer:不与其他同一层的ntp服务器进行时间同步

如果你没有在parameter的地方加上任何参数的话,这表示该IP或网段不受任何限制。
#默认的client拒绝所有的操作
restrict default kod nomodify notrap nopeer noquery
#然后允许本机地址一切的操作
restrict 127.0.0.1
#最后我们允许局域网内所有client连接到这台服务器同步时间.但是拒绝让他们修改服务器上的时间
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
把这三条加入到/etc/ntp.conf中就完成了我们的简单配置。

2.4、备用方案

外部时间服务器不可用时,以本地时间作为时间服务
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10

2.5、补充

ntpd 服务一般只会同步系统时钟的时间,如果我们想要将时间同步至硬件时钟上,可以在ntpd 服务的启动配置文件中添加SYNC_HWCLOCK=yes启动参数。