Ubuntu 22.04 NTP 服务器Ubuntu 22.04 NTP 服务器Ubuntu 22.04 NTP 服务器Ubuntu 22.04 NTP 服务器
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Ubuntu 22.04 NTP 服务器

NTP 代表网络时间协议,用于多台计算机之间的时钟同步。 NTP 服务器负责保持一组计算机彼此同步。在本地网络上,服务器应该能够将所有客户端系统的时间间隔保持在一毫秒之内。

例如,如果系统需要在精确的时间一致启动或停止任务,则这种配置是必要的。在本文中,我们将向您展示如何在 Ubuntu 22.04 Jammy Jellyfish 上配置 NTP 服务器,以及如何配置客户端系统以将其系统时间与所述服务器同步。

在本教程中您将学习:

  • 如何安装和配置NTP服务器

  • 如何从客户端计算机连接到 NTP 服务器

安装NTP服务器

首先,我们需要安装 NTP 服务器。您可以通过打开命令行终端并输入以下命令来执行此操作:


$ sudo apt update
$ sudo apt install ntp

配置NTP服务器

NTP 服务器已预先配置了一些服务器池,您可以在 /etc/ntp.conf 文件中看到它们。


$ cat /etc/ntp.conf

一般来说,最好将这些线路替换为您所在国家/地区或至少您所在大陆的服务器池。您和时间服务器之间的延迟越短越好。您可以使用 NTP 池项目网站查找距离您所在位置最近的 NTP 服务器池。

一旦找到最相关的区域,您所需要做的就是使用 nano 或您喜欢的文本编辑器在配置文件中添加以下行:


$ sudo nano /etc/ntp.conf

完成这些更改后,保存并退出配置文件。重新启动 NTP 服务以使更改生效:


$ sudo systemctl restart ntp

使用以下命令随时检查 NTP 服务的状态:


$ sudo systemctl status ntp

尝试连接到 NTP 服务器的客户端将在 UDP 端口 123 上进行操作。如果您的系统上启用了 UFW 防火墙,请务必将其配置为允许以下传入连接请求:


$ sudo ufw allow from any to any port 123 proto udp
Rules updated
Rules updated (v6)

NTP客户端配置

现在我们已经启动并运行了 NTP 服务器,我们将展示客户端系统如何连接到它以进行时间同步。只需在您的客户端系统上执行以下步骤:

  1. 首先,我们需要安装 ntpdate 包。我们可以使用它来验证客户端和我们创建的 NTP 时间服务器之间的连接。

    
    $ sudo apt update
    $ sudo apt install ntpdate
    
  2. 接下来,让我们尝试手动将系统时间与 NTP 服务器同步。键入以下命令,并在适当的情况下替换 NTP 服务器的 IP 地址或主机名:

    
    $ sudo ntpdate 192.168.100.4
    

  3. 这似乎正如我们所期望的那样工作。接下来,请务必禁用 Ubuntu 的默认 timesyncd 服务,因为这将与我们尝试与 NTP 服务器同步发生冲突。

    
    $ sudo timedatectl set-ntp off
    
  4. 现在,我们需要在客户端系统上安装 NTP 守护进程,以便我们可以将其配置为从我们之前设置的 NTP 服务器获取时间。

    
    $ sudo apt install ntp
    
  5. 我们只需在 ntp.conf 文件中添加一行,并且可以使用单个命令轻松完成此操作。只需确保将下面的 IP 地址替换为您的 NTP 服务器的主机名或 IP 地址。

    
    $ sudo bash -c "echo server 192.168.100.4 prefer iburst >> /etc/ntp.conf"
    
  6. 然后,重新启动 NTP 守护进程:

    
    $ sudo systemctl restart ntp
    
  7. 最后,使用 ntpq 命令列出 NTP 时间同步队列:

    
    $ ntpq -p
    

    上面截图中的星号*表示我们的NTP服务器192.168.100.4被选为当前时间同步源。除非 NTP 服务器离线,否则情况应该保持不变,因为这就是我们在 ntp.conf 配置文件中配置它的方式。

请阅读以下附录,了解有关如何解释 ntpq 命令输出的更多信息。

附录

NTPQ命令列输出解释:

  • remote – 您希望与其同步时钟的远程服务器

  • refid – 远程服务器的上游层。对于第 1 层服务器,这将是第 0 层源。

  • st – 层级,0 到 16。

  • t – 连接类型。可以是“u”表示单播或多播,“b”表示广播或多播,“l”表示本地参考时钟,“s”表示对称对等,“A”表示多播服务器,“B”表示广播服务器,或者“M”代表多播服务器

  • 时间 – 上次查询服务器的时间。默认为秒,或者“m”将显示分钟,“h”将显示小时,“d”将显示天。

  • poll – 查询服务器时间的频率,最短 16 秒,最长 36 小时。它还显示为 2 的幂的值。通常,它在 64 秒到 1024 秒之间。

  • reach – 这是一个 8 位左移八进制值,显示与远程服务器通信的成功率和失败率。成功表示该位已设置,失败表示该位未设置。 377 是最高值。

  • 延迟 – 该值以毫秒为单位显示,并显示计算机与远程服务器通信的往返时间 (RTT)。

  • 偏移 – 该值以毫秒为单位显示,使用均方根,并显示您的时钟与服务器向您报告的时间相差多远。它可以是正值,也可以是负值。

  • 抖动 – 该数字是以毫秒为单位的绝对值,显示偏移量的均方根偏差。

NTPQ命令行输出解释:

  • ” “ 因无效而被丢弃。可能是您无法与远程计算机通信(它不在线),这次源是“.LOCL”。 ” refid 时间源,它是一个高层服务器,或者远程服务器正在使用这台计算机作为 NTP 服务器。

  • x 被交集算法丢弃。

  • . 由于表溢出而被丢弃(未使用)。

  • – 被聚类算法丢弃。

  • + 包含在组合算法中。如果我们正在同步的当前服务器因任何原因被丢弃,那么这是一个很好的候选者。

  • # 良好的远程服务器,可用作替代备份。仅当您有超过 10 个远程服务器时才会显示此信息。

  • * 当前系统对等点。计算机正在使用此远程服务器作为其时间源来同步时钟

  • o 每秒脉冲 (PPS) 对等点。这通常与 GPS 时间源一起使用,尽管任何提供 PPS 的时间源都可以。该计数代码和前一个计数代码“*”不会同时显示。

参考:参考:https://p Three.org/2013/11/05/real-life-ntp/

结束语

在本教程中,我们了解了国家时间协议 (NTP) 以及如何在 Ubuntu 22.04 Jammy Jellyfish 上设置我们自己的 NTP 服务器。我们还了解了如何配置客户端计算机(或多台计算机,通常是这种情况)以连接到 NTP 服务器以进行时间同步。

©2015-2025 艾丽卡 support@alaica.com