zoukankan      html  css  js  c++  java
  • centos6 & centos7搭建ntp服务器

    原理

    NTP(Network TimeProtocol,网络时间协议)是用来使计算机时间同步的一种协议。它可以使计算机对其服务器或时钟源做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),切可介由加密确认的方式来防止恶意的协议攻击。

    运行模式:C/S模式

    运行端口/协议:123/udp

    安装

    直接使用 yum 安装:

    yum install ntp ntpdate
    

    配置

    配置文件 /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
    
    # Permit time synchronization with our time source, but do not
    # permit the source to query or modify the service on this system.
    restrict default nomodify notrap nopeer noquery
    
    # 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 192.168.137.1 mask 255.255.255.0 nomodify  #允许更新的IP地址段
    restrict ::1
    
    # Hosts on local network are less restricted.
    #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
    
    # Use public servers from the pool.ntp.org project.
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    # perfer:表示优先级最高,如果不设置,从上到下,写的越靠上,优先级越高
    # iburst:当一个运程NTP服务器不可用时,向它发送一系列的并发包进行检测
    server cn.pool.ntp.org iburst perfer	# 中国国家授时中心ntp服务器
    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
    
    # local clock 如果上面的服务器都无法同步时间,就和本地系统时间同步。127.127.1.0在这里是一个IP地址,不是网段。
    # 127.127.1.0 为第10层。ntp 和127.127.1.0同步完后,就变成了11层。  ntp是层次阶级的。同步上层服务器的stratum 大小不能超过或等于16# 在实际搭建中如果设置了local clock会出现即使ntp服务器本身时间不准确也不会和上层ntp服务器同步的问题,故注释。
    # 具体原因待研究
    #server 127.127.1.0
    #fudge 127.127.1.0 stratum 8
    
    #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
    
    # 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
    
    # Disable the monitoring facility to prevent amplification attacks using ntpdc
    # monlist command when default restrict does not include the noquery flag. See
    # CVE-2013-5211 for more details.
    # Note: Monitoring will not be disabled with the limited restriction flag.
    disable monitor
    

    启动

    centos6

    启动:service ntpd start

    停止:service ntpd stop

    设置开机启动:chkconfig ntpd on

    查看启动状态:service ntpd status

    查看日志: tailf /var/log/message

    查看端口:netstat -ulnp | grep -w 123

    centos7

    启动:systemctl start ntpd

    停止:systemctl stop ntpd

    设置开机启动:systemctl enable ntpd

    查看启动状态:systemctl status ntpd

    查看日志: tailf /var/log/message

    查看端口:netstat -ulnp | grep -w 123

    注意: ntpd 有一个自我保护设置:如果本机与上源时间相差太大,ntpd 不运行。所以新设置的时间服务器一定要先ntpdate 从上源取得时间初值,然后再启动 ntpd 服务。

    查看同步状态

    使用命令 ntpq -p 查看同步状态,ntpstat 列出是否与上游服务器连接。

    [root@centos751 ~]# ntpq -p
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
     ntp7.flashdance .INIT.          16 u    -   64    0    0.000    0.000   0.000
    *106.39.20.237   108.196.98.101   2 u  202   64   10   48.325   -4.794   0.997
     ntp1.ams1.nl.le 130.133.1.10     2 u   82   64    2  440.047  -111.75   0.000
     ntp2.flashdance 192.36.143.130   2 u    7   64    7  268.049   -2.210  45.428
     static-5-103-13 .INIT.          16 u    -   64    0    0.000    0.000   0.000
    [root@centos751 ~]# 
    
    • remote:即remote - 本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先。
    • refid:参考的上一层NTP主机的地址
    • st:即stratum阶层
    • poll:下次更新在几秒之后
    • offset:时间补偿的结果
    [root@centos751 ~]# ntpstat 
    synchronised to NTP server (106.39.20.237) at stratum 3 	# 可以看到我们当前在3层
       time correct to within 350 ms
       polling server every 64 s
    [root@centos751 ~]# 
    

    客户端同步时间

    使用 ntpdate 同步

    [root@centos752 ~]# ntpdate 192.168.223.101
    22 Oct 17:19:08 ntpdate[29924]: adjust time server 192.168.223.101 offset -0.001306 sec
    

    这种方法同步一次后如果时间久了,可能时间又会不准确,所以一般是使用 cron 任务定时同步

    */10 * * * * /usr/sbin/ntpdate 192.168.223.101 | logger -t NTP
    

    拓展补充

    1、linux系统时间和BIOS时间

    有时候linux系统时间和BIOS时间是不一样的,如果不一样怎么解决呢?方法如下:

    a、首先 hwclock -r 读出BIOS的时间参数,查看是否准确

    b、如果不准确,使用 hwclock -w 将当前系统时间(已同步准确)写入BIOS中

    2、不同机器之间的时间同步

    为了避免主机时间因为长期运作下所导致的时间偏差,进行时间同步的工作是非常必要的。 同步时间,可以使用ntpdate命令,也可以使用ntp服务。主要的方法有以下3种。

    a、使用 ntpdate 配合 cron 同步公网NTP服务器时间

    */10 * * * * /usr/sbin/ntpdate cn.pool.ntp.org | logger -t NTP
    

    b、将主机搭建成 ntp 服务器同步上层NTP服务器时间

    以上两种方法有弊端:必须主机可以连接公网,但是有的时候集群当中有部分主机是不能连接公网的,这时候就要用到第三种的方法

    c、将内网中能连接公网的主机搭建成 ntp 服务器同步公网上层NTP服务器时间,然后内网中其他主机使用 ntpdate 定时同步此NTP服务器时间或者搭建成 ntp 服务器并将上层NTP服务器设置为次NTP服务器

  • 相关阅读:
    JS收集<3>:限制URL
    TSQL小收集<1>:为已经存在的表添加唯一约束
    第一个NHibernate实例 yangan
    用Javascript获取select的值 yangan
    获取页面名称语句 yangan
    asp.net中当服务器出错时显示指定的错误页面,同时把错误信息写入系统日志文件 yangan
    Log4Net使用指南 yangan
    明确自己的首要责任
    《大数据时代》摘录
    2013年3月阅读链接
  • 原文地址:https://www.cnblogs.com/leffss/p/9834577.html
Copyright © 2011-2022 走看看