Linux配置NTP時間同步

一:NTP是網絡時間同步協議,就是用來同步網絡中各個計算機的時間的協議。html

二:NTP服務端配置linux

1.檢查系統是否安裝了NTP包(linux系統通常自帶NTP4.2),沒有安裝咱們直接使用yum命令在線安裝: yum install ntp數據庫

2.NTP服務端配置文件編輯: vim /etc/ntp.confvim

結果:centos

https://s4.51cto.com/images/blog/202108/09/323ceb728f75a5e79f2623761cea5f01.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

# @3新增-權限配置restrict 127.127.1.0restrict 192.168.31.0 mask 255.255.255.0 nomodify notrap# @3改動-註釋掉上級時間服務器地址#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# @4新增-上級時間服務器server 127.127.1.0 # local clockfudge 127.127.1.0 stratum 10安全

2.啓動NTP時間服務器:service ntpd start服務器

3.設置NTP開機自動啓動:chkconfig ntpd on網絡

4.查看NTP是否正常運行:netstat -tlunp | grep ntpide

5.配置防火牆過濾規則:/sbin/iptables -I INPUT -p udp --dport 123 -j ACCEPT設計

如何配置:/etc/sysconfig/iptables 文件內配置開放udp 123端口: -A INPUT -p udp --destination-port 123 -j ACCEPT

 

A.服務端配置文件解釋

①1:設定NTP主機來源(其中prefer表示優先主機),192.168.31.134是本地的NTP服務器,因此優先指定從該主機同步時間。

server 192.168.7.49 prefer

server 0.rhel.pool.ntp.org

server 1.rhel.pool.ntp.org

server 2.rhel.pool.ntp.org

server 3.rhel.pool.ntp.org

 

②2:限制你容許的這些服務器的訪問類型,在這個例子中的服務器是不允許修改運行時配置或查詢您的Linux NTP服務器

restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap

 

在上例中,掩碼地址擴展爲255,所以從192.168.0.1-192.168.0.254的服務器均可以使用咱們的NTP服務器來同步時間

#此時表示限制向從192.168.0.1-192.168.0.254這些IP段的服務器提供NTP服務。

restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap noquery

#設置默認策略爲容許任何主機進行時間同步

restrict default ignore

 

二:NTP客戶端配置

1.檢查安裝NTP服務有沒有安裝,未安裝請自行安裝

2.NTP客戶端配置文件編輯: vim /etc/ntp.conf

https://s4.51cto.com/images/blog/202108/09/361e936fc83f6d94791f15277e05a795.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

# @1新增-權限配置restrict 192.168.31.0 mask 255.255.255.0 nomodify notrap# Use public servers from the pool.ntp.org project.# Please consider joining the pool (http://www.pool.ntp.org/join.html).# 註釋掉原來的實際服務器地址#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# @2新增-本身的時間服務器地址server 192.168.31.223 prefer <==以這部主機為最優先#broadcast 192.168.1.255 autokey # broadcast server#broadcastclient # broadcast client#broadcast 224.0.1.1 autokey # multicast server#multicastclient 224.0.1.1 # multicast client#manycastserver 239.255.254.254 # manycast server#manycastclient 239.255.254.254 autokey # manycast client

3.手動同步一次時間:/usr/sbin/ntpdate192.168.31.134 (服務端主機IP,這裏須要先關閉NTP服務哦)

4.啓動NTP服務:service ntpd start

5.觀察時間同步情況:ntpq -p

結果:

[root@localhost hct]# ntpq -p remote refid st t when poll reach delay offset jitter==============================================================================*192.168.31.134 LOCAL(0) 11 u 64 128 377 0.202 73.980 412.834

⑥查看時間同步結果:ntpstat

[root@hct ~]# ntpstat

unsynchronised

polling server every 8 s

同步失敗,同步也須要時間嘛,需等待5-10分鐘再次查詢:

Every 2.0s: ntpstat Tue Jul 11 16:55:57 2017synchronised to NTP server (10.10.11.247) at stratum 12 time correct to within 605 ms polling server every 128 s

 

OK!時間同步完成,date一下是否是和服務器主機時間一致呢

 

B.客戶端配置文件詳解

修改/etc/ntp/stpe-tickers文件,內容以下(當ntpd服務啓動時,會自動與該文件中記錄的上層NTP服務進行時間校對

https://s4.51cto.com/images/blog/202108/09/cd3e4b8fe9bf18a49ddacabbf3b45262.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

C.系統時間與硬件時間同步

 若是主從服務時間超過1000秒則再也不進行同步了,這時候要手動同步,即:/usr/sbin/ntpdate命令,若是怕服務器時差會常常變更比較大能夠再Linux中添加計劃任務,例如:

10 5 * * * root /usr/sbin/ntpdate 192.168.31.223 && /sbin/hwclock -w

 

     ntp服務,默認只會同步系統時間。若是想要讓ntp同時同步硬件時間,能夠設置/etc/sysconfig/ntpd文件,在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 這樣,就可讓硬件時間與系統時間一塊兒同步。

 

D:ntpq -p各個選項相關信息

restrict 控制相關權限。

語法爲: restrict IP地址 mask 子網掩碼 參數

其中IP地址也能夠是default ,default 就是指全部的IP

參數有如下幾個:

ignore  :關閉全部的 NTP 聯機服務

nomodify:客戶端不能更改服務端的時間參數,可是客戶端能夠經過服務端進行網絡校時。

notrust :客戶端除非經過認證,不然該客戶端來源將被視爲不信任子網

noquery :不提供客戶端的時間查詢:用戶端不能使用ntpq,ntpc等命令來查詢ntp服務器

notrap :不提供trap遠端登錄:拒絕爲匹配的主機提供模式 6 控制消息陷阱服務。陷阱服務是 ntpdq 控制消息協議的子系統,用於遠程事件日誌記錄程序。

nopeer :用於阻止主機嘗試與服務器對等,並容許欺詐性服務器控制時鐘

kod : 訪問違規時發送 KoD 包。

restrict -6 表示IPV6地址的權限設置。

 

root@www ~]# vim /etc/ntp.conf# 1. 先處理權限方面的問題,包括放行上層伺服器以及開放區網用戶來源:restrict default kod nomodify notrap nopeer noquery <==拒絕 IPv4 的用戶restrict -6 default kod nomodify notrap nopeer noquery <==拒絕 IPv6 的用戶restrict 220.130.158.71 <==放行 tock.stdtime.gov.tw 進入本 NTP 伺服器restrict 59.124.196.83 <==放行 tick.stdtime.gov.tw 進入本 NTP 伺服器restrict 59.124.196.84 <==放行 time.stdtime.gov.tw 進入本 NTP 伺服器restrict 127.0.0.1 <==底下兩個是預設值,放行本機來源restrict -6 ::1restrict 192.168.100.0 mask 255.255.255.0 nomodify <==放行區網來源# 2. 設定主機來源,請先將本來的 [0|1|2].centos.pool.ntp.org 的設定註解掉:server 220.130.158.71 prefer <==以這部主機為最優先server 59.124.196.83server 59.124.196.84# 3.預設時間差異分析檔案與暫不用到的 keys 等,不須要更動它:driftfile /var/lib/ntp/driftkeys /etc/ntp/keys

 

ntpd、ntpdate的區別

下面是網上關於ntpd與ntpdate區別的相關資料。以下所示所示:

使用以前得弄清楚一個問題,ntpd與ntpdate在更新時間時有什麼區別。ntpd不只僅是時間同步服務器,它還能夠作客戶端與標準時間服務器進行同步時間,並且是平滑同步,並不是ntpdate當即同步,在生產環境中慎用ntpdate,也正如此二者不可同時運行。

時鐘的躍變,對於某些程序會致使很嚴重的問題。許多應用程序依賴連續的時鐘——畢竟,這是一項常見的假定,即,取得的時間是線性的,一些操做,例如數據庫事務,一般會地依賴這樣的事實:時間不會往回跳躍。不幸的是,ntpdate調整時間的方式就是咱們所說的」躍變「:在得到一個時間以後,ntpdate使用settimeofday(2)設置系統時間,這有幾個很是明顯的問題:

第一,這樣作不安全。ntpdate的設置依賴於ntp服務器的安全性,***者能夠利用一些軟件設計上的缺陷,拿下ntp服務器並令與其同步的服務器執行某些消耗性的任務。因爲ntpdate採用的方式是跳變,跟隨它的服務器沒法知道是否發生了異常(時間不同的時候,惟一的辦法是以服務器爲準)。

第二,這樣作不精確。一旦ntp服務器宕機,跟隨它的服務器也就會沒法同步時間。與此不一樣,ntpd不只可以校準計算機的時間,並且可以校準計算機的時鐘。

第三,這樣作不夠優雅。因爲是跳變,而不是使時間變快或變慢,依賴時序的程序會出錯(例如,若是ntpdate發現你的時間快了,則可能會經歷兩個相同的時刻,對某些應用而言,這是致命的)。於是,惟一一個能夠令時間發生跳變的點,是計算機剛剛啓動,但尚未啓動不少服務的那個時候。其他的時候,理想的作法是使用ntpd來校準時鐘,而不是調整計算機時鐘上的時間。

NTPD 在和時間服務器的同步過程當中,會把 BIOS 計時器的振盪頻率誤差——或者說 Local Clock 的天然漂移(drift)——記錄下來。這樣即便網絡有問題,本機仍然能維持一個至關精確的走時。

 

一:NTP是網絡時間同步協議,就是用來同步網絡中各個計算機的時間的協議。

二:NTP服務端配置

1.檢查系統是否安裝了NTP包(linux系統通常自帶NTP4.2),沒有安裝咱們直接使用yum命令在線安裝: yum install ntp

2.NTP服務端配置文件編輯: vim /etc/ntp.conf

結果:

https://s4.51cto.com/images/blog/202108/09/323ceb728f75a5e79f2623761cea5f01.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

# @3新增-權限配置restrict 127.127.1.0restrict 192.168.31.0 mask 255.255.255.0 nomodify notrap# @3改動-註釋掉上級時間服務器地址#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# @4新增-上級時間服務器server 127.127.1.0 # local clockfudge 127.127.1.0 stratum 10

2.啓動NTP時間服務器:service ntpd start

3.設置NTP開機自動啓動:chkconfig ntpd on

4.查看NTP是否正常運行:netstat -tlunp | grep ntp

5.配置防火牆過濾規則:/sbin/iptables -I INPUT -p udp --dport 123 -j ACCEPT

如何配置:/etc/sysconfig/iptables 文件內配置開放udp 123端口: -A INPUT -p udp --destination-port 123 -j ACCEPT

 

A.服務端配置文件解釋

①1:設定NTP主機來源(其中prefer表示優先主機),192.168.31.134是本地的NTP服務器,因此優先指定從該主機同步時間。

server 192.168.7.49 prefer

server 0.rhel.pool.ntp.org

server 1.rhel.pool.ntp.org

server 2.rhel.pool.ntp.org

server 3.rhel.pool.ntp.org

 

②2:限制你容許的這些服務器的訪問類型,在這個例子中的服務器是不允許修改運行時配置或查詢您的Linux NTP服務器

restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap

 

在上例中,掩碼地址擴展爲255,所以從192.168.0.1-192.168.0.254的服務器均可以使用咱們的NTP服務器來同步時間

#此時表示限制向從192.168.0.1-192.168.0.254這些IP段的服務器提供NTP服務。

restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap noquery

#設置默認策略爲容許任何主機進行時間同步

restrict default ignore

 

二:NTP客戶端配置

1.檢查安裝NTP服務有沒有安裝,未安裝請自行安裝

2.NTP客戶端配置文件編輯: vim /etc/ntp.conf

https://s4.51cto.com/images/blog/202108/09/361e936fc83f6d94791f15277e05a795.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

# @1新增-權限配置restrict 192.168.31.0 mask 255.255.255.0 nomodify notrap# Use public servers from the pool.ntp.org project.# Please consider joining the pool (http://www.pool.ntp.org/join.html).# 註釋掉原來的實際服務器地址#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# @2新增-本身的時間服務器地址server 192.168.31.223 prefer <==以這部主機為最優先#broadcast 192.168.1.255 autokey # broadcast server#broadcastclient # broadcast client#broadcast 224.0.1.1 autokey # multicast server#multicastclient 224.0.1.1 # multicast client#manycastserver 239.255.254.254 # manycast server#manycastclient 239.255.254.254 autokey # manycast client

3.手動同步一次時間:/usr/sbin/ntpdate192.168.31.134 (服務端主機IP,這裏須要先關閉NTP服務哦)

4.啓動NTP服務:service ntpd start

5.觀察時間同步情況:ntpq -p

結果:

[root@localhost hct]# ntpq -p remote refid st t when poll reach delay offset jitter==============================================================================*192.168.31.134 LOCAL(0) 11 u 64 128 377 0.202 73.980 412.834

⑥查看時間同步結果:ntpstat

[root@hct ~]# ntpstat

unsynchronised

polling server every 8 s

同步失敗,同步也須要時間嘛,需等待5-10分鐘再次查詢:

Every 2.0s: ntpstat Tue Jul 11 16:55:57 2017synchronised to NTP server (10.10.11.247) at stratum 12 time correct to within 605 ms polling server every 128 s

 

OK!時間同步完成,date一下是否是和服務器主機時間一致呢

 

B.客戶端配置文件詳解

修改/etc/ntp/stpe-tickers文件,內容以下(當ntpd服務啓動時,會自動與該文件中記錄的上層NTP服務進行時間校對

https://s4.51cto.com/images/blog/202108/09/cd3e4b8fe9bf18a49ddacabbf3b45262.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

C.系統時間與硬件時間同步

 若是主從服務時間超過1000秒則再也不進行同步了,這時候要手動同步,即:/usr/sbin/ntpdate命令,若是怕服務器時差會常常變更比較大能夠再Linux中添加計劃任務,例如:

10 5 * * * root /usr/sbin/ntpdate 192.168.31.223 && /sbin/hwclock -w

 

     ntp服務,默認只會同步系統時間。若是想要讓ntp同時同步硬件時間,能夠設置/etc/sysconfig/ntpd文件,在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 這樣,就可讓硬件時間與系統時間一塊兒同步。

 

D:ntpq -p各個選項相關信息

restrict 控制相關權限。

語法爲: restrict IP地址 mask 子網掩碼 參數

其中IP地址也能夠是default ,default 就是指全部的IP

參數有如下幾個:

ignore  :關閉全部的 NTP 聯機服務

nomodify:客戶端不能更改服務端的時間參數,可是客戶端能夠經過服務端進行網絡校時。

notrust :客戶端除非經過認證,不然該客戶端來源將被視爲不信任子網

noquery :不提供客戶端的時間查詢:用戶端不能使用ntpq,ntpc等命令來查詢ntp服務器

notrap :不提供trap遠端登錄:拒絕爲匹配的主機提供模式 6 控制消息陷阱服務。陷阱服務是 ntpdq 控制消息協議的子系統,用於遠程事件日誌記錄程序。

nopeer :用於阻止主機嘗試與服務器對等,並容許欺詐性服務器控制時鐘

kod : 訪問違規時發送 KoD 包。

restrict -6 表示IPV6地址的權限設置。

 

root@www ~]# vim /etc/ntp.conf# 1. 先處理權限方面的問題,包括放行上層伺服器以及開放區網用戶來源:restrict default kod nomodify notrap nopeer noquery <==拒絕 IPv4 的用戶restrict -6 default kod nomodify notrap nopeer noquery <==拒絕 IPv6 的用戶restrict 220.130.158.71 <==放行 tock.stdtime.gov.tw 進入本 NTP 伺服器restrict 59.124.196.83 <==放行 tick.stdtime.gov.tw 進入本 NTP 伺服器restrict 59.124.196.84 <==放行 time.stdtime.gov.tw 進入本 NTP 伺服器restrict 127.0.0.1 <==底下兩個是預設值,放行本機來源restrict -6 ::1restrict 192.168.100.0 mask 255.255.255.0 nomodify <==放行區網來源# 2. 設定主機來源,請先將本來的 [0|1|2].centos.pool.ntp.org 的設定註解掉:server 220.130.158.71 prefer <==以這部主機為最優先server 59.124.196.83server 59.124.196.84# 3.預設時間差異分析檔案與暫不用到的 keys 等,不須要更動它:driftfile /var/lib/ntp/driftkeys /etc/ntp/keys

 

ntpd、ntpdate的區別

下面是網上關於ntpd與ntpdate區別的相關資料。以下所示所示:

使用以前得弄清楚一個問題,ntpd與ntpdate在更新時間時有什麼區別。ntpd不只僅是時間同步服務器,它還能夠作客戶端與標準時間服務器進行同步時間,並且是平滑同步,並不是ntpdate當即同步,在生產環境中慎用ntpdate,也正如此二者不可同時運行。

時鐘的躍變,對於某些程序會致使很嚴重的問題。許多應用程序依賴連續的時鐘——畢竟,這是一項常見的假定,即,取得的時間是線性的,一些操做,例如數據庫事務,一般會地依賴這樣的事實:時間不會往回跳躍。不幸的是,ntpdate調整時間的方式就是咱們所說的」躍變「:在得到一個時間以後,ntpdate使用settimeofday(2)設置系統時間,這有幾個很是明顯的問題:

第一,這樣作不安全。ntpdate的設置依賴於ntp服務器的安全性,***者能夠利用一些軟件設計上的缺陷,拿下ntp服務器並令與其同步的服務器執行某些消耗性的任務。因爲ntpdate採用的方式是跳變,跟隨它的服務器沒法知道是否發生了異常(時間不同的時候,惟一的辦法是以服務器爲準)。

第二,這樣作不精確。一旦ntp服務器宕機,跟隨它的服務器也就會沒法同步時間。與此不一樣,ntpd不只可以校準計算機的時間,並且可以校準計算機的時鐘。

第三,這樣作不夠優雅。因爲是跳變,而不是使時間變快或變慢,依賴時序的程序會出錯(例如,若是ntpdate發現你的時間快了,則可能會經歷兩個相同的時刻,對某些應用而言,這是致命的)。於是,惟一一個能夠令時間發生跳變的點,是計算機剛剛啓動,但尚未啓動不少服務的那個時候。其他的時候,理想的作法是使用ntpd來校準時鐘,而不是調整計算機時鐘上的時間。

NTPD 在和時間服務器的同步過程當中,會把 BIOS 計時器的振盪頻率誤差——或者說 Local Clock 的天然漂移(drift)——記錄下來。這樣即便網絡有問題,本機仍然能維持一個至關精確的走時。

相關文章
相關標籤/搜索