如何在 Ubuntu 16.04 上配置 NTP 以在 NTP Pool 项目中使用

这篇具有很好参考价值的文章主要介绍了如何在 Ubuntu 16.04 上配置 NTP 以在 NTP Pool 项目中使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

准确的时间记录对于几乎任何服务或软件都至关重要。电子邮件、日志记录器、事件系统和调度程序、用户认证机制以及在分布式平台上运行的服务都需要准确的时间戳来按时间顺序记录事件。这些服务使用网络时间协议(Network Time Protocol,NTP)将系统时钟与可信的外部来源进行同步。这个来源可以是原子钟、GPS 接收器或已经使用 NTP 的另一个时间服务器。

这就是 NTP Pool 项目的作用所在。它是一个庞大的全球时间服务器集群,为全球数千万客户端提供方便访问已知的“良好时间”。它是 Ubuntu 和大多数其他主要 Linux 发行版的默认时间服务器,以及许多网络设备和软件应用程序的默认时间服务器。

在本指南中,您将在服务器上设置 NTP,并将其配置为 NTP Pool 项目的一部分,以便为 NTP Pool 项目的其他用户提供准确的时间。提供您的空闲 CPU 周期和未使用的带宽是回馈社区的完美方式。

所需的带宽相对较低,并且可以根据您提供的数量和服务器所在位置进行调整。每个客户端每 20 分钟只会发送几个 UDP 数据包,因此大多数服务器每秒只会接收约十几个 NTP 数据包,每天会有一两次高达每秒一百个数据包的峰值。这意味着带宽使用量为 10-15Kb/秒,峰值为 50-120Kb/秒。

加入 NTP Pool 项目之前,您必须满足三个基本要求:

  1. 您的服务器必须具有静态 IP 地址。
  2. 您的服务器必须具有永久稳定的互联网连接。
  3. 您的 IP 地址不能经常更改,或者只能偶尔更改(一年或更少次)。

对于大多数基于云的服务器,前两个要求通常会自动满足。第三个要求强调加入 NTP Pool 项目意味着长期承诺。当然,如果您的情况发生变化,将服务器从池中移除是可以的,但在流量完全消失之前可能需要很长时间(通常是几周,但有时可能是几个月甚至几年)。

先决条件

要完成本教程,您需要:

  • 一个已配置 IPv6 网络的 Ubuntu 16.04 服务器。如果您需要在现有的 Droplet 上配置 IPv6 网络,可以按照本教程进行操作。
  • 一个具有 sudo 权限的非 root 用户和一个防火墙,您可以按照《使用 Ubuntu 16.04 初始服务器设置》教程进行设置。

步骤 1 — 安装 NTP

NTP 包不是默认安装的,因此您将使用包管理器进行安装。首先,更新您的软件包:

sudo apt-get update

然后安装 NTP:

sudo apt-get install ntp

如果您按照先决条件中指定的方式配置了防火墙,则必须允许端口 123 上的 UDP 流量,以便与 NTP 池进行通信:

sudo ufw allow 123/udp

有关 UFW 的更多信息,请参阅《如何在 Ubuntu 上使用 UFW 设置防火墙》。

NTP 现在已安装,但它配置为使用默认的 NTP 池时间服务器。让我们选择一些特定的时间服务器。

步骤 2 — 选择合适的上游服务器

NTP Pool 项目要求希望加入池的运营商选择良好的本地网络时间服务器,而不是使用默认的 pool.ntp.org 服务器。这确保了 NTP Pool 项目保持可靠、快速和健康。在选择您的时间来源时,您需要一个稳定的网络连接,没有数据包丢失,并且服务器之间的跳数尽可能少。

多层次和分层的 NTP 协议将涉及的各方分为主要服务器、次要服务器和客户端。主要服务器称为 Stratum 1,直接连接到时间源,称为 Stratum 0。此源可以是原子钟、GPS 接收器或无线导航系统。链中的次要服务器称为 Stratum 2Stratum 3 等。

每个服务器也是一个客户端。Stratum 2 客户端从上游 Stratum 1 服务器接收时间,并向下游 Stratum 3 服务器或其他客户端提供时间。为了使 NTP Pool 项目成员正常工作,NTP 守护程序需要配置至少三个服务器。该项目建议最少四个,最多七个来源。

NTP Pool 项目提供了公共 Stratum 1 和 Stratum 2 时间服务器的列表。这些列表指定了可供公共访问的 NTP 时间服务器,并附有规定的访问限制。您将找到三种类型:

  • OpenAccess:此时间服务器向符合 NTP Pool 使用建议的任何客户端开放。
  • RestrictedAccess:此时间服务器除了符合 NTP Pool 使用建议外,还有一些访问限制。
  • ClosedAccess:此时间服务器关闭或需要事先安排。

访问 Stratum 1 时间服务器列表。您将看到如下列表:

!Stratum 1 服务器

ISO code 列对列表进行排序,并找到几个地理位置接近您服务器数据中心的服务器。当服务器的 Access Policy 列状态为 OpenAccess 时,您可以无问题使用它。如果它说“RestrictedAccess”,请单击打开条目,并阅读 AccessDetails 字段中的说明。通常,您会发现 NotificationMessage 设置为 Yes,这意味着您必须撰写一封非正式的电子邮件,发送到 ServerContact 中提供的地址,告知服务器运营商您希望将此时间服务器用作 NTP Pool 项目成员的时间来源。

确定了要使用的服务器后,请单击 ISO 列中的每个服务器的链接,并复制其主机名或 IP 地址。您将在第 3 步中使用这些地址。

接下来,从 Stratum 2 列表中选择三到四个服务器,按照相同的过程进行操作。

选择了时间服务器后,就该配置 NTP 客户端来使用它们了。

步骤 3 — 配置 NTP 加入时间池

要使用 NTP 时间池并配置新的时间服务器,您需要对 NTP 守护程序的配置进行一些修改。为此,请编辑 /etc/ntp.conf 文件:

sudo nano /etc/ntp.conf

首先,确保配置了 driftfile。driftfile 用于存储系统时钟运行在其名义频率和保持与正确时间同步所需频率之间的频率偏移。它有助于实现稳定和准确的时间。您应该在默认安装的配置文件顶部找到这个配置:

# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift
...

接下来,从配置中删除默认的时间源条目。您需要删除所有符合模式 pool [0-3].ubuntu.pool.ntp.org iburstpool ntp.ubuntu.com 的行。如果您使用默认配置,请删除以下突出显示的行:

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
pool 0.ubuntu.pool.ntp.org iburst
pool 1.ubuntu.pool.ntp.org iburst
pool 2.ubuntu.pool.ntp.org iburst
pool 3.ubuntu.pool.ntp.org iburst

# Use Ubuntu's ntp server as a fallback.
pool ntp.ubuntu.com

用您在上一步中选择的精选服务器替换您删除的行,使用 server 关键字而不是 pool 关键字。

...
server ntp_server_hostname_1 iburst
server ntp_server_hostname_2 iburst
server ntp_server_hostname_3 iburst
server ntp_server_hostname_4 iburst
server ntp_server_hostname_5 iburst
...

我们为每个服务器使用 iburst 选项,符合 NTP 时间池的建议。这样,如果服务器无法访问,它将发送八个数据包而不是通常的一个数据包。在 NTP 时间池项目中使用 burst 选项被认为是滥用,因为它会在每个轮询间隔发送这八个数据包,而 iburst 只在第一次发送这八个数据包。

接下来,确保默认配置不允许管理查询。如果不这样做,您的服务器可能会被用于 NTP 反射攻击,或者可能会容易受到试图修改服务器状态的 ntpqntpdc 查询的影响。检查默认的 restrict 行是否添加了 noquery 选项:

...
# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

您可以在官方文档中找到有关其他选项的更多信息。

您的 NTP 守护程序配置文件现在应该如下所示,尽管您的文件可能有额外的注释,您可以安全地忽略它们:

driftfile /var/lib/ntp/ntp.drift

server ntp_server_hostname_1 iburst
server ntp_server_hostname_2 iburst
server ntp_server_hostname_3 iburst
server ntp_server_hostname_4 iburst
server ntp_server_hostname_5 iburst

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

保存文件并退出编辑器。

现在重新启动 NTP 服务,让您的时间服务器将其时钟与上游服务器同步。

sudo systemctl restart ntp.service

几分钟后,使用 ntpq 命令检查您的时间服务器的健康状况:

ntpq -p

输出应该类似于以下内容:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 mizbeaver.udel. .INIT.          16 u    -   64    0    0.000    0.000   0.000
 montpelier.ilan .GPS.            1 u   25   64    7   55.190    2.121 130.492
+nist1-lnk.binar .ACTS.           1 u   28   64    7   52.728   23.860   3.247
*ntp.okstate.edu .GPS.            1 u   31   64    7   19.708   -8.344   6.853
+ntp.colby.edu   .GPS.            1 u   34   64    7   51.518   -5.914   6.669

remote 列告诉您 NTP 守护程序正在使用的服务器的主机名,refid 列告诉您服务器正在使用的源。因此,对于 Stratum 1 服务器,refid 字段应该显示 GPSPPSACTSPTB,而 Stratum 2 及更高级别的服务器将显示上游服务器的 IP 地址。st 列显示层级,delayoffsetjitter 告诉您有关时间源质量的信息。这三个字段的较低值对于质量更好。

您的时间服务器现在能够为公众提供时间。您可以通过从另一台主机调用 ntpdate 来验证这一点:

[environment second]
ntpdate -q your_server_ip

输出应该类似于以下内容,并告诉您它调整了时间服务器和偏移量:

[environment second]
server your_server_ip, stratum 2, offset 0.001172, delay 0.16428
 2 Mar 23:06:44 ntpdate[18427]: adjust time server your_server_ip offset 0.001172 sec

现在,您已经准备好将您的 NTP 服务器注册到 NTP 时间池项目中,以便其他人可以使用它。

步骤 4 — 将服务器添加到 NTP 池中

要添加您的服务器以便其他人可以使用它,请访问 manage.ntppool.org 并注册一个帐户。您将收到一封来自 NTP Pool help@ntppool.org 的电子邮件,要求您验证您的帐户。按照电子邮件中的说明确认您的帐户,然后登录 manage.ntppool.org。

登录后,您将看到一个简单的界面用于添加服务器:

!添加服务器

输入您的服务器 IP 地址,然后单击 提交

下一个屏幕会要求您验证它是否识别了您的服务器所在的区域。如果它显示您的服务器所在的区域与您预期的不同,请使用 评论 框让他们知道。

!验证屏幕

如果您满意,请通过单击 是的,这是我的服务器,添加它! 来确认条目。

您的服务器现在是 NTP 池项目的一部分。访问 http://www.pool.ntp.org/scores/your_server_ip 来查看 NTP 池的监控系统收集的有关您的服务器的信息。它每小时检查您的服务器几次,并显示偏移数据以及您系统的 分数。只要您的服务器时间准确并且可访问,分数就会上升,直到达到 20 分。只有分数高于 10 的服务器才会被用于池中。

故障排除连接问题

如果您在同步服务器时遇到问题,可能是因为您的 出站 数据包在端口 123 上被防火墙阻止。查看《如何在 Ubuntu 上使用 UFW 设置防火墙》以了解如何检查防火墙的状态。

如果 NTP 池项目的监控站无法访问您的 NTP 服务器,您的服务器分数正在下降,或者您无法使用您的服务器来同步其他时钟,可能是因为您的 入站 流量在端口 123 上被防火墙阻止。检查您的防火墙状态。

如果您确定自己没有设置防火墙,或者已经为入站和出站流量打开了端口 123,那么您的服务器提供商或其他传输提供商可能会在传输过程中丢弃您的数据包。如果您没有能力自行解决这些问题,最好求助于社区。NTP 池项目的论坛是一个很好的起点。您还可以加入邮件列表或发送电子邮件给 NTP 池项目的运营商。在寻求帮助之前,请确保您可以展示您已经尝试解决问题的所有步骤。

结论

在本教程中,您成功地设置了自己的时间服务器,并使其成为 NTP 池项目的一员,为社区提供时间服务。要与时间保持联系,请加入 NTP 池项目的论坛或邮件列表。请务必监视您的服务器分数,并进行必要的调整。文章来源地址https://www.toymoban.com/news/detail-857182.html

到了这里,关于如何在 Ubuntu 16.04 上配置 NTP 以在 NTP Pool 项目中使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)

    目录 前言: 一、VMware Workstation 二、Ubuntu系统安装 新建虚拟机 三、Ubuntu系统的配置 四、更新apt 五、安装SSH、配置SSH无密码登陆  六、安装Java环境 七、安装 Hadoop3.1.3 八、Hadoop单机配置(非分布式) 九、Hadoop伪分布式配置 前言:         本篇教程由作者本人进行修改,原教

    2024年02月03日
    浏览(32)
  • ubuntu16.04搭建gitlab

    工作中遇到需要在远端服务器搭建gitlab,耗时4天,踩坑无数,特此开个虚拟机再次搭建一次gitlab并记录供以后参考! 背景:为保证服务器安全,远端服务器在内网,本地只能通过指定外网IP和端口去访问远端服务器 1.本地下载ubuntu16.04的gitlab包(2021-06-01)(ubuntu版本最好能和

    2023年04月09日
    浏览(28)
  • Ubuntu系统升级16.04升级18.04

      作为Linux发行版中的后起之秀,Ubuntu 在短短几年时间里便迅速成长为从Linux初学者到实验室用计算机/服务器都适合使用的发行版,目前官网最新版本是22.04。Ubuntu16.04是2016年4月发行的版本,于2019年4月停止更新维护。很多软件支持的Ubuntu最早版本也是18.04,所以考虑对现有

    2024年01月20日
    浏览(42)
  • ubuntu 16.04 设置静态ip

    1.确认网卡的名字 2.编辑进入配置文件 按 i 进入编辑模式,并用下面内容替换原本内容, 按 esc 键,再按shift+: ,输入 wq,保存并退出 3.重启网络(有点慢) 4.查看设置是否成功 经过搜索找到了解决方法 将 managed=false 的 false 改成 true 是否能 ping 通百度

    2024年02月03日
    浏览(28)
  • QtAV for ubuntu16.04

    https://releases.ubuntu.com/16.04/ubuntu-16.04.7-desktop-amd64.iso https://ffmpeg.org/download.html ffmpeg-6.0.tar.xz https://github.com/wang-bin/QtAV/releases QtAV-1.12.0.zip sudo apt update sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev sudo apt-get install libavutil-dev libavcodec-dev libavformat-dev libswscale-dev sudo apt-get instal

    2024年02月14日
    浏览(29)
  • Ubuntu16.04安装中文输入法

    1、使用Ubuntu图像界面配置好中文环境,并将最下面的\\\"系统键盘输入法:\\\"选择为IBus 关于具体的配置看这篇文章https://mp.csdn.net/mp_blog/creation/editor/128273330 最终配置结果如下:   2、上面只是配置中文环境,但不能进行中文输入,需要使用命令安装ibus输入法。 sudo apt-get install ib

    2024年02月13日
    浏览(33)
  • ubuntu16.04下标定Astra相机

    1.安装相机驱动 2.下载camere_calibration 3.进行标定 打开终端,输入 打开另一个终端,输入

    2024年02月07日
    浏览(32)
  • Ubuntu安装腾讯会议——Ubuntu16.04/18.04/20.04/22.04

    通过以下教程可以快速的安装腾讯会议,本教程适用于Ubuntu16.04/18.04/20.04/22.04 进入腾讯会议下载官网下载腾讯会议Linux客户端 选择x86_64格式安装包下载 双击deb文件,点击install进行安装 安装成功,可以成功运行

    2024年02月12日
    浏览(58)
  • ubuntu16.04搭建fabric1.4

    目录 一.电脑配置 二.新建虚拟机  三.按照相关工具  1.安装git 2.安装cURL 3.安装Docker 4.安装docker-compose 5.安装Golang  6.安装NVM和NPM  四.搭建fabric 总结 VMware Workstation 16 pro :16.2.3 build-19376536 Windows10 ubuntu16.04    Ubuntu 64位 的克隆:创建好ubuntu16.04之后,立刻克隆一份,防止安装失

    2024年02月01日
    浏览(30)
  • Ubuntu官方安装微信——Ubuntu16.04/18.04/20.04/22.04

    通过以下教程可以快速的安装官方版微信,本教程适用于Ubuntu16.04/18.04/20.04/22.04 进入微信下载官网下载微信Linux客户端 点击64位下载即可,如果不能下载,使用终端如下命令 双击deb文件,点击install进行安装 安装成功,可以在菜单中点击运行

    2024年02月08日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包