如何在 Ubuntu 22.04 LTS 上安装 NTP 服务器和客户端
NTP(网络时间协议)是一种用于同步网络中所有系统时钟以使用同一时间的协议。当我们使用术语 NTP 时,我们指的是协议本身以及联网计算机上运行的客户端和服务器程序。 NTP 属于传统的 TCP/IP 协议族,很容易被归类为最古老的部分之一。
当您最初设置时钟以与 NTP 同步时,需要在 5 到 10 分钟内进行 6 次交换才能设置时钟。一旦网络中的时钟同步,客户端就会每 10 分钟与服务器更新一次时钟。这通常是通过单次消息交换(事务)来完成的。这些事务使用您系统的端口号 123。
在本文中,我们将介绍如何执行以下操作的分步过程:
- 在 Ubuntu 计算机上安装并配置 NTP 服务器。
- 配置 NTP 客户端与服务器时间同步。
我们已在 Ubuntu 22.04 LTS 系统上运行本文中提到的命令和过程。
在主机上安装并配置 NTP Server
请按照以下步骤在 Ubuntu 服务器计算机上安装 NTP 服务器:
注意:我们使用 Ubuntu 命令行(终端)来安装和配置 NTP。您可以通过应用程序启动器搜索或 Ctrl+Alt+T 快捷方式打开终端应用程序。
第 1 步:更新包存储库索引
要从 Internet 存储库安装最新的软件版本,您的本地存储库索引必须与它们一致。以 sudo 身份运行以下命令以更新本地存储库索引:
sudo apt update
步骤 2:使用 apt-get 安装 NTP 服务器
请以 sudo 身份运行以下命令,以便从 APT 存储库安装 NTP 服务器守护程序:
sudo apt install ntp
请注意,只有授权用户才能在 Ubuntu 上添加、删除和配置软件。
系统可能会要求您输入 sudo 密码,并为您提供是/否选项以继续安装。输入Y然后回车;然后 NTP 服务器将安装在您的系统上。但是,该过程可能需要一些时间,具体取决于您的互联网速度。
第 3 步:验证安装(可选)
您可以通过在终端中运行以下命令来验证 NTP 安装并检查版本号:
sntp --version
步骤 4:切换到距离您所在位置最近的 NTP 服务器池
当您安装 NTP 服务器时,它主要配置为获取正确的时间。但是,您可以将服务器池切换到距离您所在位置最近的服务器池。这包括在 /etc/ntp.conf 文件中进行一些更改。
运行以下命令,以 sudo 在 nano 编辑器中打开文件:
sudo nano /etc/ntp.conf
在此文件中,您将能够看到池列表。我们在上图中突出显示了该列表。这里的任务是用最接近您所在位置的时间服务器池替换该池列表。 pol.ntp.org 项目通过大型时间服务器集群提供可靠的 NTP 服务。要根据您所在的位置选择池列表,请访问以下页面:
https://support.ntp.org/bin/view/Servers/NTPPoolServers
我们搜索了美国的池列表:
该页面告诉我们将以下行添加到 ntp.conf 文件中:
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org
这是我的文件在添加上述行后的样子:
按 Ctrl+X 并输入 y 退出文件以保存更改。
步骤 5:重新启动 NTP 服务器
为了使上述更改生效,您需要重新启动 NTP 服务器。以 sudo 身份运行以下命令来执行此操作:
sudo service ntp restart
步骤 6:验证 NTP 服务器是否正在运行
现在,通过以下命令检查 NTP 服务的状态:
sudo service ntp status
活动状态验证您的 NTP 服务器是否已启动并正在运行。
步骤 7:配置防火墙,以便客户端可以访问 NTP 服务器
最后,是时候配置系统的 UFW 防火墙,以便传入连接可以通过 UDP 端口号 123 访问 NTP 服务器。
以 sudo 身份运行以下命令,为传入流量打开端口 123:
sudo ufw allow from any to any port 123 proto udp
您的 Ubuntu 主机现已配置为 NTP 服务器。
配置 NTP 客户端与 NTP 服务器时间同步
现在让我们将 Ubuntu 客户端计算机配置为与 NTP 服务器时间同步。
步骤1:安装ntpdate
ntpdate 命令将允许您手动检查与 NTP 服务器的连接配置。在客户端计算机上打开终端应用程序并以 sudo 输入以下命令:
sudo apt-get install ntpdate
步骤2:在hosts文件中指定NTP服务器的IP和主机名
为了通过客户端计算机中的主机名解析 NTP 服务器,您需要配置 /etc/hosts 文件。
输入以下命令,在 nano 编辑器中以 sudo 打开主机文件:
sudo nano /etc/hosts
现在添加 NTP 服务器的 IP 并在此文件中指定主机名,如下所示:
按 Ctrl+X 退出文件,然后输入 y 保存。
步骤 3:检查客户端计算机的时间是否与 NTP 服务器同步
以下 ntpdate 命令可让您手动检查客户端和服务器系统之间的时间是否同步:
sudo ntpdate NTP-server-host
理想情况下,输出应显示两个系统之间的时间偏移。
步骤4:在客户端禁用systemd timesyncd服务
因为我们希望客户端与 NTP 服务器同步时间,所以让我们禁用客户端计算机上的 timesyncd 服务。
输入以下命令来执行此操作:
第 5 步:在客户端上安装 NTP
以 sudo 身份运行以下命令,以便在客户端计算机上安装 NTP:
sudo apt-get install ntp
步骤 6:配置 /etc/ntp.conf 文件以将 NTP 服务器添加为新时间服务器
现在我们希望我们的客户端计算机使用我们自己的 NTP 主机服务器作为默认时间服务器。为此,我们需要编辑客户端计算机上的 /etc/ntp.conf 文件。
以 sudo 身份运行以下命令,以便在 Nano 编辑器中打开该文件:
sudo nano /etc/ntp.conf
然后,在文件中添加以下行,其中 NTP-server-host 是您为 NTP 服务器指定的主机名:
server NTP-server-host prefer iburst
这是我指定时间服务器后文件的样子:
按 Ctrl+x 关闭文件,然后输入 y 保存更改。
步骤7:重新启动NTP服务器
为了使上述更改生效,您需要重新启动 NTP 服务。以 sudo 身份运行以下命令来执行此操作:
sudo service ntp restart
步骤8:查看时间同步队列
现在您的客户端和服务器计算机已配置为时间同步。您可以通过以下命令查看时间同步队列:
ntpq -ps
您应该能够在队列中看到 NTP-server-host 作为时间同步主机/源。
关于安装和配置 NTP 以同步联网 Ubuntu 计算机上的时间,这就是您需要了解的全部内容。这个过程可能看起来有点麻烦,但是如果您仔细遵循上述所有步骤,您的计算机将立即同步。