Ubuntu Mate(树莓派3)时间同步故障排查求助
解决树莓派3 Ubuntu Mate NTP时间同步失败的问题
我之前在树莓派3上跑Ubuntu Mate的时候也碰到过几乎一模一样的时间同步问题,折腾了好一阵才理清几个常见原因,给你逐一分析:
1. 硬件时钟缺失导致初始时间偏差过大
树莓派3本身没有内置RTC(实时时钟)模块,断电重启后系统会用一个默认的旧时间启动。如果这个初始时间和真实时间差得太多(比如超过1000秒),NTP服务会直接拒绝同步——它默认不会处理这么大的时间跳跃。
解决办法:
- 先手动设置一个接近当前的时间:
sudo date -s "2024-05-20 14:30:00" - 然后重启NTP服务:
sudo systemctl restart ntp - 要是经常断电,建议买个外接RTC模块(比如DS3231),装上后配置系统优先读取硬件时钟,避免每次重启都重置时间。
2. 默认NTP服务器无法连接
系统自带的NTP服务器可能因为地域、网络运营商限制等原因连不上,这就会导致ntpq -p里的delay、offset、jitter全是0,同步自然失败。
解决办法:
- 编辑NTP配置文件
/etc/ntp.conf,注释掉原来的server行,换成国内稳定的公共NTP服务器:# 注释原有server配置,添加以下内容 server cn.pool.ntp.org iburst server ntp.aliyun.com iburst server time1.cloud.tencent.com iburst - 重启NTP服务后等待5-10分钟,再用
ntpq -p和ntpstat检查状态。
3. 网络或防火墙阻断了NTP流量
NTP用的是UDP 123端口,如果树莓派的DNS解析有问题,或者防火墙挡住了这个端口,就没法和NTP服务器通信。
解决办法:
- 先测试DNS解析:
如果返回不了IP,就修改nslookup cn.pool.ntp.org/etc/resolv.conf,把DNS换成8.8.8.8或114.114.114.114。 - 检查防火墙状态(Ubuntu Mate默认用ufw):
如果防火墙开启,允许UDP 123端口:sudo ufw statussudo ufw allow 123/udp sudo systemctl restart ufw sudo systemctl restart ntp
4. NTP服务本身的兼容性问题
有时候Ubuntu Mate上的ntp包在树莓派上表现不佳,可以试试换成更轻量、适配性更好的chronyd服务,它在网络不稳定的场景下同步效率更高。
解决办法:
- 卸载原有NTP服务:
sudo apt remove --purge ntp - 安装并启用chronyd:
sudo apt install chronyd sudo systemctl enable --now chronyd - 用以下命令查看同步状态:
chronyc tracking chronyc sources
5. 时区配置错误(容易被忽略)
有时候看起来是时间滞后,其实是时区设置错了,导致显示的时间和真实时区不符。
解决办法:
- 查看当前时区:
timedatectl - 列出可用时区,找到自己所在的时区(比如
Asia/Shanghai):timedatectl list-timezones - 设置正确时区:
sudo timedatectl set-timezone Asia/Shanghai
内容的提问来源于stack exchange,提问作者user8427661
相关产品推荐
相关产品推荐

