透過 NTP 進行時鐘同步
25.10.1 縱覽
隨著時間的推移, 計算機的時鐘會傾向於漂移。 網路時間協議 (NTP) 是一種確保您的時鐘保持準確的方法。
許多 Internet 服務依賴、 或極大地受益於本地計算機時鐘的準確性。 例如, web 伺服器可能會接收到一個請求, 要求如果檔案在某一時刻之後修改過才傳送它。 在區域網環境中,共享檔案的計算機之間的時鐘是否同步至關重要, 因為這樣才能使時間戳保持一致。 類似 cron(8) 這樣的程式,也依賴於正確的系統時鐘, 才能夠準確地執行操作。
FreeBSD 附帶了 ntpd(8) NTP 伺服器, 它可以用於查詢其它的 NTP 伺服器,並配置本地計算機的時鐘, 或者為其它機器提供服務。
25.10.2 選擇合適的 NTP 伺服器
為了同步您的系統時鐘, 需要首先找到至少一個 NTP 伺服器以供使用。 網路管理員, 或 ISP 都可能會提供用於這樣目的的 NTP 伺服器──請檢視他們的文件以瞭解是否是這樣。 另外,也有一個線上的 公開的 NTP 伺服器列表, 您可以從中選一個較近的 NTP 伺服器。 請確認您選擇的伺服器的訪問策略,如果需要的話, 申請一下所需的許可。
選擇多個相互不連線的 NTP 伺服器是一個好主意, 這樣在某個伺服器不可達,或者時鐘不可靠時就可以有別的選擇。 這是因為, ntpd(8) 會智慧地選擇它收到的響應──它會更傾向於使用可靠的伺服器。
25.10.3 配置您的機器
25.10.3.1 基本配置
如果只想在系統啟動時同步時鐘, 則可以使用 ntpdate(8)。對於經常重新啟動, 並且不需要經常同步的桌面系統來說這比較適合, 但絕大多數機器都應該執行 ntpd(8)。
在引導時使用 ntpdate(8) 來配合執行 ntpd(8) 也是一個好主意。 ntpd(8) 漸進地修正時鐘, 而 ntpdate(8) 則直接設定時鐘, 無論機器的當前時間和正確時間有多大的偏差。
要啟用引導時的 ntpdate(8), 需要把 ntpdate_enable="YES" 加到 /etc/rc.conf 中。 此外, 還需要透過 ntpdate_flags 來設定同步的伺服器和選項, 它們將傳遞給 ntpdate(8)。
25.10.3.2 一般配置
NTP 是透過 /etc/ntp.conf 檔案來進行配置的, 其格式在 ntp.conf(5) 中進行了描述。 下面是一個例子:
server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net
driftfile /var/db/ntp.drift
這裡, server 選項指定了使用哪一個伺服器,每一個伺服器都列為移行。 如果某一臺伺服器上指定了 prefer (偏好) 引數, 如上面的 ntplocal.example.com, 則會優先選擇這個伺服器。如果偏好的伺服器和其他伺服器的響應存在顯著的差別, 則丟棄它的響應,否則將使用來自它的響應, 而不理會其他伺服器。 一般來說, prefer 引數應該標註在非常精確的 NTP 時源, 例如那些包含特殊的時間監控硬體的伺服器上。
而 driftfile 選項,則指定了用來儲存系統時脈頻率偏差的檔案。 ntpd(8) 程式使用它來自動地補償時鐘的自然漂移, 從而使時鐘即使在切斷了外來時源的情況下,仍能保持相當的準確度。
另外, driftfile 選項也儲存上一次響應所使用的 NTP 伺服器的資訊。 這個檔案包含了 NTP 的內部資訊, 它不應被任何其他程式修改。
25.10.3.3 控制您的伺服器的訪問
預設情況下, NTP 伺服器可以被整個 Internet 上的主機訪問。 如果在 /etc/ntp.conf 中指定 restrict 引數,則可以控制允許哪些機器訪問您的伺服器。
如果希望拒絕所有的機器訪問您的 NTP 伺服器, 只需在 /etc/ntp.conf 中加入:
restrict default ignore
如果只希望子網內的機器透過您的伺服器同步時鐘, 而不允許它們配置為伺服器,或作為同步時鐘的節點來時用, 則加入
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
這裡, 需要把 192.168.1.0 改為您網路上的 IP 地址, 並把 255.255.255.0 改為您的子網掩碼。
/etc/ntp.conf 可能包含多個 restrict 選項。 要了解進一步的細節, 請參見 ntp.conf(5) 的 Access Control Support(訪問控制支援) 小節。
25.10.4 執行 NTP 伺服器
要讓 NTP 伺服器在系統啟動時隨之開啟, 需要把 ntpd_enable="YES" 加入到 /etc/rc.conf 中。如果希望向 ntpd(8) 傳遞更多引數,需要編輯 /etc/rc.conf 中的 ntpd_flags。
要在不重新啟動機器的前提下啟動伺服器, 需要手工執行 ntpd, 並帶上 /etc/rc.conf 中的 ntpd_flags 所指定的引數。 例如:
# ntpd -p /var/run/ntpd.pid
25.10.5 在臨時性的 Internet 連線上使用 ntpd
ntpd(8) 程式的正常工作並不需要永久性的 Internet 連線。 然而,如果您的臨時性連線是配置為按需撥號的, 那麼防止 NTP 通訊頻繁觸發撥號,或保持連線就有必要了。 如果您使用使用者級 PPP, 可以使用 filter 語句, 在 /etc/ppp/ppp.conf 中進行必要的設定。 例如:
set filter dial 0 deny udp src eq 123
# Prevent NTP traffic from initiating dial out
set filter dial 1 permit 0 0
set filter alive 0 deny udp src eq 123
# Prevent incoming NTP traffic from keeping the connection open
set filter alive 1 deny udp dst eq 123
# Prevent outgoing NTP traffic from keeping the connection open
set filter alive 2 permit 0/0 0/0
要了解進一步的資訊, 請參考 ppp(8) 的 PACKET FILTERING(包過濾) 小節, 以及 /usr/share/examples/ppp/ 中的例子。
注意: 某些 Internet 訪問提供商會阻止低編號的埠, 這會導致 NTP 無法正常工作,因為響應無法到達您的機器。
25.10.6 進一步的資訊
關於 NTP 伺服器的文件, 可以在 /usr/share/doc/ntp/ 找到 HTML 格式的版本。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245567/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- NTP時鐘同步
- 使用NTP原理進行時間同步
- Ubuntu的NTP同步時鐘設定方法Ubuntu
- NTP時間同步伺服器(時鐘同步)工作原理介紹伺服器
- NTP時間同步伺服器(區域網時鐘同步)解決方案伺服器
- NTP時間同步
- 論企業生產網NTP時鐘同步(網路時間同步服務)
- NTP配置時間同步
- NTP時間同步 For AIXAI
- 電力GPS北斗衛星時鐘(NTP時鐘伺服器)同步技術淺談伺服器
- 北斗GPS衛星同步時鐘(NTP時鐘伺服器)在通訊系統中應用伺服器
- linux ntp時間同步Linux
- 新基建如何構造精準時鐘同步(NTP網路授時)體系
- Windows區域網通過NTP設定時間同步Windows
- oracle rac CTSS時鐘同步模式轉換為NTP同步模式的實施記錄(4)Oracle模式
- oracle rac CTSS時鐘同步模式轉換為NTP同步模式的實施記錄(3)Oracle模式
- oracle rac CTSS時鐘同步模式轉換為NTP同步模式的實施記錄(2)Oracle模式
- oracle rac CTSS時鐘同步模式轉換為NTP同步模式的實施記錄(1)Oracle模式
- Oracle RAC時間同步(NTP/CTSS)Oracle
- NTP校時(時間同步伺服器)IPC網路攝像機時鐘問題排查伺服器
- solaris同步時鐘
- Linux時區設定及NTP時間同步Linux
- NTP系統時間同步-操作記錄
- 兩臺伺服器時間同步(NTP)伺服器
- 時間同步協議NTP - 原理&實踐協議
- 透過 OKR 進行專案過程管理OKR
- Linux使用ntp時間伺服器同步時間Linux伺服器
- Windows ntp時間同步設定(bat指令碼)WindowsBAT指令碼
- LINUX 解決時間同步問題(NTP)Linux
- Oracle 11G RAC ntp時間同步配置Oracle
- Oracle叢集(RAC)時間同步(ntp和CTSS)Oracle
- Linux的時間設定與同步(NTP)Linux
- 如何透過鏈路追蹤進行定時任務診斷
- 透過.PAC進行網路釣魚
- 透過dns進行檔案下載DNS
- 透過ADDM進行SQL調優SQL
- 透過 Canal 將 MySQL 資料實時同步到 EasysearchMySql
- 透過作業定時同步兩個資料庫資料庫