在 Debian 系统中,DHCP 本身不直接负责时间同步,但它可以通过 DHCP 选项(如 NTP 服务器选项)来告知客户端使用哪个时间服务器。真正进行时间同步的通常是 NTP 客户端(如 systemd-timesyncd、chrony 或 ntp)。
下面分几种常见情况说明 Debian 下如何通过 DHCP 同步时间。
Debian 10+ 默认使用 systemd-timesyncd 作为简单 NTP 客户端。
timedatectl status
如果看到:
System clock synchronized: yes
NTP service: active
说明已启用。
如未启用:
sudo timedatectl set-ntp true
DHCP 服务器需要下发 NTP 选项:
| DHCP 选项 | 说明 |
|---|---|
| Option 42 | NTP Server |
| Option 4 | 有时被误用(Time Server,不推荐) |
option ntp-servers 192.168.1.10;
systemd-networkd 会自动从 DHCP 获取 NTP 服务器(前提是使用 networkd 管理网络)。
networkctl status
或:
cat /run/systemd/timesync/synchronized
查看实际使用的 NTP 服务器:
timedatectl show-timesync
如果你使用的是 NetworkManager(如 GNOME 桌面):
sudo timedatectl set-ntp true
无需额外配置。
chrony 比 systemd-timesyncd 更适合服务器。
sudo apt install chrony
编辑 /etc/chrony/chrony.conf,添加:
sourcedir /run/chrony-dhcp
Debian 默认已包含:
/etc/dhcp/dhclient-exit-hooks.d/chrony
当 DHCP 获取 NTP 服务器后,会自动写入:
/run/chrony-dhcp/ntp_servers
sudo systemctl restart chrony
sudo apt install ntp
但 ntp 已逐渐被 chrony / systemd-timesyncd 取代,不建议新系统使用。
journalctl -u systemd-timesyncd
journalctl -u chronyd
cat /var/lib/dhcp/dhclient.leases
或:
ip route
| 场景 | 推荐方案 |
|---|---|
| 桌面 / 简单系统 | systemd-timesyncd |
| 服务器 | chrony |
| DHCP 自动同步时间 | DHCP Option 42 + NTP 客户端 |
如果你愿意,可以告诉我:
我可以给你一份完全对应你环境的配置示例。