1、 Device A发送一个NTP报文给Device B,该报文带有它离开Device A时的时间戳,该时间戳为10:00:00am(T1)。 2、 当此NTP报文到达Device B时,Device B加上自己的时间戳,该时间戳为11:00:01am(T2)。 3、 当此NTP报文离开Device B时,Device B再加上自己的时间戳,该时间戳为11:00:02am(T3)。 4、 当Device A接收到该响应报文时,Device A的本地时间为10:00:03am(T4)。 5、 至此,Device A已经拥有足够的信息来计算两个重要的参数: 6、 NTP报文的往返时延Delay=(T4-T1)-(T3-T2)=2秒。 7、 Device A相对Device B的时间差offset=((T2-T1)+(T3-T4))/2=1小时

安装软件: [root@wing_ntp ~]# rpm -qa | grep ntp ntp-4.2.2p1-9.el5_4.1

配置NTP服务器(假定本地服务器地址为:192.168.1.103) NTP server的主配置文件:/etc/ntp.conf

ntp.conf文件部分选项说明 a. restrict管理权限控制 格式: restrict [需权限控制的IP] mask [netmask_IP] [parameter] 参数: ignore 拒绝所有类型的 NTP 连线; nomodiy 用户端不能更改 NTP 服务器的时间参数,这即表示用户端不能使用 ntpc 与 ntpq 这两个程序来修改服务器。 但用户端仍可透过这部主机来进行网路校时; noquery 用户端不能夠使用 ntpq, ntpc 等指令来查询时间服务器,等于不提供 NTP 的网路校时; notrap 不提供 trap 这个远端事件登录 (remote event logging) 的功能。 notrust 拒绝没有认证的用户端 注:那如果沒有在 parameter 的地方加上任何参数,表示『该 IP 或网段不受任何限制』意思 b. server设置上层NTP服务器 格式: server [IP or 主机名] [perfer] 参数: perfer 表示“优先使用”的主机 c. fudge设置NTP服务器时间通告发送的stratum级别

注:Stratum:系统时钟的层数,取值范围为1~16,它定义了时钟的准确度。层数为1的时钟准确度最高,准确度从1到16依次递减,层数为16的时钟处于未同步状态,不能作为参考时钟。

举例: #本地IP不受任何限制 restrict 127.0.0.1

#上层NTP服务器地址,优先使用61.129.42.44 server 61.129.42.44 prefer server time.nist.gov

#內定的一个內部时间资料 server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10

#时间差异分析的参数,记录上次的NTP server与上层NTP server联接所花费的时间 driftfile /var/lib/ntp/drift

#暂时不会使用的keys相关认证功能 keys /etc/ntp/keys

服务启动及查看方法: 启动NTP服务器: #/etc/init.d/ntpd start 查看方法(主要是UDP数据包,且端口为123): #netstat –tlunp 或者 [root@wing_ntp ~]# lsof -i:123 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME ntpd 10648 ntp 16u IPv4 40258 UDP *:ntp ntpd 10648 ntp 17u IPv6 40259 UDP *:ntp ntpd 10648 ntp 18u IPv6 40260 UDP localhost6.localdomain6:ntp ntpd 10648 ntp 19u IPv6 40261 UDP [fe80::20c:29ff:feb2:f41c]:ntp ntpd 10648 ntp 20u IPv4 40262 UDP localhost.localdomain:ntp ntpd 10648 ntp 21u IPv4 40263 UDP wing_ntp.up.com:ntp

相关知识:

1、 系统时间:Linux 自己的系统时间。开机后,主动从BIOS中读取。 2、 BIOS时间:BIOS中记录的实际时间。 3、 Date和hwclock命令 a. Date命令:仅修正linux系统时间,不更新BIOS时间 命令格式:date MMDDhhmmYYYY MM:月份 DD:日期 hh:小时 mm:分钟 YYYY:年 b. Hwlock命令:将当前Linux系统时间写入BIOS或读取BIOS时间 命令格式:hwclock [-rw] -r:读出目前BIOS内的时间参数 -w:将当前Linux系统时间入BIOS中 4、客户端时间同步命令ntpdate 命令格式:ntpdate [-nv][NTP服务器IP/主机名] 注意事项: a. 客户端执行并完成时间同步操作后,需执行hwclock命令写入BIOS b. 在ntp server上重新启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生no server suitable for synchronization found的错误 c. NTP服务器不可使用ntpdate命令。即:ntpdate与ntpd不能同时启用。

5、利用crontab来执行 #crontab -e */10 * * * * /usr/sbin/ntpdate 192.168.1.103 >> /root/ntpdate.log

6、几个可以使用(不保证,具体能用否还得看电信的心情)的NTP服务器:  133.100.11.8 prefer  210.72.145.44  203.117.180.36  131.107.1.10  time.asia.apple.com  64.236.96.53  130.149.17.21  66.92.68.246  18.145.0.30  clock.via.net  137.92.140.80  133.100.9.2  128.118.46.3  ntp.nasa.gov  129.7.1.66ntp-sop.inria.frserver  210.72.145.44(中国国家授时中心服务器IP地址)  ntp.sjtu.edu.cn (上海交通大学网络中心NTP服务器地址)  202.120.2.101 (上海交通大学网络中心NTP服务器地址)