百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux - 时间服务器 - Chrony CentOS

nanshan 2024-10-08 05:22 19 浏览 0 评论

前言

这篇文档是我写的第三个时间服务器文档,主要目的是为了堵上短板
虽然原本是为了CentOS 8 及以上版本系统准备的,但是我实在CentOS 7下操作的
又被吐槽脚本没判断了,话说这里改加些什么判断?怎么加判断?给个主意!
接下来估计还会写个Ubuntu上部署的文档,不过最近没空弄

Chrony 安装前置准备

#    检查系统是否安装有 Chrony 服务
rpm -qa | grep chrony
#    卸载 现存 NTP服务
yum -y remove chrony*

设定时区

#    方法1 :直接设定时区
timedatectl set-timezone Asia/Shanghai
#    方法2 :选单设定时区
tzselect
5
9
1
1
#    方法3 :将时区信息拷贝,覆盖原来的时区信息
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

安装 Chrony 服务

#    安装 Chrony 服务
sudo yum install -y chrony

启动 Chrony 服务

#    启动 Chrony 服务
sudo systemctl start chronyd.service
#    设置 Chrony 服务 为开机自启动
sudo systemctl enable chronyd.service
#    检查运行状态
sudo systemctl status chronyd.service
#    备用命令
#    停止 Chrony 服务
sudo systemctl stop chronyd.service
#    重启 Chrony 服务
sudo systemctl restart chronyd.service

Chrony 服务器端 配置

修改 Chrony.conf 配置文件

#    打开 Chrony.conf 文件
sudo nano /etc/chrony.conf
#    修改原文件 第 3~6 行,时间服务器内容
#    {
server ntp.aliyun.com iburst
server time1.cloud.tencent.com iburst
server 210.72.145.44 iburst
server time.windows.com iburst
#    }
#    修改原文件 第 26 行,时间服务器客户端地址范围
#    {
allow 172.16.0.0/16
#    }

#    方法2:
#   修改公网上游时间服务器地址
sed -i "s/0.centos.pool.ntp.org/ntp.aliyun.com/g" /etc/chrony.conf
sed -i "s/1.centos.pool.ntp.org/time1.cloud.tencent.com/g" /etc/chrony.conf
sed -i "s/2.centos.pool.ntp.org/210.72.145.44/g" /etc/chrony.conf
sed -i "s/3.centos.pool.ntp.org/time.windows.com/g" /etc/chrony.conf
#    修改本地时间客服端地址范围
sed -i "s/#allow 192.168.0.0/allow 172.16.0.0/g" /etc/chrony.conf

修改 Chrony 服务器端 配置

#    防火墙放行NTP服务
firewall-cmd --permanent --add-service=ntp && firewall-cmd --reload
#    重启 Chrony 服务
sudo systemctl restart chronyd.service
#    验证 Chrony 服务 是否正常启动,123端口被占用则表示成功启动
systemctl status ntpd | grep Active  ; netstat -tlunp | grep ntp
#    查看  Chrony 服务 时间同步状况
timedatectl status
#    开启网络时间同步
timedatectl set-ntp true
#    再次查看  Chrony 服务 时间同步状况
timedatectl status
#   验证时间同步 
chronyc sources -v
#    将当前日期时间写入BIOS
echo "SYNC_HWCLOCK=yes" >> /etc/sysconfig/ntpd  

Chrony 服务 时间同步状况

验证时间同步

测试 Chrony 时间服务器

#    在 Windows 端 操作
#    有跟踪信息表示成功,显示错误信息表示失败
w32tm /stripchart /computer:172.16.28.130
正在跟踪 172.16.28.130 [172.16.28.130:123]。
当前时间是 2023/10/13 11:25:45。
11:25:45, d:+00.0002497s o:-05.7888915s  [           *               |                           ]
11:25:47, d:+00.0008122s o:-05.9891112s  [           *               |                           ]
11:25:49, d:+00.0002198s o:-06.1898866s  [          *                |                           ]
11:25:51, d:+00.0008597s o:-00.0005125s  [                           *                           ]
11:25:53, d:+00.0008100s o:-00.0005389s  [                           *                           ]

Chrony 客户端 配置

修改 Chrony.conf 配置文件

#    打开 Chrony.conf 文件
sudo nano /etc/chrony.conf
#    修改原文件 第 3~6 行,时间服务器内容,将前面配置的 Chrony 服务器的地址写入
#    {
server 172.16.26.130 iburst
server ntp.aliyun.com iburst
#    }
#    修改原文件 第 26 行,时间服务器客户端地址范围
#    {
allow 172.16.0.0/16
#    }

#    方法2:
#   修改公网上游时间服务器地址
sed -i "s/0.centos.pool.ntp.org/172.16.26.130/g" /etc/chrony.conf
sed -i "s/1.centos.pool.ntp.org/ntp.aliyun.com/g" /etc/chrony.conf
sed -i "s/server 2.centos.pool.ntp.org/#server 1.centos.pool.ntp.org/g" /etc/chrony.conf
sed -i "s/server 3.centos.pool.ntp.org/#server 1.centos.pool.ntp.org/g" /etc/chrony.conf
#    修改本地时间客服端地址范围
sed -i "s/#allow 192.168.0.0/allow 172.16.0.0/g" /etc/chrony.conf

修改 Chrony 客户端 配置

#    重启 Chrony 服务
sudo systemctl restart chronyd.service
#    开启网络时间同步
timedatectl set-ntp true
#    查看  Chrony 服务 时间同步状况
timedatectl status
#   验证时间同步 
chronyc sources -v
#    将当前日期时间写入
echo "SYNC_HWCLOCK=yes" >> /etc/sysconfig/ntpd  

Chrony 常用命令

#    查看 NTP Servers
chronyc sources -v
#    查看 NTP Servers 状态
chronyc sourcestats -v
#    查看 NTP Servers 是否在线
chronyc activity -v
#    查看 NTP 详细信息
chronyc tracking -v 
#    强制同步时间
chronyc -a makestep

常见公网时间服务器

210.72.145.44 国家授时中心
ntp.aliyun.com 阿里云
time1.cloud.tencent.com 腾讯
s1a.time.edu.cn 北京邮电大学
s1b.time.edu.cn 清华大学
s1c.time.edu.cn 北京大学
s1d.time.edu.cn 东南大学
s1e.time.edu.cn 清华大学
s2a.time.edu.cn 清华大学
s2b.time.edu.cn 清华大学
s2c.time.edu.cn 北京邮电大学
s2d.time.edu.cn 西南地区网络中心
s2e.time.edu.cn 西北地区网络中心
s2f.time.edu.cn 东北地区网络中心
s2g.time.edu.cn 华东南地区网络中心
s2h.time.edu.cn 四川大学网络管理中心
s2j.time.edu.cn 大连理工大学网络中心
s2k.time.edu.cn CERNET桂林主节点
s2m.time.edu.cn 北京大学
ntp.sjtu.edu.cn 202.120.2.101 上海交通大学

↓ 没有任何技术含量 ↓

自动化安装脚本

#
# author: SRover Lee
# date: 2023/10/13
# Language: Shell Script
# description: 
#               基于CentOS 7.9 定制简易化 Chrony 安装脚本
#               1. 卸载所有 Chrony 安装版本残留
#               2. 设定时区 为 亚洲/上海
#               3. 安装 Chrony 必要组件
#               4. 启动 Chrony 服务
#               5. 设置 Chrony 为开机自启动 
#               6. 检查 Chrony 服务运行状态
#               7. 修改 Chrony.conf 配置文件
#               8. 设置 Chrony 为开机自启动
#               9. 启用 Chrony 服务
#              10. 验证 Chrony 服务
#              11. 将当前日期时间写入BIOS
#               
# 

echo ------------------- 卸载所有 Chrony 安装版本残留 -------------------------

#    检查系统是否安装有 Chrony 服务
rpm -qa | grep chrony
#    卸载 现存 NTP服务
yum -y remove chrony*

echo ------------------- 设定时区 为 亚洲/上海 -------------------------------

timedatectl set-timezone Asia/Shanghai

echo ------------------- 安装 Chrony 必要组件 -----------------------------

#    安装 Chrony 服务
sudo yum install -y chrony

echo ------------------- 启动 Chrony 服务 ------------------------------

#    启动 Chrony
sudo systemctl start chronyd.service

echo ------------------- 设置 Chrony 为开机自启动 --------------------------

#    设置 Chrony 为开机自启动
sudo systemctl enable chronyd.service

echo ------------------- 检查 Chrony 服务运行状态 --------------------------

#    检查 Chrony 服务运行状态
sudo systemctl status chronyd.service

echo ------------------- 修改 Chrony.conf 配置文件 ------------------------

#   修改公网上游时间服务器地址
sed -i "s/0.centos.pool.ntp.org/ntp.aliyun.com/g" /etc/chrony.conf
sed -i "s/1.centos.pool.ntp.org/time1.cloud.tencent.com/g" /etc/chrony.conf
sed -i "s/2.centos.pool.ntp.org/210.72.145.44/g" /etc/chrony.conf
sed -i "s/3.centos.pool.ntp.org/time.windows.com/g" /etc/chrony.conf

#    修改本地时间客服端地址范围
sed -i "s/#allow 192.168.0.0/allow 172.16.0.0/g" /etc/chrony.conf

echo ------------------- 启用 Chrony 服务 -------------------------------

#    防火墙放行NTP服务
firewall-cmd --permanent --add-service=ntp && firewall-cmd --reload
#    重启 Chrony 服务
sudo systemctl restart chronyd.service
#    开启网络时间同步
timedatectl set-ntp true

echo ------------------- 验证 Chrony 服务 -------------------------------

#    查看  Chrony 服务 时间同步状况
timedatectl status
#   验证时间同步 
chronyc sources -v

echo ------------------- 将当前日期时间写入BIOS ------------------------------

#    将当前日期时间写入BIOS
echo "SYNC_HWCLOCK=yes" >> /etc/sysconfig/ntpd 

echo ----------------------------------------------------------------
#   显示提示信息
echo 
echo 
echo 
echo 
echo 已经完成 Chrony 时间服务器 基础安装
echo 当前 系统环境 时间信息如下:
timedatectl status

Chrony.conf 配置文件内容 (附中文注释)

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#    使用 pool.ntp.org 项目中的公共服务器。以server开,理论上想添加多少时间服务器都可以
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

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

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
#    如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
#    启用实时时钟(RTC)的内核同步
rtcsync

# Enable hardware timestamping on all interfaces that support it.
#    通过使用 hwtimestamp 指令启用硬件时间戳
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2

# Allow NTP client access from local network.
#    指定 NTP 客户端地址,以允许或拒绝连接到扮演时钟服务器的机器
#allow 192.168.0.0/16

# Serve time even if not synchronized to a time source.
#local stratum 10

# Specify file containing keys for NTP authentication.
#    指定包含 NTP 身份验证密钥的文件
#keyfile /etc/chrony.keys

# Specify directory for log files.
#    指定日志文件的目录
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking
#    选择日志文件要记录的信息

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: