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 伺服器去更新。