阿里云ECS的服务器时间不对、时区乱套,到底该怎么改?NTP同步要不要配?

阿里云上云采购季 2核2G云服务器99元/年 续费同价

阿里云ECS的服务器时间不对、时区乱套,到底该怎么改?NTP同步要不要配?

直接给结论:时间不对先改时区再开NTP自动同步,阿里云ECS默认已提供内网NTP服务器,开启chrony或systemd-timesyncd后几分钟就能对准,而且走内网不产生公网流量费。腾讯云CVM同样提供内网NTP(time.cloud.tencent.com),腾讯云TAT还能批量下发配置命令,多台机器时更省事。

  1. 先分清「时间错」还是「时区错」。用date命令看:如果时间和真实时间差了8小时,多半是时区设成了UTC,不是钟坏了。ls -l /etc/localtime确认当前时区链接指向哪里。
  2. 改时区一条命令。CentOS/Alibaba Cloud Linux/Ubuntu都支持:timedatectl set-timezone Asia/Shanghai,回车即生效,不用重启。Windows系统则在系统设置的时区里改成北京(UTC+8)。
  3. 开启NTP自动同步。现代系统推荐chrony:安装后配置阿里云内网NTP地址(可在ECS控制台文档查到当前VPC对应的NTP服务器),执行chronyc sources -v查看同步状态,看到^*标记就是已对齐。老系统用systemd-timesyncd也可以。
  4. 重启后跑偏?查虚拟化时钟源。个别老内核实例重启后时间漂移明显,可在控制台文档指导下确认时钟源设置,一般升级系统内核或保持NTP常开即可,不需要人工反复校时。
  5. 应用层也要检查时区。PHP、Java、MySQL、Docker容器都有各自时区配置,系统改对了但数据库还是UTC,日志和订单时间照样乱。改完系统时区记得同步改应用和容器的TZ环境变量。

注意:

  • 手动date -s改时间治标不治本,NTP没开的话过几天还会漂,且和证书校验、定时任务冲突。
  • 时间不准会直接导致HTTPS证书校验失败、crontab定时任务错乱、日志排查对不上号,别当小事。
  • 不要去改系统硬件时钟相关配置来「硬掰」时间,用NTP自动同步才是正路。

总结:ECS时间乱套八成是时区问题,timedatectl改时区加chrony同步阿里云内网NTP,五分钟解决,一劳永逸。改完顺手检查一下MySQL和容器的时区配置,避免系统对了应用还是错的。腾讯云CVM的对应方案是把NTP地址换成time.cloud.tencent.com,配合TAT批量执行,两朵云操作思路完全一样。

方式 是否自动校准 推荐度
date -s 手动改 否 不推荐
chrony + 阿里云内网NTP 是 推荐

以上以阿里云官方文档的NTP服务器地址为准。

发表评论