NTP 时间服务器

| |
2008-1-19    03:55    0    380    疯狂老头 RedHat Linux 技术 不指定
NTP 时间服务器的设定,以 CentOS 4.4 为基础:

# /usr/sbin/groupadd -g 38 ntp
# /usr/sbin/useradd -u 38 -d /etc/ntp -g ntp -s /sbin/nologin -M ntp

# rpm -ivh ntp-4.2.0.a.20040617-6.el4.i386.rpm

NTP 服务,其主要的配置文件是 /etc/ntp.conf

=============================================

# 在保留大部分的预设值的情況下,只作几个小部分的修改:

# 1. 设定主 NTP 时间服务器主机来源

server 210.72.145.44 prefer   <==以这部主机为最优先
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org

# 3.原本內定的一个内部时间资料,不需要更改

server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10

# 4. 下面这些设置就保留预设值即可。

driftfile /var/lib/ntp/drift
broadcastdelay  0.008

# 5.暂时不会使用的 keys 相关认证功能

keys            /etc/ntp/keys

=========================================================

同时建议修改一下 /etc/sysconfig/ntpd 文件

# vi /etc/sysconfig/ntpd
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid"

SYNC_HWCLOCK=yes

# 改成 yes 吧!这样主机 BIOS 的时间也会跟着一起改变的 !


1. 启动 NTP 服务
# /etc/init.d/ntpd start

2. 检查是否打开相应端口:

# netstat -tlunp

Proto Recv-Q Send-Q Local Address      Foreign Address  PID/Program name
udp        0      0 192.168.1.254:123  0.0.0.0:*        15118/ntpd
udp        0      0 127.0.0.1:123      0.0.0.0:*        15118/ntpd
udp        0      0 0.0.0.0:123        0.0.0.0:*        15118/ntpd
udp        0      0 :::123             :::*             15118/ntpd

# 主要是 UDP 封包,且在 port 123 这个端口啦!


这样就表示 NTP 服务已经启动了,不过要于上一层 NTP 服务器连线,还需要一些时间, 通常启动 NTP 服务后在15 分钟内才会和上层 NTP 服务器顺利联系上。那要如何确定我们的 NTP 服务器有无顺利的更新自己的时间呢?可以使用下面几个命令来查询:

# ntpstat

synchronised to NTP server (210.72.145.44) at stratum 2
   time correct to within 11 ms
   polling server every 64 s

# 由上述的输出結果可以知道,
# 时间有校正约 495 * 10^(-6) 秒,且每隔 64 秒会主动去更新时间!


# ntptrace -n 127.0.0.1

127.0.0.1: stratum 2, offset -0.004338, synch distance 0.032932
210.72.145.44: timed out, nothing received
***Request timed out

# 这个命令则可以列出我们的 NTP 服务器与上层 NTP 服务器彼此直接的关系。
# 由于我们已经和第一层连接上,与第二层无法连接就不用理会了。
# 所以那个 timed out 可以不用理会,没有关系的。

# ntpq -p

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*210.72.145.44   .ACTS.           1 u    1   16  377   39.090   -2.012   2.536
Hshh.org        .STEP.          16 u    - 1024    0    0.000    0.000 4000.00
Hshh.org        .STEP.          16 u    - 1024    0    0.000    0.000 4000.00
xHshh.org        209.51.161.238   2 u    8   64  337  129.438  -190.11   1.769
LOCAL(0)        LOCAL(0)        10 l   29   64  377    0.000    0.000   0.004

这个 ntpq -p 可以列出目前我们的 NTP 服务器与相关的上层 NTP 服务器的连接状态:

remote:亦即是 NTP 主机的 IP 或主机名称~注意最左边的符号, 如果有『+』代表目前正在作用当中的上层 NTP ,如果是『*』代表也有连上线,不过是作为次要连线的 NTP 主机。

refid:参考的上一层 NTP 主机的位址;

st:就是 stratum 阶层;

when:几秒钟前曾经做过的时间同步化更新的动作;

poll:下一次更新在几秒钟之后;

reach:已经向上层 NTP 服务器要求更新的次数;

delay:网络传输过程中延时的时间,单位为 10^(-6) 秒;

offset:时间补偿的结果,单位为 10^(-6) 秒;

jitter:Linux 系统时间与 BIOS 硬件时间的差异时间, 单位为 10^(-6) 秒;


最后编辑: 疯狂老头 编辑于2008-2-6 11:47
| 引用(0)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]