NTP
(Network Time Protocol
,网络时间协议)是用来使网络中的各个计算机保持时间同步的一种协议。它的用途是把计算机的时钟同步到 UTC(Coordinated Universal Time
,世界标准时间),其精度在局域网内可达0.1ms
,在互联网上绝大多数的地方其精度可以达到 1~50ms
。
服务简介
Chrony
应用本身已经有几年了,是网络时间协议(NTP
)的另一种实现。一直以来众多发行版里标配的都是ntpd
服务,自 RHEL 7
起,Chrony
作为标配服务,不过旧 ntpd
服务依旧可用。
Chrony
可以同时做为客户端和服务端。默认安装完后有两个程序 chronyd
和 chronyc
。chronyd
是一个在系统后台运行的守护进程,chronyc
是用来监控性能和配置参数的实用工具。
小贴士:Chrony 基于UDP
报文进行传输,使用的端口号为323
。
服务部署
提示:本文演示环境为 CentOS 7.5,其他发行版操作大同小异。
环境准备
因涉及到网络操作,因此需要禁用防火墙和临时禁用 SELinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
使用时间同步,需要先确定时区正确,若在中国,请统一调整为 “中国/上海”
# timedatectl
Local time: Thu 2018-08-01 04:50:52 PDT
Universal time: Thu 2018-08-01 11:50:52 UTC
RTC time: Thu 2018-08-01 11:52:42
Time zone: America/Los_Angeles (PDT, -0700)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun 2018-03-11 01:59:59 PST
Sun 2018-03-11 03:00:00 PDT
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2018-11-04 01:59:59 PDT
Sun 2018-11-04 01:00:00 PST
列出全部时区
sudo timedatectl list-timezones
调整时区为【中国/上海】,时区中无【中国/北京】选项
sudo timedatectl set-timezone Asia/Shanghai
服务安装
安装 chrony
软件包
sudo yum install chrony -y
小贴士:chrony
在base
源中,若无法安装请检查yum
源文件。
使用 chrony
服务进行网络时间同步(重点)
sudo timedatectl set-ntp true
小贴士:从yum
源安装的chrony
默认配置文件已经有同步服务器,但是默认为海外。
服务配置
配置文件位于 /etc/chrony.conf
中,在 Debian 及其衍生版本(如:Ubuntu)上,默认配置文件路径在 /etc/chrony/chrony.conf
中。
对于绝大多数环境而言,无需修改配置文件即可直接投入使用。使用命令
chronyc sources
可以查询现在系统中配置的同步源:
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* dns2.synet.edu.cn 1 10 377 843 -86us[ -208us] +/- 7819us
^- electrode.felixc.at 2 10 377 983 -15ms[ -15ms] +/- 103ms
^- ntp6.flashdance.cx 2 10 377 594 -37ms[ -37ms] +/- 151ms
^+ time.neu.edu.cn 1 10 273 935 -79us[ -199us] +/- 7960us
使用命令
chronyc sourcestats
可以查询当前源状态信息:
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev
==============================================================================
dns2.synet.edu.cn 11 7 172m +0.009 0.045 +57us 105us
electrode.felixc.at 62 30 18h +0.173 0.166 -15ms 6831us
ntp6.flashdance.cx 21 9 344m +0.353 0.557 -34ms 3837us
time.neu.edu.cn 6 3 104m -0.020 0.095 -65us 64us
修改配置文件中的源位置后需要重载
sudo chronyc reload sources
启动 chrony
服务
sudo systemctl enable chronyd
sudo systemctl start chronyd
Chrony 内网实例
案例背景
在企业中,为了安全,只有少数机器会暴露在外网上,其他机器只有内网网络,但部分服务需要 C/S
时间的误差在一定内才能正常运行。
解决方案
在这种情况下可以使用 chrony
服务进行内网时间同步。
- 步骤 1:
先在可以连接外网的机器上配置好外网同步服务器。
具体步骤如上,此处省略。
- 步骤 2:
在内网全部机器上配置时间同步客户端。
sudo yum install chrony -y
修改配置文件
sudo vim /etc/chrony.conf
配置内网时间同步服务器,加入以下内容(以实际机器地址为准)
server 192.168.31.200 iburst
启动 chrony
服务
sudo systemctl enable chronyd
sudo systemctl start chronyd
启动默认使用网络同步时间
sudo timedatectl set-ntp true
客户端同步验证
chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 192.168.31.200 3 6 372 173 -54.1s[ -54.1s] +/- 12.6s
附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2023-09-06 10:19 AM