如何在 Ubuntu 20.04 LTS 上配置 NTP 服务器和客户端

NTP(代表网络时间协议)用于将客户端系统的系统时钟与服务器的时钟同步。 它有助于网络应用程序有一个准确的时间。 在本文中,我们将解释如何配置 NTP 服务器并同步 NTP 客户端计算机的时钟。 我们将使用 Ubuntu 20.04 LTS 来运行命令并解释过程。

先决条件

  • 两台 Ubuntu 机器(用于 NTP 主机和 NTP 客户端)
  • 两台 Ubuntu 机器上的 Sudo 用户

配置 NTP 服务器

为了在主机上安装和配置 NTP 服务器,请按照以下步骤操作:

步骤 1:在主机服务器上安装 NTP

为了安装 NTP 服务器,首先更新系统上的本地存储库。 在主机系统中打开命令行终端并在其中发出以下命令:

$ sudo apt update

然后提供 sudo 密码。

现在在主机系统上安装 NTP。 在终端中键入以下命令并按 Enter:

$ sudo apt install ntp

当要求确认时,按 是的,之后系统将开始安装NTP。

完成后,您可以通过以下命令验证安装:

$ sntp --version

步骤 2:配置 NTP 服务器

默认情况下,NTP 配置为从 Internet 服务器中提取时间。 但是,您可以手动将其配置为根据您的地理位置从最近的池中提取时间。

编辑 NTP 配置文件如下:

$ sudo nano /etc/ntp.conf

在配置文件中,您将看到 NTP 默认使用的池列表。

要添加离您最近的游泳池,请访问 支持.ntp.org 网站,然后选择您的位置。

例如,如果您选择欧洲,您将看到一个池列表,如下面的屏幕截图所示。

在配置文件中,删除默认的池列表并插入您从 支持.ntp.org 网站。 在我们的系统中,我们为欧洲地区添加了池。

完成后,按 Ctrl+x. 现在将提示您是否要保存更改,点击 是的.

第三步:重启NTP服务

进行更改后 /etc/ntp.conf 文件,使用以下命令重新启动 NTP 服务:

$ sudo service ntp restart

第 4 步:在防火墙中允许 NTP

如果防火墙在 NTP 主机上运行,​​您将需要添加允许 NTP 通过它的规则。 在终端中发出以下命令以将规则添加到防火墙:

$ sudo ufw allow ntp

要验证规则是否已成功添加,请在终端中键入以下命令并按 Enter:

$ sudo ufw status

现在已经在主机上配置了 NTP 服务器。 现在让我们转向 NTP 客户端配置。

将 NTP 客户端机器的时钟与 NTP 服务器同步

现在我们将配置 NTP 客户端机器以与 NTP 服务器同步时钟。

第 1 步:在客户端机器上安装 ntpdate

Ntpdate 命令用于一次性同步到 NTP 服务器。 在客户端机器中打开终端并发出以下命令来安装 ntpdate:

$ sudo apt install ntpdate

然后输入 sudo 密码。

当要求确认时,输入 是的,之后系统将开始安装ntpdate。

第 2 步:使用 ntpdate 手动将 NTP 客户端与 NTP 服务器同步

在这一步中,我们将手动将NTP客户端同步到NTP服务器,以检查时间是否准确,相差不超过1024秒。 为此,请在终端中发出以下命令,替换 <服务器-IP> 使用 NTP 服务器的实际 IP 地址:

$ sudo ntpdate <server-IP>

在我们的例子中,NTP 服务器的 IP 地址是 192.168.72.157,所以命令是:

$ sudo ntpdate 192.168.72.157

从上面的输出可以看出,时间差只有 0.008231 秒。

第 3 步:禁用 systemd timesyncd 服务

禁用系统 timesyncd 服务,因为我们要将系统时间与 NTP 服务器同步。 运行以下命令来执行此操作:

$ sudo timedatectl set-ntp off

第 4 步:在客户端计算机上安装 NTP

如您所见,ntpdate 命令的输出表明时差非常小,因此我们现在可以在客户端机器上配置 ntp.conf 以自动与 NTP 服务器同步。

首先,您需要在客户端计算机上安装 NTP。 Enter 终端中的以下命令:

$ sudo apt install ntp

当要求确认时,输入 是的,之后系统将开始安装NTP。 完成后,您可以按照下一步中的说明配置 NTP。

第 5 步:在客户端机器中配置 ntp.conf 以自动与 NTP 服务器同步

在这一步中,我们将配置 npt.conf 以自动将客户端计算机与 NTP 服务器同步。

在客户端计算机中,编辑 ntp.conf 文件,如下所示:

$ sudo nano /etc/ntp.conf

在配置文件中添加以下行替换 <服务器主机名> 使用您的 NTP 服务器主机名。

server <NTP-server-hostname> prefer iburst

完成后,按 Ctrl+x. 现在,将提示您是否要保存更改,请按 是的.

更改后 /etc/ntp.conf 文件,使用以下命令重新启动 NTP 服务:

$ sudo service ntp restart

现在客户端机器已经连接到主机系统进行时间同步。

查看 NTP 同步状态

要查看 NTP 当前同步状态,请在终端中发出以下命令:

$ ntpq -p

在输出中,您可以看到“ubuntu”作为连接的时间服务器以及其他一些信息。

这就是它的全部! 在本文中,您学习了如何在 Ubuntu 机器上配置 NTP 服务器,然后同步 NTP 客户端机器的时钟。 现在您可以轻松设置 NTP 服务器并连接多台客户端计算机以进行时间同步。