Centos 7 最小化時間服務部署配置

基本原理

  Centos 7 我所瞭解有兩種時間服務,NTPD與chronyd;二者對Centos 7 的支持都很好,有對chrony很是誇讚的,不過我這裏只講ntpd;有對chrony有想法的能夠自行研究。html

  NTPD屬於C/S模式的應用,Centos 下客戶端和服務端都採用ntp應用進行通訊,經過在配置中進行設定,來進行二者身份的肯定。NTPD默認採用UPD協議123端口進行通訊。node

 

實驗環境

服務端linux

  操做系統:Centos 7.4ios

  主機地址:192.168.1.198數據庫

客戶端windows

  操做系統:Centos 7.4centos

  主機地址:192.168.1.199安全

 

  操做系統:Windows 10服務器

  主機地址:192.168.1.200網絡

 

部署準備

  不管是linux仍是windows在同步時間的時候,與上行服務器的時區必定要一致;下面列出linux下面基本時區設定命令

sh-4.2# rm -rf /etc/localtime
sh-4.2# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
sh-4.2# timedatectl set-timezone Asia/Shanghai
sh-4.2# hwclock -w

 

部署配置

服務端部署

一、關閉selinux

sh-4.2# sed -i 's/enforcing/disabled/' /etc/selinux/config 
sh-4.2# setenforce 0

 

二、關閉防火牆

sh-4.2# rpm -qa | grep "firewall" | xargs rpm -e --nodeps
sh-4.2# rpm -qa | grep "iptables" | xargs rpm -e --nodeps

 

三、掛載本地源

sh-4.2# mount -t iso9660 -o loop /opt/CentOS-7-x86_64-Everything-1708.iso /media/
sh-4.2# find /etc/yum.repos.d/ -ignore_readdir_race -type f -exec mv {} /etc/yum.repos.d/back/ \;
sh-4.2# cat /etc/yum.repos.d/GuGe.repo 
[GuGe]
name=GuGe
baseurl=file:///media
gpgcheck=0
enable=1

sh-4.2# yum clean all
sh-4.2# yum makecache all

 

四、安裝配置

sh-4.2# yum -y install ntp
sh-4.2# cp /etc/ntp.conf /etc/ntp.conf.bak
sh-4.2# vi /etc/ntp.conf 
driftfile /var/lib/ntp/drift
restrict default nomodify notrap kod
restrict -6 default kod nomodify notrap
restrict 127.0.0.1 
restrict -6 ::1
server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 0
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
logfile /var/log/ntp

sh-4.2# echo "" > /etc/ntp/step-tickers
sh-4.2# vi /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"

 

五、啓動服務

sh-4.2# systemctl start ntpd.service
sh-4.2# systemctl enable ntpd.service
sh-4.2# systemctl disable chronyd            # 若是系統中存在chrony服務,則須要禁止啓用;chrony 是centos 7 用來替代ntp時間同步服務的一個程序,二者不可並行運行

 

Linux客戶端部署

一、關閉selinux

sh-4.2# sed -i 's/enforcing/disabled/' /etc/selinux/config 
sh-4.2# setenforce 0

 

二、關閉防火牆

sh-4.2# rpm -qa | grep "firewall" | xargs rpm -e --nodeps
sh-4.2# rpm -qa | grep "iptables" | xargs rpm -e --nodeps

 

三、掛載本地源

sh-4.2# mount -t iso9660 -o loop /opt/CentOS-7-x86_64-Everything-1708.iso /media/
sh-4.2# find /etc/yum.repos.d/ -ignore_readdir_race -type f -exec mv {} /etc/yum.repos.d/back/ \;
sh-4.2# cat /etc/yum.repos.d/GuGe.repo [GuGe] name=GuGe baseurl=file:///media gpgcheck=0 enable=1 sh-4.2# yum clean all sh-4.2# yum makecache all

 

四、安裝配置

sh-4.2# yum -y install ntp
sh-4.2# cp /etc/ntp.conf /etc/ntp.conf.bak sh-4.2# vi /etc/ntp.conf driftfile /var/lib/ntp/drift restrict default nomodify notrap kod restrict -6 default kod nomodify notrap restrict 127.0.0.1 restrict -6 ::1 server 192.168.1.198 fudge 127.127.1.0 stratum 10 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys logfile /var/log/ntp sh-4.2# echo "" > /etc/ntp/step-tickers sh-4.2# vi /etc/sysconfig/ntpd SYNC_HWCLOCK=yes OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"

 

五、啓動服務

sh-4.2# systemctl start ntpd.service
sh-4.2# systemctl enable ntpd.service sh-4.2# systemctl disable chronyd # 若是系統中存在chrony服務,則須要禁止啓用;chrony 是centos 7 用來替代ntp時間同步服務的一個程序,二者不可並行運行

 

Windows客戶端部署

 

測試結果

 

特別注意:windows的我這裏就不作截圖了;linux的ntpstat須要等客戶端去服務端同步時間時纔會顯示正常

 

配置詳解

/etc/ntp.conf詳解

driftfile:設置系統時間與BIOS時間的誤差記錄文件,無誤差時,此文件不存在。

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地址的權限設置。

 

server:設定上層NTP服務器,設定格式:server [IP or hostname] [參數];參數以下:

  perfer:表示優先級最高
  burst:當一個運程NTP服務器可用時,向它發送一系列的併發包進行檢測。
  iburst:當一個運程NTP服務器不可用時,向它發送一系列的併發包進行檢測。
  特別提示:默認狀況小15分鐘後纔會與上層NTP服務器進行時間校對。

 

fudge:服務器的層次。設爲0則爲頂級,若是要向別的NTP服務器更新時間,請不要把它設爲0。設定格式:fudge 127.127.1.0 stratum [num]

  stratum:即fudge的值範圍爲0~15

 

Keys:祕鑰文件,除了以 restrict 來限制客戶端的聯機以外,咱們也能夠透過密鑰系統來給客戶端認證

logfile:設定ntpd程序的運行日誌

 

/etc/ntp/step-tickers詳解

  當ntpd服務啓動時,會自動與該文件中記錄的上層NTP服務進行時間校對,通常來講在ntp.conf中設置了上行服務器,能夠清空此文件中內容。

 

/etc/sysconfig/ntpd詳解

  此文件用來讓ntp同時同步硬件時間,添加 SYNC_HWCLOCK=yes 這樣,就可讓硬件時間與系統時間一塊兒同步。也能夠用命令hwclock -w來進行同步;

  [OPTIONS]選項用來解決紅帽系列的操做系統由ntp程序引發的網絡故障;設定參數以下:

  -x:啓動時間微調功能,默認不開啓此功能;假如使用了-x選項,那麼ntpd只作微調,不跳躍調整時間,可是要注意,-x參數的負做用:當時鐘差大的時候,同步時間將花費很長的時間。

    -x也有一個閾值,就是600s,當系統時鐘與標準時間差距大於600s時,ntpd會使用較大「步進值」的方式來調整時間,將時鐘「步進」調整到正確時間。

    假如不使用-x選項,那麼ntpd在時鐘差距小於128ms時,使用微調方式調整時間,當時差大於128ms時,使用「跳躍」式調整。

    這兩種方式都會在本地時鐘與遠端的NTP服務器時鐘相差大於1000s時,ntpd會中止工做。

  -g:用來解決上面這個差距大於1000s的問題

  -u:指定ntp的運行用戶與運行組

  -L:用來處理ntp對網絡形成短暫不通問題的解決方式。

 

相關操做

一、設置時區

sh-4.2# rm -rf /etc/localtime
sh-4.2# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
sh-4.2# timedatectl set-timezone Asia/Shanghai

 

二、硬件時間同步

sh-4.2# hwclock -w

 

三、timedatectl命令

sh-4.2# timedatectl status                            # 顯示系統的當前時間和日期
sh-4.2# timedatectl list-timezones                    # 查看全部可用的時區
sh-4.2# timedatectl set-timezone "Asia/Shanghai"    # 設定指定時區
sh-4.2# timedatectl set-timezone UTC                # 設定世界時
sh-4.2# timedatectl set-time 15:58:30                # 設定指定時間
sh-4.2# timedatectl set-time 20151120                # 設定指定日期
sh-4.2# timedatectl set-time '16:10:40 2015-11-20'    # 設置日期和時間
sh-4.2# timedatectl set-local-rtc 1                    # 將你的硬件時鐘設置爲本地時區,強烈不推薦這麼作
sh-4.2# timedatectl set-ntp true                    # 開始自動時間同步到遠程NTP服務器

 

四、查看客戶端通訊情況

ntpq查詢命令

remote:本機和上層ntp的ip或主機名,「+」表示優先,「*」表示次優先
refid:參考上一層ntp主機地址
st:stratum階層
when:多少秒前曾經同步過期間
poll:下次更新在多少秒後
reach:已經向上層ntp服務器要求更新的次數
delay:網絡延遲
offset:時間補償
jitter:系統時間與bios時間差

 ntpstat命令

 

五、手動同步

sh-4.2# ntpdate -u 1.cn.pool.ntp.org

 

六、國內經常使用NTP時間服務器地址

210.72.145.44 國家授時中心服務器IP地址
202.120.2.101 上海交通大學網絡中心NTP服務器地址
ntp.sjtu.edu.cn 上海交通大學網絡中心NTP服務器地址
s1a.time.edu.cn 北京郵電大學
s1b.time.edu.cn 清華大學
s1c.time.edu.cn 北京大學
s1d.time.edu.cn 東南大學
s1e.time.edu.cn 清華大學
s2a.time.edu.cn 清華大學
s2b.time.edu.cn 清華大學
s2c.time.edu.cn 北京郵電大學
s2d.time.edu.cn 西南地區網絡中心
s2e.time.edu.cn 西北地區網絡中心
s2f.time.edu.cn 東北地區網絡中心
s2g.time.edu.cn 華東南地區網絡中心
s2h.time.edu.cn 四川大學網絡管理中心
s2j.time.edu.cn 大連理工大學網絡中心
s2k.time.edu.cn CERNET桂林主節點
s2m.time.edu.cn 北京大學

 

七、NTP官網地址

官網:http://www.ntp.org

 

官方自帶的中國地區時鐘
1.cn.pool.ntp.org
2.cn.pool.ntp.org
3.cn.pool.ntp.org
0.cn.pool.ntp.org
cn.pool.ntp.org
tw.pool.ntp.org
0.tw.pool.ntp.org
1.tw.pool.ntp.org
2.tw.pool.ntp.org
3.tw.pool.ntp.org

 

八、日誌記錄

/var/log/ntp:程序運行日誌

/var/log/messages:系統日誌(裏面包含ntp同步操做記錄)

 

注意事項

  1. NTP服務會間隔多長時間想時鐘服務器請求一次時鐘同步呢?默認最小時間間隔爲64s,默認最大時間間隔是1024s(17分鐘左右)。64s是比較合理的,默認間隔也是可調的;可是我尚未找到調試的方法
  2. ntpdate命令不能在ntpd程序運行的時候操做
  3. ntpd與chronyd兩個程序不能同時啓動,不然ntpd有可能會啓動失敗
  4. ntpd客戶端必須在服務端以後啓動,不然客戶端至少須要兩次以上的同步時間才能正常同步
  5. 下面介紹ntpd與ntpdate命令的區別

  ntpd不只僅是時間同步服務器,它還能夠作客戶端與標準時間服務器進行同步時間,並且是平滑同步,並不是ntpdate當即同步,在生產環境中慎用ntpdate,也正如此二者不可同時運行。不要直接改到當前時間 由於你會丟失中間的時間序列,時鐘的躍變,對於某些程序會致使很嚴重的問題。許多應用程序依賴連續的時鐘——畢竟,這是一項常見的假定,即,取得的時間是線性的,一些操做,例如數據庫事務,一般會地依賴這樣的事實:時間不會往回跳躍。不幸的是,ntpdate調整時間的方式就是咱們所說的」躍變「:在得到一個時間以後,ntpdate使用settimeofday(2)設置系統時間,這有幾個很是明顯的問題:

  1. 這樣作不安全。ntpdate的設置依賴於ntp服務器的安全性,攻擊者能夠利用一些軟件設計上的缺陷,拿下ntp服務器並令與其同步的服務器執行某些消耗性的任務。因爲ntpdate採用的方式是跳變,跟隨它的服務器沒法知道是否發生了異常(時間不同的時候,惟一的辦法是以服務器爲準)。
  2. 這樣作不精確。一旦ntp服務器宕機,跟隨它的服務器也就會沒法同步時間。與此不一樣,ntpd不只可以校準計算機的時間,並且可以校準計算機的時鐘。
  3. 這樣作不夠優雅。因爲是跳變,而不是使時間變快或變慢,依賴時序的程序會出錯(例如,若是ntpdate發現你的時間快了,則可能會經歷兩個相同的時刻,對某些應用而言,這是致命的)。於是,惟一一個能夠令時間發生跳變的點,是計算機剛剛啓動,但尚未啓動不少服務的那個時候。其他的時候,理想的作法是使用ntpd來校準時鐘,而不是調整計算機時鐘上的時間。NTPD 在和時間服務器的同步過程當中,會把 BIOS 計時器的振盪頻率誤差——或者說 Local Clock 的天然漂移(drift)——記錄下來。這樣即便網絡有問題,本機仍然能維持一個至關精確的走時。(這段話來自瀟湘隱者,萬分感謝此前輩!)

 

參考內容

https://www.jianshu.com/p/fb32239ccf2bhttps://www.cnblogs.com/kerrycode/archive/2015/08/20/4744804.htmlhttp://blog.51cto.com/13554498/2059429http://blog.sina.com.cn/s/blog_48f9c0840101aiv2.htmlhttp://www.cnblogs.com/276815076/p/6397994.htmlhttps://blog.csdn.net/solaraceboy/article/details/78831319?utm_source=blogxgwz3

相關文章
相關標籤/搜索