问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Ubuntu系统时间同步设置指南

创作时间:
作者:
@小白创作中心

Ubuntu系统时间同步设置指南

引用
CSDN
1.
https://m.blog.csdn.net/xie__jin__cheng/article/details/145286715

在Ubuntu系统中,准确的时间同步对于系统稳定性和应用程序的正常运行至关重要。本文将详细介绍如何使用systemd-timesyncd服务进行时间同步配置,包括检查服务状态、配置NTP服务器、重启服务以及检查同步状态等步骤。此外,还会介绍chrony和ntp的可选配置方案,以及一些常见问题的解决方案。

1. 概要

在Ubuntu系统中设置时间同步,通常使用systemd-timesyncd服务,这是Ubuntu 16.04及更高版本中默认的时间同步服务。以下是设置时间同步的步骤:

1. 检查systemd-timesyncd服务状态

首先,检查systemd-timesyncd服务是否正在运行:

sudo systemctl status systemd-timesyncd

如果服务未运行,您可以使用以下命令启动它:

sudo systemctl start systemd-timesyncd

2. 配置NTP服务器

Ubuntu默认使用systemd-timesyncdtime.windows.comtime.google.com等公共NTP服务器同步时间。如果您希望使用其他NTP服务器,可以编辑/etc/systemd/timesyncd.conf文件:

sudo nano /etc/systemd/timesyncd.conf

找到[Time]部分,并修改或添加以下行以指定NTP服务器(例如,使用ntp.ubuntu.com):

[Time]
NTP=ntp.ubuntu.com

保存文件并退出编辑器。

3. 重启systemd-timesyncd服务

修改配置后,需要重启systemd-timesyncd服务以使更改生效:

sudo systemctl restart systemd-timesyncd

4. 检查时间同步状态

您可以使用以下命令检查时间同步状态:

timedatectl status

在输出中,您应该能够看到NTP synchronized: yes,表示时间同步已成功配置。

5. 防火墙设置(如果需要)

确保防火墙设置允许NTP流量(UDP端口123)。如果您使用的是ufw防火墙,可以使用以下命令允许NTP流量:

sudo ufw allow 123/udp

6. 使用chronyntp(可选)

虽然systemd-timesyncd是Ubuntu默认的时间同步服务,但您也可以选择使用chronyntp服务。以下是安装和配置chrony的简要步骤:

  • 安装chrony

    sudo apt update
    sudo apt install chrony
    
  • 启动并启用chrony服务

    sudo systemctl start chrony
    sudo systemctl enable chrony
    
  • 配置chrony(如果需要,编辑/etc/chrony/chrony.conf文件)。

注意事项

  • 网络连接:确保您的系统能够访问外部NTP服务器。
  • 权限:修改系统服务配置和重启服务通常需要超级用户权限。

通过以上步骤,您可以在Ubuntu系统中设置时间同步,确保系统时间准确无误。

关联知识

1. 服务已被禁用

当您看到systemd-timesyncd.service的状态为masked时,这意味着该服务已被禁用,并且链接到了/dev/null,从而阻止其启动。要启用和使用systemd-timesyncd服务,您需要对其进行“解除屏蔽”并启动它。以下是步骤:

1. 解除屏蔽systemd-timesyncd服务

首先,您需要解除对systemd-timesyncd服务的屏蔽:

sudo systemctl unmask systemd-timesyncd
2. 启动systemd-timesyncd服务

解除屏蔽后,您可以启动该服务:

sudo systemctl start systemd-timesyncd
3. 启用systemd-timesyncd服务(可选)

如果您希望systemd-timesyncd在系统启动时自动启动,可以启用它:

sudo systemctl enable systemd-timesyncd
4. 检查服务状态

再次检查systemd-timesyncd的状态,以确保它正在运行:

sudo systemctl status systemd-timesyncd

您应该看到服务状态为active (running)

5. 验证时间同步

使用以下命令验证时间同步状态:

timedatectl status

在输出中,NTP synchronized应该显示为yes,表示时间同步已成功配置。

6. 配置NTP服务器(可选)

如果您需要更改默认的NTP服务器,可以编辑/etc/systemd/timesyncd.conf文件,然后重启systemd-timesyncd服务:

sudo nano /etc/systemd/timesyncd.conf

[Time]部分中,您可以指定自定义的NTP服务器,例如:

[Time]
NTP=ntp.ubuntu.com

保存文件并退出编辑器,然后重启服务:

sudo systemctl restart systemd-timesyncd

通过这些步骤,您应该能够成功启用和配置systemd-timesyncd服务,以确保系统时间保持准确。

2. Unit systemd-timesyncd.service not found错误

当您尝试解除屏蔽并启动systemd-timesyncd服务时,出现Unit systemd-timesyncd.service not found错误,通常意味着系统上没有安装或正确配置systemd-timesyncd服务,或者系统可能使用了不同的时间同步机制(例如chronyntpd)。以下是一些可能的解决方案和检查步骤:

1. 检查系统版本和systemd版本

确保您的Ubuntu版本支持systemd-timesyncd。通常,systemd-timesyncd是从Ubuntu 16.04开始默认提供的时间同步服务。

lsb_release -a # 检查Ubuntu版本
systemd --version # 检查systemd版本
2. 安装systemd-timesyncd

在某些情况下,systemd-timesyncd可能被意外删除或未安装。通常,它是systemd包的一部分,但您可以尝试重新安装或确保systemd包完整:

sudo apt update
sudo apt install --reinstall systemd
3. 检查其他时间同步服务

检查是否安装了其他时间同步服务,例如chronyntp,并确保它们没有冲突:

sudo systemctl status chrony
sudo systemctl status ntp

如果其他服务正在运行,您可能需要停止或禁用它们,以便使用systemd-timesyncd

4. 手动创建服务文件(极端情况)

如果服务文件确实丢失,您可以尝试从其他相同版本的Ubuntu系统中复制/lib/systemd/system/systemd-timesyncd.service文件,或者手动创建一个基本的服务文件。不过,这通常不是推荐的做法,因为可能会引入配置错误。

5. 使用其他时间同步工具

如果systemd-timesyncd不可用或无法正常工作,您可以考虑使用其他时间同步工具,例如chrony

sudo apt update
sudo apt install chrony
sudo systemctl start chrony
sudo systemctl enable chrony
6. 检查日志

查看系统日志以获取更多信息,可能会有助于诊断问题:

journalctl -xe

通过这些步骤,您应该能够更好地了解为什么systemd-timesyncd服务不可用,并找到合适的解决方案。如果问题仍然存在,考虑检查系统的特定配置或寻求社区支持。

3. NTP(网络时间服务)服务的状态

从你提供的systemctl status ntp输出中,我们可以看到NTP(网络时间服务)服务的状态和一些相关的日志信息。以下是一些关键点的分析和建议:

  1. 服务状态
  • 服务名称:ntp.service
  • 状态:active (running),表示服务正在运行。
  • 启动时间:Sat 2025-01-18 09:06:43 UTC,服务自那时起已经运行了2天。
  1. 日志信息
  • Deleting interface #32 eth0:这表明在某个时刻,NTP服务检测到网络接口eth0被删除或变更。
  • leapsecond file:涉及闰秒文件的处理,通常是NTP服务用来处理闰秒调整的文件。
  • receive: Unexpected origin timestamp:多次出现此日志,表明NTP服务器在接收时间同步包时遇到了意外的原始时间戳。这可能是由于网络延迟、时间服务器的问题或客户端和服务器之间的时间差异过大。
  • local addr 192.168.1.123 ->:显示了NTP服务器使用的本地地址。
  • Listen normally on:表示NTP服务在指定的网络接口和地址上正常监听。
  • new interface(s) found: waking up resolver:当检测到新的网络接口时,NTP服务尝试重新解析和同步时间。
  1. 建议和排查步骤
  • 检查网络接口:确认服务器上的网络接口(如eth0)是否稳定,没有频繁变化或故障断开的情况。
  • 时间服务器配置:检查NTP的配置文件(通常位于/etc/ntp.conf),确保配置的时间服务器是可靠且可达的。
  • 网络延迟和稳定性:使用工具如pingtraceroute检查与服务器的网络连接是否稳定,延迟是否过高。
  • NTP服务器日志:查看更详细的NTP日志(可能在/var/log/ntp.log或类似位置),以获取更多关于“Unexpected origin timestamp”错误的信息。
  • 时间同步状态:使用ntpq -p命令查看NTP服务器的同步状态,确认它是否与上游时间服务器正确同步。

通过以上步骤,你可以更好地理解和解决NTP服务可能遇到的问题。如果问题持续存在,考虑更新NTP软件到最新版本或咨询网络管理员。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号