如何在 Ubuntu 中使用 NTP 服務器同步時間

NTP(網絡時間協議)是一種將系統時間與在線 NTP 服務器同步的協議,其精度僅為幾毫秒。 NTP 偵聽 UDP 端口 123。在本文中,我們將了解如何在 Ubuntu 18.04 中使用 NTP 服務器同步時間,並且同樣適用於 ubuntu 16.04。

由於時鐘頻率的微小不一致,系統時間和硬件時間都可能發生偏差。 隨著時間的推移,這些漂移會累積起來,導致顯著的時間差異,這可能會導致 cron 和“make”等工具出現問題,這些工具會檢查文件上的時間戳。

如何安裝NTP服務器

要在您的 Ubuntu 系統上安裝 NTP 服務器,請打開您的終端並運行以下命令:

apt-get install ntp

要驗證安裝是否順利進行,請運行

dpkg -l | grep "ntp"

輸出

ii  ntp                              1:4.2.8p4+dfsg-3ubuntu5.8                  amd64        Network Time Protocol daemon and utility programs

之後,使用以下命令更新系統

apt-get update

成功更新系統後,使用以下命令驗證 NTP 是否正在運行

systemctl status ntp

要驗證 NTP 是否正常工作,應運行以下命令

ntpq -p

此命令查詢並顯示 ntpd 已連接到的 NTP 服務器池。

輸出

如何使用 ntp 強制更新時鐘

有時,您可能會遇到沒有電池支持的實時時鐘的系統,時間同步就會成為問題。 在這種情況下,您可能需要強制更新時鐘,以便您的系統時間同步而沒有任何時間滯後。 而不是跑步 ntpdate 已過時的命令,請運行以下命令。

一、停止NTP服務

systemctl stop ntp

運行下面的命令

ntpd -gq

輸出

-gq 選項告訴 NTP 守護進程糾正時間,而不管偏斜 (g) 並立即退出 (q)。

最後,啟動NTP服務

systemctl start ntp

使用 timedatectl 和 timesyncd

ntpdate 在早期版本的 Ubuntu 中被淘汰,取而代之的是 timedatectl。 檢查時間狀態運行

timedatectl

輸出

root@ip-172-31-41-251:/home/ubuntu# timedatectl status
      Local time: Mon 2018-04-09 18:59:18 UTC
  Universal time: Mon 2018-04-09 18:59:18 UTC
        RTC time: Mon 2018-04-09 18:59:17
       Time zone: Etc/UTC (UTC, +0000)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

用於獲取 timedatectl 和 timesyncd 時間的名稱服務器位於 /etc/systemd/timesyncd.conf

其他配置文件可以在 /etc/systemd/timesynd.conf.d

另一種可用於立即設置系統時間的方法是使用 sntp,如下所示。

sntp -s 24.56.178.140

-s 標誌後面的地址代表一個 NTP 服務器。 隨意使用任何 NTP 服務器地址。

最後,您還可以忽略恐慌閾值,默認為 1000 秒。 這可以通過以下方式完成:

  • 編輯 /etc/default/ntp 並確保存在 -g 選項。
  • 編輯 /etc/ntp.conf 和放置 tinker panic 0 在頂部

對配置文件進行更改後,請確保重新加載 ntp 服務。

systemctl restart ntp

要獲取有關 NTP 時間服務器的更多信息,請訪問 NTP站點. 在本文中,我們已經看到瞭如何在 Ubuntu 系統中使用 NTP 服務器安裝和同步時間以保持系統時間準確。謝謝您的時間。 請隨意嘗試這些命令並向我們提供反饋。