Linux配置ntp服務器及參數詳解

本來以爲挺簡單的一個活,足足折騰了一整天。
有三臺虛機(Ubuntu 16.04),分別是9.5,3.77,8.182,要做成9.5連接公共ntp,其餘兩臺以9.5作爲ntp服務器,也就是這樣:
在這裏插入圖片描述
方案確定之後就可以開始幹活了。

安裝NTP服務

Debian/Ubuntu環境下用apt install ntp安裝,沒什麼可說的,順帶要把防火牆關掉,ntp主要使用udp的123端口。

修改配置文件

ntp服務的主要配置文件位於/etc/ntp.conf下面,參數比較多,只挑一些需要用到的地方進行說明。
首先配置主節點9.5的機器。

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst

server jp.pool.ntp.org prefer

# Use Ubuntu's ntp server as a fallback.
#pool ntp.ubuntu.com

server cn.pool.ntp.org

ntp服務會默認添加四條服務器,這個地址前面的0/1/2/3是什麼意思暫時不懂,歡迎高人指點一下。具體的配置格式是這樣的:

server host [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]

其中host是上層NTP服務器的IP地址或域名,隨後所跟的參數解釋如下所示:

  • key: 表示所有發往服務器的報文包含有祕鑰加密的認證信息,n是32位的整數,表示祕鑰號。
  • version: 表示發往上層服務器的報文使用的版本號,n默認是3,可以是1或者2。
  • prefer: 如果有多個server選項,具有該參數的服務器優先使用
  • mode: 指定數據報文mode字段的值。
  • minpoll: 指定與查詢該服務器的最小時間間隔爲2的n次方秒,n默認爲6,範圍爲4-14。
  • maxpoll: 指定與查詢該服務器的最大時間間隔爲2的n次方秒,n默認爲10,範圍爲4-14。
  • iburst: 當初始同步請求時,採用突發方式接連發送8個報文,時間間隔爲2秒。

默認的全都註釋掉,根據自己的網絡情況選一個延遲相對較低的公共ntp服務,我這裏選擇 jp.pool.ntp.org,加上prefer表示優先選擇此地址,萬一失效使用備份的cn.pool.ntp.org
關於公共ntp服務地址可以去這裏查詢:NTP Pool Project。提供了分佈全球各大洲的3800多臺服務器,其中也包括中國結點。我爲什麼沒有選cn的?這臺在北京的機器訪問cn有200+的延遲反而訪問jp的只有100不到,很是神奇。
剩下還有很多參數,包括訪問權限控制什麼的,非常多,可以參考這篇文章
同理,其餘兩臺機器使用9.5作爲主節點的話就把server地址改爲這臺機器,備份server改爲公共ntp服務,像這樣:
在這裏插入圖片描述
修改完成wq保存退出,然後service ntp restart重啓服務。千萬不要忘了這一步!要不然是不生效的。

驗證

接下來驗證一下狀態。使用ntpq -pn命令查看一下運行狀態。

ntpq是ntp服務的程序名,-p表示打印連接信息,-n表示展示ip而不是域名

在這裏插入圖片描述
解釋一下各個字段的含義:

  • remote:表示NTP主機的IP或者是主機名,其中:
    *表示目前正在使用的NTP服務器;
    +表示已經連接成功,並且可以作爲下一個提供時間更新的候選者;
    #表示服務正常但是不在使用節點之內
    x表示無法連接
  • refid:表示上一層NTP主機的地址(和DNS服務器的結構類似,一層一層遞歸),當remote已經是根NTP服務器的時候就不會顯示ip或域名了。可能有以下值(太多了沒法全部列舉,有需要可自行搜索相關文檔):
    .LOCL.:本機,當沒有配置遠程ntp服務時;
    .IRIG.:Inter-Range Instrumentation Group 時間碼;
    .PPS.:時間標準中的“Pulse Per Second”(秒脈衝);
    .NICT.:日本情報通信研究機構(NICT),也就是此ntp服務提供者;
    .DENY.:服務拒絕訪問;
    .AUTH.:認證錯誤(適用於配置了訪問權限的NTP服務器);
    .TIME.:連接超時;
    .INIT.:初始化,常出現在服務剛剛啓動後不久;
  • st:遠程服務器的級別。當此值爲1是表示爲根NTP服務器
  • t:類型,有以下值:
    u:unicast,單播;
    b:broadcast,廣播;
    l:local,本地;
    s:對稱節點,用於備份;
    A:選播服務器;
    B:廣播服務器;
    M:多播服務器;
  • when:距上次同步的時間,單位是秒
  • poll:同步頻率,單位爲秒,默認每128秒同步一次
  • reach:已同步次數
  • delay:延遲,單位毫秒
  • offset:時間偏移量,顯示-爲負偏移,單位是毫秒
  • jitter:與遠程ntp服務的平均偏差,單位毫秒

回頭看一下9.5服務器上的結果,正在使用133.243.238.243作爲主服務(動態分配地址,ip隨時會變),他已經是根服務器了(st = 1)所以上層服務爲NICT。備用地址爲119.28.183.184,是個二級節點。
再來看一3.77的運行狀態:
在這裏插入圖片描述
主節點是配置的9.5服務,上層是243的根服務器,與9.5上顯示的地址完全相同,沒問題。
8.182的:
在這裏插入圖片描述
也沒有問題。最後netstat -ntulp查看一下端口狀態:
在這裏插入圖片描述
ntpd使用udp協議的123端口,沒問題。
至此配置完成,參考了這些博主的文章,表示感謝:鳥哥的Linux私房菜NTP時間服務器配置以及錯誤的總結網絡時間的那些事及 ntpq 詳解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章