如何修改 Linux NTP 服务器并同步时间

问题描述

有的时候我们的 Linux 服务器可能会遇到时间与现实时间不同步的问题,导致一些错误。今天我们将介绍如何修复这个问题。

本文将以 Debian Linux 系统为例。

检查时区

如果服务器时间和现实时间差距是完整的几个小时,比如一个小时,两个小时等。这个问题基本上是服务器的时区没设置对,输入下列命令查看状态:

timedatectl status

显示结果如下,我们查看 Time Zone 是否正确。

image-20230613142624675

如果时区不正确,使用下列命令设置 Time Zone:

timedatectl set-timezone Asia/Shanghai

其中系统支持的时区可以使用下面的命令查看:

timedatectl list-timezones

设置 NTP 服务器

如果服务器时间和现实时间的差值不是一个小时的倍数,那可能是 NTP 服务器的问题。系统使用的 debian.pool.ntp.org 在有些地区可能会出现无法连接的情况,就需要我们手动修改 NTP 同步服务器。

输入下列命令修改 /etc/systemd/timesyncd.conf 文件:

nano /etc/systemd/timesyncd.conf

定位到 [Time] 区域下的 NTP 行,删除最前面的 # 号,并添加几个常见的 NTP 服务器(服务器之间用空格分开):

image-20230613143411993

修改完成后输入 ctrl + o 保存,再输入 ctrl + x 退出。

我们重启一下时间同步服务器:

systemctl restart systemd-timesyncd

这个时候我们需要开启服务器的 NTP 同步功能:

timedatectl set-ntp true

接着查看一下 NTP 服务器是否正确:

timedatectl timesync-status
image-20230613144602581

最后我们查看一下时间是否正确:

date -R