zoukankan      html  css  js  c++  java
  • ntp时间服务器 时间同步

    具体两种模式
    1.服务器数量比较少,可以直接与时间服务器同步
    2.本地服务器较多,在本地自建时间同步服务器,
     
     
    时间同步的两个命令
    ntpd :         校准时间,一点点的校准过来时间的,最终把时间慢慢的校正对。
                          ntpd服务可以在修正时间的同时,修正cpu tick
                          ntpd有一个自我保护设置: 如果本机与上源时间相差太大, ntpd不运行


    ntpdate : 不会考虑其他程序是否会阵痛,直接调整时间,有可能会对程序造成影响
     
    ntpdate [-nv] [ IP/hostname]
    # ntpdate -u 192.168.0.2
    # ntpdate -u 10.11.0.35
    # ntpdate -u time.ntp.org
    # ntpdate -u ntp.sjtu.edu.cn >>/var/log/ntp.log 2>&1;hwclock -w  
     
     注意:若不加上-u参数, 会出现以下提示:no server suitable for synchronization found
    -u:指定使用无特权的端口发送数据包,可以越过防火墙与主机同步;
     
     
    理想的做法是:
    使用ntpd来校准时钟,而不是调整计算机时钟上的时间。
    在计算机刚刚启动,但还没有启动很多服务的那个时候可以使用ntpdate同步时间
     
     
     一、直接用命令与时间服务器进行同步
     
     实例:
    使用ntpdate 进行同步: 

    ntpdate -u x.x.x.x

    这里的x.x.x.x可以是公网时间服务器IP地址,也可以是下面二中我们自建的ntp服务器地址。
    可以加一个定时计划,定时同步
    1. crontab -e  
    2. */5 * * * * /usr/sbin/ntpdate -u x.x.x.x
    3. /etc/init.d/crond restart 
     
    2.这里提供几个公网时间服务器地址
    阿里云时间服务器,授时信号来自GPS、北斗两套卫星信号,并配备原子钟守时,
    以下7个域名提供服务,大家可以直接使用。
    time1.aliyun.com
    time2.aliyun.com
    time3.aliyun.com
    time4.aliyun.com
    time5.aliyun.com
    time6.aliyun.com
    time7.aliyun.com

    或者直接访问这个地址  time.pool.aliyun.com

    # ntpdate -u time.pool.aliyun.com
    13 Nov 10:48:28 ntpdate[26527]: adjust time server 182.92.12.11 offset 0.000458 sec

    centos也有几个时间服务器(最好还是用国内的吧)
    0.centos.pool.ntp.org
    1.centos.pool.ntp.org
    2.centos.pool.ntp.org



     
    二、 自建ntpd 时间同步服务器

    NTP通信协议原理

    1. 首先主机启动NTP。
    2. 客户端会向NTP服务器发送调整时间的message。
    3. 然后NTP server会送出当前的标准时间给client
    4. client接受来自server的时间后,会根据这个信息来调整自己的时间。这样就实现了网络对时。

    NTP这个deamon采用了UDP 123端口。


    远程服务器的层级(stratum):
    由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端.
    所以服务器从高到低级别可以设定为1-16.
    为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的



    1.配置ntp服务器
    安装  
    # yum install ntp
    开机自启动
    # chkconfig ntpd on
     
    修改配置文件:
     [root@test01 ~]# less /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            系统时间与BIOS事件的偏差记录
     
    配置与本机同步的机器权限
    # Permit time synchronization with our time source, but do not
    # permit the source to query or modify the service on this system.

    restrict default kod nomodify notrap nopeer noquery
    restrict -6 default kod nomodify notrap nopeer noquery 
        
    默认拒绝任何操作 
     
    任何ip4地址、ip6地址  不能修改、不能trap远程登录、不能尝试对等、不能校对时间


    restrict 控制相关权限。

    语法为:  restrict [ 客户端IP ]  mask  [ IP掩码 ]  [参数]

    其中IP地址也可以是default ,default 就是指所有的IP

    参数有以下几个:

    nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。

    notrust :拒絕沒有認證的用戶端

    noquery :客户端不能使用ntpq,ntpc来查询ntp服务器,等于不提供校对时间服务

    notrap :不提供trap远程登录功能,trap服务是一种远程时间日志服务

    拒绝为匹配的主机提供模式 6 控制消息陷阱服务。陷阱服务是 ntpdq 控制消息协议的子系统,用于远程事件日志记录程序。

    nopeer :用于阻止主机尝试与服务器对等

    kod : 访问违规时发送 KoD 包,向不安全的访问者发送Kiss-Of-Death报文。

    restrict -6 表示IPV6地址的权限设置。

     
    如何控制客户的范围
    # 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
     
    本机与公共时间服务器同步选项
    设定NTP主机来源(其中prefer表示优先主机)
    # Use public servers from the pool.ntp.org project.   使用公共服务器从 时间池工程中
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).  请考虑加入这个 时间池 项目
    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
     

    server host  [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]

    其中host是上层NTP服务器的IP地址或域名,随后所跟的参数解释如下所示:

    ◆ key: 表示所有发往服务器的报文包含有秘钥加密的认证信息,n是32位的整数,表示秘钥号。

    ◆ version: 表示发往上层服务器的报文使用的版本号,n默认是3,可以是1或者2。

    ◆ prefer: 优先使用。

    ◆ mode: 指定数据报文mode字段的值。

    ◆ minpoll: 指定与查询该服务器的最小时间间隔为2的n次方秒,n默认为6,范围为4-14。

    ◆ maxpoll:  指定与查询该服务器的最大时间间隔为2的n次方秒,n默认为10,范围为4-14。

    ◆ iburst: 当初始同步请求时,采用突发方式接连发送8个报文,时间间隔为2秒。


    #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

    当外部时间不可用时,以本地(本机)时间作为服务时间
    本地时间以 127.127.1.0 表示  级别为10

    # Undisciplined Local Clock. This is a fake driver intended for backup
    # and when no outside source of synchronized time is available.
    #server 127.127.1.0     # local clock
    #fudge  127.127.1.0 stratum 10

    下面是一些加密认证的配置
    # 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


    一个简单实例如下:
    restrict default kod nomodify notrap nopeer noquery
    拒绝所有ip4 的请求
    # restrict -6 default kod nomodify notrap nopeer noquery  #针对ipv6设置
     
    # 允许本地所有操作
    restrict 127.0.0.1
    #restrict -6 ::1
     
    # 允许的局域网络段或单独ip 某些权限
    restrict 10.0.0.0 mask 255.0.0.0 nomodify motrap
    restrict 192.168.0.0 mask 255.255.255.0 nomodify motrap
    restrict 192.168.1.123 mask 255.255.255.255 nomodify motrap
     
    # 使用上层的internet ntp服务器
    restrict cn.pool.ntp.org
    restrict 1.cn.poo.ntp.org
    restrict 0.asia.pool.ntp.org
    restrict 3.asia.pool.ntp.org
    server cn.pool.ntp.org prefer
    server 1.cn.poo.ntp.org
    server 0.asia.pool.ntp.org
    server 3.asia.pool.ntp.org
     
    # 如果无法与上层ntp server通信以本地时间为标准时间
    server   127.127.1.0    # local clock
    fudge    127.127.1.0 stratum 10
     
    # 计算本ntp server 与上层ntpserver的频率误差
    driftfile /var/lib/ntp/drift
     
    # Key file containing the keys and key identifiers used when operating
    # with symmetric key cryptography.
    keys /etc/ntp/keys
     
    #日志文件
    logfile /var/log/ntp.log


    配置/etc/sysconfig/ntpd文件

    ntp服务,默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件,在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 这样,就可以让硬件时间与系统时间一起同步。

    #允许BIOS与系统时间同步,也可以通过hwclock -w 命令

    SYNC_HWCLOCK=yes

     

    启动ntpd 服务
    # service ntpd start

     


    # 查看ntp的端口,应该看到123端口
    #netstat -unlnp


     

     

    # 查看ntp服务器有无和上层连通
    #ntpstat
     
    synchronised to NTP server () at stratum 2
    time correct to within 74 ms
    polling server every 128 s
    # 注意:此命令出现上述synchronised结果比较慢,我的用了大概5分钟。

    刚启动的时候,一般是:

    # ntpstat 

    unsynchronised

      time server re-starting

       polling server every 64 s

    连接并同步后:

    synchronised to NTP server (202.112.10.36) at stratum 3 

       time correct to within 275 ms

       polling server every 256 s


     

    ntptrace -n 127.0.0.1
     
    127.0.0.1: stratum 3, offset -0.001095, synch distance 0.532610
    116.193.83.174: timed out, nothing received



    查看ntp服务器与上层ntp服务器的状态:ntpq

     

    #ntpq -p
     
    # 其中:

    # remote - 本机和上层ntp的ip或主机名,“+”有连线可做候选,“*”正在使用的

    # refid - 更上一层的ntp地址

    # st - stratum的 级别

     
    # when   - 多少秒前曾经同步过时间
    # poll   - 下次更新在多少秒后
    # reach  - 已经向上层ntp服务器要求更新的次数
    # delay  - 网络延迟
    # offset - 时间补偿
    # jitter - 系统时间与bios时间差

    # ntpq -p
         remote           refid                  st t when poll reach   delay   offset  jitter
    ==============================================================================
    *time4.aliyun.co 10.137.38.86     2 u  111  128  377   27.480   -5.995   1.852




    2.配置NTP客户端:
    在所有客户端上vim /etc/ntp.conf,添加:
    server x.x.x.x 

    x.x.x.x 为上面配置的ntp服务器地址


    注意:当server与client之间的时间误差过大时(可能是1000秒),处于对修改时间可能对系统和应用带来不可预知的问题,NTP将停止时间同步!
    所以如果发现NTP启动之后时间并不进行同步时,应该考虑到可能是时间差过大引起的,
    此时需要先手动进行时间同步 ntpdate 

  • 相关阅读:
    软件测试原则
    java知识点
    jquery取值
    Javaweb命名规则
    @ResponseBody
    jquery ajax 方法及各参数详解
    @RequestMapping用法详解
    eclipse+android+opencv环境搭建的步骤
    Java中的内部类(回调)
    OpenCV直方图(直方图、直方图均衡,直方图匹配,原理、实现)
  • 原文地址:https://www.cnblogs.com/centos2017/p/7896704.html
Copyright © 2011-2022 走看看