Ubuntu系统时间同步配置,新手避坑实操

发布时间:2026-07-02 14:12

本教程面向运维新手,讲解如何在Ubuntu上配置NTP时间同步,包括timedatectl和chrony的用法,并列出常见错误排查,确保服务器时间准确。

服务器时间不准,日志就会乱,证书验证也可能失败,甚至数据库主从不同步,这些坑新手经常踩。Ubuntu 默认安装后其实已经带了时间同步服务,但有时候它没按你预想的方式工作,或者你需要换成自己公司的 NTP 服务器,所以动手配一遍心里才有底。

先搞清楚系统当前时间状态

连上服务器第一件事就是跑 timedatectl,不带任何参数直接敲,会打印出本地时间、世界时、时区,还有 NTP 同步是否开启。如果看到 System clock synchronized: no,那说明时间没自动校准。别急着改,先看看时区对不对,命令是 timedatectl list-timezones 可以翻列表,找到 Asia/Shanghai 之后用 timedatectl set-timezone Asia/Shanghai 切过来。时区错了,后面同步都是白费力气。

用 chrony 替换默认的 systemd-timesyncd

Ubuntu 自带的是 systemd-timesyncd,轻量但功能少,生产环境更推荐 chrony。安装很简单,apt update 之后 apt install chrony -y。装完它就会自己启动并替代原来的同步服务,可以用 systemctl status chrony 看看是不是 active。配置文件在 /etc/chrony/chrony.conf,默认用的 pool.ntp.org 池子,一般够用,但如果你有内部时间源,就把 pool 开头的行注释掉,加上 server 你的IP iburst。iburst 能让初始同步快一点,不是必需,但加上没坏处。

手动触发同步并验证

改完配置得重启服务:systemctl restart chrony。然后等几秒,用 chronyc sources -v 查看同步源状态,看 Reach 列是不是到 377 了,那表示八次轮询都成功,^* 符号标的那一行就是当前选中的同步源。还可以用 chronyc tracking 看本地时间和源之间的偏差,Last offset 那个值越小越好,一般零点几毫秒就算不错。如果偏差特别大,可能是防火墙拦了 NTP 的 123 端口,或者你指定的服务器本身就不对。

常见报错和排查思路

新手最常碰到的是 timedatectl set-ntp true 之后还是没同步,其实这命令只是开关,背后还得有可用的同步服务。如果你装了 chrony,就别再手动开那个布尔值,容易冲突。另一个坑是虚拟机里时间经常跳,因为宿主机会通过 VMware Tools 之类的强行同步,这时最好在虚拟机设置里关掉“主机时间同步”,让 guest 自己跑 NTP。还有个细节,chronyc sources 里 Source 状态长时间显示 ? 或 x,多半是 DNS 没解析出 NTP 域名,先 ping 一下域名看通不通,再不行就用 IP 直连。

总之,Ubuntu 时间同步配置本身不复杂,踩坑多是因为对工具链不熟。把 timedatectl 和 chrony 这两个命令玩透,日常运维够用了。