NTP協議
網絡時間協議,英文名稱:Network Time Protocol(NTP)是用來使計算機時間同步化的一種協議,它可以使計算機對其服務器或時鐘源(如石英鐘,GPS等等)做同步化,它可以提供高精準度的時間校正(LAN上與標準間差小於1毫秒,WAN上幾十毫秒),且可介由加密確認的方式來防止惡毒的協議攻擊。NTP的目的是在無序的Internet環境中提供精確和健壯的時間服務。
NTP服務器可以使局域網中主機的時間同步,應用於對實時性要求非常高的環境中。
需求
聯網的服務器搭建NTP服務,其餘兩臺局域網服務器通過NTP服務器實現時間同步。
環境:
NTP服務器兩塊網卡,因此兩個地址:192.168.254.129,192.168.1.125
客戶端:與NTP服務器局域網地址能通信
NTP服務安裝
服務採用C/S模式,運行時監聽UDP的123端口。
服務安裝程序有兩個,分別是ntp(服務器端)和ntpdate(客戶端)。除最小化安裝系統外,ntp程序默認已經安裝到系統中。
yum install -y ntp ntpdate
配置文件位於:/etc/ntp.conf,在編輯之前,可以對其做一下備份
cp /etc/ntp.conf /etc/ntp.conf.bak
服務控制使用systemctl即可,start啓動,stop關閉等等。
systemctl start ntpd
查看端口是否存在
netstat -anpu4 | grep 123
udp 0 0 192.168.122.1:123 0.0.0.0:* 4711/ntpd
udp 0 0 192.168.254.128:123 0.0.0.0:* 4711/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 4711/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 4711/ntpd
NTP服務器搭建
ntp.conf配置文件說明
配置項 | 作用 |
---|---|
notrust | 不接受沒有經過認證的客戶端的請求 |
ignore | 忽略所有類型的NTP連接請求 |
noquery | 不提供NTP網絡校時服務 |
nomodify | 限制客戶端不能使用命令ntpc和ntpq來修改服務器端的時間 |
notrap | 不接受遠程登錄請求 |
fudge | 設置時間服務器的層級 |
server | 指定其他NTP服務器的地址 |
restrict | 允許上層時間服務器修改本機時間 |
將過濾後的配置文件覆蓋源文件
grep -v '^$' /etc/ntp.conf | grep -v '^#' > ntp.conf
cat ntp.conf > /etc/ntp.conf
接下來,開始對配置文件進行修改,通過http://www.ntp.org.cn/pool.php或https://www.ntppool.org/zone/cn來指定中國權威NTP服務器域名。
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery #禁止遠程主機修改本機
restrict 127.0.0.1 #允許本機修改時間
restrict ::1
server 0.cn.pool.ntp.org #四個均爲權威NTP服務器域名
server 1.cn.pool.ntp.org
server 2.cn.pool.ntp.org
server 3.cn.pool.ntp.org
server 127.127.1.0 #權威NTP不可用時,本機時間作爲時間服務
fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
之後將服務暫時關閉,將時間修改爲錯誤時間,然後通過ntpdate命令同步權威NTP服務器,因爲本機是服務器端,不將其服務關閉無法使用客戶端工具進行時間同步。
命令語法:ntpdate 域名或IP
date -s '2020-1-1 5:55:55'
2020年 01月 01日 星期三 05:55:55 CST
systemctl stop ntpd
現在已經將本機時間修改爲錯誤時間了,然後通過ntpdate命令進行時間同步,同步的服務器爲配置文件中權威服務器任意一個即可。
ntpdate 3.cn.pool.ntp.org
4 May 13:47:44 ntpdate[5925]: adjust time server 94.130.49.186 offset 0.017917 sec
date
2020年 05月 04日 星期一 13:49:11 CST
同步完成後,時間恢復正確,之後把NTP服務啓動
systemctl start ntpd
客戶端測試
局域網測試機進行時間同步,若沒有ntpdate命令,安裝一下ntpdate即可。
date -s '2000-1-1 4:44:44'
2000年 01月 01日 星期六 04:44:44 CST
ntpdate 192.168.1.125
4 May 14:02:44 ntpdate[2864]: step time server 192.168.1.125 offset 641899072.284345 sec
date
2020年 05月 04日 星期一 14:03:02 CST
以上NTP時間同步服務器搭建完成。