AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 885345
Accepted
CatMan
CatMan
Asked: 2017-02-21 05:16:51 +0800 CST2017-02-21 05:16:51 +0800 CST 2017-02-21 05:16:51 +0800 CST

客户端未使用本地 NTP 服务器。设置问题

  • 772

我有一个没有互联网的本地网络,并希望在那里保持所有计算机的时间同步。我不在乎绝对时间,它应该对所有人都一样。

我找到了几个关于这个的帖子。最有用的是:

  • 如何设置本地 NTP 服务器?
  • 在 Ubuntu 上设置独立的 NTP 服务器

服务器

我确实使用 IP 192.168.1.123 设置了服务器,它似乎工作正常:守护进程“ntpd”正在运行,我一直在添加 etc/ntp.conf 行

# this sets the source to local time
server 127.127.1.0
fudge 127.127.1.0 stratum 8

# this makes the ntpd deamon to send out its time on the local net.
broadcast 192.168.255.255 

我用 ntpq 命令验证了它:

 ntpq -c lpeer
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
192.168.255.255       .BCST.     16 B    -   64      0  0.000    0.000   0.000

“BCST”表示其在广播中更多,IP 向本地网络(B 类网络,因此 2x 255)上的所有计算机显示其广播。

客户

在客户端,我还安装了 ntp,并使用默认的 /etc/ntp.conf 并添加了这些行

server 192.168.1.123 iburst
server 127.127.1.0
fudge 127.127.1.0 stratum 8

其中 192.168.1.123 是服务器广播的本地 IP,另一条线路应告诉客户端(笔记本电脑)在网络连接关闭时使用自己的时钟。我在客户端重新启动服务并运行 ntpq 检查连接

ntpq -c lpeer
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
192.168.1.123        .INIT.     16 u     1   64     0   0.000    0.000   0.000
LOCAL(0)             .LOCL.     8 l      6   64     1   0.000    0.000   0.000

重复此命令,我可以看到“when”列同时计数,并在达到 64 秒时再次从 0 开始。我确实希望在 64 秒后会变成这样:

ntpq -c lpeer
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*192.168.1.123        .INIT.     16 u     1   64     0   0.000    0.000   0.000
LOCAL(0)              .LOCL.     8 l      6   64     1   0.000    0.000   0.000

请注意服务器 IP 前的“*”。但事实并非如此。大约1小时后我得到的是

ntpq -c lpeer
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
192.168.1.123        .INIT.     16 u     1   64     0   0.000    0.000   0.000
*LOCAL(0)            .LOCL.     8 l     63   64   377   0.000    0.000   0.000

我认为这告诉我,配置了 2 个 NTP 源,但是由于远程源不工作/不可用/无论它没有使用什么,并且使用了回退情况本地时钟,但我不确定这种解释是否正确.

我试过的

我等了1个多小时,我重新启动了ntpd几次,sudo /etc/init.d/ntp restart我也重新启动了。此外,我注释掉了本地部分时钟,以便唯一的服务器是server 192.168.1.123. 我无法让那个“*”出现。我还看到 ntp.conf 中的一个部分说

#if you want to listen to time broadcasts on you local subnet, 
#de-comment the next lines. Please do this only if you trust 
#everybody on the network!
#disable auth
#broadcastclient

我尝试取消注释并重新启动服务,但仍然没有出现该星。不过,我想知道最后一部分,因为这部分确实出现在我在 ntp 配置上看到的任何其他帖子或互联网结果中。本地设置中有几个,大多数似乎仅通过服务器地址即可找到。从客户端ping到服务器很好。没有防火墙等。

问题

我没主意了。我想我有一台带有完全正常工作的 ntp 服务器的服务器,它正在发送时间。但是我确实有一个客户端无法从服务器接收时间信息。

我该怎么做才能让客户端运行?

networking
  • 2 2 个回答
  • 7452 Views

2 个回答

  • Voted
  1. Best Answer
    CatMan
    2017-02-21T13:52:48+08:002017-02-21T13:52:48+08:00

    问题已解决,系统现在可以正常工作。我为自己和任何其他需要设置离线 NTP 服务器(再次)的人做这个总结。实际问题似乎是广播模式的实验破坏了服务器上的 ntpd,它再次在另一台服务器重新启动时工作。为什么当我遵循上述给定的帖子时它不起作用,我不太确定。

    背景

    部分问题是我不了解 NTP 的工作原理以及我在做什么。手册页和服务器指南 16.04 都没有给出不同计算机一起工作的简化概述。首先,NTP 客户端和服务器具有误导性。它总是相同的程序,NTP 守护进程,“ntpd”。它必须安装在本地网络上的每台计算机上,时间同步才能工作。我还没有检查 Windows 客户端,但我确信在某个地方也有它们的版本(如果你有关于它的信息,请发表评论 - 内置函数将是首选)。离线系统只能在系统时钟上工作。使用多个系统时钟是有益的,不仅是主服务器,因为每个时钟都增加以减少时间漂移。换句话说,一个时钟将使所有计算机同步,但是当考虑更多时钟时,绝对时间会更加稳定和精确。从我读到的 4 应该是一个不错的数字。NTP 可以同时充当服务器和客户端。默认配置文件实际上并没有服务器角色的配置部分。作为简单模型,每个ntpdinstance 是一个客户端,它通过定期轮询从某处获取时间信息。轮询另一个ntpd或轮询本地板载时钟。当回答其他人的投票时,它成为服务器。例如,通过代理服务器连接到 Internet 的网络。该代理服务器将运行ntpd以轮询多个 Internet NTP 服务器,从而将自己的时间同步给它们。当所有本地客户端轮询该代理服务器的(同步)时间并开始回答轮询时,它就变成了 NTP 服务器本身。离线情况就是这样,除了在线服务器被板载时钟取代。

    配置 对于设置,/etc/ntp.conf必须编辑文件。默认是相当丰富的东西。我删除了所有除了:

       # this is the IP or name of the local networks NTP server. This line
       # should be commented out on the server 
       server 192.168.1.111
    
       # this enables checking the local clock. Do not change that IP values!
       server 127.127.1.0
       fudge 127.127.1.0 stratum 10
    
       # this lines are required to run the ntpq -p command to verify the  
       # function of the system
    
       restrict 127.0.0.1
       restrict ::1
    

    该示例中的服务器具有 IP 192.168.1.111。对于网络上的所有 PC,此配置可以相同。仅在非笔记本电脑的客户端上注释掉本地时钟部分。该线路应保留在笔记本电脑和其他可能在一段时间内脱离网络运行的设备上。第一个服务器部分应在服务器上注释掉。

    编辑后使用启动/停止脚本重新启动服务

    sudo /etc/init.d/ntp restart
    

    用于检查运行

    ntpd -p

    它比问题中的版本短一点,并给出相同的输出。在时钟线之前有*一条表明它正在被使用。这里是工作服务器的输出:

         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    *LOCAL(0)            .LOCL.       2 1    6   64   377   0.000    0.000   0.000
    

    当列向上计数时,范围是>0。这里是一个工作客户端的输出:

         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    *192.168.1.111      LOCAL(0)     3 u     31  64   377   0.206   -5.900   0.654
    

    如果您还 refid=.INIT.它不起作用。数字会明显不同。客户端不应显示 0.000 0.000 0.000 值。带有额外配置后备时钟的客户端的输出(注意它现在没有被使用 - 否*):

         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    *192.168.1.111     LOCAL(0)      3 u    31  64   377   0.206   -5.900   0.654
    LOCAL(0)              .LOCL.     8 l     6  64     1   0.000    0.000   0.000
    

    添加信息 默认配置描述了广播发送和广播接收选项。不要为正常操作激活它。无需启动系统并配置客户端和服务器。如果出现任何问题,不仅要重新启动服务,还要完全重新启动。甚至是一个 ubuntu 服务器。当系统没有运行时,我注意到ps -e |grep ntp应该有 2 个 'ntpd' 进程。该对可以持续启动和停止。运行版本在每台计算机上仅显示一个。默认配置文件中还有其他限制选项和日志记录选项可能有用。没有测试他们。

    希望这在某个时候变得有用。如果您有更正,请发表评论,我会尝试更新答案。

    猫人

    PS:非常感谢Ken Mollerup,他的评论让我对 NTP 系统有了更好的理解。

    • 1
  2. yongsheng
    2020-10-02T23:18:29+08:002020-10-02T23:18:29+08:00

    Ntpd 是服务器,ntpdate 是客户端。正确的配置应该启用 ntpd 工作,并且所有客户端都可以从中更新。我不同意在每台客户端计算机上安装 ntpd 的方式。在所有其他系统上安装 ntpd 作为客户端非常麻烦。

    此外,您还可以从多台服务器获得平均时间。有时它可能有用,但在您的情况下我看不到必要性。如果服务器有时间漂移,更新的时间会逐渐失去精度。

    • 0

相关问题

  • 如何设置 VLAN 转发?

  • 如何将主机 Ubuntu 上的 VPN (tun0) 网络适配器映射到 VirtualBox 来宾 Windows?

  • 如何限制下载/上传带宽?

  • 如何通过 Windows 网络共享文件?

  • 面板小程序以文本形式显示当前网络流量?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve