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

Linux - 时间服务器 - Chrony CentOS

qiyuwang 2024-11-03 16:28 30 浏览 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
#    选择日志文件要记录的信息

相关推荐

基于Docker方式安装与部署Camunda流程引擎

1Camunda简介官网:https://docs.camunda.org/manual/7.19/installation/docker/Camunda是一个轻量级、开源且高度灵活的工作流和决策自...

宝塔Linux面板如何部署Java项目?(宝塔面板 linux)

通过宝塔面板部署Java还是很方便的,至少不需要自己输入tomcat之类的安装命令了。在部署java项目前,我还是先说下目前的系统环境,如果和我的系统环境不一样,导致部署不成功,那你可能需要去找其他资...

浪潮服务器如何用IPMI安装Linux系统

【注意事项】此处以浪潮服务器为例进行演示所需使用的软件:Chrome浏览器个人PC中需要预先安装java,推荐使用jdk-8u181-windows-x64.exe【操作步骤】1、在服务器的BIOS中...

Centos7环境Hadoop3集群搭建(hadoop集群环境搭建实验报告)

由于项目需要存储历史业务数据,经过评估数据量会达到100亿以上,在原有mongodb集群和ES集群基础上,需要搭建Hbase集群进行调研,所以首先总结一下Hadoop集群的搭建过程。一、三个节点的集群...

Hadoop高可用集群搭建及API调用(hadoop高可用原理)

NameNodeHA背景在Hadoop1中NameNode存在一个单点故障问题,如果NameNode所在的机器发生故障,整个集群就将不可用(Hadoop1中虽然有个SecorndaryNameNo...

使用Wordpress搭建一个属于自己的网站

现在开源的博客很多,但是考虑到wordpress对网站的seo做的很好,插件也多。并且全世界流量排名前1000万的网站有33.4%是用Wordpress搭建的!所以尝试用Wordpress搭建一个网站...

Centos 安装 Jenkins(centos 安装ssh)

1、Java安装查看系统是否已安装Javayumlistinstalled|grepjava...

Java教程:gitlab-使用入门(java中的git)

1导读本教程主要讲解了GitLab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建GitLab服务,并且可以GitLab中的组、权限、项目自主操作...

Dockerfile部署Java项目(docker部署java应用)

1、概述本文主要会简单介绍什么是Docker,什么是Dockerfile,如何安装Docker,Dockerfile如何编写,如何通过Dockerfile安装jar包并外置yaml文件以及如何通过do...

如何在Eclipse中搭建Zabbix源码的调试和开发环境

Zabbix是一款非常优秀的企业级软件,被设计用于对数万台服务器、虚拟机和网络设备的数百万个监控项进行实时监控。Zabbix是开放源码和免费的,这就意味着当出现bug时,我们可以很方便地通过调试源码来...

Java路径-02-Java环境配置(java环境搭建及配置教程)

1Window环境配置1.1下载...

35.Centos中安装python和web.py框架

文章目录前言1.Centos7python:2.Centos8python:3.进行下载web.py框架然后应用:4.安装好之后进行验证:5.总结:前言...

《我的世界》服务器搭建(我的世界服务器如何搭建)

1.CentOS7环境1.1更改YUM源#下载YUM源文件curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com...

CentOS 7 升级 GCC 版本(centos7.4升级7.5)

1.GCC工具介绍GCC编译器:...

Linux安装Nginx详细教程(linux安装配置nginx)

环境准备1.因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来。命令:yuminstallgcc-c++显示完毕,表示安装完成:2.Nginx的http模块需要...

取消回复欢迎 发表评论: