1. 修改时区

在 ubuntu 上查看服务器时间,可以使用 date 命令,通常,服务器默认使用的是 UTC 时间(世界标准时间)。

$ date     // 查看当前时间
Sat May 11 05:28:09 UTC 2024

UTC 时间也叫世界标准时间,即经度为零的时间。如果您的服务跨多个时区,可使用 UTC 时间防止混乱。

如果要更改时区,我们可以使用 timedatectl 命令。

$ timedatectl list-timezones     // 查看可用的时区
$ timedatectl set-timezone Asia/Shanghai     // 设置当前时区为 亚洲/上海

2. 修改时间同步

之前,大多数服务器通过 ntpd 连接到其他 NTP 服务器,来提供持续且准确的时间更新。现在在 Ubuntu 系统上,默认使用 timesyncd 代替 ntpd 。timesyncd 通过连接到相同的时间服务器,但它是轻量级的,并且与 Ubuntu 的 systemd 集成得更好。

// 查看当前时区,同步信息等

$ timedatectl   // 或 timedatectl status
               Local time: Sat 2024-05-11 05:28:15 UTC
           Universal time: Sat 2024-05-11 05:28:15 UTC
                 RTC time: Sat 2024-05-11 05:28:15
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

System clock synchronized: yes 指令表示时间同步成功,NTP service: active 指令表示 timesyncd 已启动并运行。

如果输出显示 NTP 服务未激活,可使用以下命令开启:

$ timedatectl set-ntp on
$ timedatectl

timedatectl 服务配置文件默认为:

$ cat /etc/systemd/timesyncd.conf | grep -v "^#"

[Time]

可以看到,默认配置文件是空的,但要查询同步使用的是哪个 NTP 服务器,可以使用以下命令:

$ systemctl status systemd-timesyncd
$ timedatectl show-timesync
FallbackNTPServers=ntp.ubuntu.com
ServerName=ntp.ubuntu.com
ServerAddress=185.125.190.56
RootDistanceMaxUSec=5s
PollIntervalMinUSec=32s
PollIntervalMaxUSec=34min 8s
PollIntervalUSec=34min 8s
NTPMessage={ Leap=0, Version=4, Mode=4, Stratum=2, Precision=-25, RootDelay=1.007ms, RootDispersion=259us, Reference=11FD1CFD, OriginateTimestamp=Sun 2025-01-26 19:11:54 CST, ReceiveTimestamp=Sun 2025-01-26 19:11:54 CST, TransmitTimestamp=Sun 2025-01-26 19:11:54 CST, DestinationTimestamp=Sun 2025-01-26 19:11:54 CST, Ignored=no, PacketCount=3720, Jitter=34.224ms }

// 修改同步服务器(可选)

$ vim  /etc/systemd/timesyncd.conf
...
[Time]
NTP=ntp.ubuntu.com
FallbackNTP=ntp.aliyun.com

$ systemctl restart systemd-timesyncd
$ timedatectl show-timesync
作者:jackzang  创建时间:2024-05-11 13:27
最后编辑:jackzang  更新时间:2025-01-26 19:38