基于NTP协议的图书馆时间服务器的构建

2013-08-15 00:44广西财经学院图书馆
电子世界 2013年8期
关键词:服务器端IP地址客户端

广西财经学院图书馆 林 源

一、问题的由来

我馆已启用图书馆管理系统。系统运行一段时间后,每当客户端启用图书馆管理系统时,总会提示客户端时间与服务器时间相差三分钟以上,是否与服务器时间保持一致,如同意则修改本机时间并进入系统,如不同意则直接退出系统。特别是对于一些无Administrator权限的用户,管理系统无法自动修改本机时间,导致系统无法运行。

我们都知道,所有计算机的时钟都是由本机的电脑晶振以固定频率振荡产生的。由于晶振的不同,会导致各计算机之间存在时间上的差异。

为了解决各计算机之间存在的时间差异,出现了网络时间协议NTP(Network Time Protocol),NTP是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,提供高精准度的时间校正。使用该协议的NTP服务器是架设在Internet上的时间服务器,客户端可以通过互联网,从时间服务器获取国际标准时间,使用各计算机之间时间保持一致,称之为时间同步。局域网内与标准时间差小于1毫秒,广域网与标准时间相差约几十毫秒。

考虑到图书馆管理系统服务器安全性的问题,在进行网络规划时将该服务器设置为内网服务器,不能访问外网,外网也不能访问该服务器。由于客户机能够访问外网,可以通过操作系统自带的“自动与Internet时间服务器同步”获取国际标准时间UTC;而图书馆管理系统服务器的时间只能由电脑晶振以固定频率振荡产生,运行时间长后,服务器时间与客户机时间差异变大,出现上述问题。

为彻底解决该问题,需要在图书馆内构建一台可供全馆所有计算机和服务器可以访问的时间服务器。

二、服务器操作系统选择

目前较为常用的服务器操作系统有Windows、Linux、FreeBSD。

Windows是大家最为熟悉的操作系统,拥有友好的界面和方便的操作,易于安装和配置。但系统占用硬件资源较多,系统的稳定性和可靠性相对较弱。据有关资料显示,Windows系统的服务器年宕机时间为9个小时。

FreeBSD是一个自由的,源于AT&T UNIX的操作系统,是一种i386的网络操作系统,属于UNIX家庭之一。FreeBSD是一个完整的操作系统,包含了从开发工具到各种各样的应用程序。它由一个软件开发的核心团队来维护,整个原始程序代码会有组织地进行更新,所以程序代码比较有一致性。

FreeBSD的目标是提供一个坚如磐石的系统。十几年的开发使它成为一个“坚如磐石”的网络操作系统,有许许多多的大网站和ISP在运行着FreeBSD,系统完全免费,源代码完全开放,可根据用户的需求自行修改等特性使得它成为商业计算机和科学研究的极佳平台。

FreeBSD提供先进的联网能力,优秀的性能,较好的安全性及兼容性等特点。这些直到今天也是在其他操作系统甚至是一些最好的商业操作系统中都没有的。

FreeBSD是以PC为主要的开发平台,所以FreeBSD在PC机上的执行效率和稳定性较高。

Linux作为完全免费的兼容UNIX操作系统,在近几年来得到了飞速发展。其源代码的开放,以及近乎免费的价格,都使其获得了大量的用户。但是与FreeBSD比,还不是真正意义上的UNIX系统。在网络的负载非常高时,FreeBSD的性能比Linux好一些。

考虑到时间服务器需要7*12小时不间断运行,尽可能少的人工干预服务器的运行以及病毒的防治,本项目使用FreeBSD 9.0操作系统。

三、安装前的准备

1.FreeBSD安装盘的获取

可通过http://download.chinaunix.net/download/0013000/12434.shtml下载

2.上级时间服务器的选择

一般情况下,可以直接选择国家授时中心服务器,IP地址:210.72.145.44,也可以通过搜索引擎,搜索出距离本地较近的时间服务器。搜索出的时间服务器必须经过测试,看其是否可提供正确的时间。

3.出口防火墙检查

FreeBSD时间同步ntpd服务使用的标准端口是123,基于UDP协议,因此需检查出口防火墙UDP站123端口是否已开放。

四、服务器端的安装和配置

1.自定义安装FreeBSD操作系统,在系统安装过程中需选择安装Ports系统,配置好服务器的IP地址、掩码、网关,确保服务器可以正常上网。

2.使用Ports方式安装NTP服务

# cd/usr/ports/net/ntp

# make install clean

3.在互联网上选择合适的时间服务器做为本时间服务器的上级服务器,并测试是否可获得正确时间。

# ntpdate 210.72.145.44

29 Jun 17:03:43 ntpdate[25103]:step time server 210.72.145.44 offset 2566438.315735 sec

如无法获取时间,需检查上级时间服务器是否正常或出口防火墙的UTP 123端口是否开放。

4.修改启动配置文件

# cd/etc

# vi rc.conf

增加下面内容

ntpdate_enable="YES"

ntpdate_program="ntpdate"

ntpdate_flags="210.72.145.44"

5.修改时间服务器配置文件

编辑文件ntp.conf

# vi/etc/ntp.conf

server 210.72.145.44 #指定上级时间服务器

restrict 172.16.0.0 mask 255.255.0.0#172.16.0.0网段里面的客户端可以进行网络校时

driftfile/etc/ntpd.drift

至此,时间服务器端已安装配置完毕。

五、服务器端的测试

服务器端的测试主要是为了检验时间服务器运行是否正常,是否能为其他客户端提供时间查询服务。一般情况下服务器运行ntpd服务后,是需要5-10分钟才能为其他客户端提供服务。

1.检查ntpd是否正常运行

可通过查看进程来进行检查,如该进程存在则显示如下:

# ps axww|grep ntpd

81078 ?? Ss 0:00.05/usr/local/bin/ntpd-c/opt/etc/ntpd.conf-p/var/run/ntpd.pid-l/opt/var/log/ntpd.log-s/opt/var/ntpd-stat

2.查看服务器端口是否开放

# sockstat -l | grep":123"

root ntpd 81078 20 udp4 *:123 *:*

root ntpd 81078 22 udp4 61.129.59.109:123 *:*

root ntpd 81078 26 udp4 127.0.0.1:123*:*

root ntpd 81078 21 udp6 *:123 *:*

root ntpd 81078 24 udp6 ::1:123 *:*

root ntpd 81078 25 udp6 fe80:5::1:123*:*

3.检查服务器是否正常服务

在ntpd服务启动10分钟后,在其他BSD系统或Linux系统上,运行ntpdate来进行时间同步,测试ntpd服务是否正常服务。

如果运行结果如下,则说明ntpd服务正常:

# ntpdate 172.16.11.101

26 Jul 16:12:22 ntpdate[92216]:step time server 61.129.59.109 offset 0.949830 sec

如果运行结果如下,则说明ntpd服务不正常:

# ntpdate 172.16.11.101

26 Jul 15:41:24 ntpdate[89554]:no server suitable for synchronization found

六、客户端的配置

1.Linux系统

在Linux上面进行网络校时,执行ntpdate即可:

#ntpdate 172.16.11.101

#172.16.11.101是本地NTP服务器的IP

不要忘了使用hwclock命令,把时间写入bios

hwclock-w

如果想定时进行时间校准,可以使用crond服务来定时执行。

编辑/etc/crontab文件

加入下面一行:

30 8 * * * root/usr/sbin/ntpdate 172.16.11.101;/sbin/hwclock-w #172.16.11.101是NTP服务器的IP地址

然后重启crond服务

service crond restart

这样,每天8:30 Linux系统就会自动的进行网络时间校准。

2.Windows系统

双击桌面任务栏上的时间,弹出“日期和时间”属性窗口,选择Internet时间,在服务器中填入配置好的NTP服务器的IP地址,然后点击立即更新,系统时间就会立即更新。如果想定时更新,把左上角的自动与Internet时间服务器同步选中,然后点击右下角的应用即可。

七、小结

在图书馆内构建时间服务器,图书馆管理系统服务器与各客户端计算机都通过该时间服务器校准本机时间,客户端不再出现与服务器时间偏差提示。时间服务器运行正常,至今已运行半年多,从未出现故障。

[1]王波.FreeBSD使用大全[M].北京市:机械工业出版社,1999.

[2]http://download.chinaunix.net/download/0013000/12434.shtml[EB/OL].

[3]FreeBSD NTP服务器配置笔记.http://www.bsdart.org/archives/20101122/338.html[EB/OL].

[4]FreeBSD用NTP更新系统时间.http://www.info110.com/freebsd/in26252-1.htm[EB/OL].

猜你喜欢
服务器端IP地址客户端
Linux环境下基于Socket的数据传输软件设计
铁路远动系统几种组网方式IP地址的申请和设置
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
浅析异步通信层的架构在ASP.NET 程序中的应用
IP地址切换器(IPCFG)
基于SNMP的IP地址管理系统开发与应用
基于Qt的安全即时通讯软件服务器端设计