NTP簡介
由RFC1305定義的時間同步協議
在分佈式時間服務器和客戶端之間進行時間同步
基於UDP報文傳輸 端口號爲123
採用分層的方法來定義時鐘的準確度
支持訪問控制和MD5加密驗證
可以採用單播、組播或廣播方式發送協議報文
時鐘層的概念
層數決定了時鐘的準確度 其取值範圍爲0-15 準確度從0-15依次遞減 一般層數爲0的 時鐘處於子網特殊位置 參考原子鐘
NTP工作原理
NTP主要通過交換時間服務器和客戶端的時間戳 計算出客戶端相對於服務器的時延和 偏差 從而實現時間的同步
NTP工作模式
服務器/客戶端模式
對等體模式 並沒有明確的表明誰是服務器誰是客戶端
廣播模式 大範圍的
組播模式 一個小範圍的
NTP應用建議
儘量在本地局域網部署SNTP服務器 Internet上公用的SNTP服務器時延有不確定性 會 對授時精度產生影響
客戶端授權時請求要大於1min 以免SNTP服務器負擔過重 無法及時響應
高可靠性系統中 最好配置多臺SNTP服務器 利用DNS實現負載均衡
客戶端應能夠識別服務器故障 一旦發現故障 應丟棄時間戳 轉向其他服務器請求授時
查詢Internet NTP服務器 https://www.ntppool.org
/etc/ntp.conf配置文件
driftfile參數 解決NTP服務器校準時間時的傳送延遲
driftfile /var/lib/ntp/drift
restrict參數 權限的控制(局域網ntp服務器需修改 ntp客戶端可不用修改)
restrict IP mask 掩碼 參數
IP規定了允許或不允許訪問的地址(此處若爲default 即0.0.0.0爲所有IP)配合 掩碼可以對某一網段進行限制
restrict參數包括
ignore 關閉所有NTP服務
nomodify 客戶端不能修改服務器的時間 但可以作爲客戶端的校正服務器
noquery 不提供時間查詢 即用戶不能使用ntpq ntpc等命令來查詢ntp服務器
nopeer 不與同一層的其他服務器進行時間同步
kod kod技術可以阻止“kiss of death”包(一種DOS攻擊)對服務器的破壞
notrap 不提供trap遠端事件登陸的功能(遠程事件日誌記錄程序)
restrict 127.0.0.1 允許本機地址的一切操作
restrict -6 限制IPv6
server參數 設定上級時間服務器(區域網ntp服務器和客戶端都需要配置)
server IP地址或域名 [prefer]
用途:爲該NTP服務器指定的上級NTP服務器
當指定多個NTP服務器時 使用prefer參數的服務器優先級最高
如果未使用prefer參數 優先級按從上到下的順序依次從高到低
常用命令
ntpstat 查看ntp服務器有無和上層ntp連通
ntpd -p命令 該命令可以列出目前我們的NTP與相關的上層NTP的狀態
remote 即NTP主機的IP或主機名稱 注意最左邊的符號 如果“+”則代表目前正在作 用鐘的上層NTP 如果是“*”則表示也有連上線 不過是作爲次要聯機的NTP 主機
refid 參考的上一層NTP主機的地址
st 即stratum階層(0-15)
when 幾秒前曾做過時間同步更新的操作
poll 下次更新在幾秒之後
jitter Linux系統時間與BIOS硬件時間的差異時間
reach 已經向上層NTP服務器要求更新的次數
delay 網絡傳輸過程鍾延遲的時間
offset 時間補償的結果
watch “ntpq -p”命令 結果如上
服務器查詢是否安裝ntp軟件包
設置時區 由於在之前設置時選的時區是上海 所以報錯
修改系統時間 與Internet時間同步
將硬件時間修改到與系統時間相同
修改/etc/ntp.conf主配置文件
讓ntp服務修改硬件時間
修改/etc/ntp/step-tickers
當ntpd服務啓動或重啓時 自動和該文件中記錄的上層NTP服務進行時間校對
將ntp服務加入開機自啓動
啓動服務
關閉防火牆
查看狀態
客戶端檢查是否安裝ntp
同步系統時間 並修改硬件時間
修改/etc/ntp.conf主配置文件
修改/etc/ntp/step-tickers 添加server
修改/etc/sysconfig/ntpd 使其自動修改硬件時間
設置成開機自啓動
啓動服務並查看狀態