百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Linux - 时间服务器 - Chrony CentOS

sinye56 2025-02-10 14:12 8 浏览 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
#    选择日志文件要记录的信息

相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: