手把手教你在centos 7.4上搭建NTP服务器

Posted 小凡it故事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手把手教你在centos 7.4上搭建NTP服务器相关的知识,希望对你有一定的参考价值。

linux 下构建NTP时间服务器及客户端同步

NTP 概述

  • 前言

    在公司环境中,如果他们不想为 NTP 传输打开防火墙,就有必要设置一个内部 NTP 服务器,然后让员工使用内部服务器而不是公共 NTP 服务器。在这个指南中,我们会介绍如何将一个 CentOS 系统配置为 NTP 服务器。接下来我们从概念到,基础命令,再到企业案列,逐步分享NTP技术点

  • 相关概念

    NTP 网络时间协议用来同步网络上不同主机的系统时间。你管理的所有主机都可以和一个指定的被称为 NTP 服务器的时间服务器同步它们的时间。而另一方面,一个 NTP 服务器会将它的时间和任意公共 NTP 服务器,或者你选定的服务器同步。由 NTP 管理的所有系统时钟都会同步精确到毫秒级。
    
  • 为什么需要设置时钟同步

    	由于制造工艺多种多样,所有的(非原子)时钟并不按照完全一致的速度行走。有一些时钟走的比较快而有一些走的比较慢。因此经过很长一段时间以后,一个时钟的时间慢慢的和其它的发生偏移,这就是常说的 “时钟漂移” 或 “时间漂移”。为了将时钟漂移的影响最小化,使用 NTP 的主机应该周期性地和指定的 NTP 服务器交互以保持它们的时钟同步。
    在不同的主机之间进行时间同步对于计划备份、入侵检测记录、分布式任务调度或者事务订单管理来说是很重要的事情。它甚至应该作为日常任务的一部分。
    
    

NTP 基础命令

  • 查看时区

    [root@localhost ~]# timedatectl 
          Local time: Sun 2021-06-20 03:36:34 -02
      Universal time: Sun 2021-06-20 05:36:34 UTC
            RTC time: Sun 2021-06-20 16:36:34
           Time zone: America/Godthab (-02, -0200)
         NTP enabled: n/a
    NTP synchronized: no
     RTC in local TZ: no
          DST active: yes
     Last DST change: DST began at
                      Sat 2021-03-27 21:59:59 -03
                      Sat 2021-03-27 23:00:00 -02
     Next DST change: DST ends (the clock jumps one hour backwards) at
                      Sat 2021-10-30 22:59:59 -02
                      Sat 2021-10-30 22:00:00 -03
    [root@localhost ~]# 
    
  • 设置时区

    [root@localhost ~]# timedatectl list-timezones   #显示所有时区
    Africa/Abidjan
    Africa/Accra
    Africa/Addis_Ababa
    Africa/Algiers
    ……
    [root@localhost ~]#  timedatectl list-timezones | grep Asia/Shanghai
    Asia/Shanghai
    [root@localhost ~]# 
    [root@localhost ~]# timedatectl set-timezone Asia/Shanghai  #设置时区为上海
    

搭建NTP服务器

  • 实验环境

    服务器:192.168.10.11
    客户机:192.168.10.10
    

案例演示

  • 1.服务器端配置

    [root@localhost ~]# rpm -qa|grep ntp
    [root@localhost ~]# cat /etc/redhat-release       #1.查看服务器、客户端操作系统版本
    CentOS Linux release 7.4.1708 (Core) 
    [root@localhost ~]# rpm -qa|grep ntp              #2.查看服务器是否默认安装ntp服务
    [root@localhost ~]# yum install ntp ntpdate -y    #3.装命令
    
    [root@localhost ~]# rpm -qa|grep ntp              #4.查看ntp服务是否安装成功
    ntpdate-4.2.6p5-25.el7.centos.2.x86_64
    ntp-4.2.6p5-25.el7.centos.2.x86_64
    [root@localhost ~]# systemctl status ntpd         #5.查看ntp服务状态
     ntpd.service - Network Time Service
       Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
       Active: inactive (dead)
    [root@localhost ~]# 
    
    [root@localhost ~]# vim /etc/ntp.conf             #6.修改配置文件,去掉默认注释即可
    
    server 127.127.1.0 iburst                         #7.添加此内容:
    当外部时间不可用时,使用本地时间
    
    [root@localhost ~]# systemctl start ntpd          #8.重启ntpd服务
    [root@localhost ~]# netstat -tulnp | grep ntp     #检查 ntp 端口起来没有
    udp        0      0 192.168.10.11:123       0.0.0.0:*                           23208/ntd          
    udp        0      0 127.0.0.1:123           0.0.0.0:*                           23208/ntd          
    udp        0      0 0.0.0.0:123             0.0.0.0:*                           23208/ntd          
    udp6       0      0 fe80::a30b:879b:3f1:123 :::*                                23208/ntd          
    udp6       0      0 ::1:123                 :::*                                23208/ntd          
    udp6       0      0 :::123                  :::*                                23208/ntd          
    
     
    [root@localhost ~]# systemctl enable ntpd          #9.设置开机自启动
    Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
    
    [root@localhost ~]# firewall-cmd --permanent --add-port=123/udp #10.设置防火墙,打开udp123端口
    success
    [root@localhost ~]# 
    
    
    [root@localhost ~]# firewall-cmd --reload           #10.重启firewalld防火墙
    success
    [root@localhost ~]# 
    [root@localhost ~]# ntpq -p                         #11.查看是否同步
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    +electrode.felix 253.10.71.116    3 u   60   64  177  250.132  583.747   9.784
    *vmd46520.contab 79.133.44.136    2 u   61   64  157  278.278  607.237   6.266
    +162.159.200.123 10.4.1.175       3 u   56   64  177  163.803  591.728   4.587
     cronos.unad.edu .INIT.          16 u    -   64    0    0.000    0.000   0.000
     LOCAL(0)        .LOCL.           5 l  398   64  300    0.000    0.000   0.000
    [root@localhost ~]# 
    
    
  • 2.客户端配置

    1.查看是否安装                  [root@localhost ~]# rpm -qa|grep ntp   
    2.安装命令                     [root@localhost ~]# yum install ntp ntpdate -y 
    3.检查ntp服务是否安装成功        [root@localhost ~]# rpm -qa|grep ntp  
    4.查看ntp 服务状态              [root@localhost ~]# systemctl status ntp
    5.修改ntp 服务器配置文件         [root@localhost ~]# vim /etc/ntp.conf 
    	去掉注释(:g/^#/d)
    	添加
    		server 127.127.1.0 iburst     #当外部时间不可用时,使用本地时间
    		server 192.168.10.11        #增加ntp服务器IP
    		restrict 192.168.10.11 nomodify notrap noquery #禁止其他ip来更新时间
    
    7.重启客户端NTP服务器             [root@localhost ~]# systemctl start ntpd
    8.验证NTP 服务器
    [root@localhost ~]# ntpq -p
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
     94-172-186-238. .INIT.          16 u    -   64    0    0.000    0.000   0.000
     162.159.200.123 10.4.1.175       3 u    1   64    3  163.164  -313119   8.941
     ntp1.flashdance 194.58.202.20    2 u    1   64    3  268.103  -313119  18.023
    *LOCAL(0)        .LOCL.           5 l    3   64    3    0.000    0.000   0.000
     192.168.10.11   144.91.116.85    3 u    2   64    0    0.000    0.00
    
  • 验证配置

    [root@localhost ~]# date -s '2022-06-18'    #修改同步时间
    Sat Jun 18 00:00:00 CST 2022
    [root@localhost ~]# 
    [root@localhost ~]# date
    Sat Jun 18 00:00:04 CST 2022
    [root@localhost ~]# ntpdate 192.168.10.11
    18 Jun 00:00:25 ntpdate[2244]: the NTP socket is in use, exiting
    
    关闭客户端服务,如果还不行杀掉进程。
    [root@localhost ~]# ntpdate 192.168.10.11
    20 Jun 14:33:25 ntpdate[2361]: step time server 192.168.10.11 offset -31311901.342790 sec
    [root@localhost ~]# date
    Sun Jun 20 14:33:34 CST 2021
    [root@localhost ~]# 
    
  • 加入计划任务

    [root@localhost ~]# which ntpdate
    /usr/sbin/ntpdate
    
    [root@localhost ~]# crontab -e                               #编写计划任务
    [root@localhost ~]# crontab -l
    */60 * * * * /usr/sbin/ntpdate 192.168.10.11 >>/tmp/ntp.log  #每60分钟同步一次
    [root@localhost ~]# 
    
  • 报错解决办法

    1.问题:
    	the NTP socket is in use, exiting
    	
    2.处理思路:
    [root@localhost ~]# ps -ef|grep xntpd
    root     124185   6192  0 15:49 pts/1    00:00:00 grep xntpd
    可惜没有找到pid。
    
    使用lsof –i:123
    没有lsof命令的话:yum install -y lsof
    [root@localhost ~]# yum install -y lsof
    
    [root@localhost ~]# 
      oot@localhost ~]# lsof -i:123
    ▽OMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    ntpd    2347  ntp   16u  IPv4  28603      0t0  UDP *:ntp 
    ntpd    2347  ntp   17u  IPv6  28604      0t0  UDP *:ntp 
    ntpd    2347  ntp   18u  IPv4  28609      0t0  UDP localhost:ntp 
    ntpd    2347  ntp   19u  IPv4  28610      0t0  UDP localhost.localdomain:ntp 
    ntpd    2347  ntp   20u  IPv6  28611      0t0  UDP localhost:ntp 
    ntpd    2347  ntp   21u  IPv6  28612      0t0  UDP localhost.localdomain:ntp 
    [root@localhost ~]# kill -9 2347
    [root@localhost ~]# ntpdate 192.168.10.11
    20 Jun 14:33:25 ntpdate[2361]: step time server 192.168.10.11 offset -31311901.342790 sec
    	ok。问题完美解决
    

总结

感谢大家阅读到最后。本文主要介绍了ntp 服务在本地配置。在不同的主机之间进行时间同步对于计划备份、入侵检测记录、分布式任务调度或者事务订单管理来说是很重要的事情。它甚至应该作为日常任务的一部分。

还不点个赞,收藏我吗

以上是关于手把手教你在centos 7.4上搭建NTP服务器的主要内容,如果未能解决你的问题,请参考以下文章

手把手教你在CentOS 7.4下搭建Zabbix监控(转)

手把手教你在CentOS上搭建Kubernetes集群

手把手教你在centos上配置Django项目(超详细步骤)

干货!手把手教你在 Centos 上安装 Oracle19c RAC 集群,文档巨详细值得收藏!!

手把手教你搭建Linux时间同步服务器

手把手教你在 Ubuntu 上搭建 Git 服务器