linuxntp服务_linuxntp服务命令 - CSDN
  • LinuxNTP配置总结

    2018-09-06 11:20:31
    linux ntpd 总结 ... 在Linux系统中,为了避免主机时间因为在长时间运行下所导致的时间偏差,进行时间同步(synchronize)的工作是...Linux系统下,一般使用ntp服务来同步不同机器的时间。NTP 是网络时间协议(Network T...

    linux ntpd 总结

    转自:https://www.cnblogs.com/kerrycode/archive/2015/08/20/4744804.html

    在Linux系统中,为了避免主机时间因为在长时间运行下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。Linux系统下,一般使用ntp服务来同步不同机器的时间。NTP 是网络时间协议(Network Time Protocol)的简称,干嘛用的呢?就是通过网络协议使计算机之间的时间同步化。

     

    安装NTP包

    检查是否安装了ntp相关包。如果没有安装ntp相关包,使用rpm或yum安装,安装也非常简单方便。

    [root@localhost ~]#  rpm -qa | grep ntp
    ntpdate-4.2.6p5-1.el6.x86_64
    fontpackages-filesystem-1.41-1.1.el6.noarch
    ntp-4.2.6p5-1.el6.x86_64

     

    NTP的配置

     

     

     

    A: 配置/etc/ntp.conf

     

    NTP Server的主要配置文件为/etc/ntp.conf ,没有修改过的ntp.conf文件内容如下所示,配置选项都有相关注释信息(Linux 版本为Red Hat Enterprise Linux Server release 6.6 )

    [root@localhost ~]# more /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 kod nomodify notrap nopeer noquery
    restrict -6 default kod 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 -6 ::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).
    server 0.rhel.pool.ntp.org iburst
    server 1.rhel.pool.ntp.org iburst
    server 2.rhel.pool.ntp.org iburst
    server 3.rhel.pool.ntp.org iburst
     
     
    #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

    各个选项信息:

    #系统时间与BIOS事件的偏差记录

    driftfile /etc/ntp/drift

     

    restrict 控制相关权限。

    语法为: restrict IP地址 mask 子网掩码 参数

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

    参数有以下几个:

    ignore  :关闭所有的 NTP 联机服务

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

    notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网

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

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

    nopeer :用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟

    kod : 访问违规时发送 KoD 包。

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

    1:设定NTP主机来源(其中prefer表示优先主机),192.168.7.49是本地的NTP服务器,所以优先指定从该主机同步时间。

    server 192.168.7.49 prefer 
     
    server 0.rhel.pool.ntp.org iburst
     
    server 1.rhel.pool.ntp.org iburst
     
    server 2.rhel.pool.ntp.org iburst
     
    server 3.rhel.pool.ntp.org iburst

    clip_image001

     

    2:限制你允许的这些服务器的访问类型,在这个例子中的服务器是不容许修改运行时配置或查询您的Linux NTP服务器

     

    restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap

    在上例中,掩码地址扩展为255,因此从192.168.0.1-192.168.0.254的服务器都可以使用我们的NTP服务器来同步时间

     

    #此时表示限制向从192.168.0.1-192.168.0.254这些IP段的服务器提供NTP服务。

    restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap noquery

     

    #设置默认策略为允许任何主机进行时间同步

    restrict default ignore

     

    3:确保localhost(这个常用的IP地址用来指Linux服务器本身)有足够权限.使用没有任何限制关键词的语法:

    restrict 127.0.0.1

    restrict -6 ::1

     

    B:配置/etc/ntp/stpe-tickers文件

    修改/etc/ntp/stpe-tickers文件,内容如下(当ntpd服务启动时,会自动与该文件中记录的上层NTP服务进行时间校对)

    [root@localhost ntp]# more /etc/ntp/step-tickers 
    # List of servers used for initial synchronization.
    [root@localhost ntp]# vi /etc/ntp/step-tickers 
    # List of servers used for initial synchronization.
    server 192.168.7.49 prefer
    server 0.rhel.pool.ntp.org
    server 1.rhel.pool.ntp.org 
    server 2.rhel.pool.ntp.org 
    server 3.rhel.pool.ntp.org 

    关于ntp.conf and step-tickers区别:

    step-tickers is used by ntpdate where as ntp.conf is the configuration file for the ntpd daemon. ntpdate is initially run to set the clock before ntpd to make sure time is within 1000 sec. ntp will not run if the time difference between the server and client by more then 1000 sec ( or there about). The start up script will read step-tickers for servers to be polled by ntpdate.

    C:配置/etc/sysconfig/ntpd文件

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

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

    SYNC_HWCLOCK=yes

     

    IPTABLES 配置

    由于NTP服务需要使用到UDP端口号123,所以当系统的防火墙(Iptables)启动的情况下,必须开放UDP端口号123。

    [root@localhost ~]#  /etc/init.d/iptables status
    Table: filter
    Chain INPUT (policy ACCEPT)
    num  target     prot opt source               destination         
    1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
    2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
    3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
    4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
    5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
     
    Chain FORWARD (policy ACCEPT)
    num  target     prot opt source               destination         
    1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
     
    Chain OUTPUT (policy ACCEPT)
    num  target     prot opt source               destination         
     
    [root@localhost ~]# /sbin/iptables -I INPUT -p udp --dport 123 -j ACCEPT
    [root@localhost ~]#  /etc/init.d/iptables status
    Table: filter
    Chain INPUT (policy ACCEPT)
    num  target     prot opt source               destination         
    1    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:123 
    2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
    3    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
    4    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
    5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
    6    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
     
    Chain FORWARD (policy ACCEPT)
    num  target     prot opt source               destination         
    1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
     
    Chain OUTPUT (policy ACCEPT)
    num  target     prot opt source               destination         
     
    [root@localhost ~]# 

    clip_image002

    如果防火墙没有开放UDP端口号123,有可能出现下面情况。

    [root@localhost ~]# /usr/sbin/ntpq -c rv | grep stratum

    stratum=16, precision=-24, rootdelay=0.000, rootdisp=3.525, refid=INIT,

    [root@localhost~]#

    A stratum level of 16 indicates that NTP is not synchronizing correctly.If a stratum level of 16 is detected, wait 15 minutes and issue the command again. It may take this long for the NTP server to stabilize.If NTP continues to detect a stratum level of 16, verify that the NTP port (UDP Port 123) is open on all firewalls between the cluster and the remote machine you are attempting to synchronize to.

     

     

    启动NTP服务

     

     

    [root@localhost ~]# service ntpd status
    ntpd is stopped
    [root@localhost ~]# service ntpd start
    Starting ntpd: [  OK  ]
    [root@localhost ~]# 
     
    service ntpd status      #查看ntpd服务状态
    service ntpd start           #启动ntpd服务
    service ntpd stop            #停止ntpd服务
    service ntpd restart         #重启ntpd服务

    检查ntp服务是否开机启动,将其设置为开机启动。

    [root@localhost ~]# chkconfig --list ntpd

    ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

    [root@localhost ~]# runlevel

    N 3

    [root@localhost ~]# chkconfig ntpd on #在运行级别2、3、4、5上设置为自动运行

    [root@localhost ~]# chkconfig --list ntpd

    ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    [root@localhost ~]#

    如果要设置在运行级别上自动运行,可以使用下面命令

    chkconfig --level 345 ntpd on

    可以用下面命令检测NTP服务是否运行

    [root@localhost ~]# pgrep ntpd 
    2639
    2641
    [root@localhost ~]# netstat -tlunp | grep ntp   #如果看到123端口,说明ntp服务成功启动。
    udp        0      0 192.168.7.224:123           0.0.0.0:*                               2639/ntpd           
    udp        0      0 127.0.0.1:123               0.0.0.0:*                               2639/ntpd           
    udp        0      0 0.0.0.0:123                 0.0.0.0:*                               2639/ntpd           
    udp        0      0 fe80::250:56ff:feb3:b5:123  :::*                                    2639/ntpd           
    udp        0      0 ::1:123                     :::*                                    2639/ntpd           
    udp        0      0 :::123                      :::*                                    2639/ntpd           
    [root@localhost ~]# 

    clip_image003

    查看ntp服务器有无和上层ntp连通

     

    [root@localhost ~]# ntpstat
    synchronised to NTP server (192.168.7.49) at stratum 6 
       time correct to within 440 ms
       polling server every 128 s
    [root@localhost ~]# 

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

    [root@localhost ~]# ntpq -p
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
     192.168.7.49    192.168.7.50     5 u   13   64    3    5.853  1137178   2.696
    [root@localhost ~]# ntpq -p
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
     192.168.7.49    192.168.7.50     5 u   17   64    3    5.853  1137178   2.696
    [root@localhost ~]# ntpq -p
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
     192.168.7.49    192.168.7.50     5 u    1   64    1    0.937   -9.570   0.000

    clip_image004

    remote   - 本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先

    refid    - 参考上一层ntp主机地址

    st       - stratum阶层

    when     - 多少秒前曾经同步过时间

    poll     - 下次更新在多少秒后

    reach    - 已经向上层ntp服务器要求更新的次数

    delay    - 网络延迟

    offset   - 时间补偿

    jitter   - 系统时间与bios时间差

    要查看 ntpd 进程的状态,请运行以下命令,按 Ctrl+C 停止查看进程。

    clip_image005

    第一列中的字符指示源的质量。星号 ( * ) 表示该源是当前引用。

    remote 列出源的 IP 地址或主机名。

    when   指出从轮询源开始已过去的时间(秒)。

    poll   指出轮询间隔时间。该值会根据本地时钟的精度相应增加。

    reach  是一个八进制数字,指出源的可存取性。值 377 表示源已应答了前八个连续轮询。

    offset 是源时钟与本地时钟的时间差(毫秒)。

     

    ntpd、ntpdate的区别

    下面是网上关于ntpd与ntpdate区别的相关资料。如下所示所示:

    使用之前得弄清楚一个问题,ntpd与ntpdate在更新时间时有什么区别。ntpd不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。

    时钟的跃变,对于某些程序会导致很严重的问题。许多应用程序依赖连续的时钟——毕竟,这是一项常见的假定,即,取得的时间是线性的,一些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃。不幸的是,ntpdate调整时间的方式就是我们所说的”跃变“:在获得一个时间之后,ntpdate使用settimeofday(2)设置系统时间,这有几个非常明显的问题:

    第一,这样做不安全。ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。由于ntpdate采用的方式是跳变,跟随它的服务器无法知道是否发生了异常(时间不一样的时候,唯一的办法是以服务器为准)。

    第二,这样做不精确。一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。

    第三,这样做不够优雅。由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错(例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的)。因而,唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间。

    NTPD 在和时间服务器的同步过程中,会把 BIOS 计时器的振荡频率偏差——或者说 Local Clock 的自然漂移(drift)——记录下来。这样即使网络有问题,本机仍然能维持一个相当精确的走时。

     

     

    参考资料:

    http://blog.sina.com.cn/s/blog_5369bee10100aysx.html

    http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2085950

    http://wiki.ubuntu.com.cn/NTP

    http://blog.csdn.net/suer0101/article/details/7868813

    展开全文
  • 2、ntp:4.2.6 3、机器,服务端(192.168.0.101)客户端(192.168.0.102) 二、安装ntp yum -y install ntp 三、服务端配置(192.168.0.101) vim /etc/ntp.conf restrict 192.168.0.101 nomodify notrap ...

    一、基础环境

    1、操作系统:CentOS 7.3

    2、ntp:4.2.6

    3、机器,服务端(192.168.0.101)客户端(192.168.0.102)

    二、安装ntp

    yum -y install ntp

    三、服务端配置(192.168.0.101)

    vim /etc/ntp.conf
    
    restrict 192.168.0.101 nomodify notrap nopeer noquery          //当前节点IP地址
    restrict 192.168.0.2 mask 255.255.255.0 nomodify notrap      //集群所在网段的网关(Gateway),子网掩码(Genmask)
    
    # 在server部分添加以下部分,并注释掉server 0 ~ n
    server 127.127.1.0
    fudge 127.127.1.0 stratum 10

    四、客户端配置(192.168.0.102)

    vim /etc/ntp.conf
    
    restrict 192.168.0.102 nomodify notrap nopeer noquery          //当前节点IP地址
    restrict 192.168.0.2 mask 255.255.255.0 nomodify notrap      //集群所在网段的网关(Gateway),子网掩码(Genmask)
    
    # 在server部分添加如下语句,将server指向主节点。
    server 192.168.0.102
    fudge 192.168.0.102 stratum 10

    五、验证并配置定时任务

    1、验证

    分开开启服务端及客户端的ntp服务,并配置开机自启

    service ntpd start
    chkconfig ntpd on

    客户端运行如下命令,与服务端实现同步

    ntpdate -u 192.168.0.101

    2、配置定时任务

    我们可以在客户端配置crontab定时任务使客户端每隔一段时间自动与服务器端同步时间,如,在每星期一的晚上十点同步一次时间

    crontab -e
    
    00 22 * * 1 ntpdate -u 192.168.0.101

     

    展开全文
  • 时间服务器作用:大数据产生与处理系统是各种计算设备集群的,计算设备将统一、同步的标准时间用于记录各种事件发生时序,如E-MAIL信息、文件创建和访问时间、数据库处理时间等。大数据系统内不同计算设备之间控制、...

    时间服务器作用:

    大数据产生与处理系统是各种计算设备集群的,计算设备将统一、同步的标准时间用于记录各种事件发生时序

    如E-MAIL信息、文件创建和访问时间、数据库处理时间等。

    大数据系统内不同计算设备之间控制、计算、处理、应用等数据或操作都具有时序性,

    若计算机时间不同步,这些应用或操作或将无法正常进行

    大数据系统是对时间敏感的计算处理系统,时间同步是大数据能够得到正确处理的基础保障,是大数据得以发挥作用的技术支撑。

    大数据时代,整个处理计算系统内的大数据通信都是通过网络进行。

    时间同步也是如此,利用大数据的互联网络传送标准时间信息,实现大数据系统内时间同步。

    网络时间同步协议(NTP)是时间同步的技术基础。

     

    (一)确认ntp的安装

    1)确认是否已安装ntp

    【命令】rpm –qa | grep ntp

    若只有ntpdate而未见ntp,则需删除原有ntpdate。如:

    ntpdate-4.2.6p5-22.el7_0.x86_64

    fontpackages-filesystem-1.44-8.el7.noarch

    python-ntplib-0.3.2-1.el7.noarch

     

    2)删除已安装ntp

    【命令】yum –y remove ntpdate-4.2.6p5-22.el7.x86_64

     

    3)重新安装ntp

    【命令】yum –y install ntp

     

    (二)配置ntp服务

    1)修改所有节点的/etc/ntp.conf

    【命令】vi /etc/ntp.conf

    【内容】

    restrict 192.168.6.3 nomodify notrap nopeer noquery          //当前节点IP地址

    restrict 192.168.6.2 mask 255.255.255.0 nomodify notrap  //集群所在网段的网关(Gateway),子网掩码(Genmask)

     

    2)选择一个主节点,修改其/etc/ntp.conf

    【命令】vi /etc/ntp.conf

    【内容】在server部分添加一下部分,并注释掉server 0 ~ n

    server 127.127.1.0

    Fudge 127.127.1.0 stratum 10

     

    3)主节点以外,继续修改/etc/ntp.conf

    【命令】vi /etc/ntp.conf

    【内容】在server部分添加如下语句,将server指向主节点。

    server 192.168.6.3

    Fudge 192.168.6.3 stratum 10

     

    ===修改前===

     

    ===修改后===

    节点1(192.168.6.3):

     

    节点2(192.168.6.4):

     

    节点3(192.168.6.5):

     

     (三)启动ntp服务、查看状态

    1)启动ntp服务

    【命令】service ntpd start

     

    2)查看ntp服务器有无和上层ntp连通

    【命令】ntpstat

    查看ntp状态时,可能会出现如下所示情况

    ① unsynchronised time server re-starting polling server every 8 s

    ② unsynchronised polling server every 8 s

    这种情况属于正常,ntp服务器配置完毕后,需要等待5-10分钟才能与/etc/ntp.conf中配置的标准时间进行同步。

    等一段时间之后,再次使用ntpstat命令查看状态,就会变成如下正常结果:

     

    3)查看ntp服务器与上层ntp的状态

    【命令】ntpq -p

    remote:本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先

    refid:参考上一层ntp主机地址

    st:stratum阶层

    when:多少秒前曾经同步过时间

    poll:下次更新在多少秒后

    reach:已经向上层ntp服务器要求更新的次数

    delay:网络延迟

    offset:时间补偿

    jitter:系统时间与bios时间差

     

    4)查看ntpd进程的状态

    【命令】watch "ntpq -p"

    【终止】按 Ctrl+C 停止查看进程。

    第一列中的字符指示源的质量。星号 ( * ) 表示该源是当前引用。

    remote:列出源的 IP 地址或主机名。

    when:指出从轮询源开始已过去的时间(秒)。

    poll:指出轮询间隔时间。该值会根据本地时钟的精度相应增加。

    reach:是一个八进制数字,指出源的可存取性。值 377 表示源已应答了前八个连续轮询。

    offset:是源时钟与本地时钟的时间差(毫秒)。

     

    (四)设置开机启动

    【命令】chkconfig ntpd on

     

    (五)从其他博客的一些参考摘录

    ===/etc/ntp.conf 配置内容===

    复制代码
    # 1. 先处理权限方面的问题,包括放行上层服务器以及开放局域网用户来源:
    restrict default kod nomodify notrap nopeer noquery     <==拒绝 IPv4 的用户
    restrict -6 default kod nomodify notrap nopeer noquery  <==拒绝 IPv6 的用户
    restrict 220.130.158.71   <==放行 tock.stdtime.gov.tw 进入本 NTP 的服务器
    restrict 59.124.196.83    <==放行 tick.stdtime.gov.tw 进入本 NTP 的服务器
    restrict 59.124.196.84    <==放行 time.stdtime.gov.tw 进入本 NTP 的服务器
    restrict 127.0.0.1        <==底下两个是默认值,放行本机来源
    restrict -6 ::1
    restrict 192.168.100.0 mask 255.255.255.0 nomodify <==放行局域网用户来源,或者列出单独IP
    
    # 2. 设定主机来源,请先将原本的 [0|1|2].centos.pool.ntp.org 的设定批注掉:
    server 220.130.158.71 prefer  <==以这部主机为最优先的server
    server 59.124.196.83
    server 59.124.196.84
    
    # 3.默认的一个内部时钟数据,用在没有外部 NTP 服务器时,使用它为局域网用户提供服务:
    # server    127.127.1.0     # local clock
    # fudge     127.127.1.0 stratum 10
    
    # 4.预设时间差异分析档案与暂不用到的 keys 等,不需要更动它:
    driftfile /var/lib/ntp/drift
    keys      /etc/ntp/keys
     
    复制代码

     

    ===restrict选项格式===

    restrict [ 客户端IP ]  mask  [ IP掩码 ]  [参数]

    “客户端IP” 和 “IP掩码” 指定了对网络中哪些范围的计算机进行控制,如果使用default关键字,则表示对所有的计算机进行控制,参数指定了具体的限制内容,常见的参数如下:

    ◆ ignore:拒绝连接到NTP服务器

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

    ◆ noquery: 不提供客户端的时间查询

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

    ◆ notrust: 客户端除非通过认证,否则该客户端来源将被视为不信任子网 。

    ◆ nopeer: 提供时间服务,但不作为对等体。

    ◆ kod: 向不安全的访问者发送Kiss-Of-Death报文。

      

    ===server选项格式===

    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: 如果有多个server选项,具有该参数的服务器有限使用。

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

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

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

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

     

    ===查看网关方法===

    【命令1】route -n  

    【命令2】ip route show  

    【命令3】netstat -r

     

    ===层次(stratum)===

    stratum根据上层server的层次而设定(+1)。

    对于提供network time service provider的主机来说,stratum的设定要尽可能准确。

    而作为局域网的time service provider,通常将stratum设置为10

     

    0层的服务器采用的是原子钟、GPS钟等物理设备,stratum 1与stratum 0 是直接相连的,

    往后的stratum与上一层stratum通过网络相连,同一层的server也可以交互。

    ntpd对下层client来说是service server,对于上层server来说它是client。

    ntpd根据配置文件的参数决定是要为其他服务器提供时钟服务或者是从其他服务器同步时钟。所有的配置都在/etc/ntp.conf文件中。

    这里写图片描述

     

    ===注意防火墙屏蔽ntp端口===

    ntp服务器默认端口是123,如果防火墙是开启状态,在一些操作可能会出现错误,所以要记住关闭防火墙。

     

    ===同步硬件时钟===

    ntp服务,默认只会同步系统时间。

    如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件,

    在/etc/sysconfig/ntpd文件中,添加【SYNC_HWCLOCK=yes】这样,就可以让硬件时间与系统时间一起同步。

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

     

    ===ntpd、ntpdate的区别===

    下面是网上关于ntpd与ntpdate区别的相关资料。如下所示所示:

    使用之前得弄清楚一个问题,ntpd与ntpdate在更新时间时有什么区别。

    ntpd不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,

    并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。

    时钟的跃变,对于某些程序会导致很严重的问题。

     

    许多应用程序依赖连续的时钟——毕竟,这是一项常见的假定,即,取得的时间是线性的,

    一些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃。

    不幸的是,ntpdate调整时间的方式就是我们所说的”跃变“:在获得一个时间之后,ntpdate使用settimeofday(2)设置系统时间,

    这有几个非常明显的问题:

    【一】这样做不安全。

    ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。

    由于ntpdate采用的方式是跳变,跟随它的服务器无法知道是否发生了异常(时间不一样的时候,唯一的办法是以服务器为准)。

    【二】这样做不精确。

    一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。

    与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。

    【三】这样做不够优雅。

    由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错

    (例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的)。

    因而,唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。

    其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间。

    NTPD在和时间服务器的同步过程中,会把BIOS计时器的振荡频率偏差——或者说Local Clock的自然漂移(drift)——记录下来。

    这样即使网络有问题,本机仍然能维持一个相当精确的走时。

     

    ===国内常用NTP服务器地址及IP===

     

    复制代码
    210.72.145.44 (国家授时中心服务器IP地址)  
    133.100.11.8 日本 福冈大学  
    time-a.nist.gov 129.6.15.28 NIST, Gaithersburg, Maryland   
    time-b.nist.gov 129.6.15.29 NIST, Gaithersburg, Maryland   
    time-a.timefreq.bldrdoc.gov 132.163.4.101 NIST, Boulder, Colorado   
    time-b.timefreq.bldrdoc.gov 132.163.4.102 NIST, Boulder, Colorado   
    time-c.timefreq.bldrdoc.gov 132.163.4.103 NIST, Boulder, Colorado   
    utcnist.colorado.edu 128.138.140.44 University of Colorado, Boulder   
    time.nist.gov 192.43.244.18 NCAR, Boulder, Colorado   
    time-nw.nist.gov 131.107.1.10 Microsoft, Redmond, Washington   
    nist1.symmetricom.com 69.25.96.13 Symmetricom, San Jose, California   
    nist1-dc.glassey.com 216.200.93.8 Abovenet, Virginia   
    nist1-ny.glassey.com 208.184.49.9 Abovenet, New York City   
    nist1-sj.glassey.com 207.126.98.204 Abovenet, San Jose, California   
    nist1.aol-ca.truetime.com 207.200.81.113 TrueTime, AOL facility, Sunnyvale, California   
    nist1.aol-va.truetime.com 64.236.96.53 TrueTime, AOL facility, Virginia  
    ————————————————————————————————————  
    ntp.sjtu.edu.cn 202.120.2.101 (上海交通大学网络中心NTP服务器地址)  
    s1a.time.edu.cn 北京邮电大学  
    s1b.time.edu.cn 清华大学  
    s1c.time.edu.cn 北京大学  
    s1d.time.edu.cn 东南大学  
    s1e.time.edu.cn 清华大学  
    s2a.time.edu.cn 清华大学  
    s2b.time.edu.cn 清华大学  
    s2c.time.edu.cn 北京邮电大学  
    s2d.time.edu.cn 西南地区网络中心  
    s2e.time.edu.cn 西北地区网络中心  
    s2f.time.edu.cn 东北地区网络中心  
    s2g.time.edu.cn 华东南地区网络中心  
    s2h.time.edu.cn 四川大学网络管理中心  
    s2j.time.edu.cn 大连理工大学网络中心  
    s2k.time.edu.cn CERNET桂林主节点  
    s2m.time.edu.cn 北京大学
    复制代码

     

     

    --END--

     


    转载至http://www.cnblogs.com/quchunhui/p/7658853.html


    展开全文
  • Network Time Protocol(NTP,网络时间协议)用于同步它所有客户端时钟的服务NTP服务器将本地系统的时钟与一个公共的NTP服务器同步然后作为时间主机提供服务,使本地网络的所有客户端能同步时钟。  同步时钟最大的...

    Network Time Protocol(NTP,网络时间协议)用于同步它所有客户端时钟的服务。NTP服务器将本地系统的时钟与一个公共的NTP服务器同步然后作为时间主机提供服务,使本地网络的所有客户端能同步时钟。

        同步时钟最大的好处就是相关系统上日志文件中的数据,如果网络中使用中央日志主机集中管理日志,得到的日志结果就更能反映真实情况。在同步了时钟的网络中,集中式的性能监控、服务监控系统能实时的反应系统信息,系统管理员可以快速的检测和解决系统错误。

    1. 时间和时区

    如果有人问你说现在几点? 你看了看表回答他说晚上8点了. 这样回答看上去没有什么问题,但是如果问你的这个人在欧洲的话那么你的回答就会让他很疑惑,因为他那里还太阳当空呢.

    这里就有产生了一个如何定义时间的问题. 因为在地球环绕太阳旋转的24个小时中,世界各地日出日落的时间是不一样的.所以我们才有划分时区(timezone) 的必要,也就是把全球划分成24个不同的时区. 所以我们可以把时间的定义理解为一个时间的值加上所在地的时区(注意这个所在地可以精确到城市)

    地理课上我们都学过格林威治时间(GMT), 它也就是0时区时间. 但是我们在计算机中经常看到的是UTC. 它是Coordinated Universal Time的简写. 虽然可以认为UTC和GMT的值相等(误差相当之小),但是UTC已经被认定为是国际标准,所以我们都应该遵守标准只使用UTC

    那么假如现在中国当地的时间是晚上8点的话,我们可以有下面两种表示方式
    20:00 CST
    12:00 UTC

    这里的CST是Chinese Standard Time,也就是我们通常所说的北京时间了. 因为中国处在UTC+8时区,依次类推那么也就是12:00 UTC了.

    为什么要说这些呢(呵呵这里不是地理论坛吧...)

    第一,不管通过任何渠道我们想要同步系统的时间,通常提供方只会给出UTC+0的时间值而不会提供时区(因为它不知道你在哪里).所以当我们设置系统时间的时候,设置好时区是首先要做的工作
    第二,很多国家都有夏令时(我记得小时候中国也实行过一次),那就是在一年当中的某一天时钟拨快一小时(比如从UTC+8一下变成UTC+9了),那么同理到时候还要再拨慢回来.如果我们设置了正确的时区,当需要改变时间的时候系统就会自动替我们调整

    现在我们就来看一下如何在Linux下设置时区,也就是time zone

    2. 如何设置Linux Time Zone

    在Linux下glibc提供了我们事先编译好的许多timezone文件, 他们就放在/usr/share/zoneinfo这个目录下,这里基本涵盖了大部分的国家和城市
    代码:
    # ls -F /usr/share/zoneinfo/
    Africa/      Chile/   Factory    Iceland      Mexico/   posix/      Universal
    America/     CST6CDT  GB         Indian/      Mideast/  posixrules  US/
    Antarctica/  Cuba     GB-Eire    Iran         MST       PRC         UTC
    Arctic/      EET      GMT        iso3166.tab  MST7MDT   PST8PDT     WET
    Asia/        Egypt    GMT0       Israel       Navajo    right/      W-SU
    Atlantic/    Eire     GMT-0      Jamaica      NZ        ROC         zone.tab
    Australia/   EST      GMT+0      Japan        NZ-CHAT   ROK         Zulu
    Brazil/      EST5EDT  Greenwich  Kwajalein    Pacific/  Singapore
    Canada/      Etc/     Hongkong   Libya        Poland    Turkey
    CET          Europe/  HST        MET          Portugal  UCT在这里面我们就可以找到自己所在城市的time zone文件. 那么如果我们想查看对于每个time zone当前的时间我们可以用zdump命令
    代码:
    # zdump Hongkong
    Hongkong  Fri Jul  6 06:13:57 2007 HKT那么我们又怎么来告诉系统我们所在time zone是哪个呢? 方法有很多,这里举出两种

    第一个就是修改/etc/localtime这个文件,这个文件定义了我么所在的local time zone.
    我们可以在/usr/share/zoneinfo下找到我们的time zone文件然后拷贝去到/etc/localtimezone(或者做个symbolic link)

    假设我们现在的time zone是BST(也就是英国的夏令时间,UTC+1)
    代码:
    # date
    Thu Jul  5 23:33:40 BST 2007我们想把time zone换成上海所在的时区就可以这么做
    代码:
    # ln -sf /usr/share/zoneinfo/posix/Asia/Shanghai /etc/localtime
    # date
    Fri Jul  6 06:35:52 CST 2007
    这样时区就改过来了(注意时间也做了相应的调整)

    第二种方法也就设置TZ环境变量的值. 许多程序和命令都会用到这个变量的值. TZ的值可以有多种格式,最简单的设置方法就是使用tzselect命令
    代码:
    # tzselect
    ...
    TZ='America/Los_Angeles';export TZtzselect
    会让你选择所在的国家和城市(我省略了这些步骤),最后输出相应的TZ变量的值.那么如果你设置了TZ的值之后时区就又会发生变化

    代码:
    # date
    Thu Jul  5 15:48:11 PDT 2007
    通过这两个例子我们也可以发现TZ变量的值会override /etc/localtime. 也就是说当TZ变量没有定义的时候系统才使用/etc/localtime来确定time zone. 所以你想永久修改time zone的话那么可以把TZ变量的设置写入/etc/profile里

    好了现在我们知道怎么设置时区了,下面我们就来看看如何设置Linux的时间吧

     

    3. Real Time Clock(RTC) and System Clock

    说道设置时间这里还要明确另外一个概念就是在一台计算机上我们有两个时钟:一个称之为硬件时间时钟(RTC),还有一个称之为系统时钟(System Clock)

    硬件时钟是指嵌在主板上的特殊的电路, 它的存在就是平时我们关机之后还可以计算时间的原因
    系统时钟就是操作系统的kernel所用来计算时间的时钟. 它从1970年1月1日00:00:00 UTC时间到目前为止秒数总和的值 在Linux下系统时间在开机的时候会和硬件时间同步(synchronization),之后也就各自独立运行了

    那么既然两个时钟独自运行,那么时间久了必然就会产生误差了,下面我们来看一个例子
    代码:
    # date
    Fri Jul  6 00:27:13 BST 2007
    # hwclock --show
    Fri 06 Jul 2007 12:27:17 AM BST  -0.968931 seconds 
    通过hwclock --show 命令我们可以查看机器上的硬件时间(always in local time zone), 我们可以看到它和系统时间还是有一定的误差的, 那么我们就需要把他们同步

    如果我们想要把硬件时间设置成系统时间我们可以运行以下命令
    代码:
    # hwclock --hctosys  
    反之,我们也可以把系统时间设置成硬件时间
    代码:
    # hwclock --systohc  
    那么如果想设置硬件时间我们可以开机的时候在BIOS里设定.也可以用hwclock命令
    代码:
    # hwclock --set --date="mm/dd/yy hh:mm:ss"  
    如果想要修改系统时间那么用date命令就最简单了
    代码:
    # date -s "dd/mm/yyyy hh:mm:ss"  

    现在我们知道了如何设置系统和硬件的时间. 但问题是如果这两个时间都不准确了怎么办? 那么我们就需要在互联网上找到一个可以提供我们准确时间的服务器然后通过一种协议来同步我们的系统时间,那么这个协议就是NTP了. 注意接下去我们所要说的同步就都是指系统时间和网络服务器之间的同步了

    说明:Linux 时钟类型在分类和设置上却和Windows大相径庭。和 Windows不同的是,Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种。系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟,这个时钟可以在BIOS的“Standard BIOS Feture”项中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作

    4. 设置NTP Server前的准备

    其实这个标题应该改为设置"NTP Relay Server"前的准备更加合适. 因为不论我们的计算机配置多好运行时间久了都会产生误差,所以不足以给互联网上的其他服务器做NTP Server. 真正能够精确地测算时间的还是原子钟. 但由于原子钟十分的昂贵,只有少部分组织拥有, 他们连接到计算机之后就成了一台真正的NTP Server. 而我们所要做的就是连接到这些服务器上同步我们系统的时间,然后把我们自己的服务器做成NTP Relay Server再给互联网或者是局域网内的用户提供同步服务

    好了,前面讲了一大堆理论,现在我们来动手实践一下吧. 架设一个NTP Relay Server其实非常简单,

     软件源码下载安装
       一般linux的安装包中都包含有ntp服务的包,安装即可。若无,可以下载。
        #/tmp/wget http://ntp.buptnet.edu.cn/ntp_chinese/down/server/ntp-4.2.0.tar.gz 
        # tar -zxvf ntp-4.2.0.tar.gz –C /usr/local/src;cd /usr/local/src/ntp-4.2.0
    开始设定参数、编译与安装:

        #./configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks
        make clean ; make
        make check 
        make install

        安装完成。

    RPM包安装
    是否已经安装了NTP包可以用这条命令来确定:

    [root@NTPser ~]# rpm -qa | grep ntp
    ntp-4.2.2p1-9.el5_4.1
    chkfontpath-1.10.1-1.1
    出现以上代码则表示已安装NTP包,否则用下面方法安装:
    代码:
    # rpm -ivh ntp-4.2.2p1-5.el5.rpm
     
    那么第一步我们就要找到在互联网上给我们提供同步服务的NTP Server

    http://www.pool.ntp.org是NTP的官方网站,在这上面我们可以找到离我们城市最近的NTP Server. NTP建议我们为了保障时间的准确性,最少找两个个NTP Server
    那么比如在英国的话就可以选择下面两个服务器
    0.uk.pool.ntp.org
    1.uk.pool.ntp.org

    它的一般格式都是number.country.pool.ntp.org

    第二步要做的就是在打开NTP服务器之前先和这些服务器做一个同步,使得我们机器的时间尽量接近标准时间. 
    这里我们可以用ntpdate命令手动更新时间
    代码:
    # ntpdate 0.uk.pool.ntp.org
     6 Jul 01:21:49 ntpdate[4528]: step time server 213.222.193.35 offset -38908.575181 sec
    # ntpdate 0.pool.ntp.org
     6 Jul 01:21:56 ntpdate[4530]: adjust time server 213.222.193.35 offset -0.000065 sec
    假如你的时间差的很离谱的话第一次会看到调整的幅度比较大,所以保险起见可以运行两次. 那么为什么在打开NTP服务之前先要手动运行同步呢?
    1. 因为根据NTP的设置,如果你的系统时间比正确时间要快的话那么NTP是不会帮你调整的,所以要么你把时间设置回去,要么先做一个手动同步
    2. 当你的时间设置和NTP服务器的时间相差很大的时候,NTP会花上较长一段时间进行调整.所以手动同步可以减少这段时间

    5. 配置和运行NTP Server

    现在我们就来创建NTP的配置文件了, 它就是/etc/ntp.conf. 我们只需要加入上面的NTP Server和一个driftfile就可以了

        编辑配置文件/etc/ntp.conf   

    restrict default kod nomodify notrap nopeer noquery
    restrict -6 default kod nomodify notrap nopeer noquery

    restrict 127.0.0.1
    restrict -6 ::1

    restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

    server 192.168.146.225
    server 0.centos.pool.ntp.org
    server 1.centos.pool.ntp.org
    server 2.centos.pool.ntp.org

    server  127.127.1.0     # local clock
    fudge   127.127.1.0 stratum 10 这行是时间服务器的层次。设为0则为顶级,如果要向别的NTP服务器更新时间,请不要把它设为0

    driftfile /var/lib/ntp/ntp.drift  非常的简单. 接下来我们就启动NTP Server,并且设置其在开机后自动运行

       配置文件说明如下:

    关于权限设定部分
        权限的设定主要以 restrict 这个参数来设定,格式如下:
        restrict IP地址 mask 子网掩码 参数
        其中 IP 可以是IP地址,也可以是 default ,default 就是指所有的IP
    参数有以下几个:
        ignore :关闭所有的 NTP 联机服务
        nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
        notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网
        noquery :不提供客户端的时间查询
        注意:如果参数没有设定,那就表示该 IP (或子网)没有任何限制。

        用server这个参数设定上级时间服务器,格式如下:
        server IP地址或域名 [prefer]
        IP地址或域名就是我们指定的上级时间服务器,如果 Server 参数最后加上 prefer,表示我们的 NTP 服务器主要以该部主机时间进行校准。

        driftfile格式如下:
        driftfile 文件名
        在与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内。
        注意: driftfile 后面接的文件需要使用完整的路径文件名,不能是链接文件,并且文件的权限需要设定成 ntpd守护进程可以写入。


        第一行restrict、default定义默认访问规则,nomodify禁止远程主机修改本地服务器配置,notrap拒绝特殊的ntpdq捕获消息,noquery拒绝btodq/ntpdc查询(这里的查询是服务器本身状态查询)。

        restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
        这句是手动增加的,意思是从192.168.1.1-192.168.1.254的服务器都可以使用我们的NTP服务器来同步时间。

        server 192.168.146.225  #server 210.72.145.44     #这是中国国家授时中心的IP
        这句也是手动增加的,指明局域网中作为NTP服务器的IP;

      配置文件的最后两行作用是当服务器与公用的时间服务器失去联系时以本地时间为客户端提供时间服务。

      端口 ntp使用udp协议,记得开放其123端口。

     NTP服务的端口是123,使用的是udp协议,所以NTP服务器的防火墙必须对外开放udp 123这个端口。方法如下,使用以下规则:
        #/sbin/iptables -A INPUT -p UDP -i eth0 -s 192.168.0.0/24  --dport 123 -j ACCEPT
        注意:Ntpd启动的时候通常需要一段时间进行时间同步,所以在ntpd刚刚启动的时候还不能正常提供时钟服务,最长大概有5分钟吧,如果超过了这个时间请检查一下您的配置文件。

      启动ntpd  为了使NTP服务可以在系统引导的时候自动启动,执行:

        #chkconfig --level 35 ntpd on
        启动ntpd:
      service ntpd start

    ntp.conf配置文件实例

    1)        以互联网的时间服务器为时间服务器的时钟
          设置要求:以time.nist.gov 为时间服务器,在ntp.conf中增加以下内容:
          restrict default ignore # 关闭所有的 NTP 要求封包
          restrict 192.168.1.0 mask 255.255.255.0 notrap nomodify
          server time.nist.gov  #设置时间服务器
          server 127.127.1.1              #开启内部递归网络接口 lo 
          fudge  127.127.1.1 stratum 10 refid NIST   # LCL 不同步
          driftfile /etc/ntp.drift        
          logfile   /var/log/ntp.log     
          Broadcastdelay  0.008 #广播延迟时间#

    2)        以内部ntp服务器为数据服务器时钟

      设置要求:不对 Internet 提供服务,仅对内部子网 192.168.0.0/24 提供服务,内部子网的客户端不能修改NTP服务器的时间参数。

     在ntp.conf中增加以下内容:

          restrict default ignore # 关闭所有的 NTP 要求封包 
          restrict 127.0.0.1   # 开启内部递归网络接口 lo
          restrict 192.168.0.0 mask 255.255.255.0 nomodify #在内部子网里面的客户端可以 进行网络校时,但不能修改NTP服务器的时间参数。
          server 198.123.30.132   #198.123.30.132作为上级时间服务器参考
          restrict 198.123.30.132 #开放server 访问我们ntp服务的权限
          driftfile /var/lib/ntp/drift 
          broadcastdelay  0.008 #广播延迟时间#


    6. 查看NTP服务的运行状况

    现在我们已经启动了NTP的服务,但是我们的系统时间到底和服务器同步了没有呢? 为此NTP提供了一个很好的查看工具: ntpq (NTP query)

    我建议大家在打开NTP服务器后就可以运行ntpq命令来监测服务器的运行.这里我们可以使用watch命令来查看一段时间内服务器各项数值的变化
    代码:
    # watch ntpq -p
    Every 2.0s: ntpq -p                                  Sat Jul  7 00:41:45 2007

         remote           refid      st t when poll reach   delay   offset  jitter
    ===========================================================
    +193.60.199.75   193.62.22.98     2 u   52   64  377    8.578   10.203 289.032
    *mozart.musicbox 192.5.41.41      2 u   54   64  377   19.301  -60.218 292.411

     

    现在我就来解释一下其中的含义

      remote: 它指的就是本地机器所连接的远程NTP服务器
          refid: 它指的是给远程服务器(e.g. 193.60.199.75)提供时间同步的服务器
              st: 远程服务器的层级别(stratum). 由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端. 所以服务器从高到低级别可以设定为1-16. 为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的.
                t: 这个.....我也不知道啥意思^_^
        when: 我个人把它理解为一个计时器用来告诉我们还有多久本地机器就需要和远程服务器进行一次时间同步
           poll: 本地机和远程服务器多少时间进行一次同步(单位为秒). 在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调整到正确的时间范围.之后poll值会逐渐增大,同步的频率也就会相应减小
        reach: 这是一个八进制值,用来测试能否和服务器连接.每成功连接一次它的值就会增加
        delay: 从本地机发送同步要求到服务器的round trip time
        offset: 这是个最关键的值, 它告诉了我们本地机和服务器之间的时间差别. offset越接近于0,我们就和服务器的时间越接近
         jitter: 这是一个用来做统计的值. 它统计了在特定个连续的连接数里offset的分布情况. 简单地说这个数值的绝对值越小我们和服务器的时间就越精确

    那么大家细心的话就会发现两个问题: 第一我们连接的是0.uk.pool.ntp.org为什么和remote server不一样? 第二那个最前面的+和*都是什么意思呢?

    第一个问题不难理解,因为NTP提供给我们的是一个cluster server所以每次连接的得到的服务器都有可能是不一样.同样这也告诉我们了在指定NTP Server的时候应该使用hostname而不是IP

    第二个问题和第一个相关,既然有这么多的服务器就是为了在发生问题的时候其他的服务器还可以正常地给我们提供服务.那么如何知道这些服务器的状态呢? 这就是第一个记号会告诉我们的信息

    * 它告诉我们远端的服务器已经被确认为我们的主NTP Server,我们系统的时间将由这台机器所提供
    + 它将作为辅助的NTP Server和带有*号的服务器一起为我们提供同步服务. 当*号服务器不可用时它就可以接管
    - 远程服务器被clustering algorithm认为是不合格的NTP Server
    x 远程服务器不可用

     了解这些之后我们就可以实时监测我们系统的时间同步状况了

    通常我们使用命令查看123端口和ntp系统进程判断ntp服务器是否工作正常。
        命令如下:netstat -unl | grep 123 #查看123端口

     注:一个可以证明同步有问题的证据是:所有远程服务器的jitter值是4000并且delay和reach的值是0。

     7. NTP安全设置

    运行一个NTP Server不需要占用很多的系统资源,所以也不用专门配置独立的服务器,就可以给许多client提供时间同步服务, 但是一些基本的安全设置还是很有必要的
    那么这里一个很简单的思路就是第一我们只允许局域网内一部分的用户连接到我们的服务器. 第二个就是这些client不能修改我们服务器上的时间

    关于权限设定部分 
    权限的设定主要以 restrict 这个参数来设定,主要的语法为: 
    restrict IP地址 mask 子网掩码 参数 
    其中 IP 可以是IP地址,也可以是 default ,default 就是指所有的IP 
    参数有以下几个: 
    ignore :关闭所有的 NTP 联机服务 
    nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。 
    notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网 
    noquery :不提供客户端的时间查询 
    注意:如果参数没有设定,那就表示该 IP (或子网)没有任何限制!

    在/etc/ntp.conf文件中我们可以用restrict关键字来配置上面的要求

    首先我们对于默认的client拒绝所有的操作
    代码:
    restrict default kod nomodify notrap nopeer noquery

    然后允许本机地址一切的操作
    代码:
    restrict 127.0.0.1

    最后我们允许局域网内所有client连接到这台服务器同步时间.但是拒绝让他们修改服务器上的时间
    代码:
    restrict 192.168.1.0 mask 255.255.255.0 nomodify

    把这三条加入到/etc/ntp.conf中就完成了我们的简单配置. NTP还可以用key来做authentication,这里就不详细介绍

    8. NTP client的设置

    做到这里我们已经有了一台自己的Relay Server.如果我们想让局域网内的其他client都进行时间同步的话那么我们就都应该照样再搭建一台Relay Server,然后把所有的client都指向这两台服务器(注意不要把所有的client都指向Internet上的服务器). 只要在client的/etc/ntp.conf加上这你自己的服务器就可以了,代码:
    server ntp1.leonard.com
    server ntp2.leonard.com

    LINUX客户端使用
    ntpdate 172.30.218.114 
    来向NTP服务器同步自己的时间
    其它LINUX如果仅作为只客户端的话,则不能启动ntpd服务!否则无法运行ntpdata 服务器地址 来同步时间
    之后可以使用cron或修改crontab文件定期向NTP服务器更新时间,并用
    # hwclock --systohc  
    将系统时间设置为硬件时间

    另可以使用crond来定时同步时间:

        以root身份运行周期性任务:
      [root@supersun root]# crontab -e

      添加以下内容,每15分钟更新一下时间:
      15 * * * * ntpdate 服务器IP

        此处的ntpdate命令包含在ntp软件包中,记得确认系统中是否已安装。


        

        

    NTP时间服务器安装部署文档

     

     

     

     

    系统环境:CentOS5.4

    文档版本:

    1.0.1

    更新时间:

    2011-01-07

     

     

     

     

     

     

     

     

     

     

     

      

    NTP时间服务器


    安装部署文档

    1       文档更新记录

    2       文档说明

    3       配置时间同步

    3.1        服务端的配置

    3.1.1         启动ntpd服务:

    3.1.2         检查时间服务器的同步状态:

    3.1.3         查看时间服务器的监控端口:

    4       客户端配置:

    4.1        执行同步命令

    4.2        添加计划任务

    5       注意事项

    6       交付

     

    1. 文档更新记录

    时间

    修改人

    版本号

    修改说明

    2011.01.04

    kevin

    1.0.0

    建立文档

    2011.01.07

    kevin

    1.0.1

    更新目录,规范文档格式

     

     

     

     

     

    2. 文档说明

     

    本文档规范NTP时间服务器安装流程及安装内容,供运维人员在部署新的运营环境时参考使用。

     

    3. 配置时间同步

    所有的节点的时间必须同步。可以通过NTP服务来实现。如果网络中已经有时间服务器,那么所有节点可以都使用这个时间服务器。否则可以配置内网中一台服务器作为时间服务器。NTP占用的资源非常的少,因此可以在内网上建立一个NTP服务器。

     

    3.1 服务端的配置

    g-ntpd-01作为NTP服务器

    [root@g-ntpd-01 ~]# mv /etc/ntp.conf    /etc/ntp.conf_bak

    [root@g-ntpd-01 ~]# vi /etc/ntp.conf

    添加以下内容:

    server 0.centos.pool.ntp.org

    server 1.centos.pool.ntp.org

    server 2.centos.pool.ntp.org

    server 127.127.1.0  #local clock

    fudge  127.127.1.0  stratum 10

    driftfile /var/lib/ntp/drift

    broadcastdelay  0.008

     

     

    [root@g-ntpd-01 ~]# ps -ef|grep ntp

    root     22113  4333  0 18:43 pts/2    00:00:00 grep ntp

     

    3.1.1 启动ntpd服务

    [root@g-ntpd-01 ~]# /etc/init.d/ntpd start

    Starting ntpd:                                             [  OK  ]

    [root@g-ntpd-01 ~]# ps -ef|grep ntp

    ntp      22127     1  0 18:44 ?        00:00:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g

    root     22130  4333  0 18:44 pts/2    00:00:00 grep ntp


    3.1.2 检查时间服务器的同步状态

    [root@g-ntpd-01 ~]# ntpq -p

         remote           refid      st t when poll reach   delay   offset  jitter

    ==============================================================================

    +www.chinaepg.ne 218.75.4.130     3 u   28   64  377    5.396  -467570   3.711

    *61.153.197.226  66.220.9.122     2 u   31   64  377  138.291  -467570   1.439

    +221.7.129.79    192.43.244.18    2 u   20   64  377   73.794  -467570   3.176

     LOCAL(0)        .LOCL.          10 l   25   64  377    0.000    0.000   0.001

     

     

     3.1.3 检查时间服务器的监控端口

    [root@g-ntpd-01 ~]# netstat -atnpu|grep ntp

    udp 0 0 192.168.1.187:123       0.0.0.0:*                               3136/ntpd          

    udp 0 0 127.0.0.1:123         0.0.0.0:*                               3136/ntpd          

    udp 0   0 0.0.0.0:123      0.0.0.0:*                                3136/ntpd          

    udp 0 0 fe80::20c:29ff:fe76:123  :::*                                  3136/ntpd          

    udp  0      0 ::1:123          :::*                                3136/ntpd          

    udp  0      0 :::123         :::*                                    3136/ntpd

     

    4. 客户端配置

    4.1执行同步命令

    在客户端台机器上运行如下的命令,与ntpd服务端进行时间同步。

    [root@g-ntpd-client-01 ~]# /usr/sbin/ntpdate 192.168.1.187

    29 Dec 17:30:03 ntpdate[2959]: adjust time server 192.168.1.187 offset 0.000061 sec

     

     4.2 添加计划任务

    若不能出现上面的同步,可能退出root用户再登陆,或者切换一下用户,也有可能不能马上同步,需要一定的时间(一般时间为服务端ntpd服务启动五分钟后即可)

    可以将这个命令作为一个周期性运行的命令。

    [root@g-ntpd-client-01 ~]# crontab -l

    */5 * * * *  /usr/sbin/ntpdate  192.168.1.187  && /usr/sbin/hwclock --systohc

     

     5. 注意事项

    注意:将客户端和服务器端的这个参数修改成yes。同步成功以后,自动的更新BIOS.

     

    [root@g-ntpd-client-01 ~]# vi /etc/sysconfig/ntpd

     

    # Drop root to id 'ntp:ntp' by default.

    OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid"

     

    # Set to 'yes' to sync hw clock after successful ntpdate

    #SYNC_HWCLOCK=no

    SYNC_HWCLOCK=yes

     

    # Additional options for ntpdate

    NTPDATE_OPTIONS=""

     

    到此,时间服务器的服务端及客户端的配置就已经成功了。


     6. 交付

    测试没有问题后,即可交付,进行生产环境的安装及部署。


        2. 桌面环境下配置方法

        可以使用图形化的时钟设置工具,如RHEL 4.0中的日期与时间设置工具,也可以在虚拟终端中键“redhat-config-time”命令,或者选择“K选单/系统设置/日期与时间”来启动日期时间设置工具。使用该工具不必考虑系统时间和硬件时间,只需从该对话框中设置日期时间,可同时设置、修改系统时钟和硬件时钟。如图3 。
     

     # 问题解决

     ntpdate 210.72.145.44

    13 Feb 23:55:58 ntpdate[1788]: the NTP socket is in use, exiting

     

    cron 作业中运行 ntpdate,以便大约每隔一小时就设置一次本地时间。最近,我每次运行该命令时都会收到下列错误消息。

    13 Feb 23:55:58 ntpdate[1788]: the NTP socket is in use, exiting

    什么正在使用 Socket? 是不是太忙了?

    配置信息
    解决方法
    您收到此错误消息的原因是由于 xntpd 已经绑定到了该 Socket。运行 ntpdate 时,它会首先进行广播,然后侦听端口 123。如果 xntpd 正在运行,而有一个进程已经在侦听该端口了,则会使 ntpdate 无法在上面运行。运行下列命令,即可找出 xntpd 的 PID

    ps -ef|grep xntpd

    可惜没有找到pid。

    使用lsof –i:123

    [root@10.10.10.74 /data]$ lsof -i:123
    COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
    ntpd    5003  ntp   16u  IPv4  10940       UDP *:ntp
    ntpd    5003  ntp   17u  IPv6  10941       UDP *:ntp
    ntpd    5003  ntp   18u  IPv6  10942       UDP localhost6.localdomain6:ntp
    ntpd    5003  ntp   19u  IPv4  10943       UDP localhost:ntp
    ntpd    5003  ntp   20u  IPv4  10944       UDP 220.181.128.182:ntp
    ntpd    5003  ntp   21u  IPv4  10945       UDP localhost:ntp
    [root@10.10.10.74 /data]$ kill -9 5003
    [root@10.10.10.74 /data]$ lsof -i:123
    [root@10.10.10.74 /data]$ ntpdate 210.72.145.44
    14 Feb 00:09:44 ntpdate[4409]: step time server 210.72.145.44 offset 355.689071 sec

    清除 (Kill) 该进程,然后尝试再次与 ntp 服务器进行同步。此时您不应该收到此错误消息。

    请注意,如果您尝试与之同步的服务器没有运行 xntpd,则会收到下列错误消息:

    ntpdate[12573]: no server suitable for synchronization found

    出现这种情况的原因是,如果您想使用另一个服务器的时间,该服务器必须已经进行了自身同步。






    展开全文
  • 目录 date命令 hwclock命令 ...NTP服务的部署 服务端 客户端 date命令 date 命令的作用是查看和设置Linux中的系统日期时间 date 显示当前系统的时间 date +%参数 以指定格式控制输出日期和时间...
  • 1. 首先安装ntp服务(ubuntu 16.02)在linux的root用户下执行以下命令yum install ntp –y(如果是ubuntu系统则执行 apt install yum ntp) 2. 修改ntp配置文件(server)我们需要在linux集群中找到一台作为...
  • linux NTP服务器搭建

    2017-02-11 14:53:15
    linux NTP服务器搭建
  • Linux NTP 服务详解

    2013-10-30 07:27:22
    Linux NTP 服务详解 分类: LINUX 1、NTP 是什么? 计算机主机主要是以 BIOS 内部的时间为主要的时间依据,而偏偏这个时间可能因为 BIOS 内部芯片本身的问题,而导致 BIOS 时间与标准时间 (UTC) 有一点点...
  • 公司使用树莓派当作开发板,使用ntp服务作为时间同步工具,之前一直运行正常,今天突然不能正常使用,查看状态如下: 绿色字体可以看出服务启动异常,正常应该是acitve(running) 解决方法 查看 /lib 目录的权限,...
  • 配置NTP服务3. 启动NTP服务器,并实现clock时间与system时间同步客户端与ntp服务器时间同步部署linux 客户端与ntp服务器时间同步Windows客户端与ntp服务器时间同步ntpd、ntpdate的区别可能的报错 Linux NTP时间同步...
  • Linux NTP服务器

    2013-11-10 14:22:07
    计算机内部所记录的时钟是记载于BIOS (CMOS) 内的, 但如果计算机上面的电池没电了或者某些特殊因素导致BIOS数据被清除,此时计算机的时间就会不准,而NTP这个服务可以 让你的主机随时保持正确的时间信息 关于...
  • Linux NTP服务器搭建

    2019-11-24 21:49:44
    一、先在服务器端安装ntp安装包 命令:yum install ntp ntpdate -y 二、NTP的配置文件是/etc/ntp.conf,以下为相关参数的涵义: 1、driftfile /var/lib/ntp/drift #driftfile 记录时间差异,并存档在后面的绝对路径...
  • Linux NTP服务器配置

    2017-08-21 17:04:02
    配置时间服务器 1、安装ntp yum install -y ntp
  • Network Time Protocol (NTP) 也是RHCE新增的考试要求. 学习的时候也顺便复习了一下如何设置Linux的时间,现在拿出来和大家分享 设置NTP服务器不难但是NTP本身是一个很复杂的协议. 这里只是简要地介绍一下实践方法...
  • linux ntp 同步windows 时间服务器 ------------------------------------------------------------------------------------ 原由:客户想安装rac的linux机器的时间能够同步使用应用服务的外部windows机器。 ntp...
  • 本文主要讲述了对于NTP服务器和客户端如何进行配置,本文主要以LINUX和CISCO交换机为例,详细的介绍了配置过程和操作步骤,下面文章将会使你受益匪浅。 出于网管的目的,我们架设了syslog,来监控交换机日志,同时也...
  • 文章目录Linux中怎么搭建NTP服务器:二、NTP服务的命令、配置:1、有关ntp的命令:2、有关ntpq -p的注解:3、/etc/ntp.conf ntp的配置文件介绍:三、搭建NTP服务Linux中怎么搭建NTP服务器: 说明:本次实验采用两...
  • Network Time Protocol (NTP) 也是RHCE新增的考试要求. 学习的时候也顺便复习了一下如何设置Linux的时间,现在拿出来和大家分享 设置NTP服务器不难但是NTP本身是一个很复杂的协议. 这里只是简要地介绍一下实践方法...
  • Linux设置ntp服务

    2016-02-01 10:28:42
    编辑ntp服务器的配置文件/etc/ntp.conf...重启ntp服务: service ntp restart(Ubuntu) service ntpd restart(CentOS) ntp服务器的防火墙放行ntp端口: iptables -I INPUT -p udp --dport 123 -j ACCEPT 启动后,
  • 原文链接:...本文以Centos 6.5为例介绍如何修改Linux实例时区,以及开启和配置Linux NTP服务,保证实例本地时间精确同步。 ...
1 2 3 4 5 ... 20
收藏数 31,545
精华内容 12,618
关键字:

linuxntp服务