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伺服器的時間