電腦的時間放置不理的話過不久就會出現誤差。
這個誤差會反映在email送信時刻的time stamp上,會反映在你的論壇帖子發表時刻上。至少我遇到過這個問題。
網絡上有ntp(network time protocol)服務器,提供當前的時刻。我們可以將本地的時刻與ntp服務器的時刻進行同步。
目的如下:
1,啟動時用ntpdate進行時刻修正。
2,啟動中,通過ntpd進行時刻校正的同時,將各個客戶端電腦的時刻也進行同期校正。
3,如果不能找到ntp服務器,那麼就使用local time,同時同步客戶。
全世界約有100多個ntp服務器,從下面地址找一個離你最近的
http://www.eecis.udel.edu/~mills/ntp/clock1a.html我選擇了兩個
clock.nc.fukuoka-u.ac.jp 133.100.9.2 clock.tl.fukuoka-u.ac.jp 133.100.11.8步驟:
FreeBSD中有兩個標准的ntp程序,其一為ntpdate。
ntpdate通過從ntp服務器獲取時刻,調整本地時刻。
# ntpdate clock.nc.fukuoka-u.ac.jp 9 Oct 18:12:23 ntpdate: step time server 133.100.9.2 offset -19.112674大約有19秒鐘的誤差
自動設定
# grep ntpdate /etc/defaults/rc.conf >>/etc/rc.conf # vi /etc/rc.conf ntpdate_enable="YES" # Run ntpdate to sync time on boot (or NO). ntpdate_program="ntpdate" # path to ntpdate, if you want a different one. ntpdate_flags="clock.nc.fukuoka-u.ac.jp" # Flags to ntpdate (if enabled).重新啟動以後就運行了,當然設定沒有完,不必急著啟動
FreeBSD的另一個標准ntp程序,ntp
ntp程序使的獲取ntp時刻的同時,向其他pc提供時刻。
添加文件ntp.conf:
用來作為標准時刻的ntp服務器我選擇了兩個
clock.nc.fukuoka-u.ac.jp 133.100.9.2 clock.tl.fukuoka-u.ac.jp 133.100.11.8同時指定復數個服務器也沒有問題,系統會自動選擇一個可以信賴的。
這裡,為避免多余的DNS數據包傳遞,我們直接指定IP地址。
server行 server 127.127.1.0 為參考本地時刻時用的地址。然後用fudge指定階層編號為5,降低其優先度。
接著用restrict對每一個IP地址指定相應的規則。
最後,指定波長校正用的drift文檔保存地址。關於這個命令行,具體的含義不太清楚。不過如果沒有的話,時間校正起來就會比較慢
# vi /etc/ntp.conf server 133.100.9.2 #clock.nc.fukuoka-u.ac.jp server 133.100.11.8 #clock.tl.fukuoka-u.ac.jp server 127.127.1.0 fudge 127.127.0.1 stratum 5 restrict default ignore restrict 127.0.0.0 mask 255.0.0.0 restrict 192.168.1.0 mask 255.255.255.0 noquery nopeer notrust restrict 133.100.9.2 noquery restrict 133.100.11.8 noquery driftfile /etc/ntpd.drift啟動測試
# ntpd -p /var/run/ntpd.pid # tail /var/log/messages Oct 9 16:46:56 chiwawa ntpd[89409]: ntpd 4.1.0-a Thu Apr 3 08:26:24 GMT 2003 (1) Oct 9 16:46:56 chiwawa ntpd[89409]: kernel time discipline status 2040 ...... Oct 9 16:50:10 chiwawa ntpd[89409]: time set -0.189546 s看到類似的結果就可以了。
運行測試
ntpd的運行用ntpq命令
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *clock.nc.fukuok .GPS. 1 u 43 64 37 19.067 -6.884 10.339 +clock.tl.fukuok .GPS. 1 u 36 64 35 19.670 -3.259 2.341 LOCAL(0) LOCAL(0) 5 l 45 64 37 0.000 0.000 0.001啟動後到時刻校正完成需要一點時間。*是第一候補,+是第二。
本地時刻校正完成以後就可以為其他PC提供時刻校正服務了。
自動啟動的設定
完成以上設定,確認運行無誤以後:
# grep ntpd /etc/defaults/rc.conf >>/etc/rc.conf # vi /etc/rc.conf xntpd_enable="YES" # Run ntpd Network Time Protocol (or NO). xntpd_program="ntpd" # path to ntpd, if you want a different one. xntpd_flags="-p /var/run/ntpd.pid" # Flags to ntpd (if enabled).
往rc.conf追加上面3行內容,並修改。
客戶端PC設定:
UNIX OS
# vi /etc/ntp.conf server [local ntp server IP] prefer driftfile /etc/ntpd.drift 或者追加下面內容到crontab,這樣,每過一個小時0分的時候就自動更新。 # vi /etc/crontab 0 * * * * root ntpdate [ntp server IP] >/dev/null 2>&1 當然,你的主機其實也是一個客戶機,這些內容也可以用上。Windows
精工的網站上有下載軟件,不過是日語的 http://www.seiko-p.co.jp/systems/down/time.html windows2000自帶了sntp機能,請自己研究吧。BBSURL:
http://chiwawa.plala.jp/discuz/viewthread.php?tid=1027