很多时候由于计算机硬件的问题,所以我们都会调整一下时间,好让电 脑系统的时间可以一直保持正确的状态。而既然要调整时间,那么自然就会有一个让我们可以对照着来调整时间的『准确时间』咯!在实际生活中,我们可以透过电 视台、广播电台、电话等等来调整我们的手表,那么如果是在网络上呢?该如何让我们的主机随时保持正确的时间信息?!另外,整个地球被切分成为 24 个时区,那么什么是GMT(格林威治时间),我们所在的时区又是哪一区呢?!让我们来简单的谈一谈吧! |
|
|
|
GMT , Greenwich Mean Time | 0 W/E | 标准时间 |
CET , Central European | 15 E | +1 东一区 |
EET , Eastern European | 30 E | +2 东二区 |
BT , Baghdad | 45 E | +3 东三区 |
USSR, Zone 3 | 60 E | +4 东四区 |
USSR, Zone 4 | 75 E | +5 东五区 |
Indian, First | 82.3E | +5.5东五半区 |
USSR, Zone 5 | 90 E | +6 东六区 |
SST , South Sumatra | 105 E | +7 东七区 |
JT , Java | 112 E | +7.5东七半区 |
CCT , China Coast (台湾所在地) | 120 E | +8 东八区 |
JST , Japan | 135 E | +9 东九区 |
SAST, South Australia | 142 E | +9.5东九半区 |
GST , Guam | 150 E | +10 东十区 |
NZT , New Zealand | 180 E | +12 东十二区 |
Int'l Date Line | 180 E/W | 国际日期变更线 |
BST , Bering | 165 W | -11 西十一区 |
SHST, Alaska/Hawaiian | 150 W | -10 西十区 |
YST , Yukon | 135 W | -9 西九区 |
PST , Pacific | 120 W | -8 西八区 |
MST , Mountain | 105 W | -7 西七区 |
CST , Central | 90 W | -6 西六区 |
EST , Eastern | 75 W | -5 西五区 |
AST , Atlantic | 60 W | -4 西四区 |
Brazil, Zone 2 | 45 W | -3 西三区 |
AT , Azores | 30 W | -2 西二区 |
WAT , West Africa | 15 W | -1 西一区 |
[root@test
root]# chkconfig --level 2345 ntpd off
[root@test root]# /etc/rc.d/init.d/ntpd stop |
0. 解压缩,并阅读一下
ntp 底下的 README 与 INSTALL:
[root@test root]# cd /usr/local/src [root@test src]# tar -zxvf /root/ntp-4.1.2.tar.gz [root@test src]# cd ntp-4.1.2 [root@test ntp-4.1.2]# vi INSTALL (vi README) 1. 开始设定参数、编译与安装: [root@test ntp-4.1.2]# ./configure --help | more #可以察看一下可用的参数! [root@test ntp-4.1.2]# ./configure --prefix=/usr/local/ntp \ > --enable-all-clocks --enable-parse-clocks [root@test ntp-4.1.2]# make clean ; make [root@test ntp-4.1.2]# make check #确定一下,是否有问题!? [root@test ntp-4.1.2]# make install # 将数据给他安装在 /usr/local/ntp 底下 |
[root@test
root]# vi /etc/ntp.conf
# 1. 关于权限设定部分 # 权限的设定主要以 restrict 这个参数来设定,主要的语法为: # # restrict IP mask netmask_IP parameter # # 其中 IP 可以是软件地址,也可以是 default ,default 就类似 0.0.0.0 咯! # 至于 paramter 则有: # ignore :关闭所有的 NTP 联机服务 # nomodify:表示 Client 端不能更改 Server 端的时间参数,不过, # Client 端仍然可以透过 Server 端来进行网络校时。 # notrust :该 Client 除非通过认证,否则该 Client 来源将被视为不信任网域 # noquery :不提供 Client 端的时间查询 # 如果 paramter 完全没有设定,那就表示该 IP (或网域) 『没有任何限制!』 # # 在我们这个例子当中,因为拒绝所有,仅开放 192.168.0.0/24 , # 并且让 127.0.0.1 以及本机 IP 192.168.0.2 可以不受限制,所以: restrict default ignore # 关闭所有的 NTP 要求封包 restrict 127.0.0.1 # 开启内部递归网络接口 lo restrict 192.168.0.2 # 主机本身的 IP 也同时开启! restrict 192.168.100.20 mask 255.255.255.255 nomodify # 针对另一个 IP 开放让他可以更新时间! restrict 192.168.0.0 mask 255.255.255.0 nomodify # 在网域里面的 client 可以进行网络校时,但不会影响 Server ! # 2. 上层主机的设定 # 上层主机我们选择 time.stdtime.gov.tw ,要设定上层主机主要以 server # 这个参数来设定,语法为: # # server [IP|FQDN] [prefer] # # Server 后面接的就是我们上层 Time Server 啰!而如果 Server 参数 # 后面加上 perfer 的话,那表示我们的 NTP 主机主要以该部主机来作为 # 时间校正的对应。另外,为了解决更新时间封包的传送延迟动作, # 所以可以使用 driftfile 来规定我们的主机 # 在与 Time Server 沟通时所花费的时间,可以记录在 driftfile # 后面接的档案内,例如下面的范例中,我们的 NTP server 与 # time.stdtime.gov.tw 联机时所花费的时间会记录在 /etc/ntp/drift 档案内 # 先输入第二层主机的 IP server 210.59.157.10 prefer server 210.59.157.30 prefer server 202.39.157.155 prefer # 第一层的主机就列为参考用! server 210.59.157.40 server 210.59.157.41 server 202.39.157.151 # 当然要让 Server 可以进入我们的 NTP 主机啦!权限要开放啊! restrict 210.59.157.10 restrict 210.59.157.30 restrict 202.39.157.155 restrict 210.59.157.40 restrict 210.59.157.41 restrict 202.39.157.151 driftfile /etc/ntp/drift |
[root@test
root]# date MMDDhhmmYYYY
MM:月份 DD:日期 hh:小时 mm:分钟 YYYY:公元年 [root@test root]# date 082110002003 Thu Aug 21 10:00:00 CST 2003 # 时间立刻就修正了! [root@test root]# hwclock [-rw] -r:检视目前的 BIOS 时间 -w:将目前 Linux 的时间写入 BIOS 当中! [root@test root]# date ; hwclock -r Thu Aug 21 10:01:46 CST 2003 Thu 21 Aug 2003 09:57:52 AM CST 0.647923 seconds # 你可以看到, date 与 hwclock -r 所显示的时间是『不一致的』! # 这就是因为 Linux 时间与 BIOS 时间不一致所导致的一个问题! # 我们需要以 hwclock -w 来将 Linux 时间写入 BIOS 喔! [root@test root]# hwclock -w [root@test root]# date ; hwclock -r Thu Aug 21 10:03:42 CST 2003 Thu 21 Aug 2003 10:03:43 AM CST 0.113323 seconds # 呵呵!这样时间就一致啦! |
[root@test
root]# ntpdate 192.168.0.2
# 那个 192.168.0.2 是我们刚刚建立的 NTP Server ,您也可以选择 # time.stdtime.gov.tw 这部主机来校时喔! 21 Aug 10:05:29 ntpdate[23420]: step time server 192.168.0.2 offset -236.117047 sec [root@test root]# hwclock -w # 这样时间就修正了!若要每日进行时间校正,可以写入 cron [root@test root]# vi /etc/crontab # 加入这一行: 10 5 * * * root /usr/sbin/ntpdate 192.168.0.2 ; /sbin/hwclock -w |
NTP 服务器在安全的相关性方面,其实刚刚我们在 /etc/ntp.conf 里面的 restrict 参数中就已经设定了 NTP 这个 daemon 的服务限制范围了!不过,在防火墙 iptables 的部分,还是需要启用的啦!所以,在您的 iptables 规则的脚本 (scripts) 当中,需要加入这一段 (我是以开放 192.168.0.0/24 这个网域作为范例的!)
/sbin/iptables -A INPUT -p UDP -i eth0 -s 192.168.0.0/24 \
> --dport 123 -j ACCEPT
若还要开放其它的网段或者主机,请自行修改您的防火墙机制咯!