Linux虚拟机如何进行时间同步
导读:Linux虚拟机时间同步实操指南 一、推荐方案与总体原则 首选通过 NTP/chrony 与互联网或内网 NTP 服务器进行持续自动同步,保证长期稳定与高精度。 在虚拟化环境中,建议同时启用 VMware Tools / VirtualB...
Linux虚拟机时间同步实操指南
一、推荐方案与总体原则
- 首选通过 NTP/chrony 与互联网或内网 NTP 服务器进行持续自动同步,保证长期稳定与高精度。
- 在虚拟化环境中,建议同时启用 VMware Tools / VirtualBox Guest Additions 的“与宿主机时间同步”作为兜底,弥补虚拟机挂起/恢复导致的时间跳变。
- 保持 时区正确(如 Asia/Shanghai),并避免频繁手动改时;如需临时修正,先停同步服务,校正后再恢复。
- 对需要审计/计费/分布式系统,优先使用 chrony(快速收敛、对虚拟化环境更友好)。
二、使用 chrony 与 systemd-timesyncd 的两种常用做法
- 方案A(推荐)chrony
- 安装与启用
Ubuntu/Debian: sudo apt-get update & & sudo apt-get install -y chrony
CentOS/RHEL: sudo yum install -y chrony
sudo systemctl enable --now chronyd - 配置上游服务器(/etc/chrony/chrony.conf)
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst - 验证
chronyc tracking(查看同步源与偏差)
chronyc sources -v(列出上游源状态)
- 安装与启用
- 方案B systemd-timesyncd(轻量,适合桌面/简单场景)
- 启用服务
sudo timedatectl set-ntp true - 可选:编辑 /etc/systemd/timesyncd.conf
[Time]
NTP=0.pool.ntp.org 1.pool.ntp.org - 验证
timedatectl status(应看到 “System clock synchronized: yes”)
以上两种方案二选一,避免同时运行多个时间守护进程。
- 启用服务
三、使用传统 NTP 服务
- 安装与启用
Ubuntu/Debian: sudo apt-get install -y ntp
CentOS/RHEL: sudo yum install -y ntp
sudo systemctl enable --now ntp - 配置上游(/etc/ntp.conf)
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst - 验证
ntpq -p(查看同步对端与延迟/抖动)
timedatectl(确认 NTP 服务处于活动状态)
该方式适合对 NTP 协议细节有控制需求的场景。
四、启用虚拟化工具的时间同步与宿主机协同
- VMware
- 安装 VMware Tools,在虚拟机设置中启用 “Synchronize guest time with host”。
- 挂起/恢复或快照回滚后,工具会自动校正时间。
- VirtualBox
- 安装 Guest Additions。
- 建议将虚拟机 RTC 设置为 UTC(在“系统 -> 主板”中勾选 “Hardware Clock in UTC Time”),在来宾系统内设置本地时区(如 Asia/Shanghai),可减少夏令时/时区切换带来的偏差。
- 协同建议
- 若启用了虚拟化工具的时间同步,仍建议保留 NTP/chrony 作为主时钟;工具仅作兜底。
- 当宿主机时间被校准后,来宾时间会在下次同步周期或事件触发时自动对齐。
五、常见排错与应急操作
- 快速检查
timedatectl(时区、NTP 启用状态、是否已同步)
chronyc tracking / sources -v 或 ntpq -p(同步源与偏差) - 手动一次性校正(仅在极端偏差或 NTP 暂不可用时)
sudo date -s “2025-12-18 15:30:00”
sudo hwclock --systohc(将系统时间写入硬件时钟) - 防火墙与连通性
NTP 使用 UDP 123 端口;如需对宿主机或其他虚拟机提供时间服务,请放行该端口(例如 firewalld: firewall-cmd --add-service=ntp --permanent & & firewall-cmd --reload)。 - 虚拟机挂起/迁移后时间跳变
先启用虚拟化工具的时间同步,再重启 chronyd/ntpd 以快速收敛。 - 避免多个时间服务争用
同时只保留 chrony 或 ntpd 或 timesyncd 之一,防止互相拉扯。
以上命令与注意事项可快速定位大多数时间不同步与漂移问题。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux虚拟机如何进行时间同步
本文地址: https://pptw.com/jishu/774830.html
