http://www.cnfug.org/journal/archives/000038.Html www.cnfug.org 的NTP 的原文: tonight <[email protected]> 電腦的時間放置不理的話過不久就會出現誤差。 這個誤差會反映在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機能,請自己研究吧。