Debian 12 设置时区与同步时间

前言

本文主要介绍如何在 Debian 系统上设置时区与同步时间,适用于 Debian 11 Bullseye、Debian 12 Bookworm 发行版。

设置时区

一般全自动安装好的 Debian 是 UTC 时间,与北京时间差 8 小时,所以最好将时区设置为常用的时区,这样方便使用与阅读。timedatectl 是一个新工具,它作为 systemd 系统和服务管理器的一部分,代替旧的传统的用在基于 Linux 分布式系统的 sysvinit 守护进程的 date 命令。timedatectl 命令可以查询和更改系统时钟和设置,可以使用此命令来设置或更改当前的日期、时间和时区,或实现与远程 NTP 服务器的自动系统时钟同步。

  • 查看所有可用的时区
1
timedatectl list-timezones
  • 设置当前系统的时区为上海
1
sudo timedatectl set-timezone "Asia/Shanghai"
  • 查看当前系统的时区
1
timedatectl status

同步时间

一般重新设置系统时区后,现实时间会与系统时间之间会有误差,这时候建议使用 systemd-timesyncd 相关工具来解决时间差异的问题。特别注意:timedatectl 并不兼容 ntpd 等组件,请不要安装 ntpd 等组件,以免时间同步失效。

  • 安装 systemd-timesyncd 服务
1
sudo apt install systemd-timesyncd
  • 更改配置文件,添加 NTP 服务器(添加一行 NTP 服务器地址)
1
sudo vim /etc/systemd/timesyncd.conf
1
2
3
4
5
[Time]
NTP=pool.ntp.org 0.asia.pool.ntp.org 1.asia.pool.ntp.org 2.asia.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
  • 重启 systemd-timesyncd 服务
1
sudo systemctl restart systemd-timesyncd
  • 查看 systemd-timesyncd 服务的运行状态
1
sudo systemctl status systemd-timesyncd
  • 启用时间自动同步
1
sudo timedatectl set-ntp true
  • 查看时间同步状态
1
2
3
4
5
timedatectl status

timedatectl timesync-status

timedatectl show-timesync --all