CentOS服务器时间同步:Chrony配置与运维实战指南
1. 项目概述为什么服务器时间同步是运维的“生命线”刚接手一台新的CentOS服务器或者管理着一个集群你最先检查的是什么CPU、内存、磁盘这些固然重要但有一个基础得不能再基础却又极其关键的配置项常常被新手甚至一些老手忽略——那就是系统时间。你可能觉得时间嘛差个几秒甚至几分钟有什么关系电脑右下角不都显示着吗这种想法在单机桌面环境或许问题不大但在服务器领域尤其是分布式系统里时间不准就是一颗随时可能引爆的“定时炸弹”。想象一下这些场景你部署的微服务调用链因为A服务和B服务的时间差了5分钟导致日志时间戳对不上排查一个线上问题如同大海捞针你精心配置的定时任务cron job本该在凌晨2点执行的数据备份因为时间漂移在业务高峰期的下午2点突然启动瞬间把数据库拖垮你搭建的数据库集群如果主从节点时间不一致轻则导致复制延迟监控失真重则可能引发数据一致性问题造成不可逆的数据混乱。更不用说那些依赖严格时间戳的加密协议、证书验证如HTTPS的SSL证书有效期校验以及金融交易系统了时间误差直接意味着系统不可用或安全漏洞。因此“CentOS服务器时间同步”绝不是一个可有可无的配置步骤而是服务器投入生产环境前必须完成的“规定动作”。它确保了系统内部时钟与真实世界准确说是权威的时间源保持一致为所有上层应用提供了一个可靠、一致的时间基准。本篇文章我将结合十多年的运维实战经验为你彻底拆解在CentOS系统涵盖CentOS 7和CentOS 8/Stream等主流版本上实现高精度、高可靠时间同步的完整方案从原理到实操从工具选型到避坑指南让你不仅能配好更能理解为什么要这么配。2. 核心工具选型NTP与Chrony的演进与抉择在Linux世界时间同步主要有两大工具阵营经典的NTP和现代的Chrony。理解它们的区别和适用场景是做好时间同步的第一步。2.1 传统王者NTPNTP是网络时间协议的实现历史悠久、生态成熟。在早期的CentOS 6及CentOS 7初期它是默认的时间同步工具。其工作模式主要分为客户端和服务器模式。客户端定期向配置好的NTP服务器发起查询通过复杂的算法计算网络延迟和时钟偏差逐步调整本地时间。它的优点是协议标准、文档丰富很多老牌硬件和设备都原生支持NTP客户端。然而NTP也有明显的短板。首先它的收敛速度相对较慢尤其是在系统时间与源时间相差较大时需要较长时间才能逐步校准到位。其次它对网络间歇性中断或抖动的适应性不够强在移动网络或质量不稳定的网络环境中表现不佳。最后其配置文件和守护进程的管理方式相对传统。2.2 现代新星ChronyChrony是NTP协议的一种实现但被设计得更加现代化旨在解决NTP的上述痛点。从CentOS 7开始Chrony逐渐成为默认安装的时间同步工具在CentOS 8/RHEL 8及之后的版本中已完全取代NTP成为官方推荐。Chrony的核心优势在于更快的同步速度它能更快地纠正较大的时间偏差这对于虚拟机或经常重启的服务器尤其有用。更好的网络适应性即使在网络连接不稳定、时断时续的环境下如笔记本电脑Chrony也能很好地工作它能够更有效地利用间歇性的网络连接进行时间同步。更小的系统资源占用其设计更精简。硬件时间同步它能够更好地与硬件时钟RTC交互支持更平滑的时间调整策略避免系统时间发生跳变这对于某些金融和交易应用至关重要。注意在现在的CentOS 7.9及所有CentOS 8/Stream版本中如果你执行systemctl status chronyd发现服务是活跃的那么系统已经在使用Chrony了。除非你有非常特殊的兼容性要求例如需要与某些仅支持旧版NTP协议的老旧设备对接否则强烈建议使用Chrony。2.3 我们的选择拥抱Chrony基于以上分析以及当前CentOS生态的现状本文将主要围绕Chrony展开详细配置。这不仅是因为它是现版本的默认和推荐更是因为其优异的性能更能满足现代服务器尤其是云服务器和虚拟化环境的需求。当然文中也会提及从NTP迁移到Chrony的注意事项以及如何判断当前系统使用的是哪个工具。3. Chrony深度配置与实战确定了使用Chrony接下来就是具体的配置和调优。很多人只是简单改一下服务器地址但要想让时间同步既快又稳需要理解其核心配置。3.1 安装与基础检查首先确认Chrony是否已安装。在CentOS 7及以上版本它通常默认安装。# 检查chrony是否安装 rpm -qa | grep chrony # 如果未安装则安装它 sudo yum install -y chrony检查Chrony服务状态和配置# 查看服务状态 systemctl status chronyd # 查看当前使用了哪些时间源 chronyc sources -v # 查看时间同步状态 chronyc trackingchronyc sources -v命令的输出非常关键。你会看到类似下面的列表其中^*标记的是当前正在使用的优选时间源。S列表示源的状态^表示服务器表示备用服务器?表示源丢失或不可达。3.2 核心配置文件详解Chrony的主配置文件是/etc/chrony.conf。我们来逐段解析关键配置项。1. 时间源服务器配置这是最重要的部分。默认配置可能指向CentOS或Red Hat的官方NTP池。但在国内直接使用这些源可能会有延迟甚至无法连接的问题导致同步失败。因此我们需要替换为更优的、位于国内或亚洲区的NTP服务器。# 默认配置可能类似 # 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 # 建议修改为国内的可靠NTP源例如 server ntp.aliyun.com iburst server ntp1.aliyun.com iburst server time1.cloud.tencent.com iburst server time2.cloud.tencent.com iburst server cn.pool.ntp.org iburstserver: 指定NTP服务器地址。iburst: 这是一个非常重要的选项。当服务器启动或源不可达后恢复时客户端会发送一系列数据包通常4-8个来快速建立同步。这能显著加快初始同步速度。务必为每个server行加上这个参数。prefer: 可以加在某个server后面表示优先使用此源。例如server ntp.aliyun.com iburst prefer。通常选择延迟最小、最稳定的一个源作为prefer。2. 允许/拒绝网络访问如果你的服务器准备作为内部网络的时间服务器为其他机器提供时间则需要配置allow指令。如果仅作为客户端则可以忽略或严格限制。# 允许特定网段例如192.168.1.0/24的客户端同步 allow 192.168.1.0/24 # 或者允许所有仅在内网安全环境测试时使用生产环境慎用 # allow 0.0.0.0/43. 其他关键参数# 当系统启动时根据硬件时钟(rtc)快速初始化系统时间。这是一个好习惯。 initstepslew 10 你的时间服务器地址 # 例如initstepslew 10 ntp.aliyun.com # 即使所有配置的时间源都丢失也允许继续提供时间服务适用于作为服务器的情况。 local stratum 10 # 记录系统时钟获得/丢失时间的速率到drift文件中重启后可以快速恢复。 driftfile /var/lib/chrony/drift # 启用内核的实时时钟RTC同步。 rtcsync # 日志设置 logdir /var/log/chrony3.3 实操配置步骤假设我们有一台全新的CentOS 7.9服务器仅作为时间同步客户端目标是快速稳定地同步到国内时间源。步骤一备份并编辑配置文件sudo cp /etc/chrony.conf /etc/chrony.conf.bak sudo vi /etc/chrony.conf步骤二修改server行找到以server开头的行注释掉默认的添加我们推荐的国内源。一个可靠的配置示例如下# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). #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 # 阿里云NTP服务器 server ntp.aliyun.com iburst prefer server ntp1.aliyun.com iburst # 腾讯云NTP服务器 server time1.cloud.tencent.com iburst server time2.cloud.tencent.com iburst # 国际NTP池中国节点 server cn.pool.ntp.org iburst步骤三重启Chrony服务并设置开机自启sudo systemctl restart chronyd sudo systemctl enable chronyd步骤四验证同步状态等待几分钟后执行以下命令查看同步情况# 查看时间源状态关注S列和状态列 chronyc sources -v输出中一个理想的源应该显示^*状态为^并且名字旁边没有?或x。LastRx列表示最近一次接收到数据包是多久以前这个值应该很小如几秒或几十秒。# 查看详细的同步状态 chronyc tracking关注System time这一行它会告诉你本地系统时间与当前选中的源时间相差多少。一个已经良好同步的系统这个差值应该在几毫秒到几十毫秒之间。Leap status应为Normal。# 手动立即同步如果需要 sudo chronyc makestep3.4 硬件时钟同步与时区设置系统时间同步好了别忘了还有硬件时钟。硬件时钟是主板上的时钟即使服务器关机它也在运行。如果系统时间和硬件时间不一致重启后系统时间又会被硬件时间带偏。同步系统时间到硬件时钟Chrony配置中的rtcsync参数会定期自动同步。你也可以手动执行sudo hwclock --systohc这条命令将当前的系统时间写入硬件时钟。检查并设置正确的时区时间同步解决的是“时刻”准确时区解决的是“显示”问题。确保服务器时区符合你的业务需求通常是Asia/Shanghai。# 查看当前时区 timedatectl status # 列出所有可用时区 timedatectl list-timezones | grep Shanghai # 设置时区 sudo timedatectl set-timezone Asia/Shanghai # 再次确认 timedatectl status设置时区后date命令显示的时间就是你所在的本地时间了。4. 高级场景与故障排查掌握了基础配置我们来看一些更复杂的场景和常见问题。4.1 构建内部时间服务器在大型内网环境中让所有服务器都直接访问外网NTP源并非最佳实践。更好的做法是指定一两台能访问外网的服务器作为“时间源头”同步到公网然后内网其他服务器同步到这台内部时间服务器。这样做的好处是减少对外网出口的流量和连接数。降低对外网服务的依赖即使外网暂时中断内网时间依然能保持一致性。可以统一管理和监控。配置方法在选定的内部时间服务器上除了像上面一样配置好外网NTP源还需要在/etc/chrony.conf中加上allow指令开放对内网客户端的服务。# 例如允许整个10.0.0.0/8网段 allow 10.0.0.0/8 # 或者更精确的网段 allow 192.168.1.0/24然后重启chronyd服务。内网的其他客户端其/etc/chrony.conf中的server行就不再填写公网地址而是填写内部时间服务器的IP地址。server 192.168.1.100 iburst prefer # server 192.168.1.101 iburst # 可以配置一个备用的内部时间服务器这样就形成了一个层级化的、稳定可靠的内网时间同步架构。4.2 虚拟化环境下的时间同步在VMware、KVM、VirtualBox等虚拟化环境中虚拟机的时间同步需要特别注意。一个常见的误区是同时开启虚拟机工具的时间同步如VMware Tools的同步功能和操作系统内的NTP/Chrony服务这会导致两者“打架”反而使时间更加混乱。最佳实践原则主次分明通常建议禁用虚拟机工具的时间同步启用并配置好Guest OS内部的Chrony/NTP服务。因为操作系统内的NTP客户端能更好地处理网络延迟和时钟漂移。确保NTP端口可达虚拟机的网络配置需要允许UDP 123端口出站以访问NTP服务器。宿主机时间基准确保宿主机Host本身的时间是准确的因为虚拟机的硬件时钟会受宿主机影响。在VMware中你可以在虚拟机设置中关闭“同步客户机时间与主机时间”。在云服务器如阿里云ECS、腾讯云CVM上通常云平台会提供一个内网的NTP服务器地址如ntp.cloud.aliyuncs.com使用这个内网地址延迟更低、更稳定。4.3 防火墙配置如果服务器启用了防火墙firewalld需要确保NTP服务使用的UDP 123端口是开放的无论是作为客户端访问外网还是作为服务器被内网访问。# 作为客户端需要开放端口以访问外部NTP服务器通常出站默认允许 # 作为时间服务器需要开放端口允许入站连接 sudo firewall-cmd --add-servicentp --permanent sudo firewall-cmd --reload4.4 常见问题排查实录即使配置正确时间同步也可能出问题。下面是一些我踩过的坑和排查思路。问题一chronyc sources显示所有源都是?或x这表示Chrony无法与任何配置的时间服务器通信。排查网络连通性ping ntp.aliyun.com看是否能通。如果不通检查DNS解析nslookup ntp.aliyun.com和网络路由。检查防火墙确认UDP 123端口出站没有被阻断。可以用telnet ntp.aliyun.com 123测试虽然NTP是UDP但telnet测试TCP端口不通是正常的主要是看DNS解析和网络路由。检查服务器地址确认配置的NTP服务器地址没有拼写错误。问题二时间同步缓慢偏差始终较大检查iburst参数确保每个server行都加了iburst。增加时间源多配置几个不同运营商的NTP服务器增加成功概率。使用chronyc makestep如果时间偏差超过一定阈值默认是1000秒Chrony会缓慢调整。你可以手动强制步进调整sudo chronyc makestep。如果想在服务启动时就强制步进可以在配置文件中加makestep 1.0 -1这表示如果偏差大于1秒立即步进调整-1表示无限次但生产环境慎用可能引起时间跳变。检查系统负载极高的系统负载可能会影响Chrony守护进程的调度。问题三时间同步后date命令显示的时间时区不对这不是同步问题是时区设置问题。按照前面章节的方法用timedatectl set-timezone正确设置时区即可。问题四重启服务器后时间又不对了这通常是硬件时钟RTC没有同步导致的。检查rtcsync配置确保/etc/chrony.conf中有rtcsync这一行。手动同步硬件时钟执行sudo hwclock --systohc。检查硬件时钟时区硬件时钟通常存储为UTC时间。确保你的系统时区设置正确系统在读取和写入硬件时钟时会进行时区转换。问题五Chrony服务无法启动检查配置文件语法sudo chronyd -d -f /etc/chrony.conf可以测试配置文件是否有语法错误。检查端口占用NTP服务的123端口是否被其他进程占用sudo ss -ulnp | grep :123。为了方便对照我将常见问题、表现和解决方法汇总成下表问题现象可能原因排查命令/解决方法chronyc sources所有源状态为?网络不通、防火墙阻断、DNS解析失败1.ping [服务器地址]2.nslookup [服务器地址]3. 检查防火墙规则firewall-cmd --list-all仅个别源为^*其他为或-正常现象Chrony已选择最优源无需处理这是Chrony正常工作状态系统时间与源时间偏差持续很大初始偏差过大或网络延迟高1. 执行sudo chronyc makestep2. 配置文件中增加更多、更近的NTP源date显示时间与本地时间差整数小时系统时区设置错误timedatectl set-timezone Asia/Shanghai重启后时间恢复错误值硬件时钟未同步或错误1. 检查rtcsync配置2. 执行sudo hwclock --systohcChrony服务启动失败配置文件语法错误、端口冲突1.sudo chronyd -d -f /etc/chrony.conf测试2.sudo ss -ulnp | grep :123查端口5. 从NTP迁移到Chrony如果你的老系统还在使用旧的ntpd迁移到chronyd非常简单。步骤一停止并禁用旧服务sudo systemctl stop ntpd sudo systemctl disable ntpd步骤二安装并启用Chronysudo yum install -y chrony步骤三配置Chrony编辑/etc/chrony.conf将原来ntp.conf中配置的server行迁移过来记得加上iburst参数。其他如allow、driftfile等配置也可酌情迁移。步骤四启动并验证sudo systemctl start chronyd sudo systemctl enable chronyd chronyc sources -v迁移后你会发现时间同步的收敛速度和稳定性通常会有可感知的提升。6. 监控与维护时间同步不是一劳永逸的配置需要纳入日常监控。监控指标时间偏移量通过chronyc tracking命令中的System time值或使用监控代理如Zabbix、Prometheus的node_exporter收集node_timex_offset_seconds指标。通常偏移量绝对值应小于100毫秒对于严格要求的环境应小于10毫秒。时间源状态监控chronyc sources的输出确保至少有一个源的状态是^*。服务状态监控chronyd服务的运行状态。日常维护定期检查配置文件中的NTP服务器地址是否仍然有效。在系统进行重大变更如迁移、网络架构调整后验证时间同步是否正常。将时间同步状态检查纳入服务器上线 checklist。最后分享一个我个人的小技巧在编写自动化部署脚本如Ansible Playbook、Shell脚本时我会把时间同步和时区设置放在靠前的位置。因为很多后续的软件安装、日志记录都依赖于正确的时间。一个在部署伊始就校准好的时钟能为整个系统的稳定运行打下最坚实的基础。看似微小的“时间”实则是运维大厦不可或缺的基石。

相关新闻

Workfine表单设计入门:从零创建高效数据采集表单

Workfine表单设计入门:从零创建高效数据采集表单

1. 项目概述:从零到一,理解Workfine表单的核心价值 刚接触Workfine的朋友,第一反应往往是“这工具看起来挺强大,但第一步该从哪儿下手?”。我的建议是,别急着去研究复杂的流程、报表或权限,就从…

2026/10/5 8:44:56 阅读更多 →
Docker容器技术从入门到实践:核心概念、安装部署与生产环境指南

Docker容器技术从入门到实践:核心概念、安装部署与生产环境指南

1. 项目概述:为什么Docker是开发现代应用的基石如果你在开发、测试或者运维的岗位上待过一段时间,大概率听过或者用过Docker。它早已不是几年前那个需要向人费力解释的“新潮玩具”,而是成为了现代软件开发和部署流程中一个绕不开的基础设施。…

2026/10/8 0:13:37 阅读更多 →
Vue2集成腾讯地图实现地图选点功能:从原理到实战封装

Vue2集成腾讯地图实现地图选点功能:从原理到实战封装

1. 项目概述与核心价值 最近在重构一个后台管理系统,里面有个“门店地址录入”的功能,原来的实现就是让用户手动填写省市区和详细地址,不仅操作繁琐,还经常因为地址格式不标准导致后续配送出问题。产品经理提了个需求,…

2026/10/9 8:29:43 阅读更多 →

最新新闻

Spark集合操作全解析:union、join、笛卡尔积的原理与性能陷阱

Spark集合操作全解析:union、join、笛卡尔积的原理与性能陷阱

如果你处理过这样一个需求——把两份来源不同的用户数据合并成一份,或者找出最近30天活跃用户和付费用户的重叠人群,又或者把订单表关联到用户维度表上做统计——你大概率会第一时间想到Spark。但在Spark里,“集合”这个概念被拆成了好几组AP…

2026/10/14 4:50:57 阅读更多 →
从123456到密码管理器:弱密码破解原理与账号安全加固指南

从123456到密码管理器:弱密码破解原理与账号安全加固指南

1. 从“123456”说起:这个最熟悉的数字串到底藏了多少坑我敢打赌,看到“123456”这四个字的瞬间,你脑子里闪过的绝对不是一串数字,而是某个网站的登录页、某个多年没改过的密码,或者某次帮亲戚重装系统时顺手敲下的默认…

2026/10/14 4:50:57 阅读更多 →
轻量模型部署实战:3.8B开源模型从能跑到跑稳

轻量模型部署实战:3.8B开源模型从能跑到跑稳

这个标题是我某天半夜临时建的一个内部备忘录。Strata 是我们那边的统一推理服务层,3.8-Flash-Next 是某开源语言模型项目跑出来的一个轻量分支,参数体量不大,但做生产化接入的时候问题一点不比大模型少。后来这句话被同事转述成“Strata 跑 …

2026/10/14 4:50:57 阅读更多 →
Strata平台部署Qwen3.8-Flash-Next实战:从模型加载到接口调优全记录

Strata平台部署Qwen3.8-Flash-Next实战:从模型加载到接口调优全记录

前几天我们内部接到一个挺常见的任务:一台GPU服务器,一个刚拿到的轻量级模型,要在“Strata”这个内部自研的部署平台上跑起来,对外提供HTTP接口,给业务方调用。模型代号叫“Qwen3.8-Flash-Next”,名字看起来…

2026/10/14 4:50:57 阅读更多 →
前端性能优化实战:从浏览器渲染原理到加载与交互调优

前端性能优化实战:从浏览器渲染原理到加载与交互调优

前端性能优化这个话题,我在团队内部讲过很多次,每次讲完都觉得还能再展开不少。最近接了一个业务线的性能专项,把从前端资源加载到交互流畅度这条链路重新捋了一遍,顺手把过程中的经验和踩过的坑整理下来。这篇文章适合两类人看&a…

2026/10/14 4:50:57 阅读更多 →
大模型预判RTL综合PPA:数字前端设计的实时物理实现顾问

大模型预判RTL综合PPA:数字前端设计的实时物理实现顾问

1. 项目概述:这不是又一个“大模型EDA”的概念秀,而是RTL设计流程里真实卡点的破局尝试PPA-RTL——这个标题里没有花哨的缩写游戏,PPA就是功耗(Power)、性能(Performance)、面积(Are…

2026/10/14 4:49:57 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →