`

NTP时间服务器实现linux时间同步

阅读更多
在linux下,我们可以通过自带的NTP(Network Time Protocol)协议通过网络使自己的系统保持精确的时间。可用的公共时间服务器列表可以从下面的地址获取: http://ntp.isc.org/bin/view/Servers/NTPPoolServers 什么是NTP NTP是用来使系统和一个精确的时间源保持时间同步的协议。建议大家在自己管理的网络中建立至少一台时间服务器来同步本地时间,这样可以使得在不同的系统上处理和收集日志和管理更加容易。 同样,也有很多免费的NTP客户端可供Windows使用,你可以用它们来同步你windows的系统时间。 下载和安装 本文介绍如何在AS4上安装时间服务器(本文也同样适用于redhat和fedora core的其他版本),如果想获得NTP的最新版本,你可以下载tar包自己编译,这里只介绍RPM方式安装的NTP服务软件。 AS4带的NTP版本是4.2.0,你可以用下面的命令查看是否已经安装了这个软件包: # rpm -qa|grep ntp ntp-4.2.0.a.20040617-4.2 如果发现没有安装,请从光盘上安装这个软件。执行下面命令安装NTP的RPM包: # rpm -ivh ntp-4.2.0.a.20040617-4.2.i386.rpm /etc/ntp.conf这是NTP的主要配置文件,里面设置了你用来同步时间的时间服务器的域名或者IP地址,下面是到互联网同步时间的最基本的配置: 首先定义我们喜欢的时间服务器: server pool.ntp.org 接下来,我们设置上面两台服务器的访问权限,在这个例子中我们不允许它们修改或者查询我们配置在Linux上的NTP服务器 restrict default nomodify notrap noquery (这个默认在配置文件中就存在) 接下来设置允许访问我们时间服务器的客户机地址,通常这些服务器都应该位于我们自己局域网内。请注意,配置中noquery已经去掉了: restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap 在上例中,掩码地址扩展为255,因此从192.168.0.1-192.168.0.254的服务器都可以使用我们的NTP服务器来同步时间。 最后,也是最重要的是默认的限制配置要从你配置文件中删除,否则它将覆盖你所有的配置选项,你将发现如果不删除该配置,你的时间服务器将只能和自己通讯。如果ntp.conf中有以下一行,请将它注释(AS4附带的ntp默认没有): # restrict default ignore 保存你的配置文件,然后对每个你在ntp.conf里配置的时间服务器执行2编查询命令: # ntpdate pool.ntp.org 27 Jun 10:12:01 ntpdate[25475]: adjust time server pool.ntp.org offset -0.127154 sec # ntpdate ntp.research.gov 27 Jun 10:12:06 ntpdate[25478]: adjust time server pool.ntp.org offset 0.010008 sec 使NTP进程自启动 为了使NTP服务可以在系统引导的时候自动启动,执行: # chkconfig ntpd on 启动/关闭/重启NTP的命令是: # /etc/init.d/ntpd start # /etc/init.d/ntpd stop # /etc/init.d/ntpd restart 默认情况下,我们配置的NTP服务器不会去时间源那里同步时间,所以必须修改/etc/ntp/step-tickers文件,加入我们的时间源 0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 这样每次通过/etc/init.d/ntpd 来启动服务的时候就会自动更新时间了 切记每次修改了配置文件后都需要重新启动服务来使配置生效。可以使用下面的命令来检查NTP 服务是否启动,你应该可以得到一个进程ID号: # pgrep ntpd 检查时间服务器是否正确同步 使用下面的命令检查时间服务器同步的状态: # ntpq -p 输出: remote refid st t when poll reach delay offset jitter ============================================================================== -jj.cs.umb.edu gandalf.sigmaso 3 u 95 1024 377 31.681 -18.549 1.572 milo.mcs.anl.go ntp0.mcs.anl.go 2 u 818 1024 125 41.993 -15.264 1.392 -mailer1.psc.edu ntp1.usno.navy. 2 u 972 1024 377 38.206 19.589 28.028 -dr-zaius.cs.wis ben.cs.wisc.edu 2 u 502 1024 357 55.098 3.979 0.333 +taylor.cs.wisc. ben.cs.wisc.edu 2 u 454 1024 347 54.127 3.379 0.047 -ntp0.cis.strath harris.cc.strat 3 u 507 1024 377 115.274 -5.025 1.642 *clock.via.net .GPS. 1 u 426 1024 377 107.424 -3.018 2.534 ntp1.conectiv.c 0.0.0.0 16 u - 1024 0 0.000 0.000 4000.00 一个可以证明同步问题的证据是所有远程服务器的jitter值是4000并且delay和reach的值是0。 remote refid st t when poll reach delay offset jitter ============================================================================== LOCAL(0) LOCAL(0) 10 l - 64 7 0.000 0.000 0.008 ntp-cup.externa 0.0.0.0 16 u - 64 0 0.000 0.000 4000.00 snvl-smtp1.trim 0.0.0.0 16 u - 64 0 0.000 0.000 4000.00 nist1.aol-ca.tr 0.0.0.0 16 u - 64 0 0.000 0.000 4000.00 可能的原因有: 配置文件中的restrict default ignore没有被注释 有防火墙阻断了与server之间的通讯 此外每次重启NTP服务器之后大约要3-5分钟客户端才能与server建立正常的通讯连接,否则你执行ntpdate ip的时候将返回: 27 Jun 10:20:17 ntpdate[21920]: no server suitable for synchronization found 配置Linux客户端 在linux客户端上执行ntpdate ntp_server_ip 就可以根据时间服务器统一局域网的时间了,将上面的命令放到cron里每天早上3点定期执行,crontab –e 然后输入 0 3 * * * /usr/sbin/ntpdate ntp_server_ip 中国大概能用的NTP时间服务器地址本上都能使 server 133.100.11.8 prefer server 210.72.145.44 server 203.117.180.36 ----windows我就用这个 server 131.107.1.10 server time.asia.apple.com server 64.236.96.53 server 130.149.17.21 server 66.92.68.246 server www.freebsd.org server 18.145.0.30 server clock.via.net server 137.92.140.80 server 133.100.9.2 server 128.118.46.3 server ntp.nasa.gov server 129.7.1.66 server ntp-sop.inria.frserver 210.72.145.44(国家授时中心服务器IP地址) ntpdate 131.107.1.10 ntpdate -s time.asia.apple.com ///////////////////////////////////////////////////////////////////// 当用ntpdate -d 来查询时会发现导致 no server suitable for synchronization found 的错误的信息有以下2个: 错误1.Server dropped: Strata too high 在ntp客户端运行ntpdate serverIP,出现no server suitable for synchronization found的错误。 在ntp客户端用ntpdate –d serverIP查看,发现有“Server dropped: strata too high”的错误,并且显示“stratum 16”。而正常情况下stratum这个值得范围是“0~15”。 这是因为NTP server还没有和其自身或者它的server同步上。 以下的定义是让NTP Server和其自身保持同步,如果在/ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端。 server 127.127.1.0 fudge 127.127.1.0 stratum 8 在ntp server上重新启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生no server suitable for synchronization found的错误。 那么如何知道何时ntp server完成了和自身同步的过程呢? 在ntp server上使用命令: # watch ntpq -p 出现画面: Every 2.0s: ntpq -p Thu Jul 10 02:28:32 2008 remote refid st t when poll reach delay offset jitter ============================================================================== 192.168.30.22 LOCAL(0) 8 u 22 64 1 2.113 179133. 0.001 LOCAL(0) LOCAL(0) 10 l 21 64 1 0.000 0.000 0.001 注意LOCAL的这个就是与自身同步的ntp server。 注意reach这个值,在启动ntp server服务后,这个值就从0开始不断增加,当增加到17的时候,从0到17是5次的变更,每一次是poll的值的秒数,是64秒*5=320秒的时间。 如果之后从ntp客户端同步ntp server还失败的话,用ntpdate –d来查询详细错误信息,再做判断。 错误2.Server dropped: no data 从客户端执行netdate –d时有错误信息如下: transmit(192.168.30.22) transmit(192.168.30.22) transmit(192.168.30.22) transmit(192.168.30.22) transmit(192.168.30.22) 192.168.30.22: Server dropped: no data server 192.168.30.22, port 123 ..... 28 Jul 17:42:24 ntpdate[14148]: no server suitable for synchronization found 出现这个问题的原因可能有2: 1。检查ntp的版本,如果你使用的是ntp4.2(包括4.2)之后的版本,在restrict的定义中使用了notrust的话,会导致以上错误。 使用以下命令检查ntp的版本: # ntpq -c version 下面是来自ntp官方网站的说明: The behavior of notrust changed between versions 4.1 and 4.2. In 4.1 (and earlier) notrust meant "Don't trust this host/subnet for time". In 4.2 (and later) notrust means "Ignore all NTP packets that are not cryptographically authenticated." This forces remote time servers to authenticate themselves to your (client) ntpd 解决: 把notrust去掉。 2。检查ntp server的防火墙。可能是server的防火墙屏蔽了upd 123端口。 可以用命令 #service iptables stop 来关掉iptables服务后再尝试从ntp客户端的同步,如果成功,证明是防火墙的问题,需要更改iptables的设置。 /////////////////////////////////////////////////////////////////////// # 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 restrict default nomodify notrap # Hosts on local network are less restricted. restrict 172.16.65.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 #server 1.rhel.pool.ntp.org #server 2.rhel.pool.ntp.org server 172.16.65.144 #broadcast 192.168.1.255 key 42 # broadcast server #broadcastclient # broadcast client #broadcast 224.0.1.1 key 42 # multicast server #multicastclient 224.0.1.1 # multicast client #manycastserver 239.255.254.254 # manycast server #manycastclient 239.255.254.254 key 42 # manycast client # 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 # Drift file. Put this in a directory which the daemon can write to. # No symbolic links allowed, either, since the daemon updates the file # by creating a temporary in the same directory and then rename()'ing # it to the file. driftfile /var/lib/ntp/drift # 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
分享到:
评论

相关推荐

    linux ntp时间同步设置

    ### Linux NTP时间同步...通过以上步骤,可以在Linux系统中实现时间的准确同步,并可以根据需要调整时区。这对于维护系统的稳定性和服务的一致性非常关键。希望这些方法能够帮助大家更好地管理Linux系统的时间设置。

    Linux 7安装配置NTP网络时间同步服务器

    Linux 7 安装配置 NTP 网络时间同步服务器 本文将指导您如何在 Linux 7 上安装和配置 NTP(Network Time Protocol)网络时间同步服务器。该服务器可以与公用的 NTP 时间服务器池同步时间,以确保服务器的时间准确性...

    linux配置ntp时间同步.txt

    NTP服务器将本地系统的时钟与一个公共的NTP服务器同步然后作为时间主机提供服务,使本地网络的所有客户端能同步时钟。 同步时钟最大的好处就是相关系统上日志文件中的数据,如果网络中使用中央日志主机集中管理日志...

    Linux离线安装NTP服务,内网环境下配置本地时间同步

    Linux离线安装NTP服务,内网环境下配置本地时间同步 多台服务器安装 1、常用命令 rpm -qa | grep ntp #查询已安装的ntp版本信息等 rpm -e --nodeps ntp-4.2.6p5-29.el7.centos.2.x86_64 #卸载 systemctl status ...

    Linux部署NTP服务器进行时间同步.docx

    Linux 部署 NTP 服务器进行时间同步 Linux 部署 NTP 服务器进行时间同步是保证服务器时间准确性的重要步骤。 NTP(Network Time Protocol)是一种用于 synchronization 计算机时间的协议,它可以确保服务器时间与...

    linux(Red_Hat)NTP时间同步的配置方法

    本文将详细介绍 Linux(Red Hat)NTP 时间同步的配置方法,包括 NTP 跟踪层级安排、NTP 配置数据对单点故障应对能力的评估、NTP 服务器(redhat 服务器)的配置数据及说明、NTP 客户机(redhat 服务器)的配置数据及说明...

    linux(RedHat)NTP时间同步的配置方法.pdf

    本文档介绍了 Linux(RedHat) NTP 时间同步的配置方法,主要包括 NTP 跟踪层级安排、NTP 配置数据对单点故障应对能力的评估、NTP 服务器配置数据及说明、NTP 客户机配置数据及说明等部分。 一、NTP 跟踪层级安排 ...

    Linux下配置NTP架设本地的时间服务器

    Linux系统下的时间同步是非常重要的,特别是在服务器环境中,时间的准确性直接影响着系统的稳定性和安全性。Linux系统提供了多种时间同步协议,其中Network Time Protocol(NTP)是最常用的协议之一。本文将详细介绍...

    linux时间同步ntp安装包.zip

    多主机协作工作时,各个主机的时间同步很重要,时间不一致会造成很多重要应用的故障,如:加密协议,日志,集群等, 利用NTP(Network Time Protocol) 协议使网络中的各个计算机时间达到同步。

    服务器NTP时间同步配置说明

    ### 服务器NTP时间同步配置详解 #### 一、服务器时间同步简介 ...通过以上步骤,可以在不同的操作系统和环境中实现时间同步,确保所有服务器的时间保持一致,从而提升网络的整体稳定性和安全性。

    linux与windows时间同步

    本文将详细介绍如何通过Network Time Protocol(NTP)协议实现Linux与Windows系统之间的时间同步。 #### NTP简介 NTP是一种用于在分布式时钟之间进行时间同步的网络协议。它的设计目的是为了减少由于网络延迟造成...

    linux时间同步ntp服务的安装与配置

    再加上我们的时间同步服务端的IP地址或者域名即可,其中prefer选项表示优先使用该时间同步服务器 #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org ...

    NTP时间同步工具

    NTP时间同步工具允许计算机通过连接到NTP服务器来校准本地时钟,以减少时间偏差。 首先,我们要理解NTP的工作原理。NTP基于一种称为“时间戳”的概念,即每个NTP消息都包含了发送和接收时间的精确时间戳。通过比较...

    NTP服务器的配置以及客户端自动同步

    NTP服务器可以通过安装RPM包或源代码包来实现。在安装完成后,可以直接启动NTP服务器使用 `/etc/init.d/ntpd start` 命令,并使用 `netstat –tunlp` 命令查看状态。 NTP服务器的配置 NTP服务器的配置文件位于 `/...

    linux时间同步ntp.conf配置文件

    linux环境下的ntp时间同步,服务器端需要修改配置文件ntp.conf,附件给出了详细的配置信息。

    ntp时间同步脚本

    其他服务器则与这台主服务器同步,从而在整个集群内实现时间一致性。 NTP的工作原理是通过发送和接收时间戳报文来调整本地时钟。它采用一种称为“漂移率”的算法来微调服务器的时钟速度,以使其与参考时间源保持...

    linux时间同步ntp服务

    Linux 时间同步 NTP 服务是指将 Linux 系统的时间同步到网络时间协议(Network Time Protocol)服务器,以确保系统时间的准确性。NTP 服务可以将网络时间同步到本地系统时间,以便实现自动更新系统时间。 NTP 服务...

    linux下通过ntp时间同步方法.docx

    摘要:本文档介绍了 Linux 系统下的 NTP 时间同步方法,解决服务器时间混乱的问题。通过使用 NTP 协议,可以使服务器获取正确的时间,避免出现问题。 知识点 1:什么是 NTP? NTP(Network Time Protocol)是一种...

    Linux系统时间NTP同步设置

    ### Linux系统时间NTP同步设置 ...通过以上步骤,我们不仅了解了如何在Linux系统中手动和自动地进行NTP时间同步,还深入探讨了NTP服务的基本配置方法。这对于保证Linux系统的稳定性和安全性至关重要。

    NTP 服务器

    用户可以运行这个程序来设置和管理NTP服务器,或者连接到其他NTP服务器进行时间同步。 总的来说,NTP服务器在信息技术领域中扮演着重要角色,尤其对于那些需要时间同步以确保正确运行的系统,如金融交易、网络监控...

Global site tag (gtag.js) - Google Analytics