手把手教你在centos7.4上搭建ntp服务器(代码片段)

小凡it故事 小凡it故事     2023-01-18     159

关键词:

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 服务在本地配置。在不同的主机之间进行时间同步对于计划备份、入侵检测记录、分布式任务调度或者事务订单管理来说是很重要的事情。它甚至应该作为日常任务的一部分。

还不点个赞,收藏我吗

手把手教你从安装centos7.4镜像开始,搭建iot视频监控系统

摘要:在CentOS7.4服务器版本的环境下安装nginx服务器、配置文件服务器、流媒体服务器。本文分享自华为云社区《​​华为云ECS服务器安装CentOS7.4镜像,部署GINX服务器、搭建物联网视频监控系统​​》,作者:DS小龙哥。在CentOS7... 查看详情

手把手教你从安装centos7.4镜像开始,搭建iot视频监控系统(代码片段)

摘要:在CentOS7.4服务器版本的环境下安装nginx服务器、配置文件服务器、流媒体服务器。本文分享自华为云社区《华为云ECS服务器安装CentOS7.4镜像,部署GINX服务器、搭建物联网视频监控系统》,作者:DS小龙哥。... 查看详情

手把手教你搭建linux时间同步服务器(代码片段)

文章目录1.NTP简介2.NTP服务器安装3.配置NTP服务4.启动NTP服务器5.客户端时间同步1.NTP简介NTP(NetworkTimeProtocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界... 查看详情

手把手教你在fpga上搭建一个cortex-m3软核(代码片段)

...号,不错过精彩内容转自| 电子电路开发学习本文将手把手教你如何基于ARMDesignStart计划,在FPGA上搭建一个Cortex-M3软核处理器。以XilinxArtix-7™系列FPGA为例,介绍如何定制一颗ARMCortex-M3SoC软核,并添加GPIO和UART外设... 查看详情

手把手教你在fpga上搭建一个cortex-m3软核(代码片段)

...号,不错过精彩内容转自| 电子电路开发学习本文将手把手教你如何基于ARMDesignStart计划,在FPGA上搭建一个Cortex-M3软核处理器。以XilinxArtix-7™系列FPGA为例,介绍如何定制一颗ARMCortex-M3SoC软核,并添加GPIO和UART外设... 查看详情

手把手教你在开发板中搭建一个嵌入式web服务器(代码片段)

...星标公众号,不错过精彩内容转自|嵌入式大杂烩本文手把手教大家在10分钟内使用开发板搭建一个web服务器。文章《常见的嵌入式web服务器有哪些?》中分享了几种可以在嵌入式中使用的web服务器。嵌入式web服务器就是... 查看详情

手把手教你在windows下搭建vue开发环境

最近有小伙伴不会Vue环境的部署,小孟亲自测试了下,大家有需要的可以按照下面的学习。如果想看视频的,也可以看视频的教程:https://www.bilibili.com/video/BV1if4y1X7BS/?spm_id_from=333.788.recommend_more_video.-1&vd_source... 查看详情

手把手教你在windows下搭建vue开发环境

最近有小伙伴不会Vue环境的部署,小孟亲自测试了下,大家有需要的可以按照下面的学习。如果想看视频的,也可以看视频的教程:https://www.bilibili.com/video/BV1if4y1X7BS/?spm_id_from=333.788.recommend_more_video.-1&vd_source... 查看详情

手把手教你在modelarts平台上进行视频推理

摘要:为了方便小伙伴们进行视频场景的AI应用开发,Modelarts推理平台将视频推理场景中一些通用的流程抽取出来预置在基础镜像中,小伙伴们只需要简单地编写预处理及后处理脚本,便可以像开发图片类型的AI服... 查看详情

手把手教你搭建自己的文件服务器(代码片段)

Linux上安装文件服务器FTP由于FTP、HTTP、Telnet等协议的数据都是使用明文进行传输的,因此从设计上就是不可靠的。人们为了满足以密文方式传输文件的需求,发明了vsftpd服务程序。vsftpd(verysecureftpdaemon,非常安全的FTP守护进程... 查看详情

手把手教你在pycharm上上传项目至github

如果你还没有下载Git,请移步下载:https://git-scm.com/downloads下载后解压傻瓜式安装,不过请记住你的安装目录,我们会用到。以我的安装目录为例:D:\\ProgramFiles\\Git首先打开pycharm鼠标点击file点settings进入设置第一步配置GitHub账号... 查看详情

手把手教你在centos7上安装zabbixserver3.0

1.查看系统信息。cat /etc/redhat-releaseCentOS Linux release 7.0.1406 (Core)uname -aLinux VM_96_155_centos3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30&nb 查看详情

手把手教你在windows上安装mysql8.0最新版本数据库,保姆级教学

一、提前认知要想在​​windows​​​中运行​​mysql​​​,需要​​32​​​位或者​​64​​​的​​windows​​​操作系统,例如:​​windows10​​​、​​windows11​​等;​​windows​​平台下提供了两种安装方式:​​mys... 查看详情

手把手教你在windows下搭建vue开发环境

最近有小伙伴不会Vue环境的部署,小孟亲自测试了下,大家有需要的可以按照下面的学习。如果想看视频的,也可以看视频的教程:https://www.bilibili.com/video/BV1if4y1X7BS/?spm_id_from=333.788.recommend_more_video.-1&vd_source... 查看详情

手把手教你在新浪云上免费部署自己的网站--连接数据库

看这篇博客之前请一定要先看一下另一片博客,链接是http://www.cnblogs.com/-beyond/p/6686166.html看完之后,默认你知道怎么将代码上传到新浪云SAE,并且能够成功运行,连接数据库之前,你必须先创建有一个应用。现在我创建一个名称... 查看详情

手把手教你使用wordpress搭建个人网站(代码片段)

摘要:前段时间用Hexo搭建了静态博客,放在了Gitee上面感觉太慢,而且每次部署之后还需要去Gitee后台上面更新一遍,所以又重新用wordpress搭建了一个博科网站,部署在云虚拟主机上面。1、选购服务器网站是... 查看详情

手把手教你搭建docker私有仓库(代码片段)

章节一:centos7docker安装和使用_入门教程章节二:使用docker部署Asp.netcoreweb应用程序有了前面的基础,接下来的操作就会比较简单了。先准备两台虚拟机:Docker客户端:192.168.1.160Docker私有仓库服务器:192.168.1.161两台机器上都配好... 查看详情

linux编程手把手教你搭建linux编程环境(代码片段)

Linux编程环境搭建有两套方案。关于这两套方案我都会做详细的讲解,以便帮助大家减少Linux编程学习的障碍。方案一:云服务器+Xshell这种方案就是将我们的Linux操作机部署在云服务器上面,然后通过Xshell在自己的... 查看详情