Linux服务器时间同步失败解决方案

本文主要围绕 Linux 服务器时间同步失败的问题展开讨论,以 Ubuntu 和 CentOS 系统为例,提供几种测试和解决方法

常见错误

Timed out waiting for reply from ... (...)

chronyd: No suitable source for synchronisation

NTP 被屏蔽

如果服务器主机出现了时间同步失败的问题,首先应考虑是否是主机商屏蔽了 NTP 数据包,导致系统无法同步时间。一般情况下,可发送工单进行询问以做确认。

客服可能会提供一个可用的 NTP 服务器地址,接下来更改同步时间的软件设置,改为使用该地址同步即可。

Ubuntu

Ubuntu 18.04 默认使用 timesyncd 来同步时间。

编辑配置文件:

sudo vim /etc/systemd/timesyncd.conf

替换 NTP 服务器,例如为 ntp.ubuntu.com:

/etc/systemd/timesyncd.conf

[Time]

NTP=ntp.ubuntu.com

保存文件后执行:

sudo systemctl daemon-reload

sudo timedatectl set-ntp off

sudo timedatectl set-ntp on

sudo systemctl status systemd-timesyncd

设置时区为 UTC 的方法:

sudo dpkg-reconfigure tzdata

CentOS

CentOS 8 默认使用 chronyd 来同步时间。

编辑配置文件:

vim /etc/chrony.conf

更换 NTP 服务器,例如为 2.centos.pool.ntp.org:

/etc/chrony.conf

pool 2.centos.pool.ntp.org iburst

也可手动更新:

Linux服务器时间同步失败解决方案  第1张

设置时区为 UTC 的方法:

sudo timedatectl set-timezone UTC

其他方法

除更换为可用 NTP 服务器外,还有其他方式,例如使用 htpdate 等,可自行搜索使用方法。

下面介绍另外一种简便方法,适用于时间精度要求不高的场景,示例中系统用户名为 sammy:

mkdir -p ~/scripts

vim ~/scripts/time.sh

在文件中添加如下内容:

#!/bin/bash

curl http://time.akamai.com/?iso | xargs date -s

hwclock -w

或者添加如下内容(中国大陆适用),需要安装 jq 软件包:

Linux服务器时间同步失败解决方案  第2张

设置每五分钟执行一次:

sudo crontab -e

在 cron 文件顶部中添加:

MAILTO=""

*/5 * * * * /bin/bash /home/sammy/scripts/time.sh

查看执行日志:

journalctl _COMM=crond

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram