為了避免Linux系統(tǒng)的主機,在長時間運行下所導(dǎo)致的時間偏差。因此我們需要對時間進行時間同步(synchronize)。我們一般使用ntp服務(wù)來同步不同機器的時間。NTP 是網(wǎng)絡(luò)時間協(xié)議(Network Time Protocol)的簡稱,他是通過UDP協(xié)議,對時間進行同步的。
ubuntu下NTP-Server安裝及配置
安裝NTP包
sudo apt-get install ntp
NTP配置
編輯NTP Server的主要配置文件為/etc/ntp.conf ,如下:
driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
#server 0.ubuntu.pool.ntp.org
#server 1.ubuntu.pool.ntp.org
#server 2.ubuntu.pool.ntp.org
#server 3.ubuntu.pool.ntp.org
server s1a.time.edu.cn prefer
server s2a.time.edu.cn
server s2b.time.edu.cn
server s2e.time.edu.cn
#server ntp.ubuntu.com
server 127.127.1.0
fudge 127.127.1.0 stratum 5
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 172.17.0.0 mask 255.255.0.0 nomodify
restrict 127.0.0.1
restrict ::1
配置含義:
restrict s2a.time.edu.cn prefer
server s2a.time.edu.cn
server s2b.time.edu.cn
server s2e.time.edu.cn
server 127.127.1.0
fudge 127.127.1.0 stratum 5
設(shè)定NTP主機來源,其中prefer表示優(yōu)先同步的主機
restrict 172.17.0.0 mask 255.255.0.0 nomodify
restrict 控制相關(guān)權(quán)限
語法為: restrict IP地址 mask 子網(wǎng)掩碼 參數(shù)
其中IP地址也可以是default ,default 就是指所有的IP
參數(shù)有以下幾個:
ignore :關(guān)閉所有的 NTP 聯(lián)機服務(wù)
nomodify:客戶端不能更改服務(wù)端的時間參數(shù),但是客戶端可以通過服務(wù)端進行網(wǎng)絡(luò)校時。
notrust :客戶端除非通過認證,否則該客戶端來源將被視為不信任子網(wǎng) NTP4.2 版本以后使用會出錯
noquery :不提供客戶端的時間查詢:用戶端不能使用ntpq,ntpc等命令來查詢ntp服務(wù)器
notrap :不提供trap遠端登陸:拒絕為匹配的主機提供模式 6 控制消息陷阱服務(wù)。陷阱服務(wù)是 ntpdq 控制消息協(xié)議的子系統(tǒng),用于遠程事件日志記錄程序。
nopeer :用于阻止主機嘗試與服務(wù)器對等,并允許欺詐性服務(wù)器控制時鐘
kod : 訪問違規(guī)時發(fā)送 KoD 包。
restrict -6 表示IPV6地址的權(quán)限設(shè)置。
server 127.127.1.0
只有在上級時鐘源失效時,NTP才會使用127.127.1.0的本地時鐘,將local時間作為ntp服務(wù)器時間提供給ntp客戶端。NTP把本地主機的時鐘也看作外部時鐘源來處理,分配的地址是127.127.1.0
fudge 127.127.1.0 stratum 5
設(shè)置本地時鐘源的層次為5,這樣如果NTP服務(wù)從本地時鐘源獲取時間的話,NTP對外宣布的時間層次為6
配置完畢,重啟NTP服務(wù),使配置更改生效。
service ntp restart
查看NTP服務(wù)和上級連通狀態(tài)
ntpq -p

remote: 本機和上層ntp的ip或主機名,“+”表示優(yōu)先,“*”表示次優(yōu)先
refid:參考上一層ntp主機地址
st:stratum階層
when:多少秒前曾經(jīng)同步過時間
poll:下次更新在多少秒后
reach:已經(jīng)向上層ntp服務(wù)器要求更新的次數(shù)
delay:網(wǎng)絡(luò)延遲
offset:時間補償
jitter:系統(tǒng)時間與bios時間差
配置內(nèi)網(wǎng)NTP-Clients
內(nèi)網(wǎng)其他設(shè)備作為NTP的客戶端配置,相對就比較簡單,而且所有設(shè)備的配置都相同。
首先需要安裝NTP服務(wù)(與NTP-Server完全一樣)。然后找其中一臺配置/etc/ntp.conf文件,配置完成驗證通過后,拷貝到其他客戶端機器,直接使用即可。
注釋掉之前的上層服務(wù),以下幾行
pool 0.ubuntu.pool.ntp.org
pool 1.ubuntu.pool.ntp.org
pool 2.ubuntu.pool.ntp.org
pool 3.ubuntu.pool.ntp.org
pool ntp.ubuntu.com
添加本地的NTP服務(wù)器即可完成配置
server 172.17.30.100 prefer
可以用date命令查看時區(qū)
如果時區(qū)是EST需要改成CST
sudo tzselect
選擇亞洲 /中國 /北京 /然后確認
改完后執(zhí)行如下復(fù)制語句
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
使用
ntpdate -d -u 172.17.30.100
172.17.30.100為你的NTP服務(wù)器的ip地址,顯示adjust time server 192.168.1.135 offset 0.004882 sec
這里有可能出現(xiàn)同步失敗,一般情況下原因都是本地的NTPD服務(wù)器還沒有正常啟動起來,一般需要幾分鐘時間后才能開始同步。
也有報錯 no server suitable for synchronization found,這種問題由一下兩種情況造成:
Server dropped: strata too high:
并且顯示“stratum 16”。而正常情況下stratum這個值得范圍是“0~15”。
這種問題往往是由ntp服務(wù)啟動后還沒有和上層服務(wù)同步完成,可以等五分鐘再次查看。
Server dropped: strata no data:
這種問題一般是因為訪問不到NTP服務(wù),需要檢查NTP服務(wù)是否啟動成功,或者是否是被防火墻攔截。
啟動NTP_Client
service ntp start
啟動后,查看同步情況
ntpq -p
由于是內(nèi)網(wǎng),NTP服務(wù)很快會同步上,可以使用下面命令查看時間是否和服務(wù)器時間相同
date
本機客戶端配置完成后,需要同步的客戶端機器使用SCP拷貝/etc/ntp.conf,命令如下,啟動NTP服務(wù)即可。
scp 172.17.30.1:/etc/ntp.conf /etc/ntp.conf