十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
本文主要從NTP通信協(xié)議、NTP服務(wù)器的階層概念、NTP服務(wù)器的安裝與設(shè)定、Client的安裝和配置、NTP的啟動(dòng)與觀察等幾個(gè)方面詳細(xì)介紹了NTP服務(wù)器。
上篇文章回顧:初探Firewalld
計(jì)算機(jī)內(nèi)部所記錄的的時(shí)鐘都記載于BIOS(CMOS)內(nèi)的,但如果計(jì)算機(jī)上面的CMOS電池沒電了,或者是某些特殊因素導(dǎo)致BIOS數(shù)據(jù)被清除,此時(shí)計(jì)算機(jī)的時(shí)間就會(huì)不準(zhǔn)。在實(shí)際生活中,我們可以通過電視臺(tái),廣播臺(tái),電話來調(diào)整我們的手表,那么在網(wǎng)絡(luò)上,就需要NTP這個(gè)服務(wù)器讓我們的主機(jī)隨時(shí)保持正確的時(shí)間信息。
全球有多少時(shí)區(qū)?GMT在那個(gè)時(shí)區(qū)?
全球有24個(gè)時(shí)區(qū),因?yàn)槔@地球一周360度,這360度分為24個(gè)時(shí)區(qū),當(dāng)然一個(gè)時(shí)區(qū)就是15度了,又由于是以格林尼治時(shí)間(Greenwich Mean Time,GMT時(shí)間)為標(biāo)準(zhǔn)時(shí)間,盡管其后采用北京時(shí)間為標(biāo)準(zhǔn)時(shí)間,但linux并沒有反映這一變化,所以在linux中默認(rèn)定義時(shí)區(qū)時(shí)看不到北京時(shí)間。又因?yàn)槲覈诟窳帜嶂蔚臇|方,因此北京時(shí)間(local time)會(huì)比GMT時(shí)間快8小時(shí)(GMT +8)
1 NTP通信協(xié)議Network Time Protocol,如何在server與client同步他們的時(shí)間呢?
1)首先,主機(jī)當(dāng)然要啟動(dòng)這個(gè)daemon
2)之后client 會(huì)向NTP server 校對(duì)時(shí)間的message
3)然后 NTP Server 會(huì)送出目前的標(biāo)準(zhǔn)時(shí)間給 Client
4)Client 接收了來自 Server 的時(shí)間后,調(diào)整自己的時(shí)間,達(dá)成了網(wǎng)絡(luò)校時(shí)
ntp 這個(gè) daemon 是以 port 123 為連接的端口(使用 UDP 封包),所以我們要利用 Time server 來進(jìn)行時(shí)間的同步更新時(shí),就得要使用 NTP 軟件提供的 ntpdate 來進(jìn)行 port 123 的連接。
2 NTP服務(wù)器的階層概念由于 NTP 時(shí)間服務(wù)器采用類似階層架構(gòu) (stratum) 來處理時(shí)間的同步化, 所以他使用的是類似一般 server/client 的主從架構(gòu)。網(wǎng)絡(luò)社會(huì)上面有提供一些主要與次要的時(shí)間服務(wù)器, 這些均屬于第一階及第二階的時(shí)間服務(wù)器 (stratum-1, stratum-2)
Tips: 其實(shí) NTP 的階層概念與 DNS 很類似啦,當(dāng)你架設(shè)一部 NTP 主機(jī),這部 NTP 所向上要求同步化的那部主要主機(jī)為 stratum-1 時(shí),那么你的 NTP 就是 stratum-2 ,舉例來說,如果我們的 NTP 是向臺(tái)灣的 tock.stdtime.gov.tw 這部 stratum-2 的主機(jī)要求時(shí)間同步化,那我們的主機(jī)即為 stratum-3 ,如果還有其他的 NTP 主機(jī)向我們要求時(shí)間同步, 那么該部主機(jī)則會(huì)是 stratum-4 啦!就這樣啊~ 那最多可以有幾個(gè)階層?最多可達(dá) 15 個(gè)階層。
3 NTP服務(wù)器的安裝與設(shè)定3.1 查看系統(tǒng)是否已經(jīng)安裝NTP服務(wù)組件rpm -qa | grep "ntp" #查看是否已經(jīng)安裝ntp組件,有如下兩個(gè)組件說明已經(jīng)安裝 ntpdate-4.2.6p5-1.el6.centos.x86_64 ntp-4.2.6p5-1.el6.centos.x86_643.2 yum安裝
yum -y install ntp1.3 ntp3.3 配置文件
配置文件
/etc/ntp.conf
配置文件默認(rèn)內(nèi)容
egrep -v "^$|#" ntp.conf #排除默認(rèn)注釋及空行
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery #對(duì)默認(rèn)的client拒絕所有操作
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1 #允許本地地址的一切操作
restrict -6 ::1
server 0.centos.pool.ntp.org iburst #默認(rèn)的上層時(shí)間服務(wù)器
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 #對(duì)默認(rèn)的client拒絕所有操作 restrict -6 default kod nomodify notrap nopeer noquery restrict 127.0.0.1 #允許本機(jī)的一切操作 restrict 192.168.1.0 mask 255.255.255.0 nomodify #允許局域網(wǎng)內(nèi)所有client連接到這臺(tái)服務(wù)器 restrict -6 ::1 同步時(shí)間.但是拒絕讓他們修改服務(wù)器上的時(shí)間 #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 #同步公網(wǎng)的時(shí)間 server 127.127.1.0 #如果無法連接公網(wǎng),則使用自己本身的時(shí)間作為標(biāo)準(zhǔn)時(shí)間。 fudge 127.127.1.0 stratum 10 #設(shè)置stratum級(jí)別 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys3.4 restrict安全相關(guān)參數(shù)
ignore:關(guān)閉所有的 NTP 聯(lián)機(jī)服務(wù)
nomodify:客戶端不能更改服務(wù)端的時(shí)間參數(shù),但是客戶端可以通過服務(wù)端進(jìn)行網(wǎng)絡(luò)校時(shí)
notrust:客戶端除非通過認(rèn)證,否則該客戶端來源將被視為不信任子網(wǎng)
noquery:不提供客戶端的時(shí)間查詢
客戶端的安裝同服務(wù)器,如上。
4.1 配置文件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 #<==注釋默認(rèn)的上層時(shí)間服務(wù)器
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server ntpserver #<==添加自己的時(shí)間服務(wù)器
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
5 服務(wù)器端啟動(dòng)在服務(wù)器端啟動(dòng)NTP服務(wù),命令如下:
/etc/init.d/ntpd start
添加開啟啟動(dòng):
chkconfig ntpd on6 NTP的啟動(dòng)與觀察6.1 查看啟動(dòng)的端口
這樣就表示我們的 NTP 服務(wù)器已經(jīng)啟動(dòng)了,不過要與上層 NTP 服務(wù)器聯(lián)機(jī)則還需要一些時(shí)間, 通常啟動(dòng) NTP 后約在 15 分鐘內(nèi)才會(huì)和上層 NTP 服務(wù)器順利連接上。 那要如何確認(rèn)我們的 NTP 服務(wù)器有順利的更新自己的時(shí)間呢?你可以使用底下幾個(gè)指令來查閱喔 (請(qǐng)自行等待數(shù)分鐘后再以下列指令查閱):
6.2 查看NTP服務(wù)器上層聯(lián)機(jī)這個(gè)指令可以列出我們的 NTP 服務(wù)器有跟上層聯(lián)機(jī)否。由上述的輸出結(jié)果可以知道,時(shí)間有校正約 258 * 10^(-3) 秒,且每隔 512秒會(huì)主動(dòng)去更新時(shí)間喔!
6.3 列出目前我們的NTP與相關(guān)的上層NTP的狀態(tài)各個(gè)參數(shù)的含義:
事實(shí)上這個(gè)輸出的結(jié)果告訴我們,時(shí)間真的很準(zhǔn)了啦!因?yàn)椴町惗荚?0.001 秒以內(nèi), 可以符合我們的一般使用了。另外,你也可以檢查一下你的 BIOS 時(shí)間與 Linux 系統(tǒng)時(shí)間的差異, 就是 /var/lib/ntp/drift 這個(gè)檔案的內(nèi)容,就能了解到咱們的 Linux 系統(tǒng)時(shí)間與 BIOS 硬件時(shí)鐘到底差多久?單位為 10^(-6) 秒啦!
7 注意要讓你的 NTP Server/Client 真的能運(yùn)作,在上述的動(dòng)作中得注意:
上述的 ntpstat 以及 ntpq -p 的輸出結(jié)果中,你的 NTP 服務(wù)器真的要能夠連結(jié)上層 NTP 才行! 否則你的客戶端將無法對(duì)你的 NTP 服務(wù)器進(jìn)行同步更新的!重要重要!
你的 NTP 服務(wù)器時(shí)間不可與上層差異太多。
服務(wù)器防火墻在 UDP port 123 有沒有開啊?要特別注意的呢!