NTP时间服务搭建、使用及常见问题

NTP相关的文章到处都是,但是实在是强迫症发作,看不得乱七八糟逻辑混乱的技术内容。所以整理一个关于NTP服务器的搭建、使用和常见问题的信息汇总。这篇还是一样主要从实务角度出发描述NTP时间服务,原理不会讲的太多,目的还是一样,照着做,就能完成这项工作,不灵可以mail我。
1 NTP服务器的搭建
1.1 操作系统安装
如果想不过脑的使用本文中的配置文件,就装个一模一样的操作系统吧,RHEL 4.8 32bit,使用基于VMware的虚拟机资源池实现中的自动工具,只是几分钟的事儿。如果你的安装文件不包括ntp服务,要记得装一个。
[root@ntp ~]# cat /etc/redhat-release
Red Hat Enterprise Linux AS release 4 (Nahant Update 8)
[root@ntp ~]# uname -a
Linux ntp.citicsinfo.com 2.6.9-89.ELsmp #1 SMP Mon Apr 20 10:34:33 EDT 2009 i686 i686 i386 GNU/Linux
[root@ntp ~]# rpm -qa | grep -i ntp-
ntp-4.2.0.a.20040617-8.el4_7.1
[root@ntp ~]# service ntpd status
ntpd (pid 8960) 正在运行...
1.2 编辑NTP配置文件
编辑/etc/ntp.conf连接,使用国家授时中心NTP服务(210.72.145.44)、北京邮电大学NTP服务(s1a.time.edu.cn)和上海交通大学NTP服务(ntp.sjtu.edu.cn)作为外部事件源,一般情况下国家授时中心这个是连不通的,所以连的都是第二顺位的北京邮电大学NTP服务。
[root@ntp ~]# cat /etc/ntp.conf
restrict default nomodify notrap noquery
restrict 127.0.0.1
#在这里给出你希望能够访问此时间服务的服务器的子网机器掩码
restrict 10.0.0.0 mask 255.0.0.0 nomodify notrap
restrict 172.0.0.0 mask 255.0.0.0 nomodify notrap
#国家授时中心NTP服务
server 210.72.145.44 prefer
restrict 210.72.145.44 mask 255.255.255.255 nomodify notrap noquery
#北京邮电大学NTP服务
server s1a.time.edu.cn
restrict s1a.time.edu.cn mask 255.255.255.255 nomodify notrap noquery
#上海交通大学NTP服务
server ntp.sjtu.edu.cn
restrict ntp.sjtu.edu.cn mask 255.255.255.255 nomodify notrap noquery
fudge   127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay  0.008
keys            /etc/ntp/keys
restrict 0.rhel.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 1.rhel.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
restrict 2.rhel.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
#把日志和统计数据配置上,以便trouble shooting
statsdir /var/log/ntp/
logfile /var/log/ntp/ntp.log
1.3 重启NTP服务和查看运行状况
改了配置文件,肯定要重启一下daemon的,重启完了查看一下运行状态
[root@ntp ~]# service ntpd restart
NTP时间服务搭建、使用及常见问题_第1张图片
上述输出含义如下:
  • 第一列:*表示响应的NTP服务器和最精确的服务器;+表示响应请求的NTP服务器;空格表示没有响应的NTP服务器
  • remote列:响应请求的NTP服务器的名称
  • refid列:此NTP服务器使用的更高一级服务器的名称
  • st列:正在响应请求的NTP服务器的级别
  • when列:上一次成功请求之后到现在的秒数
  • poll列:本地和远程服务器多少时间进行一次同步,单位秒, 在一开始运行NTP的时候这个poll值会比较小,服务器同步的频率大,可以尽快调整到正确的时间范围,之后poll值会逐渐增大,同步的频率也就会相应减小
  • reach列:用来测试能否和服务器连接,是一个八进制值,每成功连接一次它的值就会增加
  • delay列:从本地机发送同步要求到ntp服务器的往返时间
  • offset列:主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒,offset越接近于0,主机和ntp服务器的时间越接近
  • jitter列:统计了在特定个连续的连接数里offset的分布情况。简单地说这个数值的绝对值越小,主机的时间就越精确
2 NTP服务设置的使用
2.1 Linux操作系统
Linux的NTP设置在图形界面的日期/时间属性里,不同的Linux可能稍有不同,详细设置见下图:
NTP时间服务搭建、使用及常见问题_第2张图片
2.2 Windows操作系统
Windows的NTP设置在图形界面的日期/时间属性里,不同的Windows可能稍有不同,详细配置见下图:
NTP时间服务搭建、使用及常见问题_第3张图片
3 常见问题
3.1 NTP服务设置失败问题排查

  • 网络端口未开放:NTP服务器需要对所有NTP客户端开放UDP123端口
  • 时间相差过多:如果系统当前时间与NTP服务器的时间(即正常北京时间,可用ntpdate -q ntp服务域名或IP查询)相差过多,需先调整到较接近的时间,NTP协议才能生效
  • 无法解析域名:可修正NDS配置或使用IP进行配置
3.2 Linux/Unix无法登陆图形界面,如何通过shell设置NTP服务
如果Linux/Unix没有图形界面,可采用下面两种方法的任意一种设置时间服务:
1) 修改配置文件/etc/ntp.conf
首先手动同步时间:
#ntpdate ntp服务域名或IP
编辑NTP配置文件:
#vi /etc/ntp.conf
添加如下两行:
restrict ntp服务域名或IP
server ntp服务域名或IP
重启NTP服务:
#service ntpd start
将NTP服务配置为开机自启动:
#chkconfig ntpd on
2) 使用crontab进行定时同步
#crontab -e
添加类似下面的内容:
10 5 * * * root (/usr/sbin/ntpdate ntp服务域名或IP && /sbin/hwclock -w) &> /dev/null
3.3 NTP同步周期
  • Win2k3和Win2k8默认的时间同步间隔为7天,Win7和WinXP默认的时间同步间隔为1个小时,可修改如下注册表项进行修改,单位为秒:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
  • 如果使用图形界面或ntp.conf配置Linux系统的NTP客户端,则默认同步周期初始为64秒,随着时间逐步稳定后,同步周期将稳定于1024秒。
  • 如果使用crontab进行定时同步,同步周期为crontab执行周期。
3.4 Linux/Unix重启后系统时间不同步
操作系统在重启后,会使用系统硬件时钟,而NTP是不会自动更新硬件时钟的,如需进行更新,需在同步ntp时间后,再执行hwclock -w将操作系统时钟写入硬件时钟。
3.5 Windows没有Internet时间选项
如果Windows服务器加入了域,则时间日期属性中将没有Internet时间(因为时间将自动与域服务器同步),此时,如仍想使用时间服务,可使用NTPClock或类似工具:
NTP时间服务搭建、使用及常见问题_第4张图片
3.6 系统时间修改方式
当系统时钟超过了NTP服务时钟(ntpdate -q ntp.citicsinfo.com)时,对系统时钟进行调整会导致数据库或其他存在磁盘IO的应用出现问题。为避免此类问题,在此情况下,需停止全部系统服务后,将系统时钟手动调回ntp服务时间,再等待足够的时间(系统时钟运行到调整前的时间)后启动系统服务。

你可能感兴趣的:(IaaS)