【Linux系列】NTP时间同步服务器搭建完整指南
在分布式系统和高可用环境中,时间同步是至关重要的。特别是对于银行、金融等关键业务系统,精准的时间同步不仅关系到系统的稳定性,还直接影响交易处理、日志管理、日终结算等功能。本文将介绍NTP(Network Time Protocol)服务的安装、配置及监控,帮助您实现高效的时间同步管理。

一、NTP服务简介
NTP(Network Time Protocol)是用于计算机系统时间同步的协议,通常用于保证在一个网络中所有机器的时间保持一致。通过与时间服务器进行通信,NTP协议能够精准地同步各设备的系统时间。它能够容忍网络延迟和时钟漂移,精确度高达毫秒级别,甚至在复杂网络中也能保持稳定。
二、NTP服务器端安装与配置
1. 安装ntpd服务
首先,确保您的服务器已经安装了ntp服务。使用以下命令进行安装:
yum install ntp -y -q
2. 配置ntpd服务
编辑NTP配置文件 /etc/ntp.conf,按以下步骤进行配置:
vim /etc/ntp.conf
在文件中做以下修改和添加:
- 设置漂移文件路径:指定存储时钟漂移数据的文件路径。
driftfile /var/lib/ntp/drift
- 配置限制条件:默认配置不允许修改、不允许作为时间源、不允许查询,并限制仅允许本地访问。
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
- 配置NTP服务器:在文件中添加您希望使用的时间源,可以选择多个公共NTP服务器,也可以指定企业内网NTP服务器。
server time1.apple.com iburst
server time2.apple.com iburst
server time3.apple.com iburst
server time4.apple.com iburst
server time5.apple.com iburstserver time1.google.com iburst
server time2.google.com iburst
server time3.google.com iburst
server time4.google.com iburstserver pool.ntp.org iburst
server cn.pool.ntp.org iburst
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server time1.aliyun.com iburst
server time2.aliyun.com iburst
- 包含其他配置文件:可以根据需要引用额外的配置文件。
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
- 禁用监控功能:如果不需要启用监控功能,可以禁用它。
disable monitor
3. 启动NTP服务
配置完成后,启动NTP服务并设置开机自启:
systemctl restart ntpd
systemctl enable ntpd
三、NTP客户端安装与配置
客户端的配置与服务器端类似:
1. 安装ntpd服务
在客户端安装ntp服务:
yum install ntp -y -q
2. 配置ntpd服务
编辑NTP配置文件 /etc/ntp.conf,并设置服务器配置为您自己的NTP服务器:
server ntp1.xxx.com iburst
server ntp2.xxx.com iburst
确保至少配置两个NTP服务器节点,以保证高可用性。
3. 启动NTP服务
配置完成后,启动NTP客户端服务并设置开机自启:
systemctl restart ntpd
systemctl enable ntpd
四、NTP监控与告警
NTP服务对于关键业务系统尤为重要,尤其是在金融等行业,时间不同步可能导致日终结算异常、交易错误等问题。因此,必须对NTP同步进行监控。
1. 监控业务服务器与监控服务器的时间差
为避免NTP同步异常,可以设置监控项,确保业务服务器与监控服务器的时间差在合理范围内。如果超过500毫秒,应该触发告警。
2. 监控ntpd服务是否正常运行
对于监控NTP服务的稳定性,可以通过ntp exporter等监控工具来实时监控NTP服务。如果发现ntpd服务停止运行,及时发出告警,避免对业务造成影响。
3. 独立配置监控服务器与业务服务器的NTP同步
为了避免因单一NTP服务器故障而导致的同步问题,建议分别为监控服务器和业务服务器配置不同的NTP服务器。即使共享同一NTP服务器,也应保证服务的高可用性。

五、NTP常用命令
NTP服务的常用管理命令可以帮助我们更好地了解同步状态和进行调试:
- 查看当前系统时间和NTP同步状态:
ntpq -p
- 手动同步时间:
ntpdate time.server.com
- 查看ntpd版本信息:
ntpd --version
ntpq -p命令输出解析
ntpq -p命令列出了所有用于校正本地NTP服务器时钟的远程NTP服务器,并显示同步状态。每列的含义如下:
| 字段 | 描述 |
|---|---|
| remote | 响应请求的NTP服务器的名称或IP地址。 |
| refid | 远程NTP服务器使用的上一级NTP服务器的ID。 |
| st | NTP服务器的层级(1-16),1为顶级服务器。 |
| t | 通信方式,u表示单播,b表示广播,I为本地。 |
| when | 上次请求成功后至今的秒数。 |
| poll | 本地与远程NTP服务器的同步时间间隔。 |
| reach | 前八次查询的响应状态,377表示全部成功。 |
| delay | 网络延迟,单位为微秒。 |
| offset | 本地NTP与远程NTP时间偏移,单位为毫秒。 |
| jitter | 网络延迟的波动,单位为微秒。 |
七、总结
NTP时间同步是确保分布式系统时间一致性的关键。特别是在银行、金融等行业,精确的时间同步可以避免由于时钟不同步导致的交易错误和结算问题。通过合理配置NTP服务、监控同步状态以及及时处理告警,可以有效保障系统的稳定性和业务的连续性。在配置NTP服务时,建议结合实际环境进行优化,确保服务的高可用性。
相关文章:
【Linux系列】NTP时间同步服务器搭建完整指南
在分布式系统和高可用环境中,时间同步是至关重要的。特别是对于银行、金融等关键业务系统,精准的时间同步不仅关系到系统的稳定性,还直接影响交易处理、日志管理、日终结算等功能。本文将介绍NTP(Network Time Protocol࿰…...
go 结构体方法
在 Go 语言中,结构体方法是指附加到结构体类型上的函数。这些方法可以通过结构体的实例来调用。方法的接收者(receiver)指定了该方法属于哪个结构体类型。接收者可以是一个值类型或指针类型。 定义结构体方法 下面是如何为一个结构体定义方…...
DHCP服务(包含配置过程)
目录 一、 DHCP的定义 二、 使用DHCP的好处 三、 DHCP的分配方式 四、 DHCP的租约过程 1. 客户机请求IP 2. 服务器响应 3. 客户机选择IP 4. 服务器确定租约 5. 重新登录 6. 更新租约 五、 DHCP服务配置过程 一、 DHCP的定义 DHCP(Dynamic Host Configur…...
uniapp内嵌的webview H5与应用通信
H5端: 1、找到index.html引入依赖 <script type"text/javascript" src"https://unpkg.com/dcloudio/uni-webview-js0.0.3/index.js"></script> 2、在需要通讯处发送消息 uni.postMessage({data:{code:200,msg:"处理完成&q…...
Android OpenGL ES详解——绘制圆角矩形
1、绘制矩形 代码如下: renderer类: package com.example.roundrectimport android.content.Context import android.opengl.GLES30 import android.opengl.GLSurfaceView.Renderer import com.opengllib.data.VertexArray import com.opengllib.prog…...
网络基础二
文章目录 协议定制,序列化和反序列化应用层网络版计算器协议的定制序列反序列化序列化未复用版 反序列化 TCP是面向字节流的,你怎么保证,你读取上来的数据,是‘’一个“ “完整””的报文呢? 我们没有区分字符串里面有…...
从Full-Text Search全文检索到RAG检索增强
从Full-Text Search全文检索到RAG检索增强 时光飞逝,转眼间六年过去了,六年前铁蛋优化单表千万级数据查询性能的场景依然历历在目,铁蛋也从最开始做CRUD转行去了大数据平台开发,混迹包装开源的业务,机缘巧合下做了实时…...
springMVC 全局异常统一处理
全局异常处理⽅式⼀: 1、配置简单异常处理器 配置 SimpleMappingExceptionResolver 对象: <!-- 配置全局异常统⼀处理的 Bean (简单异常处理器) --> <bean class"org.springframework.web.servlet.handler.SimpleMappingExceptionReso…...
qt ubuntu i386 系统
sudo ln -s cmake-3.31.0-linux-x86_64/bin/* /usr/local/bin 【Ubuntu20.4安装QT6 - CSDN App】Ubuntu20.4安装QT6_ubuntu安装qt6-CSDN博客 sudo ../configure -release -platform linux-g-64 -static -nomake examples -nomake demos -no-qt3support -no-script -no-scriptt…...
BUUCTF—Reverse—helloword(6)
一道安卓逆向的签到题 下载附件 使用JADX-gui反编译工具打开(注意配环境),找到主函数 jadx 本身就是一个开源项目,源代码已经在 Github 上开源了 官方地址:GitHub - skylot/jadx: Dex to Java decompiler 发现flag …...
深入解析下oracle date底层存储方式
之前我们介绍了varchar2和char的数据库底层存储格式,今天我们介绍下date类型的数据存储格式,并通过测试程序快速获取一个日期。 一、环境搭建 1.1,创建表 我们还是创建一个测试表t_code,并插入数据: 1.2,…...
Elasticsearch 开放推理 API 增加了对 IBM watsonx.ai Slate 嵌入模型的支持
作者:来自 Elastic Saikat Sarkar 使用 Elasticsearch 向量数据库构建搜索 AI 体验时如何使用 IBM watsonx™ Slate 文本嵌入。 Elastic 很高兴地宣布,通过集成 IBM watsonx™ Slate 嵌入模型,我们的开放推理 API 功能得以扩展,这…...
如何搭建一个小程序:从零开始的详细指南
在当今数字化时代,小程序以其轻便、无需下载安装即可使用的特点,成为了连接用户与服务的重要桥梁。无论是零售、餐饮、教育还是娱乐行业,小程序都展现了巨大的潜力。如果你正考虑搭建一个小程序,本文将为你提供一个从零开始的详细…...
NFS搭建
NFS搭建 单节点安装配置服务器安装配置启动并使NFS服务开机自启客户端挂载查看是否能发现服务器的共享文件夹创建挂载目录临时挂载自动挂载 双节点安装配置服务器安装配置服务端配置NFS服务端配置Keepalived编辑nfs_check.sh监控脚本安装部署RsyncInofity 客户端 单节点安装配置…...
RNN与LSTM,通过Tensorflow在手写体识别上实战
简介:本文从RNN与LSTM的原理讲起,在手写体识别上进行代码实战。同时列举了优化思路与优化结果,都是基于Tensorflow1.14.0的环境下,希望能给您的神经网络学习带来一定的帮助。如果您觉得我讲的还行,希望可以得到您的点赞…...
Docker部署FastAPI实战
在现代 Web 开发领域,FastAPI 作为一款高性能的 Python 框架,正逐渐崭露头角,它凭借简洁的语法、快速的执行速度以及出色的类型提示功能,深受开发者的喜爱。而 Docker 容器化技术则为 FastAPI 应用的部署提供了便捷、高效且可移植…...
【Python数据分析五十个小案例】电影评分分析:使用Pandas分析电影评分数据,探索评分的分布、热门电影、用户偏好
博客主页:小馒头学python 本文专栏: Python数据分析五十个小案例 专栏简介:分享五十个Python数据分析小案例 在现代电影行业中,数据分析已经成为提升用户体验和电影推荐的关键工具。通过分析电影评分数据,我们可以揭示出用户的…...
Vue2学习记录
前言 这篇笔记,是根据B站尚硅谷的Vue2网课学习整理的,用来学习的 如果有错误,还请大佬指正 Vue核心 Vue简介 Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。 它基于标准 HTML、CSS 和 JavaScr…...
TMS FNC UI Pack 5.4.0 for Delphi 12
TMS FNC UI Pack是适用于 Delphi 和 C Builder 的多功能 UI 控件的综合集合,提供跨 VCL、FMX、LCL 和 TMS WEB Core 等平台的强大功能。这个统一的组件集包括基本工具,如网格、规划器、树视图、功能区和丰富的编辑器,确保兼容性和简化的开发。…...
Redis主从架构
Redis(Remote Dictionary Server)是一个开源的、高性能的键值对存储系统,广泛应用于缓存、消息队列、实时分析等场景。为了提高系统的可用性、可靠性和读写性能,Redis提供了主从复制(Master-Slave Replication…...
DoL-Lyra构建系统:5分钟学会自动化游戏MOD打包
DoL-Lyra构建系统:5分钟学会自动化游戏MOD打包 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS DOL-CHS-MODS(Degrees of Lewdity汉化美化整合包)是一款专为Degree…...
3步解锁iOS激活锁:Applera1n工具完整使用指南
3步解锁iOS激活锁:Applera1n工具完整使用指南 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 当你面对一部显示"激活锁"界面的iPhone,反复输入Apple ID却始终无法进入…...
Meixiong Niannian与SpringBoot微服务架构
Meixiong Niannian与SpringBoot微服务架构 1. 引言 在当今快速发展的AI应用领域,如何将强大的画图引擎无缝集成到企业级系统中是一个关键挑战。Meixiong Niannian作为一款高性能的AI画图引擎,能够生成高质量的图像内容,而SpringBoot微服务架…...
手柄优化指南:DS4Windows摇杆调校与硬件适配完全手册
手柄优化指南:DS4Windows摇杆调校与硬件适配完全手册 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 在游戏体验中,手柄摇杆的精准控制直接影响操作手感与游戏表现…...
别再滥用Tick了!UE5里Cast To的正确打开方式与性能实测
UE5性能优化实战:Tick事件中Cast To的高效替代方案 在虚幻引擎5的项目开发中,性能优化往往隐藏在那些看似无害的日常操作里。Tick事件中的Cast To操作就像房间里的大象——人人都知道它存在,却常常低估它的影响。当项目规模扩大、逻辑复杂度提…...
依托AI改写功能的五个实用技巧,论文重复率由30%快速降至合规
嘿,大家好!我是AI菌。今天咱们来聊聊一个让无数学生头疼的问题:论文重复率飙到30%以上怎么办?别慌,我这就分享5个实用降重技巧,帮你一次搞定,轻松压到合格线以下。这些方法都是我亲身试验过的&a…...
Chainlit前端定制化|通义千问1.5-1.8B-GPTQ-Int4私有化部署与UI二次开发教程
Chainlit前端定制化|通义千问1.5-1.8B-GPTQ-Int4私有化部署与UI二次开发教程 你是不是已经体验过各种在线大模型,但总感觉有些限制?比如数据隐私的担忧、网络延迟的困扰,或者想打造一个完全属于自己的、界面更符合业务需求的AI助…...
Markdown Viewer 突破限制:全新自定义主题功能释放创作潜能
Markdown Viewer 突破限制:全新自定义主题功能释放创作潜能 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 副标题:如何通过自定义主题功能实现文档视觉体…...
bat脚本从入门到实战:10个常用技巧提升你的Windows自动化效率
BAT脚本从入门到实战:10个常用技巧提升你的Windows自动化效率 在Windows系统中,BAT批处理脚本就像一位不知疲倦的助手,能够24小时待命执行各种重复性任务。想象一下,每天上班第一件事是打开五个开发工具、三个文档和一个数据库客户…...
ISIS实验1
ISIS实验1网络拓扑配置一、AR1二、AR2三、测试1. 查看 IS-IS 邻居状态2. 查看 IS-IS 接口信息3. 查看 IS-IS 路由表4. 查看 IP 路由表中的 IS-IS 路由5. 查看链路状态数据库(LSDB)6. 检查:Level-1 区域一致性四、AR3五、AR4六、检测1. 通过链…...
