Chinaunix首页 | 论坛 | 博客
  • 博客访问: 575303
  • 博文数量: 89
  • 博客积分: 2383
  • 博客等级: 大尉
  • 技术积分: 970
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 23:02
个人简介

Scientific Linux是重新编译的Red Hat Enterprise Linux,由费米国家加速器实验室、欧洲核研究组织以及世界各地的大学和实验室共同开发。它旨在与Red Hat Enterprise Linux完全兼容,也强调自主方便的定制,用户可以根据自己的需求做相应修改,可以使用脚本或者Anaconda给自己定制最小化的安装模式。

文章分类

全部博文(89)

文章存档

2017年(1)

2016年(2)

2013年(2)

2012年(2)

2011年(16)

2010年(13)

2009年(46)

2008年(7)

我的朋友

分类: BSD

2009-01-04 08:16:15

NTP网络时间协议简介

NTP协议全称网络时间协议(Network Time Procotol)。它的目的是在国际互联网上传递统一、标准的时间。具体的实现方案是在网络上指定若干时钟源网站,为用户提供授时服务,并且这些网站间应该能够相互比对,提高准确度。

NTP最早是由美国Delaware大学的Mills教授设计实现的,从1982件最初提出到现在已发展了将近20年,2001年最新的NTPv4精确度已经达到了200毫秒。对于实际应用,又有确保秒级精度的SNTP(简单的网络时间协议)。

NTP是一个跨越广域网或局域网的复杂的同步时间协议,它通常可获得毫秒级的精度。RFC2030[Mills 1996]描述了SNTP(Simple Network Time Protocol),目的是为了那些不需要完整NTP实现复杂性的主机,它是NTP的一个子集。通常让局域网上的若干台主机通过因特网与其他的NTP主机同步时钟,接着再向局域网内其他客户端提供时间同步服务。

NTP协 议是OSI参考模型的高层协议,符合UDP传输协议格式,拥有专用端口123。

随着时间的推移, 计算机的时钟会倾向于漂移。 网络时间协议 (NTP) 是一种确保您的时钟保持准确的方法。

FreeBSD 附带了 中进行了描述。 下面是一个例子:

server 219.216.##.## prefer  (别学这条,这是我内部网的时间服务器)
server s2j.time.edu.cn   (大连理工大学的ntp服务)    
server s2f.time.edu.cn (东北地区中心的ntp服务)
server s1e.time.edu.cn (清华教育网中心的Ntp服务)
server s1a.time.edu.cn (北邮的一级ntp服务器)
server time.windows.com (呵呵,Windows都默认的)

server asia.pool.ntp.org (国际的,ntp.org对亚洲的)
server pool.ntp.org (国际的,对全球的)
driftfile /var/db/ntp.drift
 

  这里, server 选项指定了使用哪一个服务器,每一个服务器都独立一行。 如果某一台服务器上指定了 prefer (偏好) 参数, 如上面的 ntplocal.example.com, 则会优先选择这个服务器。如果偏好的服务器和其他服务器的响应存在显著的差别, 则丢弃它的响应,否则将使用来自它的响应, 而不理会其他服务器。 一般来说, prefer 参数应该标注在非常精确的 NTP 时源, 例如那些包含特殊的时间监控硬件的服务器上。

  而 driftfile 选项,则指定了用来保存系统时钟频率偏差的文件。 程序使用它来自动地补偿时钟的自然漂移, 从而使时钟即使在切断了外来时源的情况下,仍能保持相当的准确度。

  另外, driftfile 选项也保存上一次响应所使用的 NTP 服务器的信息。 这个文件包含了 NTP 的内部信息, 它不应被任何其他进程修改。

    默认情况下, NTP 服务器可以被整个 Internet 上的主机访问。 如果在 /etc/ntp.conf 中指定 restrict 参数,则可以控制允许哪些机器访问您的服务器。

  如果希望拒绝所有的机器访问您的 NTP 服务器, 只需在 /etc/ntp.conf 中加入:

restrict default ignore
    注意: 这样做会禁止您的服务器访问在本地配置中列出的服务器。 如果您需要令 NTP 服务器与外界的 NTP 服务器同步时间, 则应允许指定服务器。 请参见联机手册  以了解进一步的细节。

  如果只希望子网内的机器通过您的服务器同步时钟, 而不允许它们配置为服务器,或作为同步时钟的节点来时用, 则加入

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

  这里, 需要把 192.168.1.0 改为您网络上的 IP 地址, 并把 255.255.255.0 改为您的子网掩码。

  /etc/ntp.conf 可能包含多个 restrict 选项。 要了解进一步的细节, 请参见 Access Control Support(访问控制支持) 小节。

要让 NTP 服务器在系统启动时随之开启, 需要把 ntpd_enable="YES" 加入到 /etc/rc.conf 中。如果希望向 传递更多参数,需要编辑 /etc/rc.conf 中的 ntpd_flags

  要在不重新启动机器的前提下启动服务器, 需要手工运行 ntpd, 并带上 /etc/rc.conf 中的 ntpd_flags 所指定的参数。 例如:

# ntpd -p /var/run/ntpd.pid   ??????
eg:我的rc.conf中
ntpd_enable="YES"
#ntpd_flags="-p /var/run/ntpd.pid"
rc.conf: 37 lines, 894 characters.
1.ntptrace xxx.xxx.xxx.xxx
查找要对时的服务器状态,可以trace到一级时钟服务器,

2.ntpq -p
显示当前时钟服务器状态

3.ntpdata xxx.xxx.xxx.xxx
与时钟服务器对时,着先时钟服务器要先对时,才能用来提钟时钟服务

4.ntpd
既可以自动对时,又可对外提供时钟服务,先要配置/etc/ntp.conf

restrict 0.0.0.0 mask 0.0.0.0 notrust nomodify notrap //控制访问
server xxx.xxx.xxx.xxx  //对时的外部服务器
server 127.127.1.0 
fudge 127.127.1.0 stratum 10
driftfile /etc/ntpd.drift

5.开机对时,/etc/rc.conf中添加
 ntpdate_enable="YES"
 ntpdate_program="/usr/sbin/ntpdate"
 ntpdate_flags="-b"
 
6.每天(好像是每天)对时且对外提供时钟服务,  在/etc/rc.conf中添加
 xntpd_enable="YES"
 xntpd_program="/usr/sbin/ntpd"
 xntpd_flags="-p /var/run/ntpd.pid"
 
7.端口
 时钟服务器端口为123,udp , netstat  -an
 
实例:教育网上做的时钟服务器:
 
vi /etc/ntp.conf
---------------------
server s1e.time.edu.cn prefer
server s2c.time.edu.cn
server s1c.time.edu.cn
server  210.72.145.44
driftfile /var/db/ntp.drift
--------------------------------
 
vi /etc/rc.conf
----------------------
ntpd_enable="YES"
ntpd_program="/usr/sbin/ntpd"
ntpd_config="/etc/ntp.conf"
ntpd_sync_on_start="YES"
ntpd_flags="-p /var/run/ntpd.pid -f /var/db/ntpd.drift"
------------------------------------------------------------
 
 
在MS windows中使用,直接在“更改时间和日期设置”中的“Internet时间”中将自己设好的本地时钟服务器地址写入即可,注意你的本地防火墙必须放行NTP才可以。
 
在UNIX/linux下使用这个时钟服务器:
# vi /etc/ntp.conf
server 219.216.*.* prefer #这里指向你自己建好的内网时钟服务器
driftfile /etc/ntpd.drift

或者追加下面内容到,这样,每过一个小时0分的时候就自动更新。
vi /etc/crontab
0 * * * * root ntpdate [ntp server IP] >/dev/null 2>&1
阅读(4824) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~