1. 程式人生 > 其它 >CentOS下配置NTP時間伺服器

CentOS下配置NTP時間伺服器

使用虛擬機器搭建NTP時間伺服器,server端通過外網同步時間,通過內網給區域網內的主機提供時間同步服務。

1. 環境準備

1.1 虛擬機器準備

需要以下環境

  • 兩臺VMware虛擬機器
  • 宿主機可以聯網

2. 伺服器端設定

2.1 網絡卡設定

  • 主機第一塊網絡卡使用nat模式聯網

  • 新增第二塊網絡卡為僅主機模式

使用ifconfig開啟網絡卡,如果是CentOS7的話可以看到ens36這個網絡卡,這個網絡卡使我們新新增的。

  • 配置ens33網絡卡使他與宿主機上的VMnet8網絡卡在同一網段,ens36網絡卡與VMnet1網絡卡在同一個網段即可。在命令列模式下檢視宿主機網絡卡
  • 虛擬機器配置第一塊網絡卡ens33

    [root@server ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
    

    設定完畢儲存退出

  • 設定第二塊網絡卡ens36

    [root@server ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens36
    

    如果提示是new file的話,就暫時不儲存退出,使用以下命令複製ens33的配置檔案修改一下,再次使用上述命令開啟即可

    [root@server ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36
    

    配置網絡卡ens36,使ip地址與宿主機的VMnet1在同一個網段內

    如果是複製的ens33的網絡卡的配置檔案,需要使用uuidgen命令生成uuid,然後在ifcfg-ens36檔案中重新設定uuid

    [root@server ~]# uuidgen ens36
    243c4c2b-43e5-49b0-b63a-03b3fd7962e9
    
  • 重啟網路服務

    [root@server ~]# systemctl restart network
    
  • 重新檢視IP是否設定成功

    [root@server ~]# ifconfig
    

    如果沒生效,重啟虛擬機器

    把勾選去掉,重新啟動網路服務即可

  • 檢視網路是否正常

    [root@server ~]# ping www.baidu.com
    PING www.a.shifen.com (112.80.248.75) 56(84) bytes of data.
    64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=1 ttl=128 time=9.92 ms
    64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=2 ttl=128 time=9.49 ms
    64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=3 ttl=128 time=8.73 ms
    ^C
    --- www.a.shifen.com ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2005ms
    

2.2 NTP服務安裝與設定

  • 安裝ntp

    [root@server ~]# yum install ntp
    
  • 配置ntp.conf

    [root@server ~]# vim /etc/ntp.conf
    
    # For more information about this file, see the man pages
    # ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
    
    driftfile /var/lib/ntp/drift
    
    # Permit time synchronization with our time source, but do not
    # permit the source to query or modify the service on this system.
    restrict default nomodify notrap nopeer noquery
    restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap
    restrict ntp.aliyun.com nomodify
    restrict cn.pool.ntp.org nomodify
    
    # Permit all access over the loopback interface.  This could
    # be tightened as well, but to do so would effect some of
    # the administrative functions.
    restrict 127.0.0.1
    restrict ::1
    
    # Hosts on local network are less restricted.
    #restrict 192.168.1.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 ntp.aliyun.com iburst prefer
    server cn.pool.ntp.org iburst
    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
    
    #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
    
    # Enable public key cryptography.
    #crypto
    
    includefile /etc/ntp/crypto/pw
    
    # Key file containing the keys and key identifiers used when operating
    # with symmetric key cryptography. 
    keys /etc/ntp/keys
    
    # Specify the key identifiers which are trusted.
    #trustedkey 4 8 42
    
    # Specify the key identifier to use with the ntpdc utility.
    #requestkey 8
    
    # Specify the key identifier to use with the ntpq utility.
    #controlkey 8
    
    # Enable writing of statistics records.
    #statistics clockstats cryptostats loopstats peerstats
    
    # Disable the monitoring facility to prevent amplification attacks using ntpdc
    # monlist command when default restrict does not include the noquery flag. See
    # CVE-2013-5211 for more details.
    # Note: Monitoring will not be disabled with the limited restriction flag.
    disable monitor
    

    引數說明:

    restrict IP地址 mask 子網掩碼

    ​ 其中 IP 可以是IP地址,也可以是 default ,default 就是指所有的IP,預設拒絕所有操作。:
    ignore :關閉所有的 NTP 聯機服務
    nomodify:客戶端不能更改服務端的時間引數,但是客戶端可以通過服務端進行網路校時。
    notrust :客戶端除非通過認證,否則該客戶端來源將被視為不信任子網
    noquery :不提供客戶端的時間查詢

    notrap : 不提供trap遠端事件登入功能

    nopeer : 不與 同一層的ntp伺服器進行時間同步

    kod : 阻止kiss of death包對伺服器的破壞

    server IP地址或域名 [prefer]

    注:IP地址或域名就是我們指定的上級時間伺服器,如果 Server 引數最後加上 prefer,表示我們的 NTP 伺服器主要以該部主機時間進行校準。解決NTP伺服器校準時間時的傳送延遲

  • 配置ntpd

    [root@server ~]# vim /etc/sysconfig/ntpd
    
    # Command line options for ntpd
    OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"
    SYNC_HWCLOCK=yes
    
    

    注:SYNC_HWCLOCK=yes #make no into yes; BIOS的時間也會跟著修改

  • 修改 /etc/ntp/step-tickers檔案

    將上層NTP伺服器的地址或FQDN新增到這個檔案中。作用是當NTP服務在啟動時,會自動的與該檔案中記錄的時間伺服器進行時間同步

    [root@server ~]# vim /etc/ntp/step-tickers
    
    # List of NTP servers used by the ntpdate service.
    
    # 0.centos.pool.ntp.org
    210.72.145.44
    
  • 防火牆設定

    關閉防火牆,當然為了安全,可以只放行123埠,在這裡為了簡單,關閉防火牆

    [root@server ~]#systemctl disable firewalld.service
    

    啟動服務

    [root@server ~]# service ntpd start
    Redirecting to /bin/systemctl start ntpd.service
    

3.客戶端設定

3.1 安裝chrony

  • 首先把網絡卡配置成nat模式,安裝chrony和ntpdate包

    請參考配置伺服器的nat設定,設定完畢安裝chrony

    [root@node1 ~]# yum install  -y chrony
    
    [root@node1 ~]# yum install  -y ntpdate
    
  • 在把網絡卡設定成host-only(僅主機)模式

    參考上上述的ens36網絡卡設定,把客戶端的ens33重新是這個成僅主機模式。

    這裡設定與伺服器端在同一個網段的IP即可。

3.2 客戶端配置

  • 引數配置
[root@node1 ~]# cat <<EOF>>/var/spool/cron/root
> 00 12 * * * /usr/sbin/ntpdate -u 192.168.100.166 && /usr/sbin/hwclock -w
> EOF
[root@node1 ~]# crontab -l
00 12 * * * /usr/sbin/ntpdate -u 192.168.100.166 && /usr/sbin/hwclock -w
/usr/sbin/ntpdate -u 10.211.55.200 && /usr/sbin/hwclock -w

注:每天的12時,獲取伺服器時間並同步客戶端時間

  • 客戶端驗證

    當伺服器端的服務開啟10分鐘後,可以在客戶端使用以下命令,檢視是否可以同步ntp伺服器的時間

4.到此結束