NTP的全稱是Network Time Protocol(網(wǎng)絡(luò)時(shí)間協(xié)議),用來同步網(wǎng)絡(luò)中各個(gè)計(jì)算機(jī)的時(shí)間的協(xié)議。它的用途是把計(jì)算機(jī)的時(shí)鐘同步到世界協(xié)調(diào)時(shí)UTC(Coordinated Universal Time),其精度在局域網(wǎng)內(nèi)可達(dá)0.1ms,在Internet上精度可以達(dá)到1-50ms。
時(shí)間保持同步對于現(xiàn)代的很多服務(wù)來說尤為重要,比如說電商的秒殺,以及火車票的搶購等場合,如果由于服務(wù)器時(shí)間不同步,導(dǎo)致不同的用戶不能在同一時(shí)間操作,容易造成不公平……
我們就來消除這種不公平的現(xiàn)象。
0 系統(tǒng)環(huán)境
0.1 服務(wù)器
我這里是一臺(tái)安裝有CentOS 7的Linux服務(wù)器。采用其他Linux/Unix系統(tǒng)的配置方法與此只是指令的差異,原理一樣。
| 系統(tǒng) | 說明 |
|---|---|
| CentOS 7 Linux | 采用Minimal方式安裝 |
0.2 網(wǎng)絡(luò)環(huán)境
| 主機(jī)名 | IP地址 | 說明 |
|---|---|---|
| master | 192.168.137.100 | 安裝有ntp時(shí)間服務(wù)的主機(jī) |
1 服務(wù)器端配置
1.1安裝ntp服務(wù)
執(zhí)行以下指令安裝:
sudo yum install ntp
1.2 配置時(shí)間服務(wù)器
再進(jìn)行簡單的配置,把同步服務(wù)器修改為Aliyun的(國家授時(shí)中心的經(jīng)常連不上):
# 設(shè)置上級時(shí)間同步服務(wù)器為Aliyun的ntp服務(wù)器
server ntp.aliyun.com
# 允許局域網(wǎng)其他服務(wù)器訪問,只允許查詢
restrict 192.168.137.0 mask 255.255.255.0 nomodify notrap
# 其他時(shí)間服務(wù)器不可用時(shí),以本地時(shí)間作為時(shí)間服務(wù)
server 127.0.0.1
fudge 127.0.0.1 stratum 10
1.3 預(yù)同步
先跟阿里云時(shí)間服務(wù)器進(jìn)行同步:
sudo ntpdate -u ntp.aliyun.com
寫入系統(tǒng)時(shí)鐘:
sudo hwclock --systohc
1.4 再啟用時(shí)間同步服務(wù)
systemctl enable ntpd
systemctl start ntpd
1.5 打開防火墻端口
我們現(xiàn)在部署的是一個(gè)ntp服務(wù)器,所以要打開相應(yīng)的端口,允許其他客戶端訪問:
# 開放ntp服務(wù)端口
firewall-cmd --add-port=123/udp --permanent
# reload防火墻規(guī)則
firewall-cmd --reload
1.6 查詢同步信息
至此,一個(gè)可以自動(dòng)
ntpq -p

2 客戶端同步
2.1 最簡單同步方法
安裝好的Linux已經(jīng)有同步指令ntpdate,所以我們直接執(zhí)行以下指令即可:
ntpdate 192.168.137.100
2.2 自動(dòng)同步法
或者我們可以參考master服務(wù)器上的配置方法,安裝ntpdate服務(wù),設(shè)置時(shí)間服務(wù)器為master(192.168.137.100)即可。
2.2.1安裝ntp服務(wù)
執(zhí)行以下指令安裝:
sudo yum install ntpdate
2.2.2 配置時(shí)間同步
配置方法與服務(wù)器端的類似,都是修改/etc/ntp.conf文件,只不過不需要授權(quán),只是把時(shí)間服務(wù)器修改為master服務(wù)器的IP地址即可:
server 192.168.137.100
2.2.3 再啟用時(shí)間同步服務(wù)
systemctl enable ntpdate
systemctl start ntpdate