首页 > 系统相关 >银河麒麟Linux同步时间:NTPd、Chrony、systemd-timesyncd 配置与使用

银河麒麟Linux同步时间:NTPd、Chrony、systemd-timesyncd 配置与使用

时间:2025-01-04 17:12:00浏览次数:6  
标签:systemd 同步 NTP Chrony systemctl 时间 Linux timesyncd

1.时间同步协议服务对比

在网络中,常用的时间同步协议服务主要有以下几种:

特性 NTPd systemd-timesyncd Chrony
协议 NTP SNTP NTP
说明 NTPd(Network Time Protocol daemon)是最经典的时间同步服务,使用NTP协议来同步系统时间。
它支持复杂的配置,能够处理多个时间源,并且具有较高的精度。
NTPd通常用于需要高精度时间同步的场景,如数据中心、科研机构等。
systemd-timesyncd是 systemd 项目的一部分,是一个轻量级的时间同步服务。
它使用SNTP(Simple Network Time Protocol)协议,配置简单,适合大多数桌面和服务器环境。
systemd-timesyncd 通常用于不需要高精度时间同步的场景,适合大多数普通用户和小型服务器。
Chrony是一个现代化的时间同步服务,支持NTP协议,并且具有更好的网络适应性。
它在不稳定的网络环境下表现更好,能够快速同步时间,并且支持离线模式。
Chrony 适合移动设备、虚拟机以及网络不稳定的环境。
精度 ⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐⭐
配置复杂度 ⭐⭐⭐⭐ ⭐⭐
网络适应性 ⭐⭐⭐ ⭐⭐ ⭐⭐⭐⭐⭐
适用场景 数据中心、科研机构 桌面、小型服务器 移动设备、虚拟机、不稳定网络
优点 高精度、支持复杂配置 轻量级、易于配置 快速同步、适应不稳定网络
缺点 配置复杂、对网络稳定性要求高 精度较低 功能相对较少

图标说明:

  • ⭐:表示程度,星星越多表示越强。
  • 协议:NTP(Network Time Protocol)、SNTP(Simple Network Time Protocol)。
  • 网络适应性:指在网络不稳定环境下的表现。

根据你的具体需求和环境,可以选择合适的时间同步服务;选择建议:

  • 如果你需要高精度的时间同步,且网络环境稳定,可以选择 NTPd
  • 如果你需要一个轻量级、易于配置的时间同步服务,且不需要极高的精度,可以选择 systemd-timesyncd
  • 如果你的网络环境不稳定,或者你需要在移动设备或虚拟机上同步时间,Chrony是一个更好的选择。

2.使用

操作环境(银河麒麟):

NAME="Kylin Linux Advanced Server"
VERSION="V10 (Halberd)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Halberd)"
ANSI_COLOR="0;31"

2.1 使用NTPd

2.1.1 安装 NTPd

先停止并禁用chronydsystemd-timesyncd这些服务,以避免冲突:

systemctl stop chronyd
systemctl disable chronyd
systemctl stop systemd-timesyncd
systemctl disable systemd-timesyncd安装命令:

安装:

yum install ntp

2.1.2 配置 NTPd

NTPd 的配置文件位于 /etc/ntp.conf,编辑配置文件:

vim /etc/ntp.conf

示例配置:

# 指定NTP服务器(可以添加多个)
server ntp.aliyun.com iburst
server ntp1.tencent.com iburst
server ntp.ubuntu.com iburst

# 允许本地客户端同步时间
restrict 127.0.0.1
restrict ::1

# 允许特定网段的客户端同步时间(可选)
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

# 启用日志记录
logfile /var/log/ntp.log
  • server:指定 NTP 服务器地址,iburst 表示快速同步。
  • restrict:控制哪些客户端可以访问 NTP 服务。
    • nomodify:客户端不能修改服务器配置。
    • notrap:客户端不能使用陷阱服务。
  • logfile:指定日志文件路径。

2.1.3 启动并启用 NTPd 服务

启动 NTPd 服务:

systemctl start ntpd

设置开机自启动:

systemctl enable ntpd

2.1.4 检查 NTPd 状态

查看服务状态:

systemctl status ntpd

查看时间同步状态:

ntpq -p

输出示例:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp.aliyun.com  10.137.38.86     2 u   10   64  377    10.234  -0.123   0.456
 ntp1.tencent.com 10.137.38.86     2 u   12   64  377    12.345  +0.456   0.789
  • remote:NTP 服务器的地址。
  • refid:参考时钟的标识符。
  • st:层级(Stratum),数值越小,精度越高。
  • delay:延迟时间(单位:毫秒)。
  • offset:时间偏移量(单位:毫秒)。
  • jitter:时间抖动(单位:毫秒)。

2.1.5 手动同步时间

如果需要立即同步时间,可以使用以下命令:

ntpdate ntp.aliyun.com

2.1.6 防火墙配置(可选)

如果启用了防火墙,需要允许 NTP 服务的端口(UDP 123):

sudo firewall-cmd --add-service=ntp --permanent
sudo firewall-cmd --reload

2.1.7 验证时间同步

使用以下命令查看当前系统时间:

date

或者查看详细的同步状态:

timedatectl

2.2 使用systemd-timesyncd

2.2.1 检查systemd-timesyncd状态

注意:systemd-timesyncd 通常是作为 systemd的一部分预装的

先停止并禁用 NTPdchronyd这些服务,以避免冲突:

systemctl stop ntpd
systemctl disable ntpd
systemctl stop chronyd
systemctl disable chronyd

查看状态:

systemctl status systemd-timesyncd

启动:

systemctl start systemd-timesyncd

设置开机自启动:

systemctl enable systemd-timesyncd

2.2.2 配置 systemd-timesyncd

systemd-timesyncd的配置文件位于 /etc/systemd/timesyncd.conf,编辑配置文件:

vim /etc/systemd/timesyncd.conf

示例配置:

[Time]
# 指定NTP服务器(可以添加多个,用空格分隔)
NTP=ntp.aliyun.com ntp1.tencent.com

# 是否启用NTP服务
NTP=yes

# 是否启用FallbackNTP(备用NTP服务器)
FallbackNTP=ntp.ubuntu.com

# 是否启用RootDistanceMaxSec(最大根距离)
RootDistanceMaxSec=5
  • NTP:指定时间服务器(例如阿里云、腾讯云等公共NTP服务器)。
  • FallbackNTP:当主NTP服务器不可用时,使用的备用服务器。
  • RootDistanceMaxSec:设置最大时间同步误差(单位:秒)。

2.2.3 重启服务使配置生效

修改配置文件后,需要重启 systemd-timesyncd服务:

systemctl restart systemd-timesyncd

2.2.4 检查时间同步状态

查看时间同步状态:

timedatectl timesync-status

输出示例:

       Server: 203.107.6.88 (time1.aliyun.com)
Poll interval: 4min 16s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 2
    Reference: A8937B5
    Precision: 1us (-25)
Root distance: 8.338ms (max: 5s)
       Offset: -3.593ms
        Delay: 50.081ms
       Jitter: 21.013ms
 Packet count: 4
    Frequency: +69.004ppm

2.2.5 其他常用命令

查看当前系统时间状态:

timedatectl status

手动同步时间:

sudo systemctl restart systemd-timesyncd

禁用 systemd-timesyncd

sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd

2.3 使用Chrony

2.3.1 安装 Chrony

先停止并禁用 NTPdsystemd-timesyncd这些服务,以避免冲突:

sudo systemctl stop ntpd
sudo systemctl disable ntpd
sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd

安装命令:

yum install chrony

2.3.2 配置 Chrony

Chrony 的配置文件位于 /etc/chrony.conf,编辑配置文件:

sudo vim /etc/chrony.conf

示例配置:

# 指定NTP服务器(可以添加多个)
server ntp.aliyun.com iburst
server ntp1.tencent.com iburst
server ntp.ubuntu.com iburst

# 允许本地客户端同步时间
allow 127.0.0.1
allow ::1

# 允许特定网段的客户端同步时间(可选)
allow 192.168.1.0/24

# 启用日志记录
logdir /var/log/chrony
  • server:指定 NTP 服务器地址,iburst 表示快速同步。
  • allow:允许哪些客户端访问 Chrony 服务。
  • logdir:指定日志文件目录。

2.3.3 启动并启用 Chrony 服务

启动 Chrony 服务:

systemctl start chronyd

设置开机自启动:

systemctl enable chronyd

2.3.4 检查 Chrony 状态

查看服务状态:

systemctl status chronyd

查看时间同步状态:

chronyc tracking

输出示例:

Reference ID    : C0A80101 (192.168.1.1)
Stratum         : 3
Ref time (UTC)  : Thu Oct 12 12:34:56 2023
System time     : 0.000123456 seconds fast of NTP time
Last offset     : +0.000123456 seconds
RMS offset      : 0.000123456 seconds
Frequency       : 1.234 ppm fast
Residual freq   : +0.123 ppm
Skew            : 0.123 ppm
Root delay      : 0.0123456 seconds
Root dispersion : 0.0123456 seconds
Update interval : 64.0 seconds
Leap status     : Normal
  • Reference ID:参考时钟的标识符。
  • Stratum:层级,数值越小,精度越高。
  • System time:系统时间与 NTP 时间的偏差。

2.3.5 手动同步时间

如果需要立即同步时间,可以使用以下命令:

chronyc makestep

2.3.6 防火墙配置(可选)

如果启用了防火墙,需要允许 NTP 服务的端口(UDP 123):

sudo firewall-cmd --add-service=ntp --permanent
sudo firewall-cmd --reload

2.3.7 验证时间同步

使用以下命令查看当前系统时间:

date

或者查看详细的同步状态:

timedatectl

2.4 手动设置时间

手动设置时间命令:

# 设置时间为:2024年03月08日00:44
date 010403442025

手动使用工具同步时间:

# 安装ntpdate
yum install ntpdate
# 设置时区
timedatectl set-timezone Asia/Shanghai
# 手动同步时间(这里用的阿里的)
ntpdate ntp.aliyun.com

标签:systemd,同步,NTP,Chrony,systemctl,时间,Linux,timesyncd
From: https://www.cnblogs.com/youngyajun/p/18652117

相关文章

  • Linux 内核中网络接口的创建与管理
    在Linux系统中,网络接口(如 eth0、wlan0 等)是计算机与外部网络通信的桥梁。无论是物理网卡还是虚拟网络接口,它们的创建和管理都依赖于Linux内核的复杂机制。本文将深入探讨Linux内核中网络接口的创建过程、命名规则、路由选择以及内核如何将网络接口映射到实际的硬件设备......
  • Linux_centsos部署前后端分离项目
    1.1.创建目录并上传文件在/usr/local目录下创建Java目录,用于存放后续所有的安装文件。mkdir/usr/local/java1.2.解压JDK压缩包#解压文件sudotar-zxvfjdk-8u151-linux-x64.tar.gz-C/usr/local/java1.3.配置JDK环境变量执行vim/etc/profile命令,在文件最后添加如......
  • Linux系统centos7,怎么配置yum,以及Errno 14 curl#37 - “Couldn‘t open file /dvd/App
    情况:我手上是一个删掉Windows系统,依靠centos7重装了Linux系统的电脑,里面是空的,什么都没有。加上在今年6月份,上游已经放弃centos7的维护,之前的一些源和网站都没用,那些教程也就没用了。步骤:1.进入root账号,这样才有足够权限做后面的事 2.检查网络是否可以连接外网。拿阿......
  • Linux如何解压gz、tar.gz、zip、tar、tar.bz2等压缩文件
    Linux如何解压gz、tar.gz、zip、tar、tar.bz2等压缩文件Debian、Ubuntu、CentOS、RedHat等Linux解压gz、tar.gz、zip、tar、bz2格式压缩文件的命令。.gz文件解压与压缩1、解压: gzip-dFileName.gz2、压缩:将当前目录的每个文件压缩成.gz文件: gzip*......
  • VsCode SSH 免密连接Linux服务器的正确操作(踩了许多坑,总结出来的)
    Window端:打开WindowPowerShell输入ssh-keygen-trsa得到公钥:C:\Users\admin.ssh\id_rsa.pubLinux服务器端:nano~/.ssh/authorized_keys复制粘贴公钥,保存退出不必更改authorized_keys文件权限sudonano/etc/ssh/sshd_config#StrictModesyes改成StrictMod......
  • linux下进程或线程如何通信?
    管道fifo无名管道(内存文件):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程之间使用。进程的亲缘关系通常是指父子进程关系。有名管道(FIFO文件,借助文件系统):有名管道也是半双工的通信方式,但是允许在没有亲缘关系的进程之间使用,管道是先进先出的......
  • Linux性能优化策略:让你的系统运行如飞
    在Linux系统的世界里,内存就如同人体的血液,为系统的运行提供着源源不断的动力。然而,随着系统的日益复杂和应用程序的不断增多,内存管理变得愈发关键。如果对内存性能不加优化,系统就可能会像一个疲惫不堪的运动员,逐渐变得迟缓、卡顿,甚至出现崩溃的情况。因此,掌握Linux内存性能......
  • linux下杀进程与解除端口占用
    linux下杀进程与解除端口占用注意:以下即是在centos7.6环境下测试通过,其他linux版本请自行测试杀进程,解除端口和目录占用#根据端口号查询进程lsof-i:80netstat-anp|grep80netstat-tuln|grep80ss-tuln|grep80ps-ef|grepnginx.confps-aux|grepnginx.......
  • linux命令行连接Postgresql常用命令
    1.linux系统命令行连接数据库命令psql-hhostname-pport-Uusername-ddatabasename-h 主机名或IP地址  -p 端口  -U 用户名  -d 连接的数据库2.查询数据库表命令selectversion()  #查看版本号\dg     #查看用户\l       #查......
  • RAG实战:本地部署ragflow+ollama(linux)
    1.部署ragflow1.1安装配置docker因为ragflow需要诸如elasticsearch、mysql、redis等一系列三方依赖,所以用docker是最简便的方法。docker安装可参考Linux安装Docker完整教程,安装后修改docker配置如下:vim/etc/docker/daemon.json{"builder":{"gc":{"defau......