FreeBSD配置系统时间

http://tech.ddvip.com   2006年08月20日    社区交流

本文详细介绍FreeBSD配置系统时间

  当计算机连接到了Internet之后,那么就能同Internet上存在的很多时间服务器通信,以获得精确的时间。TCP/IP协议中,用于同步时间的协议为ntp协议,在Internet上提供ntp服务的站点有clepsydra.dec.com 、 ben.cs.wisc.edu、truechimer.waikato.ac.nz 等,虽然ntp协议本身考虑了网络延迟,然而网络延迟毕竟会对时间的精确性造成影响,因此应该选用一个离本地计算机最近的时间服务器。

  使用/stand/sysinstall也能设定时间同步,可以根据地域来选择合适的时间服务器,然而由于网络连接并不一定和地域相一致,因此不能完全根据地域的远近来选择时间服务器。

  使用ntp协议更新自己计算机上的时间的一个简单的应用程序为ntpdate,同样这也需要使用root权限执行:

# ntpdate clepsydra.dec.com
10 Apr 19:26:49 ntpdate: step time server 204.123.2.5 offset 517.837146

  ntpdate运行过之后就退出了,为了保持时间的正确性,就要每隔一段时间自动进行时间同步,可以将ntpdate 放入cron中,每隔一段时间就执行一次。然而系统提供了另一个守护进程,xntpd,能够自动周期进行时间同步的工作,这更为适合与Internet有永久连接的计算机。为了运行xntpd守护进程,首先要创建/etc/ntp.conf 文件,其中应包括时间服务器的名字和一个临时文件名。

server    clepsydra.dec.com
driftfile  /etc/ntp.drift

  然后就需要运行这个守护进程,进行时间同步。

# xntpd -c /etc/ntp.conf -p /var/run/xntpd.pid

  其中-c参数指定了ntp.conf作配置文件,用xntpd.pid记录xntpd的进程标识序号。ntpdate和xntpd都可以通过更改rc.conf中的选项,在启动时自动执行。

xntpd_enable="YES"   # Run xntpd Network Time Protocol (or NO).
xntpd_program="xntpd"  # path to xntpd, if you want a different one.
xntpd_flags="-c /etc/ntp.conf -p /var/run/xntpd.pid" # Flags to xntpd (if enabled).

  如果要想让本地网络上的多台计算机都进行时间同步,那么每个计算机都与外部时间服务器连接的方法并不是一个好主意。更好的想法是使用一个计算机与外部时间服务器同步,那么它的时间就成为了标准时间,可以用作本地时间服务器,而其他计算机与这台本地时间服务器同步就可以了。xntpd就是设计为这个目的,它能够用作提供时间的ntp服务器。用作时间服务器的xntpd的配置文件应该为:

server    clepsydra.dec.com
driftfile  /etc/ntp.drift
broadcast  192.168.1.255

  其中增加了一项广播地址:192.168.1.255,定期向局域网上的其他计算机广播正确的时间。这个广播地址要根据自己的网络进行修改,或者使用对应于NTP协议的D类组播(multicast)网址224.0.1.1,但用户的网络必须支持组播能力。由于使用了广播或组播,这样网络内的其他计算机可以不配置ntp.conf,直接启动 xntpd,xntpd就能通过听服务器的广播信息来得到精确的时间。当然也可以不设定广播地址,而配置每个计算机中的ntp.conf文件,指定所有的计算机都访问这台时间服务器。

责编:豆豆技术应用

正在加载评论...