NTP 是一种网络协议,用于同步网络中的所有系统时钟。 这使网络中的所有系统都具有相同的时间。 NTP 通过联系互联网上的许多其他时间服务器来实现这一点。 NTP 使用 UDP 端口 123 与客户端和其他 NTP 服务器进行通信。 在这篇文章中,我们将向您展示如何在 Debian 系统上配置 NTP 服务器和客户端。
为了演示,我们使用了两台 Debian 机器,详细信息如下:
NTP 主机 – 主机名:ntp-host,静态 IP 地址:192.168.72.158
NTP 客户端 – 主机名:客户端,IP 地址:192.168.72.159
笔记: 这里显示的步骤已经在 Debian 10 (Buster) 上测试过了。
在 Debian 主机上安装和配置 NTP 服务器
要在 Debian 10 上安装和配置 NTP 服务器,您需要执行下面列出的所有步骤:
第 1 步:运行 Apt 更新
首先,您必须更新软件包列表才能下载最新版本的 NTP 软件包。 打开终端并运行以下命令:
$ sudo apt update
第 2 步:在主机服务器上安装 NTP
要在主机上安装 NTP 服务器,请运行以下命令:
$ sudo apt install ntp
运行上述命令后,系统可能会询问您是否要继续安装,方法是为您提供 是/否 (是/否)选项。 Enter 是的 继续安装过程。
要验证是否安装了 NTP 并查看版本信息,请运行以下命令:
$ sntp --version
步骤 3:配置 NTP 服务器
要配置 NTP 服务器,您的主机上需要有两个元素:一个是 /etc/ntp.conf 文件,另一个是 ntpd 守护进程。 首先,我们将配置 ntp.conf 文件,然后我们将重新启动 ntpd 守护进程。
编辑 /etc/ntp.conf 使用以下命令创建文件:
$ sudo nano /etc/ntp.conf
安装 NTP 服务器后,默认配置为从以下服务器获取时间:
pool 0.debian.pool.ntp.org iburst
pool 1.debian.pool.ntp.org iburst pool 2.debian.pool.ntp.org iburst pool 3.debian.pool.ntp.org iburst
您可以将它们替换为离您最近的时间服务器。 访问 ntp.org 网站以查找离您最近的 NTP 池服务器。
要使用任何特定的 NTP 池服务器,您需要将它们添加到您的 ntp.conf 文件。 我们将为亚洲地区添加池服务器,如下所示:
在里面 ntp.conf 文件,将默认池列表替换为以下行:
server 0.asia.pool.ntp.org server 1.asia.pool.ntp.org server 2.asia.pool.ntp.org server 3.asia.pool.ntp.org
然后保存并 close 这 ntp.conf 文件。
第 4 步:重新启动 NTP 守护进程
现在您应该重新启动 NTP 守护程序。 使用以下命令执行此操作:
$ sudo service ntp restart
现在,运行以下命令来检查 NTP 服务器是否正在运行,没有任何问题:
$ sudo service ntp status
第 5 步:允许 NTP 通过防火墙
如果您使用防火墙,则需要将其配置为允许 UDP 连接到 NTP 端口 123。运行以下命令以允许客户端访问 NTP 服务器:
$ sudo ufw allow 123/udp
现在运行以下命令来验证规则是否已成功添加:
$ sudo ufw status
在 Debian 客户端机器上安装和配置 NTP 客户端
要将机器配置为 NTP 客户端,您需要确保偏移量(本地时钟和 NTP 服务器之间的时间差)不超过 1024 秒。 如果偏移量大于该值,则认为时间源不准确。 为此,我们将首先尝试使用 ntpdate 手动将 NTP 客户端与 NTP 服务器同步。 如果偏移值小于 1024 秒,我们将配置 ntpd.conf 文件以进行自动同步。
第 1 步:使用 ntpdate 手动将 NTP 客户端与 NTP 服务器同步
Ntpdate 仅用于将 NTP 客户端的时间与 NTP 服务器同步一次。 要将其安装在客户端计算机上,请使用以下命令:
$ sudo apt install ntpdate
运行上述命令后,系统可能会询问您是否要继续安装,方法是为您提供 是/否 (是/否)选项。 Enter 是的 继续安装过程。
现在使用以下命令手动将 NTP 客户端与 NTP 服务器同步:
$ sudo ntpdate <ntp-server-hostname/ip>
在我们的场景中,它将是:
$ sudo ntpdate 192.168.72.158
的输出 ntpdate 命令将显示偏移值(本地时钟和 NTP 服务器之间的时间差)。 在我们的 example,偏移值为 0.054776 秒,非常小。 因此,我们现在可以配置 ntp.conf 自动与我们的 NTP 服务器同步时间。
第 2 步:主机文件配置
在 /etc/hosts 客户端机器的文件。 通过主机名解析 NTP 服务器需要此步骤。
<ntp-server-hostname> <ntp-server-ip>
确保更换 ntp 服务器主机名 和 ntp-服务器-ip 分别使用您的 NTP 的主机名和 IP 地址。 在我们的场景中,它将是:
192.168.72.158 ntp-host
第 3 步:禁用 systemd timesyncd 守护进程
由于我们要设置 NTP,因此禁用 系统时间同步 守护进程。 使用以下命令执行此操作:
$ sudo timedatectl set-ntp off
第 4 步:使用 NTP 配置文件自动将 NTP 客户端与 NTP 服务器同步
现在我们将配置我们的客户端机器以自动与 NTP 服务器同步。 因此,我们将在客户端系统上使用以下命令安装 NTP:
$ sudo apt install ntp
运行上述命令后,系统可能会询问您是否要继续安装,方法是为您提供 是/否 (是/否)选项。 Enter 是的 继续安装过程。 安装完成后,配置 ntp.conf 文件。
运行以下命令以编辑 ntp.conf 文件:
$ sudo nano /etc/ntp.conf
在文件中插入以下行:
server <ntp-server-hostname/ip> prefer iburst
在我们的场景中,它将是:
server 192.168.72.158 prefer iburst
在上述行中, 更喜欢 用于将指定服务器标记为NTP同步的首选服务器。 在哪里 爆发 用于发送六个数据包进行同步,而不是通常的一个(以防 NTP 服务器无法访问)。
现在重新启动 NTP 守护程序以应用配置更改:
$ sudo service ntp restart
检查 NTP 同步状态
现在要检查 NTP 是否正常工作,请运行以下命令:
$ ntpq -p
这是上述命令的输出,其中 偏僻的 是 NTP 服务器主机名和 重新定义 是我们的 NTP 服务器自身连接以进行同步的顶级服务器。
这就是它的全部! 在今天的帖子中,我们向您展示了如何在 Debian 10 上配置 NTP 服务器。然后我们解释了如何在另一台 Debian 机器上配置 NTP 客户端并将其与 NTP 服务器同步。 通过执行上述所有简单步骤,您可以轻松同步网络中的所有系统时钟。
您可能想访问我们关于如何在 Ubuntu 20.04 LTS 上配置 NTP 服务器和客户端的帖子。