Ubuntu 22.04的ntpd客户端无法与NTP服务器同步问题求助
嗨,我来帮你梳理并解决这个问题!
首先,你遇到的failed to set ntp:N NTP not supported报错,核心原因是Ubuntu 22.04默认使用的是systemd-timesyncd作为NTP客户端工具,而不是传统的ntpd。当你执行timedatectl set-ntp true时,这个命令是用来控制systemd-timesyncd服务的,如果你想改用ntpd,就得先调整系统的NTP服务配置。
关于你提到的“Ubuntu 22.04不推荐ntpd”的说法,其实是准确的:Ubuntu从20.04开始就默认采用systemd-timesyncd作为客户端NTP工具,它更轻量、更贴合systemd生态,适合普通客户端场景;而ntpd现在更多被推荐用作NTP服务器,或者需要复杂时间同步策略的场景,但它并不是完全不被支持,只是默认没有安装而已。
针对你的暗网环境(无法连接互联网,NTP服务器是Windows Server 2022),可以按照以下步骤操作来让ntpd正常同步:
安装ntpd
先确保系统上已经安装了ntpd,执行以下命令:sudo apt update && sudo apt install ntp停止并禁用默认的systemd-timesyncd服务
避免两个NTP服务冲突,先停用默认的同步工具:sudo systemctl stop systemd-timesyncd sudo systemctl disable systemd-timesyncd配置ntpd指向你的Windows NTP服务器
编辑ntpd的配置文件/etc/ntp.conf:sudo nano /etc/ntp.conf- 注释掉所有以
pool开头的默认公共NTP服务器条目(因为你的环境无法联网) - 添加一行指向你的Windows Server 2022 NTP服务器,比如:
server 你的Windows服务器IP或主机名 iburst
(
iburst参数可以让ntpd在启动时快速同步时间)- 注释掉所有以
启动并启用ntpd服务
配置完成后启动服务,并设置开机自启:sudo systemctl start ntp sudo systemctl enable ntp验证同步状态
等待几分钟后,执行以下命令查看ntpd的同步情况:ntpq -p如果输出中能看到你添加的Windows服务器条目,且
remote列前有*或+标记,就说明已经成功同步了。
另外,建议你确认一下Windows Server 2022的NTP配置:
- 确保Windows服务器的NTP服务已经正确启用,并且允许Ubuntu客户端通过UDP 123端口访问(检查Windows防火墙是否放开了这个端口)
- 确认Windows服务器本身的时间是准确的,因为客户端会同步它的时间
备注:内容来源于stack exchange,提问作者עידו צור

