ubuntu服务器需先正确设置asia/shanghai时区,再启用systemd-timesyncd时间同步服务,二者缺一不可;推荐使用阿里云ntp服务器并避免多服务冲突或手动校时。

Ubuntu 服务器的时区和时间同步必须一起配,光调时区不校时间,或只开NTP却用错时区,都会导致日志错乱、证书失效、数据库主从延迟等问题。核心是两步:先设对时区,再启用可靠的时间同步服务。
确认并设置正确的时区
时区不是“显示偏好”,它直接影响系统日志时间戳、cron执行逻辑和部分应用行为。中国服务器应统一使用 Asia/Shanghai(东八区,UTC+08:00),而非 Etc/GMT-8 或 UTC。
- 查看当前时区:
timedatectl | grep "Time zone" - 列出所有亚洲时区:
timedatectl list-timezones | grep -i asia - 设置上海时区:
sudo timedatectl set-timezone Asia/Shanghai - 验证硬件时钟是否按UTC保存(推荐):
sudo hwclock --systohc(这一步确保重启后时间不漂移)
启用 systemd-timesyncd 自动同步(推荐默认方案)
Ubuntu 20.04+ 默认启用轻量级 systemd-timesyncd,它比老式 ntpd 更简洁、更适配 systemd 环境,且不会与 timedatectl 冲突。
PostgreSQL 18.4 官方 Ubuntu 安装包现已发布,这是目前最新的稳定版本。推荐通过官方 APT 仓库安装:先执行 sudo apt update 更新索引,再运行 sudo apt install postgresql-18 即可完成部署。新版本引入了异步 I/O 子系统,在顺序扫描与 VACUUM 场景下性能提升显著,同时支持 UUID v7 原生生成函数与虚拟生成列。
- 检查服务状态:
sudo systemctl status systemd-timesyncd(应为 active (running)) - 若未运行,启动并设为开机自启:
sudo systemctl enable --now systemd-timesyncd - 启用 NTP 同步:
sudo timedatectl set-ntp true(此命令会自动激活 timesyncd 并配置其行为) - 查看同步结果:
timedatectl中确认 System clock synchronized: yes 和 NTP service: active
必要时自定义 NTP 服务器(尤其国内环境)
默认的 time.google.com 或 time.windows.com 在国内可能不稳定或延迟高。建议改用国内可信源,如阿里云、腾讯云或 ntp.org 官方池。
- 编辑配置:
sudo nano /etc/systemd/timesyncd.conf - 在
[Time]段下添加:NTP=ntp1.aliyun.com ntp2.aliyun.com FallbackNTP=cn.pool.ntp.org
- 保存后重启服务:
sudo systemctl restart systemd-timesyncd - 稍等几秒,再运行
timedatectl查看同步状态是否仍为 yes
避免常见错误组合
以下操作看似合理,实则容易引发问题:
- 不要同时启用
systemd-timesyncd和ntpd或chronyd—— 多个时间服务争抢校时会导致时间跳变 - 不要用
date -s或ntpdate手动强制设时间 —— 这会绕过 NTP 平滑调整机制,可能触发应用异常 - 不要把硬件时钟(RTC)设为本地时间(
RTCinlocalTZ: yes)—— Ubuntu 默认使用 UTC 存储 RTC,混用本地时间易在双系统(如 Win/Linux)中造成时间错乱










