linux进阶 --- chrony服务器

Chrony是一个开源的NTP客户端和服务器软件,用于系统时钟与时间服务器同步。文章介绍了如何安装、配置Chrony,包括设置时间源、调整系统时钟、启用RTC同步等功能,并详细解析了chronyc命令和时间源状态。此外,还讨论了时间同步的层级概念以及相关命令的使用。

chrony服务器

(1)定义:

是一个开源自由的网络时间协议NTP的客户端与服务器端软件。让计算机保持系统时钟与时钟服务器(NTP)同步。chrony由两个程序组成,chronyd(服务器端)chronyc(客户端)

  • chronyd后台运行的守护进程,用于调整内核中运行的系统时钟和时政服务器同步,它确定了计算机增减时间的比率,并对此进行平滑调整。
  • chronyc:提供用户界面,用于监控性能并进行多样化的配置。可在chronyd实例控制的计算机上工作,也可在一台不同的远程计算机工作
查找软件安装情况
[root@localhost ~]# rpm -qa | grep chrony
chrony-3.3-3.el8.x86_64

(2)安装配置

yum -y install chrony --- 安装
systemctl enable chronyd --- 开机自启动
systemctl start chronyd --- 启动

chrony的配置文件是:/etc/chrony.conf

详细内容:

# 使用 pool.ntp.org 项目中的公共服务器。以server开,理论上想添加多少时间服务器都可以。

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst

# 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。
driftfile /var/lib/chrony/drift

# 如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进。
makestep 1.0 3

# 启用实时时钟(RTC)的内核同步。
rtcsync

# 通过使用 hwtimestamp 指令启用硬件时间戳
hwtimestamp *

# 增加调整系统时钟所需的最小可选源数。
minsources 2

# 即使未同步到时间源,也要提供时间。
# Serve time even if not synchronized to a time source.

<think>嗯,用户现在问的是如何设置chrony的自动启动功能。根据之前的对话历史,我之前已经详细讲解了如何配置chrony的同步周期,包括编辑配置文件、调整轮询参数、使用makestep以及重启服务等步骤。现在用户的问题转向了服务的自动启动,也就是确保chronyd在系统启动时自动运行。 首先,我需要回忆一下在Linux系统中,如何设置服务开机自启。通常,systemd是现在主流的初始化系统,所以应该使用systemctl命令来管理服务。用户之前的问题中提到的引用里,引用[1]、[2]都提到了systemctl start和enable的命令,所以需要确认这些步骤是否正确。 用户提供的引用中有提到启动和启用chronyd服务,例如引用[1]中的命令是sudo systemctl start chronyd和sudo systemctl enable chronyd,而引用[2]里也有类似的命令。不过,我需要注意不同的Linux发行版中,服务名称可能有所不同,比如有的可能叫chrony而不是chronyd。例如,在Ubuntu系统中,服务名通常是chrony,而CentOS/RHEL中是chronyd。所以,在回答时需要提醒用户注意这一点,或者给出通用的解决方法,比如检查服务名称。 另外,用户可能是在不同的系统环境下操作,所以需要明确说明如何确定正确的服务名称。例如,可以通过systemctl list-unit-files | grep chrony来查找正确的服务名。这点在之前的回答中没有提到,可能需要补充进去,以避免用户因为服务名称不对而遇到问题。 然后,配置自动启动的步骤应该是:1. 启用服务(systemctl enable),2. 启动服务(systemctl start),3. 验证状态(systemctl status)。这些步骤在引用中都有提到,但需要整理成清晰的步骤,并加入验证的部分,比如检查服务是否已启用,以及是否正在运行。 用户可能还会关心如何确认自动启动是否配置成功。这时候需要指导用户使用systemctl is-enabled chronyd(或chrony)命令来检查,确保输出是enabled。此外,重启系统后,可以通过systemctl status来确认服务是否自动启动,这也是一个重要的验证步骤。 在之前的回答中,用户提到了配置文件的位置(/etc/chrony.conf)和相关的参数设置,但自动启动主要涉及systemd的服务管理,所以需要将重点放在systemctl命令的使用上,而不是配置文件的内容。不过,用户可能有疑问,是否在配置文件中有什么参数会影响服务的启动,但根据chrony的文档,自动启动是通过systemd的单元文件来控制的,与chrony.conf中的配置无关。因此,不需要修改配置文件来设置自动启动,只需要使用systemctl即可。 另外,用户可能在之前的步骤中已经配置好了chrony,现在只是需要确保服务在启动时自动运行。所以需要强调,启用服务只需要一次,之后每次系统启动都会自动加载。 可能还需要注意权限问题,即使用sudo来执行这些命令,特别是enable和start操作,通常需要管理员权限。在引用中,用户给出的命令示例也使用了sudo,所以在回答中需要包含sudo,以避免权限不足的错误。 最后,用户的问题可能还隐含着如何确认chrony是否正常工作,除了自动启动外,可能还需要检查同步状态,比如使用chronyc tracking或chronyc sources -v。这部分在之前的回答中已经提到过,可以再次简要提及,作为验证的一部分。 总结一下,回答应该包括以下步骤: 1. 确定正确的服务名称(chronyd或chrony)。 2. 使用systemctl enable启用自动启动。 3. 使用systemctl start启动服务。 4. 验证服务状态和启用状态。 5. 可选的重启后验证。 同时需要注意不同发行版的差异,以及权限问题,确保用户能够正确执行命令。</think>### Chrony自动启动配置方法 #### 一、配置步骤 1. **确认服务名称** 不同Linux发行版中服务名称可能为`chronyd`或`chrony`,可通过以下命令查询: ```bash systemctl list-unit-files | grep -i chrony ``` 常见输出示例: ``` chronyd.service enabled ``` 2. **启用开机自启动** ```bash sudo systemctl enable chronyd # 若服务名为chronyd(如CentOS/RHEL) # 或 sudo systemctl enable chrony # 若服务名为chrony(如Ubuntu/Debian) ``` - 成功启用后显示:`Created symlink /etc/systemd/system/multi-user.target.wants/chronyd.service`[^3] 3. **立即启动服务** ```bash sudo systemctl start chronyd ``` 4. **验证服务状态** ```bash sudo systemctl status chronyd ``` - 正常状态显示:`Active: active (running)` - 检查是否已启用自启动: ```bash systemctl is-enabled chronyd # 输出应为"enabled" ``` --- #### 二、进阶验证 1. **重启系统后验证** 重启服务器并检查服务状态: ```bash sudo reboot # 重启后执行 systemctl status chronyd ``` 2. **同步功能验证** ```bash chronyc tracking # 查看时间同步状态 chronyc sources -v # 检查时间源及轮询间隔[^3] ``` --- #### 三、关联配置 若需修改服务参数(如监听端口、启动优先级),可编辑systemd单元文件: ```bash sudo vim /usr/lib/systemd/system/chronyd.service ``` 典型配置内容[^3]: ```ini [Unit] Description=chrony NTP daemon After=network.target [Service] ExecStart=/usr/sbin/chronyd -d -s PrivateTmp=yes ProtectSystem=full [Install] WantedBy=multi-user.target ``` --- #### 四、注意事项 1. **权限问题** - 所有`systemctl`操作需`sudo`权限 - 若服务启动失败,检查日志:`journalctl -u chronyd` 2. **防火墙配置** 若使用NTP协议同步,需开放UDP 123端口: ```bash sudo firewall-cmd --add-service=ntp --permanent sudo firewall-cmd --reload ``` --- #### 相关问题 1. 如何永久关闭chrony的自动启动功能? 2. chrony服务启动失败有哪些常见原因? 3. 如何自定义chrony的systemd单元文件参数?[^3]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨天_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值