Loading

ntp同步时间的问题记录

1. 问题记录

#时间同步配置指南

#问题描述

错误提示:`“the NTP socket is in use, exiting”` 表示 NTP 套接字正在被使用,通常是因为系统中的 `ntpd` 服务已经在运行,而 `ntpdate` 命令和 `ntpd` 服务不能同时使用端口 123。

#解决步骤

#1. 停止 `ntpd` 服务

在执行 `ntpdate` 命令之前,确保 `ntpd` 服务已经停止。


-  对于 CentOS 7 及之前版本:
sudo service ntpd stop



- 对于 CentOS 8 及之后版本:

  sudo systemctl stop ntpd


# 2. 使用 `ntpdate` 进行时间同步

执行 `ntpdate` 进行手动时间同步。以下是一些常用的 NTP 服务器地址


sudo ntpdate pool.ntp.org

sudo ntpdate time.nist.gov


# 3. 禁用 `ntpd` 服务的自动启动

如果不希望 `ntpd` 服务在系统启动时自动启动,可以禁用其开机自启:

- 对于 CentOS 8 及之后版本:

  sudo systemctl disable ntpd


# 4. 设置计划任务(Crontab)

如果需要定期同步时间,可以将 `ntpdate` 命令加入到计划任务中。编辑 crontab 文件:


sudo crontab -e


在 crontab 文件中添加一行,例如每天凌晨 2 点同步时间:


0 2 * * * /usr/sbin/ntpdate pool.ntp.org


## 现代时间同步服务

为了实现持续的时间同步,建议使用以下现代时间同步服务:

### 1. 使用 `chrony`

`chrony` 是一种现代且高效的时间同步服务。安装和配置 `chrony` 的步骤如下:

- 安装 `chrony`:
  - 对于 CentOS 7:
    ```bash
    sudo yum install chrony
    ```
  - 对于 CentOS 8:
    ```bash
    sudo dnf install chrony
    ```
-- 启动 `chronyd` 服务:
  ```bash
  sudo systemctl start chronyd
  • 设置 chronyd 开机自启:
    sudo systemctl enable chronyd
    

2. 使用 systemd-timesyncd

systemd-timesyncd 是 systemd 的一部分,提供简单的时间同步功能。启用它的方法如下:

sudo systemctl start systemd-timesyncd
sudo systemctl enable systemd-timesyncd

排错提示

  • 网络问题:确保防火墙设置允许 123 端口的流量。
  • NTP 服务器可用性:确保所使用的 NTP 服务器地址可访问,有时可能需要选择不同的服务器或使用内部网络的 NTP 服务器。

参考文档

posted @ 2024-07-26 12:23  夷某蓁  阅读(339)  评论(0)    收藏  举报