一、什么是網(wǎng)絡時間服務 網(wǎng)絡時間服務Net Time Service與網(wǎng)絡文件下載服務FTP、網(wǎng)絡瀏覽服務WWW等一樣,是一種網(wǎng)絡服務,提供網(wǎng)絡時間服務的電腦叫網(wǎng)絡時間服務器。當然有些時間服務器是純硬件結(jié)構(gòu)的,通過GPS/北斗衛(wèi)星信息來獲取時間,其外觀與一臺交換機相似,如上海銳呈電氣有限公司生產(chǎn)的K系列NTP時間服務器產(chǎn)品,詳情可參考:http://www.ruicheng-china.cn,純硬件結(jié)構(gòu)時間服務器不在文本介紹之列。本文主要介紹一臺電腦如何通過網(wǎng)絡獲取上級時間服務器提供的標準時間,再服務于本單位的局域網(wǎng),使一個單位的所有電腦都能與標準時間保持同步,時間誤差一般小于0.5秒。 TCP/IP協(xié)議中,用于同步時間的協(xié)議為NTP協(xié)議,它是由美國德拉瓦大學的David L. Mills教授于1985年提出,除了可以估算封包在網(wǎng)絡上的往返延遲外,還可獨立地估算計算機時鐘偏差,從而實現(xiàn)在網(wǎng)絡上的高精準度計算機校時,它是設計用來在Internet上使不同的機器能維持相同時間的一種通訊協(xié)議。時間服務器(time server)是利用NTP的一種服務器,通過它可以使網(wǎng)絡中的電腦保持時間同步。 NTP是一個跨越廣域網(wǎng)或局域網(wǎng)的復雜的同步時間協(xié)議,它通?色@得毫秒級的精度。SNTP(Simple Network Time Protocol)是NTP的一個子集,目的是為了那些不需要NTP實現(xiàn)復雜性網(wǎng)絡時間同步的主機。通常用于局域網(wǎng)上的若干臺主機通過互聯(lián)網(wǎng)與其他的 NTP主機同步時鐘,接著再向局域網(wǎng)內(nèi)其他客戶端提供時間同步服務。SNTP一般使用UDP的123端號,Linux系統(tǒng)和Windows系統(tǒng)都支持它,是現(xiàn)在架設網(wǎng)絡時間服務器的主流協(xié)議。 Time Protocol (RFC-868)協(xié)議是一種較簡單的協(xié)議。此協(xié)議提供了一個獨立于站點的,機器可讀的日期和時間信息。時間服務返回的是從1900年1月1日午夜到現(xiàn)在的秒數(shù)。該協(xié)議通過TCP或UDP的37端口提供服務。Linux下的TIME服務提供該服務,Windows系統(tǒng)中較少使用。 現(xiàn)在網(wǎng)上的許多時間校準軟件,有些支持SNTP協(xié)議、有些支持TIME協(xié)議,有些二者都支持,我們在選擇時要特別注意。另外在Windows系統(tǒng)的對等網(wǎng)中,還有使用“net time 機器名 /set /yes”命令使用netbios協(xié)議進行時間校準,由于這種方法不支持混合網(wǎng)絡和跨網(wǎng)段網(wǎng)絡,本文也不特別介紹。
二、時間服務器有何用 也許有人認為電腦的時鐘有點誤差影響不大,其實這是非常錯誤的。電腦系統(tǒng)中的文件保存、文件傳輸、電子郵箱中的時間戳都是以電腦時鐘為準的。如果今后我們想進行文件查找、日志查詢,如果系統(tǒng)時鐘不準,或同一網(wǎng)絡中的電腦時間不同步,將給后續(xù)工作帶有許多麻煩,F(xiàn)在許多備份軟件、編譯軟件、FTP工具都是以文件保存時間為依據(jù)進行比較的,如果時間不統(tǒng)一,將使這些軟件難以正常工作。三、如何使局域網(wǎng)內(nèi)的所有電腦時鐘同步 首先要在互聯(lián)網(wǎng)上尋找一臺或幾臺專門提供時間服務的電腦(以下稱為主時間服務器),F(xiàn)在有不少機構(gòu)免費提供標準時鐘服務,在http: //www.ntp.org中專門介紹有不少時間服務器地址。推薦大家在平時使用pool.ntp.org這個地址,因為這個域名在DNS解析時會從一組時鐘服務器的IP中隨機選取,非常合適一般用戶使用。大家也可以在搜索引擎中以“public time server”為關鍵詞搜索一下,找出離你較近的時間服務器。 其次選擇單位中能上網(wǎng)的一臺電腦,讓它與主時間服務器同步,這臺電腦可以是Linux主機,也可以是win98、2000、XP主機。同時把這臺電腦設為局域網(wǎng)內(nèi)部的時間服務器(以下稱為時間服務器),供局域網(wǎng)內(nèi)部的所有電腦校對時間。 再在單位內(nèi)部的所有電腦上設置時間服務的客戶端,如果客戶機為win2000、XP或Linux系統(tǒng),不需要安裝任何軟件。如客戶機為win98系統(tǒng)時要根據(jù)時間服務器類型的不同而區(qū)別對待:如果時間服務器選用SNTP協(xié)議進行時鐘同步,則win98機上需安裝一個sntp客戶端軟件,如時間服務器由 windows電腦通過netbios協(xié)議提供,則win98上也不需要安裝任何軟件。
四、設置時間服務器 以下分Linux、Win98、Win2000XP三種情況分別介紹,而且只介紹sntp服務的架設,timeserver服務和netbios對時服務由于應用很少,不做介紹。 1、Linux主機做時間服務器(以RedHat9.0為例) 第一步:檢查是否已經(jīng)安裝有ntp軟件包。輸入“rpm -qa|grep ntp”,如果已經(jīng)安裝應該顯示“ntp-4.1.2-0.rc1”。 第二步:安裝ntp軟件,從ftp://ftp.redhat.com下載rpm包,輸入“rpm -ivh ntp-xxx.rpm”執(zhí)行安裝。 第三步:配置ntp服務。備份原/etc/ntp.conf文件后,輸入以下內(nèi)容 server pool.ntp.org server pool.ntp.org server pool.ntp.org driftfile /etc/ntp/drift 三行server都設pool.ntp.org是為了提供連接冗余,當?shù)谝粋地址連接失敗時,后面的地址提供時間服務,注意這里的pool.ntp.org對應一組IP地址,由DNS隨機分配。 第四步:啟動ntp服務。輸入“service ntp restart”。 為了保證以后Linux機啟動后ntp服務能自動啟動,還要輸入“chkconfig ntpd on”。Linux下的ntp軟件不但能自動與互聯(lián)網(wǎng)上的時鐘保持同步,同時本身已經(jīng)是一臺SNTP服務器了,可以供局域網(wǎng)內(nèi)的電腦校對時間。建議啟動 NTP服務后,先用date命令手工校正一下時間,以后系統(tǒng)會自動與互聯(lián)網(wǎng)上的主時間服務器保持同步。ntp服務還有一個好處,如果當前系統(tǒng)的時間與標準時間有所誤差,它不是馬上把時間校正,而是逐步縮小與標準時間的誤差,以免系統(tǒng)內(nèi)部出現(xiàn)時間突變。 2、Windows2000、XP做時間服務器 第一步:指定主時間服務器。在DOS方式輸入“net time /setsntp:pool.ntp.org”,這里我們指定pool.ntp.org是主時間服務器,也可以是其它地址。 第二步:開始與主時間服務器同步。先關閉windows time服務,再開啟該服務。可以在“管理工具”的“服務”界面下完成,也可以以DOS方式輸入“net stop w32time”、“net start w32time”。 第三步:設置電腦的Windows time服務的啟動方式為自動。在“管理工具”的“服務”界面下完成。 注意這臺windows主機不能加入任何域,否則無法啟動windows time服務。此時,這臺windows電腦已經(jīng)是互聯(lián)上主時間服務器的客戶了,以后每次電腦啟動時,都會自動與主時間服務器校對時間。如果網(wǎng)絡不通,電腦也會過45分鐘后再次自動校對時間。需要注意的是電腦的時鐘與標準時間誤差不能超過12小時,否則不能自動校對,而要手動校正了。 第四步:使這臺電腦成為時間服務器,供局域網(wǎng)內(nèi)部的電腦校對時間。用“regedit”打開注冊表,把 “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters”中的 LocalNTP改為1即可。 3、Windows98做時間服務器 一般不推薦Windows98系統(tǒng)做時間服務器,而且win98本身也不含時間服務器功能,需要安裝第三方軟件。本文后面介紹的nettime軟件(http://nettime.sourceforge.net/)是一個非常優(yōu)秀的時間客戶端軟件,它可以工作在windows98、2000、XP 系統(tǒng)中,當選中“Allow other computers to sync to this computer”時,可以把這臺電腦當做成時間服務器。 五、設置時間服務器的客戶端 客戶端的主要任務是連接到局域網(wǎng)內(nèi)的時間服務器,以保持電腦的時鐘與服務器同步。同樣分Linux、Windows98、2000、XP幾種情況介紹 1、LINUX主機 其實在上面介紹Linux系統(tǒng)中的ntp服務時,已經(jīng)提到ntp時間服務時同時也是一個時間服務的客戶端,只要把/etc/ntp.conf文件中的 “server pool.ntp.org”改為“server 內(nèi)部時間服務器IP地址”即可。如不想使用ntp服務,也可使用ntp軟件包中帶來的ntpdate命令,只要手工執(zhí)行“ntpdate 時間服務器IP地址”即可。如想每天自動對時,可以把這條命令放在cron中,注意在同一臺電腦上ntp服務與ntpdate命令不能同時使用。 2、Windows2000主機 執(zhí)行設置時間服務器時的前三步即可 3、WindowsXP主機 可以按Windows2000主機的方法設置,也可雙擊任務欄右下角的時鐘圖標,打開“日期時間屬性”對話框,在“Internet時間”卡片上選中“自動與Internet時間服務器同步”,并在服務器上填入內(nèi)部時間服務器的IP地址即可。 4、Windows98主機 需要安裝第三方軟件,自由(free)軟件nettime是個不錯的軟件,它支持SNTP(UDP123)、TIME(TCP37)、TIME- UDP(UDP37)三種方法進行時間同步。軟件操作簡單,只要在上圖的“Hostname or IP Address”中輸入局域網(wǎng)內(nèi)時間服務器的IP地址,“Protocol”中選SNTP即可。 當然在windows98電腦上執(zhí)行“net time 機器名或IP地址 /set /yes”也可能與其它windows電腦同步時鐘,前提是這些電腦在同一網(wǎng)段,并且安裝有netbios協(xié)議。把該命令放在autoexec.bat 中,就可以做到開機自動對時了。