情境
因為工作上需要,必須讓分散環境裡的各環境時間一致,偏偏目前主要環境是封閉網路,只有一檯 NB 連得上 Internet。所以就拿 NB 當內部 time server ,先讓 NB 跟外部做時間同步,然後再讓內部其他環境去跟 NB 做對時。一旦設定好,每次開機,這個行為就是自動化,這樣的機制叫做 NTP(Network Time Protocol)。
time server 安裝與設定
1 | $ sudo apt install ntp |
1 | $ sudo vim /etc/ntp.conf |
1 | $ sudo service ntp restart |
檢驗設定結果
ntpq
ntp debug1
2
3
4$ ntpq
# 輸入 command 來了解狀況,細部可以看
ntpq> help
ntpq> pe
1 | sudo ufw allow 123/udp |
time client 的校對
早期使用 ntpdate,不過後來 Ubuntu 提供了另一個比較簡易的 client 工具:timedatectl。預設情況下,開機會先同步一次,等到網路有效,會再做一次檢查。如果主機上安裝了 ntpdate/ntp,則 timedatectl 會讓你使用舊的設定,避免兩個時間同步服務打架。
1 | $ timedatectl |
如果 NTP 安裝,並且使用 NTP 的同步機制,這邊就會看到 NTP synchronized 是 yes。
1 | $ sudo vim /etc/systemd/timesyncd.conf |