前言
在Linux主機上設定時間同步向來不是很困難的事情,隨便Google都有,但是在Google後又沒經過驗證就擅自修改設定的情況下,主機出錯是沒人救得了你。
筆者我日前就只用Ntpdate+Cronjob的方式讓主機定時更新時間,且多台都是如此,但後來卻發現多台主機的時間都不相同,誤差了將近20秒!
此文便是修正,使用ntpd讓主機更新時間。
安裝ntpd
yum install ntpd
yum install ntpd
安裝後執行:
systemctl stop ntpd
先關閉ntpd,但最好確認是否成功關閉
ps -ef | grep ntpd
如果仍舊存在ntpd process,使用kill -9強制關閉
使用ntpdate先手動更新,然後再關閉ntpdate service
ntpdate time.stdtime.gov.tw
systemctl stop ntpdate
目的在於先讓主機跟校時主機手動同步一次,之後再由ntpd程式接管校時任務,避免只使用ntpdate校時產生時間跳躍的問題。
ntpd設定
vim /etc/ntp.conf
driftfile /var/lib/ntp/drift
logfile /var/log/ntp.log
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# 自己指定 NTP 伺服器
server tock.stdtime.gov.tw
server watch.stdtime.gov.tw
server time.stdtime.gov.tw prefer
server clock.stdtime.gov.tw
server tick.stdtime.gov.tw
includefile /etc/ntp/crypto/pw
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
keys /etc/ntp/keys
disable monitor
vim /etc/ntp.conf
driftfile /var/lib/ntp/drift
logfile /var/log/ntp.log
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# 自己指定 NTP 伺服器
server tock.stdtime.gov.tw
server watch.stdtime.gov.tw
server time.stdtime.gov.tw prefer
server clock.stdtime.gov.tw
server tick.stdtime.gov.tw
includefile /etc/ntp/crypto/pw
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
keys /etc/ntp/keys
disable monitor
同步到硬體時鐘
vim /etc/sysconfig/ntpd
vim /etc/sysconfig/ntpd
增加內容
SYNC_HWCLOCK=yes
手動強制使硬體時鐘與網路時間同步
hwclock --systohc
重啟ntpd服務
systemctl restart ntpd
systemctl enable ntpd
systemctl status ntpd
查看ntpd狀態
ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
+211-22-103-157. 192.168.0.3 2 u 220 512 377 3.270 2.888 0.453
+118-163-81-63.H .IRIG. 1 u 490 512 377 2.713 2.590 0.266
*118-163-81-61.H 192.168.0.3 2 u 521 512 377 2.765 3.061 0.557
+211-22-103-158. 192.168.0.2 2 u 146 512 377 2.774 2.610 0.491
+118-163-81-62.H 192.168.0.3 2 u 412 512 377 2.892 2.742 0.419
- Remote: “*” 已被優先選定為同步對象者, "+"良好且優先選用的備用時間伺服器
- refid: REFERENCE IDENTIFICATION
通常是伺服器的 IP 位址或外部時鐘的名稱,但也有可能是
介於用戶端和伺服器之間的路由器。 - st STRATUM:
此項目用來測量所有用戶端距離實際時間來源的遠近。GPS 時鐘:
Stratum=0;連接到 GPS 時鐘的 NTP Daemon:Stratum=1;其他
(距離再遠一步的) 來源:Stratum=2。 - t TYPE (類型)
可能出現的類型如下:- l local (例如 GPS 時鐘)
- u unicast (此為最常見的類型)
- m multicast
- b broadcast
- netaddr (通常為 0)
- when:此伺服器上次回應是在多久以前 (以秒計)
- poll: POLL PERIOD
向此伺服器提出查詢的週期 (以秒計)?若透過網路
連線,通常會使用 512 秒 (約 8 分鐘) 和 1024 秒
(約 17 分鐘),不過接有外部時鐘 (如 GPS) 的系統
必須少於 64 秒。 - reach: REACHABILITY 註:值越高越好
用戶端連往伺服器的成功率 - delay: ROUND TRIP TIME 註:值越小越好
向伺服器提出詢問時,答覆封包返回所需的時間 (以毫秒
計)。 - offset: TIME DIFFERENCE 註:值越小越好
伺服器時鐘與用戶端時鐘的時差 (以毫秒計)。
當此數值大於 128 時,NTP 即會大幅加以調整 (而且 logfile會出現 Synchronization Lost 訊息)。
ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
+211-22-103-157. 192.168.0.3 2 u 220 512 377 3.270 2.888 0.453
+118-163-81-63.H .IRIG. 1 u 490 512 377 2.713 2.590 0.266
*118-163-81-61.H 192.168.0.3 2 u 521 512 377 2.765 3.061 0.557
+211-22-103-158. 192.168.0.2 2 u 146 512 377 2.774 2.610 0.491
+118-163-81-62.H 192.168.0.3 2 u 412 512 377 2.892 2.742 0.419
通常是伺服器的 IP 位址或外部時鐘的名稱,但也有可能是
介於用戶端和伺服器之間的路由器。
此項目用來測量所有用戶端距離實際時間來源的遠近。GPS 時鐘:
Stratum=0;連接到 GPS 時鐘的 NTP Daemon:Stratum=1;其他
(距離再遠一步的) 來源:Stratum=2。
可能出現的類型如下:
- l local (例如 GPS 時鐘)
- u unicast (此為最常見的類型)
- m multicast
- b broadcast
- netaddr (通常為 0)
向此伺服器提出查詢的週期 (以秒計)?若透過網路
連線,通常會使用 512 秒 (約 8 分鐘) 和 1024 秒
(約 17 分鐘),不過接有外部時鐘 (如 GPS) 的系統
必須少於 64 秒。
用戶端連往伺服器的成功率
向伺服器提出詢問時,答覆封包返回所需的時間 (以毫秒
計)。
伺服器時鐘與用戶端時鐘的時差 (以毫秒計)。
當此數值大於 128 時,NTP 即會大幅加以調整 (而且 logfile會出現 Synchronization Lost 訊息)。
NTP 真正的功能在於管理 Offset 數值,並且將其降至最低。
沒有留言:
張貼留言