GMT时间是以太阳经过格林威治的那一刻来做为计时的标准,地球共有24 个时区,而以格林威治时间(GMT) 为标准时间,台湾本地时间为GMT + 8 小时。不许确,可是方便记忆与理解。
UTC时间是使用『原子震荡周期』所计算的物理时钟。最准确。
两个时间计时的方式不一样,GMT与UTC时间有差很少16分钟的偏差!css
由于时区资料档在/usr/share/zoneinfo 内,在该目录内会找到/usr/share/zoneinfo/America/New_York 这个时区档。而时区设定档在/etc/sysconfig/clock ,且目前的时间格式在/etc/localtime ,因此你应该这样作:linux
[root@www ~]# date Thu Jul 28 15:08:39 CST 2011 <==重点是CST这个时区喔! [root@www ~]# vim /etc/sysconfig/clock ZONE=" America/New_York " <==改的是这里啦! [root@www ~]# cp /usr/share/zoneinfo/America/New_York /etc/localtime [root@www ~]# date Thu Jul 28 03:09:21 EDT 2011 <==时区与时间都改变了!
restrict [你的IP] mask [netmask_IP] [parameter]
其中parameter 的参数主要有底下这些:vim
那若是你没有在parameter的地方加上任何参数的话,这表示『该IP或网段不受任何限制』的意思喔!通常来讲,咱们能够先关闭NTP的使用权限,而后再一个一个的启用容许登入的网段。centos
常见的配置以下:安全
# 1.对于默认的客户端拒绝全部的操做 restrict default kod nomodify notrap nopeer noquery <==拒绝IPv4的用户 restrict -6 default kod nomodify notrap nopeer noquery <==拒绝IPv6的用户 # 2.启内部递归网络接口lo 即容许本机地址一切的操做 restrict 127.0.0.1 <==底下两个是预设值,放行本机来源 restrict -6 ::1 # 3.容许上层时间服务器主动修改本机时间 restrict 220.130.158.71 <==放行tock.stdtime.gov.tw进入本NTP伺服器 restrict 59.124.196.83 <==放行tick.stdtime.gov.tw进入本NTP伺服器 restrict 59.124.196.84 <==放行time.stdtime.gov.tw进入本NTP伺服器 # 4.放行网段来源 restrict 192.168.100.0 mask 255.255.255.0 nomodify <==放行区网来源
server [IP or hostname] [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]
常见的配置以下:ruby
# 5.默认的一个内部时钟数据,用在没有外部 NTP 服务器时,使用它为局域网用户提供服务 server 127.127.1.0 fudge 127.127.1.0 stratum 10 # 6.定义使用上层ntp服务 server 220.130.158.71 iburst minpoll 5 maxpoll 10 prefer <==以这部主机为最优先 server 59.124.196.83 iburst minpoll 5 maxpoll 10 server 59.124.196.84 iburst minpoll 5 maxpoll 10
driftfile [能够被ntpd 写入的目录与档案]
由于预设的NTP Server 自己的时间计算是依据BIOS 的晶片震荡周期频率来计算的,可是这个数值与上层 Time Server 不见得会一致。因此NTP 这个daemon (ntpd) 会自动的去计算咱们本身主机的频率与上层 Time server的频率,而且将两个频率的偏差记录下来,记录下来的档案就是在driftfile 后面接的完整档名当中了!
关于档名你必需要知道:bash
driftfile 后面接的档案会被ntpd 自动更新,因此他的权限必定要可以让ntpd 写入才行。在CentOS 6.x 预设的NTP 伺服器中,使用的ntpd 的owner 是ntp ,这部份能够查阅/etc/sysconfig/ntpd 就能够知道啦!服务器
常见的配置以下:网络
driftfile /var/lib/ntp/drift
除了以restrict 来限制用户端的连线以外,咱们也能够透过金钥系统来给用户端认证, 如此一来可让主机端更放心了。能够参考ntp-keygen 这个指令的相关说明。运维
pidfile /var/run/ntpd.pid <==进程位置 logfile /var/log/ntp.log <==日志文件 service 192.168.75.132 <==监听地址
ntp这个daemon是以port 123为连结的端口(使用UDP封包)
[root@www ~]# vim /usr/local/virus/iptables/iptables.allow iptables -A INPUT -i eth0 -p udp -s 192.168.100.0/24 --dport 123 -j ACCEPT
设定完ntp.conf 以后就能够启动ntp 服务器了。启动与观察的方式以下:
# 1.启动NTP [root@www ~]# /etc/init.d/ntpd start [root@www ~]# chkconfig ntpd on [root@www ~]# tail /var/log/messages <==自行检查看看有无错误 # 2.观察启动的埠口看看: [root@www ~]# netstat -tlunp | grep ntp Proto Recv-Q Send-Q Local Address Foreign Address PID/Program name udp 0 0 192.168.100.254:123 0.0.0.0:* 3492/ntpd udp 0 0 192.168.1.100:123 0.0.0.0:* 3492/ntpd udp 0 0 127.0.0.1:123 0.0.0.0:* 3492/ntpd udp 0 0 0.0.0.0:123 0.0.0.0:* 3492/ntpd udp 0 0 ::1:123 :::* 3492/ntpd udp 0 0 :::123 :::* 3492/ntpd # 主要是UDP 封包,且在port 123 这个端口的啦!
这样就表示咱们的NTP伺服器已经启动了,不过要与上层NTP服务器连线则还须要一些时间, 一般启动NTP后约在15分钟内才会和上层NTP伺服器顺利链接上。
请自行等待数分钟后再如下列指令查阅:
[root@www ~]# ntpstat
synchronised to NTP server (220.130.158.71) at stratum 3 time correct to within 538 ms polling server every 128 s
这个指令能够列出咱们的NTP 服务器有跟上层连线否。由上述的输出结果能够知道,时间有校订约 538 * 10^(-3) 秒(538ms),且每隔128 秒会主动去更新时间!
[root@www ~]# ntpq -p remote refid st t when poll reach delay offset jitter ================================================== ============================ *tock.stdtime.go 59.124.196.87 2 u 19 128 377 12.092 -0.953 0.942 +59-124-196-83.H 59.124.196.86 2 u 8 128 377 14.154 7.616 1.533 +59-124-196-84.H 59.124.196.86 2 u 2 128 377 14.524 4.354 1.079
这个ntpq -p 能够列出目前咱们的NTP 与相关的上层NTP 的状态,上头的几个栏位的意义为:
差别都在0.001 秒之内, 能够符合咱们的通常使用了。另外,你也能够检查一下你的BIOS 时间与Linux 系统时间的差别, 就是/var/lib/ntp/drift 这个档案的内容,就能了解到我们的Linux 系统时间与BIOS 硬体时钟到底差多久。
[root@clientlinux ~]# hwclock [-rw] 选项与参数: -r :亦即read ,读出目前BIOS 内的时间参数; -w :亦即write ,将目前的Linux 系统时间写入BIOS 当中啊! # 2.查阅BIOS时间,而且写入更改过的时间啰! [root@clientlinux ~]# date; hwclock -r Thu Jul 28 16:34:00 CST 2011 Thu 28 Jul 2011 03:34:57 PM CST -0.317679 seconds #看一看,是否恰好差别约一个小时啊!这就是BIOS时间! [root@clientlinux ~]# hwclock -w; hwclock -r; date Thu 28 Jul 2011 04:35:12 PM CST -0.265656 seconds Thu Jul 28 16:35:11 CST 2011 #这样就写入啰~因此软体时钟与硬体时钟就同步啦!很简单吧!
[root@clientlinux ~]# ntpdate [-dv] [NTP IP/hostname] 选项与参数: -d :进入除错模式(debug) ,能够显示出更多的有效资讯。 -v :有较多讯息的显示。 [root@clientlinux ~]# ntpdate 192.168.100.254 28 Jul 17:19:33 ntpdate[3432]: step time server 192.168.100.254 offset -2428.396146 sec #最后面会显示微调的时间有多少(offset),由于这部主机时间差不少,因此秒数... [root@clientlinux ~]# date; hwclock -r 四7月28 17:20:27 CST 2011 西元2011年07月28日(周四) 18时19分26秒 -0.752303 seconds #知道想要表达什么吗?对啊!还得hwclock -w写入BIOS时间才行啊! [root@clientlinux ~]# vim /etc/crontab #加入这一行去! 10 5 * * * root (/usr/sbin/ntpdate tock.stdtime.gov.tw && /sbin/hwclock -w) &> /dev/null
ntpdate这个方式仅适合不要启动NTP 的状况。若是你的机器数量太多了,那么用户端最好也启动一下NTP 服务。经过NTP 去主动的更新时间。
[root@clientlinux ~]# ntpdate 192.168.100.254 #因为ntpd的server/client之间的时间偏差不容许超过1000秒, # 所以你得先手动进行时间同步,而后再设定与启动时间伺服器呦! [root@clientlinux ~]# vim /etc/ntp.conf #server 0.centos.pool.ntp.org #server 1.centos.pool.ntp.org #server 2.centos.pool.ntp.org restrict 192.168.100.254 <==放行伺服器来源! server 192.168.100.254 <==这就是伺服器! #很简单,就是将本来的server项目注解,加入咱们要的伺服器便可 [root@clientlinux ~]# /etc/init.d/ntpd start [root@clientlinux ~]# chkconfig ntpd on
而后取消掉crontab 的更新程序,这样你的client 电脑就会主动的到NTP 伺服器去更新。