今天分享一下时钟同步问题。
在日常运维工作中,我们经常会遇到 Linux 服务器时间不同步的问题。无论是系统日志乱序、定时任务错过执行时间,还是集群通信异常,时间问题都是隐藏的大坑。
本篇文章将手把手带你搞定 Linux 时间同步问题,分别覆盖 外网环境 和 内网(企业私有环境) 两大场景,附带推荐工具和配置示例,建议收藏!
场景一:外网环境
如果服务器可以访问公网 NTP 服务时,时间同步相对简单。
1 ntpdate
:手动同步
适合临时性修复场景。
安装并执行:
# Redhat/CentOS
yum install ntpdate
# Ubuntu/Debian
sudo apt install ntpdate
# 手动同步阿里云时间服务器
sudo ntpdate ntp.aliyun.com
-
优点:使用简单
-
缺点:只同步一次,不会自动保持同步
2 chronyd
:持续同步
从 7版本起推荐使用 chrony
取代 ntpd
,适用于长期运行的生产服务器。
配置步骤:
# 安装并启动chrony服务
yum install chrony
systemctl enable --now chronyd
# 编辑配置文件
vim /etc/chrony.conf
# 替换为阿里云 NTP
server ntp.aliyun.com iburst
# 注意:有些版本配置中server改为了pool
# 重启服务
systemctl restart chronyd
# 查看状态
chronyc tracking
chronyc sources
优点:持续后台同步、精度高、资源占用低
【温馨提示】rockylinux,openEuler,麒麟V10等操作系统都是跟Redhat系列配置差不多的
3 systemd-timesyncd
Ubuntu 18.04+ 默认启用的时间同步服务。
开启自动同步并指定 NTP:
sudo timedatectl set-ntp true
# 可选:配置服务器地址
sudo vim /etc/systemd/timesyncd.conf
[Time]
NTP=ntp.aliyun.com
sudo systemctl restart systemd-timesyncd
场景二:无法访问公网(内网企业环境)
在企业私有云、隔离网络或高安全性场景下,服务器常无法连接公网,这时就必须依赖内网部署的 NTP 服务器。
1 替换为内网NTP地址
无论你使用哪种同步方式,都需要将公网地址替换为公司提供的内网地址,如果内部NTP是域名则设置为域名
ntpdate
:
# 域名方式同步
ntpdate ntp.internal.company.com
# IP地址方式
ntpdate 10.0.0.2
chrony.conf
:
server ntp.internal.company.com iburst
# 或者
server 10.0.0.2 iburst
systemd-timesyncd.conf
:
[Time]
NTP=ntp.internal.company.com
2 无法同步问题排查
-
确保 UDP 123 端口未被防火墙或安全组阻断
-
DNS 解析正常(或直接使用 IP)
-
可使用以下命令测试 NTP 是否正常返回时间:
ntpdate -q ntp.internal.company.com # 或者直接ping IP地址
3 设置正确时区
无论在哪种场景,时区设置都是确保系统时间准确的关键:
# 设置为中国标准时间
timedatectl set-timezone Asia/Shanghai
是否还遇到其他无法同步的问题,评论区告诉我,让李哥也进步一下!
欢迎关注同名公众号,更多的干货文章等着你!