Centos7安裝配置NTP時間服務器

Centos7安裝配置NTP時間服務器

Centos7安裝配置NTP時間服務器
1.查看當前服務器時區&列出時區並設置時區

[root@mail ~]# timedatectl                              #查看時區
      Local time: Tue 2018-08-07 14:09:35 CST
  Universal time: Tue 2018-08-07 06:09:35 UTC
        RTC time: Tue 2018-08-07 06:09:33
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: no
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
[root@mail ~]# timedatectl list-timezones               #列出所有時區
[root@mail ~]# timedatectl list-timezones  | grep Asia/Shanghai
Asia/Shanghai
[root@mail ~]# timedatectl set-timezone Asia/Shanghai   #設置時區爲上海

2.時區概念理解

GMT、UTC、CST、DST

UTC

整個地球分爲二十四個時區,每個時區都有自己的本地時間,在國際無線電通電場合,爲了統一起見,使用一個統一時間,稱爲通用協調
時間

GMT

格林威治標準時間(Greenwich Mean Time)指於英國倫敦郊區的×××格林尼治天文的標準時間,因爲本初子午線被定義在通過那裏的經
線(UTC與GMT時間基本相同)

CST

中國標準時間(China Standard Time)
GMT+8=UTC+8=CST

DST

夏令時(Daylight Saving Time)指在夏天太陽升起的比較早時,將時間撥快一小時,以提早日光的使用(中國不使用)

3.NTP的安裝配置

  • 查看是否安裝
[root@mail ~]# rpm -qa | grep ntp
ntp-4.2.6p5-25.el7.centos.2.x86_64
fontpackages-filesystem-1.44-8.el7.noarch
ntpdate-4.2.6p5-25.el7.centos.2.x86_64
[root@mail ~]# yum install ntpdate ntp -y           #如果沒安裝則安裝
  • 修改NTP配置

    [root@mail ~]# egrep -v "#|^$" /etc/ntp.conf
    driftfile /var/lib/ntp/drift

    #新增:日誌文件
    logfile /var/log/ntpd.log
    restrict default kod nomodify notrap nopeer noquery
    restrict 127.0.0.1
    restrict ::1

    #授權192.168.1.0網段上所有機器可以從這臺機器上查詢和時間同步
    restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

    #新增:時間服務器列表
    server 0.cn.pool.ntp.org iburst
    server 1.cn.pool.ntp.org iburst
    server 2.cn.pool.ntp.org iburst
    server 3.cn.pool.ntp.org iburst

    #新增:當外部時間不可用時,使用本地時間
    server 192.168.1.1 biurst
    fudge 127.0.0.1 stratum 10

    #新增:允許上層時間服務器主動修改本機時間
    restrict 0.cn.pool.ntp.org nomodify notrap noquery
    restrict 1.cn.pool.ntp.org nomodify notrap noquery
    restrict 2.cn.pool.ntp.org nomodify notrap noquery

    includefile /etc/ntp/crypto/pw
    keys /etc/ntp/keys
    disable monitor

  • 設置系統開機自啓動

    [root@mail ~]# systemctl enable ntpd
    [root@mail ~]# systemctl enable ntpdate

  • NTP服務啓動時,先使用ntpdate命令同步時間

    [root@mail ~]# ntpdate -u 1.cn.pool.ntp.org
    7 Aug 14:41:45 ntpdate[7427]: adjust time server 120.25.115.19 offset -0.002322 sec
    ntpdate -u:指定使用無特權的端口發送數據包。 當在一個對特權端口的輸入流量進行阻攔的防火牆後是很有益的, 並希
    望在防火牆之外和主機同步。防火牆是一個系統或者計算機,它控制從外網對專用網的訪問。
    原因之一:當服務端與客戶端之間的時間誤差過大時,此時修改時間可能對系統或應用帶來不可預知問題,NTP會停止時間同步。
    若檢查NTP啓動後時間未同步時,應考慮可能是時間誤差過大所致,此時需要先手動進行時間同步

  • 啓動NTP服務器

    注意:先啓動ntpdate後啓ntpd
    [root@mail ~]# systemctl start ntpdate
    [root@mail ~]# systemctl start ntpd

  • 查看ntp連接狀態,如果沒有問題,將正確時間寫入硬件

    [root@mail ~]# ss -tlunp | grep ntp
    udp UNCONN 0 0 192.168.1.1:123 : users:(("ntpd",pid=8034,fd=19))
    udp UNCONN 0 0 127.0.0.1:123 : users:(("ntpd",pid=8034,fd=18))
    udp UNCONN 0 0 :123 : users:(("ntpd",pid=8034,fd=16))
    udp UNCONN 0 0 :::123 :::
    users:(("ntpd",pid=8034,fd=17))

    [root@mail ~]# ntpq -p
    remote refid st t when poll reach delay offset jitter

    *ntp7.flashdance 192.36.143.152 2 u 30 64 7 273.055 7.649 25.571
    ntp6.flashdance 194.58.202.20 2 u 29 64 7 224.037 19.673 30.313
    b.hnd.pobot.net 255.254.0.28 2 u 98 64 6 171.231 84.197 11.033
    static-5-103-13 .GPS. 1 u 95 64 2 231.730 22.122 0.694
    192.168.1.1 .INIT. 16 u - 64 0 0.000 0.000 0.000

ntpq:ntpq 命令使用 NTP 模式 6 數據包與 NTP 服務器通信,能夠在允許的網絡上查詢任意的兼容的服務器
-c  SubCommand  指定交互式格式的命令。此標誌添加 SubCommand 到運行在指定主機上的命令列表。 輸入多個 -c 標誌。
-i  指定交互方式。標準輸出顯示提示,標準輸入讀取命令。
-n  以點十進制格式(x.x.x.x)顯示所有的主機地址,而不是規範的主機名。
-p  顯示服務器同級設備的列表,並顯示一個它們狀態的總結。如同使用 peers 子命令
[root@mail ~]# hwclock -w
hwclock:命令是一個硬件時鐘訪問工具,它可以顯示當前時間、設置硬件時鐘的時間和設置硬件時鐘爲系統時間,也可設置系統時間爲硬件時鐘的時間
在Linux中有硬件時鐘與系統時鐘等兩種時鐘。硬件時鐘是指主機板上的時鐘設備,也就是通常可在BIOS畫面設定的時鐘。系統時鐘則是指kernel中的時鐘。
當Linux啓動時,系統時鐘會去讀取硬件時鐘的設定,之後系統時鐘即獨立運作。所有Linux相關指令與函數都是讀取系統時鐘的設定。

hwclock選項:
-r, --show        讀取並打印硬件時鐘(read hardware clock and print result )
-s, --hctosys     將硬件時鐘同步到系統時鐘(set the system time from the hardware clock )
-w, --systohc     將系統時鐘同步到硬件時鐘(set the hardware clock to the current system time )
--adjust          hwclock每次更改硬件時鐘時,都會記錄在/etc/adjtime文件中。使用--adjust參數,可使hwclock根據先前的記錄來估算硬件時鐘的偏差,並用來校正目前的硬件時鐘;
--debug           顯示hwclock執行時詳細的信息;
--directisa       hwclock預設從/dev/rtc設備來存取硬件時鐘。若無法存取時,可用此參數直接以I/O指令來存取硬件時鐘;
--hctosys         將系統時鐘調整爲與目前的硬件時鐘一致;
--set --date=<日期與時間>:設定硬件時鐘;
--show            顯示硬件時鐘的時間與日期;
--systohc         將硬件時鐘調整爲與目前的系統時鐘一致;
--test            僅測試程序,而不會實際更改硬件時鐘;
--utc             若要使用格林威治時間,請加入此參數,hwclock會執行轉換的工作;
--version         顯示版本信息。

系統時間與硬件時間

硬件時間

RTC(Real-Time Clock)或CMOS時間,一般在主板上靠電池供電,服務器斷電後也會繼續運行,僅保持日期和時間數值,無法保存時區
和夏令時設置

系統時間

一般在服務器啓動時複製RTC時間,之後獨立運行,保存了時間、時區和夏令時設置

客戶端

以服務進程方式實時同步(需安裝NTP)

vim /etc/ntp.conf
server 192.168.1.1
systemctl restart ntpd

crontab 任務計劃同步時間(需安裝ntpdate,每天24點更新同步時間)

crontab -l
0 0 * * * /usr/sbin/sntp -P no -r 192.168.1.1;hwclock -w
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章