Linux编译安装NTP

NTP全称Network Time Protocol,即网络时间协议。对于正在运行应用集群、数据库等等对时间精确度有严格要求的生产环境中,强烈建议部署对时服务器,确保每台服务器的时间一致。

实验环境

操作系统:RHEL 6.10

NTPD:4.2.8p15

服务端1IP:192.168.168.11

服务端2IP:192.168.168.12

服务端篇

第一步 安装依赖包

  1. [root@wanghualang ~]# yum -y install gcc wget vim make libcap-devel  

第二步 下载、解压软件包

  1. [root@wanghualang ~]# cd /usr/local/src/    
  2. [root@wanghualang src]# wget --no-check-certificate https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.8p15.tar.gz    
  3. [root@wanghualang src]# tar xzf ntp-4.2.8p15.tar.gz  

第三步 新建用户组、用户

  1. [root@wanghualang ~]# groupadd ntp  
  2. [root@wanghualang ~]# useradd ntp -g ntp -s /sbin/nologin -M  

第四步 编译安装NTP

  1. [root@wanghualang ~]# cd /usr/local/src/ntp-4.2.8p15
  2. [root@wanghualang ntp-4.2.8p15]# ./configure \
  3. --prefix=/usr/local/ntp-4.2.8p15 \
  4. --sysconfdir=/etc  \
  5. --enable-linuxcaps \
  6. --enable-all-clocks \
  7. --enable-parse-clocks \
  8. --enable-clockctl \
  9. --with-lineeditlibs=readline
  10. [root@wanghualang ntp-4.2.8p15]# make    
  11. [root@wanghualang ntp-4.2.8p15]# make install    

第五步 建立程序软链接

  1. [root@wanghualang ~]# ln -sf /usr/local/ntp-4.2.8p15/sbin/* /usr/sbin/  

第六步 配置服务

  1. [root@wanghualang ~]# vim /etc/ntp.conf  
  2.   
  3. #IPv4和IPv6用户仅能同步时间  
  4. restrict default kod nomodify notrap nopeer noquery  
  5. restrict -6 default kod nomodify notrap nopeer noquery  
  6.   
  7. #放行本地来源  
  8. restrict 127.0.0.1  
  9. restrict -6 ::1  
  10.   
  11. #放行网络对时来源  
  12. restrict ntp1.aliyun.com nomodify  
  13. restrict time1.cloud.tencent.com nomodify 
  14.   
  15. #上层时钟服务器  
  16. server ntp1.aliyun.com iburst  
  17. server time1.cloud.tencent.com iburst  
  18.   
  19. #上层服务器不可用时,使用本地时间提供对时  
  20. server 127.127.1.0  
  21. fudge 127.127.1.0 stratum 8  
  22.   
  23. #日志文件  
  24. logfile /var/log/ntpd.log  
  25.   
  26. #误差文件  
  27. driftfile /var/lib/ntp/drift  

  1. [root@wanghualang ~]# echo "SYNC_HWCLOCK=yes> /etc/sysconfig/ntpd  

第七步 配置启动服务脚本、开机启动

  1. [root@wanghualang ~]# vim /etc/init.d/ntpd  
  2.   
  3. #!/bin/bash  
  4. #chkconfig: 2345 55 25  
  5.   
  6. NTP_PID="/var/run/ntpd.pid"  
  7.   
  8. function start_ntp() {  
  9.     . /etc/sysconfig/ntpd  
  10.     ntpd -x -g -u ntp:ntp -p $NTP_PID  
  11.     if [ $? -eq 0 ]; then  
  12.         clear  
  13.         ntpd --version  
  14.         echo ""  
  15.         echo -e "NTP服务启动成功" "\033[32m Success\033[0m"  
  16.         echo ""  
  17.     else  
  18.         echo ""  
  19.         echo -e "NTP服务启动失败" "\033[31m Failure\033[0m"  
  20.         echo ""  
  21.     fi  
  22. }  
  23.   
  24. function stop_ntp() {  
  25.     rm -f $NTP_PID && ps aux | grep ntpd | grep -v grep | awk '{print $2}' | xargs kill -9 >/dev/null 2>&1  
  26. }  
  27.   
  28. function status_ntp() {  
  29.     if [ -e $NTP_PID ]; then  
  30.         echo ""  
  31.         echo -e "NTP服务正在运行" "\033[32m ON\033[0m"  
  32.         echo ""  
  33.     else  
  34.         echo ""  
  35.         echo -e "NTP服务未运行" "\033[31m OFF\033[0m"  
  36.         echo ""  
  37.     fi  
  38. }  
  39.   
  40. case "$1" in  
  41. start)  
  42.     start_ntp  
  43.     ;;  
  44. stop)  
  45.     stop_ntp  
  46.     ;;  
  47. status)  
  48.     status_ntp  
  49.     ;;  
  50. *)  
  51.     echo "Usage:start|stop|status"  
  52.     ;;  
  53. esac  

  1. [root@wanghualang ~]# chmod +x /etc/init.d/ntpd  
  2. [root@wanghualang ~]# chkconfig --add ntpd  
  3. [root@wanghualang ~]# chkconfig ntpd on  

第八步 启动服务

  1. [root@wanghualang ~]# service ntpd start  

第九步 验证同步

  1. [root@wanghualang ~]# ntpq -p  

客户端篇

第一步 快速安装NTP

  1. [root@wanghualang ~]# yum -y install ntp  

第二步 配置NTP

  1. [root@wanghualang ~]# mv /etc/ntp.conf /etc/ntp.conf.bak    
  2. [root@wanghualang ~]# vim /etc/ntp.conf  
  3.   
  4. #拒绝IPv4和IPv6上所有类型的NTP连接  
  5. restrict default ignore  
  6. restrict -6 default ignore  
  7.   
  8. #放行本地来源  
  9. restrict 127.0.0.1  
  10. restrict -6 ::1  
  11.   
  12. #放行局域网来源  
  13. restrict 192.168.168.0 mask 255.255.255.0  
  14.   
  15. #上层时钟服务器  
  16. server 192.168.168.11 iburst  
  17. server 192.168.168.12 iburst  
  18.   
  19. #日志文件  
  20. logfile /var/log/ntpd.log  
  21.   
  22. #误差文件  
  23. driftfile /var/lib/ntp/drift  

第三步 启动NTP

  1. [root@wanghualang ~]# service ntpd start

第四步 验证同步

  1. [root@wanghualang ~]# ntpq -p