当前位置: 首页 > news >正文

CENTOS 7服务器chronyd同步本地时间服务器时间设置详解

本文主要介绍通过组件chronyd设置本地时间服务器作为时钟源服务端和客户端的配置

一、架构介绍

1、场景一

序号服务器名称作用网络方式
1外网服务器同步网络时间与内网服务器1通过端口通讯通过脚本发送时间给内网服务器
2内网服务器1同步外网服务器时间并作为内网时间服务器与外网服务器通过端口通讯,与内网服务器2可以相互ping通1.通过脚本获取外网服务器时间
2.通过设置/etc/chrony.conf实现作为时间服务器功能
3内网服务器2同步内网服务器时间与内网服务器1可以相互ping通通过设置/etc/chrony.conf实现同步时间服务器时间

2、场景二

序号服务器名称作用网络方式
1外网服务器同步网络时间与内网服务器可以相互ping通通过设置/etc/chrony.conf实现作为时间服务器功能和同步网络时间
2内网服务器同步外网服务器时间并作为内网时间服务器与外网服务器可以相互ping通,但上不了外网通过设置/etc/chrony.conf实现同步时间服务器时间

二、场景一实现

1、外网服务器发送时间脚本

外网服务器需要定时通过8877端口发送时间数据。

1.1 创建发送脚本:vi /usr/local/bin/send_time.sh

#!/bin/bash
# 在服务器B上运行
SERVER_IP="192.168.1.100" # 目标服务器A的IP
PORT=8877

# 获取当前时间并格式化
CURRENT_TIME=$(date "+%Y-%m-%d %H:%M:%S")

# 连接到远程服务器的8877端口
echo "$CURRENT_TIME" | nc $SERVER_IP $PORT

echo "已发送时间 $CURRENT_TIME 到 ${SERVER_IP}:${PORT}"

1.2 设置脚本执行权限:chmod +x /usr/local/bin/send_time.sh

1.3配置定时任务

crontab -e

* * * * * /usr/local/bin/send_time.sh >> /var/log/send_time.log 2>&1

1.4 查看日志验证发送情况:

tail -f /var/log/send_time.log

2、内网服务器1创建监听脚本,用于接收并设置时间

2.1 创建脚本/usr/local/bin/listen_time.sh

vim /usr/local/bin/listen_time.sh

#!/bin/bash
# 在服务器A上运行(IP: 192.168.1.100)
PORT=8877
INTERFACE="0.0.0.0" # 监听所有网卡

echo "开始在 ${INTERFACE}:${PORT} 监听时间同步请求..."
while true; do
# 明确指定监听所有IP的8877端口
TIME=$(nc -l ${INTERFACE} ${PORT})

if [[ "$TIME" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}\ [0-9]{2}:[0-9]{2}:[0-9]{2}$ ]]; then
echo "[$(date)] 接受到时间: $TIME"
sudo date -s "$TIME"
else
echo "[$(date)] 错误: 无效时间格式 '$TIME'"
fi
done

2.2 给脚本赋权:

chmod +x /usr/local/bin/listen_time.sh

2.3为脚本 配置systemd服务

vim /etc/systemd/system/listen_time.service

[Unit]
Description=Listen for Time Updates on Port 8877
After=network.target

[Service]
ExecStart=/usr/local/bin/listen_time.sh
Restart=always

[Install]
WantedBy=multi-user.target

2.4 配置开机自启动

--开机自启动

systemctl enable listen_time.service

---启动服务

systemctl start listen_time.service

2.5 测试内网服务器1的监听服务

在内网服务器1上查看日志,确认是否接收到时间

journalctl -u listen_time.service -f

3、配置内网服务器1为内网NTP服务器

3.1 vim /etc/chrony.conf

## 允许同步网络时间

allow 192.168.1.0/24

allow all#表示允许所有客户端来同步本机时间。

local stratum 10## 本机不同步任何主机的时间,本机作为时间源。(少了这一句,时钟源就配置有问题)

3.2 重启服务生效

systemctl restart chronyd

4、同步时间到内网服务器2

4.1 vim /etc/chrony.conf

server 192.168.1.2 iburst## 本机立即同步主机的时间,其中192.168.1.2 为外网服务器的IP 地址。

4.2 重启服务生效

systemctl restart chronyd

三、场景二实现

1、外网服务器配置,作为时间服务器,称为服务端


vim /etc/chrony.conf

## 允许同步网络时间

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

server 2.rhel.pool.ntp.org iburst
server 3.rhel.pool.ntp.org iburst

allow 192.168.1.0/24

allow all#表示允许所有客户端来同步本机时间。

local stratum 10## 本机不同步任何主机的时间,本机作为时间源。(少了这一句,时钟源就配置有问题)

systemctl restart chronyd

2、内网服务器配置,同步时间服务器时间,称为客户端


vim /etc/chrony.conf

server 192.168.1.2 iburst## 本机立即同步主机的时间,其中192.168.1.2 为外网服务器的IP 地址。

3、修改配置后,服务端和客户端重启生效:


systemctl restart chronyd

4、在客户端上检查时间是否同步:


timedatectl

5、在客户端上检查时间源配置是否正确:


chronyc sources -v

http://www.cnnetsun.cn/news/17822.html

相关文章:

  • 每周技术加速器:为什么下一代AI的竞争是“上下文操作系统“之争?
  • AR远程指导:工业行业的新型生产力引擎
  • 45、Samba与GNU GPL许可证:操作系统特定问题与开源许可详解
  • 行为面试问题及回答策略——软件测试专题
  • 29、深入探讨Samba与多协议网络的集成
  • 协议翻译大师:耐达讯自动化EtherCAT转Devicenet,电动缸的‘毫秒级指令执行专家’
  • 调试复杂、适配难?耐达讯自动化Ethercat转Devicenet让继电器通讯少走弯路
  • Sentinel系统保护规则深度解析
  • 全球创始人IP+AI万人峰会:赋能与精神滋养并重,引领2026增长新范式
  • 基于Web的客户关系管理系统的设计与实现开题报告(1)
  • 三菱FX PLC下载线驱动安装终极指南:快速解决通信连接问题
  • NetAssistant:终极网络调试解决方案的完整指南
  • 013的加密世界权威指南_第一部分
  • 完整指南:5大核心特性带你玩转Font Awesome 7
  • UtilEmpty空值检查工具类
  • 革命性跨平台EPUB阅读器:智能同步让阅读无处不在
  • 【完整源码+数据集+部署教程】动力电池等检测系统源码分享[一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]
  • TDK/INVENSENSE/应美盛传感器ICM-42670-P的概述
  • 《公共管理学》2025网课答案
  • 无需复杂配置!在家也能远程操控 Kali 桌面,cpolar这招太实用了
  • 哪吒监控:打造企业级服务器监控体系的5大核心优势
  • 终极指南:5分钟快速部署IoTSharp物联网平台
  • Spring Boot 4.0 + MyBatis-Plus 实战响应式编程的能力实战
  • 2026 等保测评趋势:从被动合规到主动安全的转型路径
  • 微服务架构设计 - 可降级设计
  • 基于SpringBoot的建金粮食供应链管理系统的设计与实现计算机毕业设计项目源码文档
  • 计算机图形学·24 消隐1 深度缓存-扫描线深度缓存-区间扫描线深度缓存
  • 计算机图形学·25 消隐2 区域子分算法-光线投射算法
  • MinerU升级终极指南:避坑技巧与实战解决方案
  • Archery数据库管理平台:5大核心功能深度解析与实战配置指南