Linux编译安装NTP

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

实验环境

操作系统:RHEL 6.10

NTPD:4.2.8p14

服务端IP:192.168.168.11

客户端IP: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.8p14.tar.gz    
  3. [root@wanghualang src]# tar xzf ntp-4.2.8p14.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.8p14    
  2. [root@wanghualang ntp-4.2.8p14]# ./configure \
  3. --prefix=/usr/local/ntp-4.2.8p14 \
  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.8p14]# make    
  11. [root@wanghualang ntp-4.2.8p14]# make install    

第五步 建立软链接

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

第六步 配置服务

  1. [root@wanghualang ~]# vim /etc/ntp.conf  
  2.     
  3. #拒绝所有人修改本地时间  
  4. restrict default kod nomodify notrap nopeer noquery  
  5. restrict -6 default kod nomodify notrap nopeer noquery  
  6.     
  7. #使用阿里云对时服务器、腾讯云对时服务器作为上层时间服务器,优先使用腾讯云  
  8. server ntp1.aliyun.com  
  9. server time1.cloud.tencent.com prefer  
  10.     
  11. #允许阿里云对时服务器、腾讯云对时服务器修改本地时间  
  12. restrict ntp1.aliyun.com nomodify notrap noquery  
  13. restrict time1.cloud.tencent.com nomodify notrap noquery  
  14.     
  15. #允许本机修改时间  
  16. restrict 127.0.0.1  
  17. restrict -6 ::1  
  18.     
  19. #上层服务器不可用时,使用本地时间提供对时  
  20. server 127.127.1.0  
  21. fudge 127.127.1.0 stratum 10  
  22.     
  23. #允许192.168.168.0/24局域网的客户端对时  
  24. restrict 192.168.168.0 mask 255.255.255.0 nomodify notrap  
  25.     
  26. #记录日志文件  
  27. logfile /var/log/ntpd.log  

  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. function start_ntp() {  
  7.     ntpd -c /etc/ntp.conf -u ntp:ntp -p /var/run/ntpd.pid -g  
  8.     if [ $? -eq 0 ]; then  
  9.         echo ""  
  10.         ntpd --version  
  11.         echo ""  
  12.         echo -e "NTP服务启动成功" "\033[32m Success\033[0m"  
  13.         echo ""  
  14.     else  
  15.         echo ""  
  16.         echo -e "NTP服务启动失败" "\033[31m Failure\033[0m"  
  17.         echo ""  
  18.     fi  
  19. }  
  20.   
  21. function stop_ntp() {  
  22.     rm -f /var/run/ntpd.pid && ps aux | grep ntpd | grep -v grep | awk '{print $2}' | xargs kill -9  
  23. }  
  24.   
  25. function status_ntp() {  
  26.     if [ -e /var/run/ntpd.pid ]; then  
  27.         echo ""  
  28.         echo -e "NTP服务正在运行" "\033[32m ON\033[0m"  
  29.         echo ""  
  30.     else  
  31.         echo ""  
  32.         echo -e "NTP服务未运行" "\033[31m OFF\033[0m"  
  33.         echo ""  
  34.     fi  
  35. }  
  36.   
  37. case "$1" in  
  38. start)  
  39.     start_ntp  
  40.     ;;  
  41. stop)  
  42.     stop_ntp  
  43.     ;;  
  44. status)  
  45.     status_ntp  
  46.     ;;  
  47. *)  
  48.     echo "Usage:start|stop|status"  
  49.     ;;  
  50. 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. #拒绝所有人修改本地时间      
  5. restrict default kod nomodify notrap nopeer noquery      
  6. restrict -6 default kod nomodify notrap nopeer noquery      
  7.       
  8. #使用内网NTP服务器对时      
  9. server 192.168.168.11 prefer      
  10.       
  11. #允许内网服务器修改本地时间      
  12. restrict 192.168.168.11 nomodify notrap noquery      
  13.       
  14. #允许本机修改时间      
  15. restrict 127.0.0.1      
  16. restrict -6 ::1      
  17.       
  18. #记录日志文件      
  19. logfile /var/log/ntpd.log  

第三步 启动NTP

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