您好,登錄后才能下訂單哦!
本文主要從NTP通信協議、NTP服務器的階層概念、NTP服務器的安裝與設定、Client的安裝和配置、NTP的啟動與觀察等幾個方面詳細介紹了NTP服務器。
上篇文章回顧:初探Firewalld
計算機內部所記錄的的時鐘都記載于BIOS(CMOS)內的,但如果計算機上面的CMOS電池沒電了,或者是某些特殊因素導致BIOS數據被清除,此時計算機的時間就會不準。在實際生活中,我們可以通過電視臺,廣播臺,電話來調整我們的手表,那么在網絡上,就需要NTP這個服務器讓我們的主機隨時保持正確的時間信息。
全球有多少時區?GMT在那個時區?
全球有24個時區,因為繞地球一周360度,這360度分為24個時區,當然一個時區就是15度了,又由于是以格林尼治時間(Greenwich Mean Time,GMT時間)為標準時間,盡管其后采用北京時間為標準時間,但linux并沒有反映這一變化,所以在linux中默認定義時區時看不到北京時間。又因為我國在格林尼治的東方,因此北京時間(local time)會比GMT時間快8小時(GMT +8)
Network Time Protocol,如何在server與client同步他們的時間呢?
1)首先,主機當然要啟動這個daemon
2)之后client 會向NTP server 校對時間的message
3)然后 NTP Server 會送出目前的標準時間給 Client
4)Client 接收了來自 Server 的時間后,調整自己的時間,達成了網絡校時
ntp 這個 daemon 是以 port 123 為連接的端口(使用 UDP 封包),所以我們要利用 Time server 來進行時間的同步更新時,就得要使用 NTP 軟件提供的 ntpdate 來進行 port 123 的連接。
由于 NTP 時間服務器采用類似階層架構 (stratum) 來處理時間的同步化, 所以他使用的是類似一般 server/client 的主從架構。網絡社會上面有提供一些主要與次要的時間服務器, 這些均屬于第一階及第二階的時間服務器 (stratum-1, stratum-2)
Tips: 其實 NTP 的階層概念與 DNS 很類似啦,當你架設一部 NTP 主機,這部 NTP 所向上要求同步化的那部主要主機為 stratum-1 時,那么你的 NTP 就是 stratum-2 ,舉例來說,如果我們的 NTP 是向臺灣的 tock.stdtime.gov.tw 這部 stratum-2 的主機要求時間同步化,那我們的主機即為 stratum-3 ,如果還有其他的 NTP 主機向我們要求時間同步, 那么該部主機則會是 stratum-4 啦!就這樣啊~ 那最多可以有幾個階層?最多可達 15 個階層。
rpm -qa | grep "ntp" #查看是否已經安裝ntp組件,有如下兩個組件說明已經安裝 ntpdate-4.2.6p5-1.el6.centos.x86_64 ntp-4.2.6p5-1.el6.centos.x86_64
yum -y install ntp1.3 ntp
配置文件
/etc/ntp.conf
配置文件默認內容
egrep -v "^$|#" ntp.conf #排除默認注釋及空行
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery #對默認的client拒絕所有操作
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1 #允許本地地址的一切操作
restrict -6 ::1
server 0.centos.pool.ntp.org iburst #默認的上層時間服務器
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
修改配置
cat /etc/ntp.conf driftfile /var/lib/ntp/drift restrict default kod nomodify notrap nopeer noquery #對默認的client拒絕所有操作 restrict -6 default kod nomodify notrap nopeer noquery restrict 127.0.0.1 #允許本機的一切操作 restrict 192.168.1.0 mask 255.255.255.0 nomodify #允許局域網內所有client連接到這臺服務器 restrict -6 ::1 同步時間.但是拒絕讓他們修改服務器上的時間 #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst server ntp1.aliyun.com #同步公網的時間 server 127.127.1.0 #如果無法連接公網,則使用自己本身的時間作為標準時間。 fudge 127.127.1.0 stratum 10 #設置stratum級別 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys
ignore:關閉所有的 NTP 聯機服務
nomodify:客戶端不能更改服務端的時間參數,但是客戶端可以通過服務端進行網絡校時
notrust:客戶端除非通過認證,否則該客戶端來源將被視為不信任子網
noquery:不提供客戶端的時間查詢
客戶端的安裝同服務器,如上。
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
#server 0.centos.pool.ntp.org iburst #<==注釋默認的上層時間服務器
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server ntpserver #<==添加自己的時間服務器
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
在服務器端啟動NTP服務,命令如下:
/etc/init.d/ntpd start
添加開啟啟動:
chkconfig ntpd on
這樣就表示我們的 NTP 服務器已經啟動了,不過要與上層 NTP 服務器聯機則還需要一些時間, 通常啟動 NTP 后約在 15 分鐘內才會和上層 NTP 服務器順利連接上。 那要如何確認我們的 NTP 服務器有順利的更新自己的時間呢?你可以使用底下幾個指令來查閱喔 (請自行等待數分鐘后再以下列指令查閱):
這個指令可以列出我們的 NTP 服務器有跟上層聯機否。由上述的輸出結果可以知道,時間有校正約 258 * 10^(-3) 秒,且每隔 512秒會主動去更新時間喔!
各個參數的含義:
事實上這個輸出的結果告訴我們,時間真的很準了啦!因為差異都在 0.001 秒以內, 可以符合我們的一般使用了。另外,你也可以檢查一下你的 BIOS 時間與 Linux 系統時間的差異, 就是 /var/lib/ntp/drift 這個檔案的內容,就能了解到咱們的 Linux 系統時間與 BIOS 硬件時鐘到底差多久?單位為 10^(-6) 秒啦!
要讓你的 NTP Server/Client 真的能運作,在上述的動作中得注意:
上述的 ntpstat 以及 ntpq -p 的輸出結果中,你的 NTP 服務器真的要能夠連結上層 NTP 才行! 否則你的客戶端將無法對你的 NTP 服務器進行同步更新的!重要重要!
你的 NTP 服務器時間不可與上層差異太多。
服務器防火墻在 UDP port 123 有沒有開啊?要特別注意的呢!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。