Ubuntu系统下ntp服务器搭建 | 迟思堂工作室
A-A+

Ubuntu系统下ntp服务器搭建

2015-02-23 20:19 GNU/Linux系统 暂无评论 阅读 36,332 次

之前文章一直提及的“设备”,其它可以把它理解为一台X86架构的安装了ubuntu系统的服务器,其实这系统已经安装了ssh、telnet、apache等服务器了。本文讲讲搭建一个ntp服务器。
对于ntp,我们的设备需要提供同步的函数接口,以便调用者可以随时随意地同步时间。我的工作更是安装ntp工具以及教人如何调用这个工具。
下面的操作基于ubuntu14.04版本。

安装步骤

在ubuntu下安装ntp服务器十分方便,只要一条命令即可搞定:

sudo apt-get install ntp

为了防止出现一些问题,还要编辑/etc/ntp.conf,加入:

server 127.127.1.0 fudge 127.127.1.0 stratum 8


主要是解决同步时出现 no server suitable for synchronization found错误。

可以使用下面命令重启ntp服务,安装后,系统启动时会自动启动该服务。

sudo /etc/init.d/ntp restart

问题解决

下面是遇到的一些问题的解决。

1、
安装ntpd后,在本机运行ntpdate出错,如下:

ntpdate[19979]: the NTP socket is in use, exiting

在执行命令,添加-u选项即可,比如:

ntpdate -u 202.120.2.101 ntpdate -u 133.100.11.8

2、
在一台机器(IP是172.18.100.168)上安装好ntp服务器后,在另一台设备上同步时间,结果出错了,如下:

# ntpdate -d 172.18.100.168 14 Aug 10:26:30 ntpdate[1448]: ntpdate 4.2.0@1.1161-r Tue Jan 21 15:25:43 CST 2014 (3) Looking for host 172.18.100.168 and service ntp host found : 172.18.100.168 transmit(172.18.100.168) receive(172.18.100.168) transmit(172.18.100.168) receive(172.18.100.168) transmit(172.18.100.168) receive(172.18.100.168) transmit(172.18.100.168) receive(172.18.100.168) transmit(172.18.100.168) 172.18.100.168: Server dropped: strata too high server 172.18.100.168, port 123 stratum 16, precision -21, leap 11, trust 000 refid [172.18.100.168], delay 0.02574, dispersion 0.00000 transmitted 4, in filter 4 reference time: 00000000.00000000 Thu, Feb 7 2036 14:28:16.000 originate timestamp: d7f42487.0fcf554a Fri, Oct 24 2014 9:06:15.061 transmit timestamp: d977d056.849ff92f Fri, Aug 14 2015 10:26:30.518 filter delay: 0.02591 0.02574 0.02580 0.02577 0.00000 0.00000 0.00000 0.00000 filter offset: -2540641 -2540641 -2540641 -2540641 0.000000 0.000000 0.000000 0.000000 delay 0.02574, dispersion 0.00000 offset -25406415.456428 14 Aug 10:26:30 ntpdate[1448]: no server suitable for synchronization found

解决方法:
编辑/etc/ntp.conf

server 127.127.1.0 fudge 127.127.1.0 stratum 8

在测试过程中发现服务器时间与真实时间差别太大,会有同步不上的情况,如下:

$ sudo ntpdate -d 172.18.100.168 10 Nov 10:07:57 ntpdate[5892]: ntpdate 4.2.6p5@1.2349-o Wed Oct 9 18:57:00 UTC 2013 (1) Looking for host 172.18.100.168 and service ntp host found : 172.18.100.168 transmit(172.18.100.168) receive(172.18.100.168) transmit(172.18.100.168) receive(172.18.100.168) transmit(172.18.100.168) receive(172.18.100.168) transmit(172.18.100.168) receive(172.18.100.168) 172.18.100.168: Server dropped: server is very broken server 172.18.100.168, port 123 stratum 9, precision -21, leap 00, trust 000 refid [172.18.100.168], delay 0.02631, dispersion 0.00000 transmitted 4, in filter 4 reference time: d80a9c4a.02281b8f Mon, Nov 10 2014 10:07:06.008 originate timestamp: d8096562.75139fc6 Sun, Nov 9 2014 12:00:34.457 transmit timestamp: d80a9c83.eee02d38 Mon, Nov 10 2014 10:08:03.933 filter delay: 0.02631 0.02634 0.02664 0.02635 0.00000 0.00000 0.00000 0.00000 filter offset: -79649.4 -79649.4 -79649.4 -79649.4 0.000000 0.000000 0.000000 0.000000 delay 0.02631, dispersion 0.00000 offset -79649.476483 10 Nov 10:08:03 ntpdate[5892]: no server suitable for synchronization found

但有时候服务器时间比客户端时间大,也是可以的,这类问题比较奇怪。下面是成功的例子:

# date 01091100 Thu Jan 9 11:00:00 GMT-8 2014 # ntpdate -u 172.18.100.168 Looking for host 172.18.100.168 and service ntp host found : 172.18.100.168 9 Nov 12:01:49 ntpdate[626]: step time server 172.18.100.168 offset 26269305.872492 sec # date Sun Nov 9 12:01:50 GMT-8 2014

而有时候,国内的服务器却似段公子的六脉神剑,时灵时不灵,下面是一个例子:

# date 11091200 Sun Nov 9 12:00:00 CST 2014 root@localhost:~# ntpdate -u 202.120.2.101 9 Nov 12:02:28 ntpdate[2607]: no server suitable for synchronization found root@localhost:~# ntpdate -u 202.120.2.101 9 Nov 12:02:39 ntpdate[2608]: no server suitable for synchronization found root@localhost:~# root@localhost:~# root@localhost:~# ntpdate -u 133.100.11.8 10 Nov 10:29:22 ntpdate[2628]: step time server 133.100.11.8 offset 80736.496480 sec root@localhost:~# date Mon Nov 10 10:29:24 CST 2014

参考文章:



如果本文对阁下有帮助,不妨赞助笔者以输出更多好文章,谢谢!
donate



标签:

给我留言