- 在主机上安装和配置 NTP 服务器">在主机上安装和配置 NTP 服务器
- 第 1 步:更新 repository 索引">第 1 步:更新 repository 索引
- 第 2 步:使用 apt-get 安装 NTP 服务器">第 2 步:使用 apt-get 安装 NTP 服务器
- 第 3 步:验证安装(可选)">第 3 步:验证安装(可选)
- 第 4 步:切换到离你所在位置最近的 NTP 服务器池">第 4 步:切换到离你所在位置最近的 NTP 服务器池
- 第 5 步:重启 NTP 服务器">第 5 步:重启 NTP 服务器
- 第 6 步:验证 NTP 服务器是否正在运行">第 6 步:验证 NTP 服务器是否正在运行
- 第 7 步:配置防火墙以便客户端可以访问 NTP 服务器">第 7 步:配置防火墙以便客户端可以访问 NTP 服务器
- 将 NTP 客户端配置为与 NTP 服务器时间同步">将 NTP 客户端配置为与 NTP 服务器时间同步
- 第 1 步:安装 ntpdate">第 1 步:安装 ntpdate
- 第 2 步:在 hosts 文件中指定 NTP 服务器的 IP 和主机名">第 2 步:在 hosts 文件中指定 NTP 服务器的 IP 和主机名
- 第 3 步:检查客户端时间是否与 NTP 服务器同步">第 3 步:检查客户端时间是否与 NTP 服务器同步
- 第 4 步:在客户端禁用 systemd timesyncd 服务">第 4 步:在客户端禁用 systemd timesyncd 服务
- 第 5 步:在你的客户端上安装 NTP">第 5 步:在你的客户端上安装 NTP
- 第 6 步:配置 /etc/ntp.conf 文件并将你的 NTP 服务器添加为新的时间服务器">第 6 步:配置 /etc/ntp.conf 文件并将你的 NTP 服务器添加为新的时间服务器
- 第 7 步:重启 NTP 服务器">第 7 步:重启 NTP 服务器
- 第 8 步:查看时间同步队列">第 8 步:查看时间同步队列
NTP 或网络时间协议是一种使用相同时间同步网络中所有系统时钟的协议。 当我们使用术语 NTP 时,我们指的是协议本身以及运行在联网计算机上的客户端和服务器程序。 NTP 属于传统的 TCP/IP 协议套件,很容易被归类为它最古老的部分之一。
当你最初设置时钟时,需要在 5 到 10 分钟内进行 6 次交换才能设置时钟。 一旦同步了网络中的时钟,客户端每 10 分钟就用服务器的时钟更新一次它们的时钟。 这通常通过一次消息交换(事务)来完成。这些事务使用系统的端口号 123。
在本文中,我们将逐步介绍如何执行以下操作:
- 在 Ubuntu 机器上安装和配置 NTP 服务器。
- 将 NTP 客户端配置为与服务器时间同步。
我们已经在 Ubuntu 20.04 LTS 系统上运行了本文中提到的命令和过程。
在主机上安装和配置 NTP 服务器
按照以下步骤在 Ubuntu 主机上安装 NTP 服务器:注意:我们使用 Ubuntu 命令行终端来安装和配置 NTP。 您、你可以通过应用程序启动器搜索或 Ctrl+Alt+T 快捷方式打开终端应用程序。
第 1 步:更新 repository 索引
为了从互联网 repository 安装软件的最新可用版本,你的本地 repository 索引需要与它们保持一致。 以 sudo 身份运行以下命令以更新本地 repository 索引:
$ sudo apt-get update
第 2 步:使用 apt-get 安装 NTP 服务器
请以 sudo 身份运行以下命令,以便从 APT repository 安装 NTP 服务器守护程序:
请注意,只有经过授权的用户才能在 Ubuntu 上添加、删除和配置软件。
$ sudo apt-get install ntp
系统可能会询问你 sudo 的密码,并为你提供 Y/n 选项以继续安装。 输入 Y
然后回车; 然后将在你的系统上安装 NTP 服务器。 但是,此过程可能需要一些时间,具体取决于你的互联网速度。
第 3 步:验证安装(可选)
你可以通过在终端中运行以下命令来验证你的 NTP 安装并检查版本号:
$ sntp --version
第 4 步:切换到离你所在位置最近的 NTP 服务器池
当你安装 NTP 服务器时,它主要被配置为获取正确的时间。 但是,你可以将服务器池切换到离你所在位置最近的服务器池。 这包括在 /etc/ntp.conf 文件中进行一些更改。 通过运行以下命令,以 sudo 身份在 nano 编辑器中打开文件:bash
$ sudo nano /etc/ntp.conf
在此文件中,你会看到服务器池列表。 我们在上图中突出显示了这个列表。 此处的任务是用最靠近你位置的时间服务器池替换这个池列表。 pol.ntp.org 项目从大型时间服务器集群提供可靠的 NTP 服务。 要根据你的位置选择泳池列表,请访问以下页面:
在此文件中,您将能够看到一个池列表。 我们在上图中突出显示了这个列表。 此处的任务是用最接近您所在位置的时间服务器池替换此池列表。 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
这是我的文件在添加以上行后的样子:
按<font style="color:rgb(61, 61, 61);">Ctrl+X</font>
退出文件,然后输入 <font style="color:rgb(61, 61, 61);">y</font>
保存更改。
第 5 步:重启 NTP 服务器
为了使上述更改生效,你需要重新启动 NTP 服务器。 以 sudo 身份执行以下命令使上述更改生效:
$ sudo service ntp restart
第 6 步:验证 NTP 服务器是否正在运行
现在,通过以下命令检查 NTP 服务的状态:
$ sudo service ntp status
Active 状态说明你的 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 服务器的 IP 地址,你需要配置 /etc/hosts 文件。 通过输入以下命令,以 sudo 身份在 nano 编辑器中打开 hosts 文件:bash
$ 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 作为队列中的时间同步主机/源。
因此,这就是在联网的 Ubuntu 机器上安装和配置 NTP 以同步时间所需的全部知识。 这个过程可能看起来有点麻烦,但如果你仔细地按照上述所有步骤一步一步地进行,你的机器将立即同步。翻译