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 服务器并连接多台客户端计算机以进行时间同步。