在运维工作的复杂版图中,时间同步绝非无关紧要的“边角料”,而是贯穿系统稳定与数据准确的关键脉络。日志记录错乱、跨服务器任务执行冲突、加密认证失效……这些足以让运维人员焦头烂额的故障,背后往往藏着时间不同步的“黑手”。从保障数据库事务一致性,到确保分布式系统各节点协同有序,精准的时间同步堪称运维防线中最基础却不可或缺的一环。稍有疏忽,就可能引发连锁反应,甚至酿成业务系统的重大危机。
在Linux服务器上进行时间同步,通常会用到ntp
或chrony
服务。下面为你介绍实际的操作方法:
一、查看当前时间和时区
首先,你可以使用以下命令查看服务器当前的时间和时区:
# 查看当前系统时间
date
# 查看当前时区设置
timedatectl | grep "Time zone"
二、使用timedatectl(推荐)
如果你使用的是 systemd 系统(如 Ubuntu 16.04+、CentOS 7+),可以直接使用 timedatectl
命令来同步时间:
# 启用NTP自动同步
sudo timedatectl set-ntp true
# 查看时间同步状态
timedatectl status
三、使用chrony(推荐)
Chrony 是一个更现代的 NTP 实现,对网络条件的适应性更强:
# Ubuntu/Debian系统
sudo apt-get install chrony
# CentOS/RHEL系统
sudo yum install chrony
# 编辑配置文件(可选)
sudo vim /etc/chrony/chrony.conf
# 添加或修改NTP服务器地址,例如:
# server time.google.com iburst
# server ntp.aliyun.com iburst
# 重启服务并设置开机自启
sudo systemctl restart chrony
sudo systemctl enable chrony
# 查看同步状态
chronyc sources -v
chronyc tracking
四、使用ntpdate(简单但不推荐长期使用)
# 安装ntpdate
sudo apt-get install ntpdate # Ubuntu/Debian
sudo yum install ntpdate # CentOS/RHEL
# 手动同步时间(临时方法)
sudo ntpdate ntp.aliyun.com
五、手动设置时区
# 查看可用时区
timedatectl list-timezones
# 设置时区(例如:Asia/Shanghai)
sudo timedatectl set-timezone Asia/Shanghai
六、防火墙设置
如果服务器启用了防火墙,需要开放NTP服务的UDP 123端口:
# Ubuntu/Debian (ufw)
sudo ufw allow ntp
# CentOS/RHEL (firewalld)
sudo firewall-cmd --permanent --add-service=ntp
sudo firewall-cmd --reload
七、验证时间同步
# 使用timedatectl查看状态
timedatectl status
# 使用chronyc查看同步源
chronyc sources -v
总结
建议优先使用chrony
服务,因为它在网络不稳定的情况下表现更好,且能提供更精确的时间同步。设置完成后,服务器会自动与NTP服务器保持时间同步。