你的Windows Server是否曾經停止工作,即使是在你認為一切都正確配置的時候呢?如果你遇到過這種情況,出現的問題可能和服務器時鐘相關。雖然它看上去是個小問題,但服務器時鐘的缺陷可能會威脅到你整個操作系統。
服務器時鐘不同步時可能發生的一些問題包括:
- 網絡認證失敗
- 和系統中心數據保護管理器(SCDPM)代理的溝通問題
- Exchange Server、ActiveSync和Outlook Web Access(OWA)不可用
在很多情況中,服務器時間同步問題來源於Kerberos協議,它有一個安全功能專門查看Kerberos票據上的時間戳,這主要是為了保護它們不會被重復使用。如果一張票據上的時間距離現在超過了五分鐘,這張票據會遭到拒絕。因此,如果時鐘五分鐘內沒有同步,Kerberos會開始出現故障。
通常來講,時間同步不會帶來問題。例如,當Windows在活動目錄(AD)環境中運行時,域內的所有計算機時鐘都自動地與域控制器同步。但是,在域成員和工作組成員混合或是多個活動目錄林存在的環境中,時鐘同步就可能變成一個問題。
舉個更具體的例子,我自己網絡中的所有生產服務器都進行了虛擬化。因為這個原因,我的虛擬化主機服務器中沒有域成員,且所有的域控制器都是虛擬機。由於虛擬機根本沒有啟動,所以主機服務器不能和域控制器溝通的情況就不可能出現。如此一來,我選擇讓主機操作系統作為工作組成員。
另外,我所有的虛擬化主機都運行Windows Server 2008 R2上的Hyper-V.這些服務器中的一些集群運行Windows 2008 R2的虛擬機,其它的集群那些仍然運行Windows Server 2003的虛擬機。但是雖然運行Windows 2008 R2的來賓機好像和主機服務器的時鐘保持了同步,運行Windows 2003的機器有可能無法和其余網絡保持同步。
那麼,你要如何解決這個問題呢?解決方法會因為這台計算機是不是域成員而有所不同。但不管是何種情況,你需要指定一台服務器作為時間來源。它可以是你網絡中的一台服務器或者你可以和國家標准與技術局(NIST)的原子鐘進行同步。
在工作組環境中,你可以通過打開Command Prompt窗口然後鍵入如下命令來將機器鏈到時間來源:
W32tm /config /syncfromflags:manual /manualpeerlist: W32tm /config /update
在這個例子中,你可以將替換成完全限定域名(FQDN)或是你想與之保持同步的服務器IP地址。你可以通過隔離每個有一個空間的地址來指定多個時間來源。
在域環境中,使用組策略設置來指定時間來源情況會更好些。時鐘相關的組策略設置可以在Group Policy Editor裡看見,位置是:Computer Settings Administrative Templates System Windows Time Service.
有三個不同的組策略設置可供你使用,包括:
- Configure Windows NTP Client-讓你可以將計算機時鐘和外部時間來源進行同步。
- Enable Windows NTP Client-允許計算機將時鐘與其它Windows服務器進行同步。
- Enable Windows NTP Server-允許服務器向Windows NTP客戶端提供時間同步。
注意,如果你打算和外部的時間來源進行同步,比如NIST,你就不能啟用Windows NTP Client或是Windows NTP Server.使用外部時間來源時,你可能還要打開一些防火牆端口。Windows服務器為時間協議運用UDP端口123,它在默認情況下就該打開。但如果你想要使用NIST,你還要打開TCP端口13,TCP端口37和UDP端口37.
正如你所見,保持Windows Server時鐘間的同步十分重要。盡管時鐘一般會自動同步,准備好面對需要手動同步時鐘的情況還是必要的。