Ubuntu部署NTP服務器和客戶端
NTP或網絡時間協議是一種協議,用於將網絡中的所有系統時鍾同步以使用同一時間。當我們使用術語NTP時,我們指的是協議本身,也指網絡計算機上運行的客戶端和服務器程序。 NTP屬於傳統的TCP /IP協議套件,可以很容易地歸類為它最古老的部分之一。
最初設置時鍾時,需要在設置時鍾之前的5到10分鍾內進行六次交換。網絡中的時鍾同步后,客戶端每10分鍾更新一次與服務器的時鍾。通常,這是通過單個消息交換(事務)完成的。這些事務使用系統的端口號123。
在本文中,我們將描述如何執行以下操作的step-by-step過程:
- 在Ubuntu計算機上安裝和配置NTP服務器。
- 將NTP客戶端配置為與服務器時間同步。
我們已經在Ubuntu 18.04 LTS系統上運行了本文中提到的命令和過程。
第一部分:在主機上安裝和配置NTP服務器
請按照以下步驟操作,以便在主機Ubuntu計算機上安裝NTP服務器:
注意:為了安裝和配置NTP,我們使用Ubuntu命令行終端。您可以通過應用程序啟動器搜索或Ctrl + Alt + T快捷方式打開“終端”應用程序。
步驟1:更新存儲庫索引
為了從Internet信息庫安裝最新的可用軟件版本,您的本地信息庫索引需要與它們保持一致。以sudo身份運行以下命令,以更新您的本地存儲庫索引:
$ sudo apt-get update
步驟2:使用apt-get安裝NTP服務器
請以sudo身份運行以下命令,以便從APT存儲庫安裝NTP服務器守護程序:
$ sudo apt-get install ntp
請注意,只有授權用戶才能在Ubuntu上添加,刪除和配置軟件。
系統可能會詢問您sudo的密碼,並且還會為您提供一個Y /n選項以繼續安裝。輸入Y,然后按Enter; NTP服務器將安裝在您的系統上。但是,該過程可能需要一些時間,具體取決於您的Internet速度。
步驟3:驗證安裝(可選)
您可以通過在終端中運行以下命令來驗證NTP的安裝並檢查版本號:
$ sntp --version
步驟4:切換到距離您最近的NTP服務器池
安裝NTP服務器時,大多數情況下將其配置為獲取適當的時間。但是,您可以將服務器池切換到離您的位置最近的服務器池。這包括在/等等/ntp.conf文件。
通過運行以下命令,以sudo的身份在nano編輯器中打開文件:
$ sudo nano /etc/ntp.conf
在此文件中,您將能夠看到一個池列表。我們已在上圖中突出顯示了此列表。此處的任務是用最接近您所在位置的時間服務器池替換此池列表。 pol.ntp.org項目從大型時間服務器群集中提供可靠的NTP服務。要根據您的位置選擇一個池列表,請訪問以下頁面:
我們已經搜索了美國的游泳池清單:
該頁面告訴我們將以下行添加到ntp.conf文件中:
server 0.us.pool.ntp.org server 1.us.pool.ntp.org server 2.us.pool.ntp.org server 3.us.pool.ntp.org
這是我的文件在添加以上行之后的外觀:
通過按Ctrl + X退出文件,然后輸入y來保存更改。
步驟5:重新啟動NTP服務器
為了使以上更改生效,您需要重新啟動NTP服務器。為此,以sudo身份運行以下命令:
$ sudo service ntp restart
步驟6:驗證NTP服務器正在運行
現在,通過以下命令檢查NTP服務的狀態:
$ sudo service ntp status
活動狀態驗證您的NTP服務器已啟動並正在運行。
步驟7:配置防火牆,以便客戶端可以訪問NTP服務器
最后,是時候配置系統的UFW防火牆,以使傳入的連接可以通過UDP端口號123訪問NTP服務器。
以sudo身份運行以下命令以打開端口123以接收傳入流量:
$ sudo ufw allow from any to any port 123 proto udp
您的Ubuntu主機現已配置為用作NTP服務器。
第二部分:將NTP客戶端配置為與NTP服務器進行時間同步
現在讓我們將Ubuntu客戶端計算機配置為與NTP服務器時間同步。
步驟1:安裝ntpdate
ntpdate命令將使您可以手動檢查與NTP-server的連接配置。在客戶端計算機上打開終端應用程序,然后輸入以下命令作為sudo:
$ sudo apt-get install ntpdate
步驟2:在hosts文件中指定NTP服務器的IP和主機名
為了使NTP服務器在客戶端計算機中由主機名解析,您需要配置/etc /hosts文件。
輸入以下命令,在nano編輯器中以sudo形式打開hosts文件:
$ sudo nano /etc/hosts
現在添加您的NTP服務器的IP並在此文件中指定一個主機名,如下所示:
通過按Ctrl + X退出文件,然后通過輸入y保存文件。
第3步:檢查客戶端計算機的時間是否與NTP服務器同步
以下ntpdate命令將使您可以手動檢查客戶端和服務器系統之間的時間是否同步:
$ sudo ntpdate NTP-server-host
理想情況下,輸出應顯示兩個系統之間的時間偏移。
步驟4:在客戶端上禁用systemd timesyncd服務
因為我們希望客戶端與NTP服務器同步時間,所以讓我們在客戶端計算機上禁用時間同步服務。
輸入以下命令來這樣做:
步驟5:在客戶端上安裝NTP
以sudo身份運行以下命令,以便在客戶端計算機上安裝NTP:
$ sudo apt-get install ntp
步驟6:配置/etc/ntp.conf文件,將NTP服務器添加為新的時間服務器
現在,我們希望客戶端計算機將自己的NTP主機服務器用作默認時間服務器。為此,我們需要在客戶端計算機上編輯/etc/ntp.conf文件。
以sudo身份運行以下命令,以便在Nano編輯器中打開文件:
$ sudo nano /etc/ntp.conf
然后,在文件中添加以下行,其中NTP-server-host是您為NTP服務器指定的主機名:
server NTP-server-host prefer iburst
指定時間服務器后,文件的外觀如下所示:
按Ctrl + x退出文件,然后輸入y保存更改。
步驟7:重新啟動NTP服務器
為了使以上更改生效,您需要重新啟動NTP服務。為此,以sudo身份運行以下命令:
$ sudo service ntp restart
步驟8:查看時間同步隊列
現在,您的客戶端和服務器計算機已配置為time-synced。您可以通過運行以下命令來查看時間同步隊列:
$ ntpq -p
您應該能夠看到NTP-server-host作為隊列中的時間同步主機/源。
這就是安裝和配置NTP以在聯網的Ubuntu計算機上同步時間所需的全部知識。該過程可能看起來有些麻煩,但是如果您認真執行上述所有步驟one-by-one,您的計算機將立即同步。