一:NTP是網絡時間同步協議,就是用來同步網絡中各個計算機的時間的協議。html
二:NTP服務端配置linux
1.檢查系統是否安裝了NTP包(linux系統通常自帶NTP4.2),沒有安裝咱們直接使用yum命令在線安裝: yum install ntp數據庫
2.NTP服務端配置文件編輯: vim /etc/ntp.confvim
結果:centos
# @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
# @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服務進行時間校對
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
結果:
# @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
# @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服務進行時間校對
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)——記錄下來。這樣即便網絡有問題,本機仍然能維持一個至關精確的走時。