AI应用为何需要公网IP云服务器?从Webhook回调到稳定部署

前几天一个朋友找我帮忙,他做了一个自动回复的 AI 小助手,想让它接入群聊。折腾了半天,卡在了一个很基础的问题上:平台要求他提供一个可供回调的接口地址,而他在本地跑的服务根本收不到外部的请求。他先是用了免费的内网穿透工具,结果第二天接口就失联了。后来我让他直接买一台带固定公网 IP 的低配云服务器,半小时解决了所有问题。这件事让我越来越确定一个判断:AI 时代,真正卡住你的往往不是模型调得多好,而是外部服务能不能稳定地找到你。如果你也在折腾 AI 相关的个人项目,一台公网 IP 云服务器确实值得尽早拥有。

1. 为什么 AI 应用天然需要一个公网入口

1.1 从 Webhook 回调说起

不少 AI 应用并不是简单的“你请求一次、模型回一次”,而是大量依赖回调机制。比如聊天机器人接入 IM 平台后,平台会把用户消息以 HTTP 请求的方式推送到你的服务器地址;你处理完之后再通过接口把回复发回去。这个过程要求你有一个稳定的、公网可达的地址。

我在帮朋友调试时就发现,本地用localhost跑逻辑再顺畅,到了接入环节还是没用。平台的服务器根本访问不到你电脑上的端口,除非你设置了某种隧道或转发。而隧道这种方案稳定性堪忧,高峰期排队、掉线、地址变更都是家常便饭。相比之下,云服务器的公网 IP 是永久固定入口,配置好 Webhook 后几乎不用再动。

1.2 AI 场景里最常见的三类“外部要访问你”

  • 异步任务通知:上传一段音频让模型转写,上传一张图让模型生成描述,这类任务通常不是立即返回结果,而是处理完后通过回调通知你。没有公网入口,你就只能不断轮询查询结果,代码复杂度上去了,响应还变慢了。
  • 机器人事件流:IM 机器人、自动化助手,都需要接收平台推送的事件。每次用户在群聊里 @ 你、发指令、触发关键字,平台都要找到你的服务地址。
  • 多端协同与调试:你在公司电脑上调试,回家还得继续调;或者你要把接口分享给朋友协助测试。一个固定的公网地址,省掉所有“换个网络就要重新配一遍转发”的重复劳动。

1.3 “能上网”和“能被别人访问”是两回事

很多新手以为家里的宽带也能干这事。实话实说:家庭宽带的 IP 通常是动态的,运营商一般还会封锁入站端口。光猫、路由器叠了两层地址转换,等于小区门禁外面还有一道单元门禁,外面的人想直接敲你的门,很难。即使你去折腾端口映射,大概率也只会碰到一连串不稳定因素。上行带宽也有限制,跑不了多少并发。

云服务器则像一个随时有人值班的酒店前台,公网 IP 就是它的门牌号,外部请求可以直接进来。这两者的区别,决定了你是花大量时间维护一套蹩脚的连通方案,还是把所有精力放在业务本身。

2. 公网 IP 云服务器和“免费穿透方案”的真实差距

2.1 稳定性:多一跳就多一个故障点

免费内网穿透的原理,说白了是借用某个第三方服务器做中转:外部请求先到中转服务器,再由中转服务器转发到你的本机。这条链路上多了一个你完全不可控的节点。中转节点晚上高峰拥堵、免费线路限速、运维维护下线,都会让你的服务直接失联。

公网 IP 云服务器是端到端直连,访问者发请求到你服务器,中间只有正常的网络路径。少了一跳,稳定性完全是两个级别。尤其是 AI 任务经常是长时间挂机、半夜还在跑定时任务的场景,稳定性的差异会在凌晨两三点体现得淋漓尽致——你的服务是睡着的,别人可不会等你。

2.2 可控性:域名、证书、端口都在自己手里

穿透工具通常只暴露一个随机端口,有的还限制自定义域名和 HTTPS 证书。你用起来总感觉束手束脚:想用规范的子域名访问、想上 TLS 加密、想绑定特定端口跑服务,它都会跟你较劲。

自己持有公网 IP 的服务器就不一样了。装一个 Nginx 或 Caddy,想开哪个端口开哪个端口,想给多少个域名配证书都行。反向代理、路径转发、负载均衡,这些在设计上完全由你掌控。你的服务接口是规范的、可迁移的,而不是依附于某个第三方平台。

2.3 成本账:免费方案并不一定省钱

很多人觉得“免费穿透不香吗”,省了一台服务器的钱。账面看确实如此,但算长期账就未必。免费方案往往伴随限速、隧道数量限制、随机断线。你为了应对断线,得上自动重连脚本,得写容错逻辑,这里消耗的时间成本早就超过一台低配服务器的钱。

如果你去开付费隧道,价格就更没优势了。我自己对比过,大部分穿透服务的年费,已经可以买到一台 1 核 2G 的轻量云服务器。与其把数据流转包给第三方,不如自己持有一个稳定的基础设施,想怎么折腾都行。

2.4 安全边界也更清晰

穿透工具相当于把你本机的一扇窗户直接开到了公网,一旦被攻击,受影响的可能就是你日常使用的电脑,所有个人文件都暴露在风险里。云服务器就不一样,攻击面被隔离在一台独立的虚拟机里,就算被打穿,也就是一台机器的事,快照随时可以回滚,本地环境毫发无损。

这个安全边界的价值,很多人只有吃过亏才明白。我一个朋友当初用家里电脑跑穿透,结果端口被扫到,一夜之间被人挂上了挖矿程序,第二天电脑卡到没法用。换到云服务器之后,同类风险再也没有波及过他的本地设备。

3. 拿到服务器后的第一件事:先立规矩再干活

很多新手拿到云服务器,第一件事就是装宝塔、装一堆自己都说不清干嘛的软件,恨不得一步到位把所有功能都堆上去。我的建议恰恰相反:先做安全基线和基本配置,再谈“干活”。这一步不做好,后面问题会像滚雪球一样来找你。

3.1 配密钥登录,关掉密码登录和 root 远程登录

服务器开机后的第一件事,是生成一对 SSH 密钥,然后在服务器上配置好公钥,禁止 root 直接密码登录。操作不复杂,效果却非常明显。

# 在本地生成密钥对 ssh-keygen -t ed25519 -C "your_alias" # 把公钥复制到服务器(第一次登录后执行) ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@服务器IP # 登录服务器修改 SSH 配置 sudo vim /etc/ssh/sshd_config

重点改下面几个参数:

PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes Port 22022

改完端口后记得重启 SSH 服务,并保持当前会话不断开,确认新端口能连上再退出。这一步很多人忽略,结果一不小心把自己锁在外面,只能去云厂商控制台用 VNC 救回来。

3.2 防火墙默认拒绝所有入站,只开必要端口

服务器上如果有内置防火墙,默认策略设为拒绝入站请求,然后单独放行需要用到的端口。

# 以 UFW 为例 sudo ufw default deny incoming sudo ufw allow 22022/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable

这种“白名单”思路非常关键。你少开一个端口,就少给攻击者留一道门。很多被入侵的案例,追根溯源就是装某个服务时顺手把端口裸奔开放了,事后又忘记清理。

3.3 盯住登录日志,养成看日志的习惯

公网环境下的服务器被扫描是常态,不是“会不会被扫”,而是“已经被扫了多少次”。养成看 SSH 日志的习惯,能让你对服务器的安全状况心里有数。

sudo journalctl -u ssh --since "24 hours ago" | grep "Failed password"

看到大量失败登录别慌,只要你禁用了密码登录和 root 远程登录,这些基本都是无效尝试。但你可以再加一道保险:用 fail2ban 自动封禁反复试探的 IP。

3.4 绑定域名,把 HTTPS 一次配到位

哪怕只是个人项目,我也建议绑一个自己的域名,并用 Caddy 或 Nginx 自动申请 HTTPS 证书。原因很简单:很多 AI 平台的回调接口、API 网关对纯 IP 地址支持不佳,端口和协议上容易出现兼容性问题。而一个带合法证书的域名,兼容性是最好的,后续做任何扩展都顺畅。

我用 Caddy 比较多,配置非常省心:

ai.example.com { reverse_proxy 127.0.0.1:8080 }

保存配置后 Caddy 会自动申请并续期证书,几乎零维护。

4. 一台低配机器能干的 AI 正经事

4.1 私有机器人和消息中枢

低配云服务器最适合的场景之一,就是跑你自己的消息机器人。无论是接 IM 群聊、做自动化提醒,还是搭一个供家人朋友使用的小助手,都不需要多强的算力,关键是稳定在线。Python 写一个 Webhook 接收端,收到消息后调用大模型 API,再异步回传结果,整个链路放在一台 1 核 2G 的机器上绰绰有余。

我自己的经验是,这类服务一旦跑起来,你会在不知不觉中给机器人加越来越多功能:查天气、记待办、翻译、摘要、定时播报……而底层的“公网入口”基础设施始终不需要再动。

4.2 统一出口与密钥管理

个人项目多了之后,最头疼的不是功能开发,而是 API Key 散落在各个脚本里,改一个要翻一堆文件。我在服务器上做了一个简单的统一网关,所有 AI 调用都走这个入口,密钥集中管理,调用方只要带一个短期 token 即可。

这样做的价值在于:一旦某个密钥在某个项目里泄露,只需要在网关侧吊销或替换,不用满世界跑着改脚本。对个人开发者来说,这相当于用极低的工作量复刻了团队级密钥治理的体验。

4.3 定时任务与消息推送中枢

公网 IP 的另一个实用场景是定时任务和通知推送。用 cron 或 systemd timer 写一个脚本,每天定时去抓取你关心的信息(比如天气、新闻、某平台价格变化),经过模型摘要后,推送到你的即时通讯工具。

很多人会问:本地电脑不也能跑定时任务吗?确实能,但你的电脑不一定7x24小时开机。云服务器则不存在这个问题。而且通知推送需要调用外部接口,这些接口的响应也是公网可达的,不会有内网联通的麻烦。

4.4 轻量模型部署与 RAG 管道中间层

我知道有人会期待在低配机器上跑大模型推理,说实话不现实,除非你有 GPU 云服务器。但低配机器可以跑轻量级的嵌入模型、向量检索服务、SQLite 向量扩展,或者作为 RAG 管道的中间层,负责预处理、切分、向量化调用外部模型 API,再把结果写入向量库。这些环节对 CPU 和内存要求不高,一台 2 核 4G 的机器完全能承担,还能省下大量把代码搬到各种平台上的时间。

5. 选型那点事:配置、地域、镜像、带宽

5.1 配置怎么选:先想清楚你跑什么

不是人人都需要高配。我个人把用途分成三档,方便朋友参考:

主要用途推荐配置理由
Webhook、机器人、静态站点、网关1核1G / 1核2G这类服务内存占用小,主要看稳定性
RAG中间层、向量检索、多个服务并存2核4G可以跑嵌入模型、多个容器服务、SQLite向量扩展
轻量模型推理、更重的并发处理4核8G起步接近本地开发机的性能,适合更重的AI管道

配置选型的大原则是:宁可在初期选择你验证过需求的最低档,也别一开始就往高了买。云服务器升配很容易,控制台点一下就行;真正麻烦的是你花冤枉钱买了用不上的资源,第二年续费的时候心里那个难受。

5.2 地域选择:离你的用户近一点

地域选择的判断标准只有一个:你的用户和调用方在哪里。面向国内用户的服务,优先选国内节点;如果你的项目主要面向海外用户或使用海外服务商的大模型 API,选一个网络路径实测延迟更低的海外节点会更舒服。

很多人在选地域时喜欢凭感觉,我建议你直接用ping和路由跟踪工具实测一轮,看看不同节点到你目标网络的延迟,再做决定。这一步花不了十分钟,却能避免买完才发现网络路径绕了半个地球的尴尬。

5.3 镜像与系统:最小化安装,别堆砌面板

系统镜像优先选 Debian 或 Ubuntu 的最小化安装,什么面板、预装环境都不要。面板工具虽然方便,但也带来两个问题:一是额外占资源,二是面板本身可能成为新的攻击面。

如果你有一定 Linux 基础,纯命令行操作完全够用。不会的命令上网一查就会,几次实操之后反而比鼠标点面板更熟练。我见过太多人装了面板后,连基础的系统目录结构都不熟悉,出问题完全无从下手。

5.4 带宽和流量计费的坑

云服务器的带宽计费方式,直接关系到你的使用体验。固定带宽的特点是峰值限制明确,你买 3Mbps 就是最多跑 3Mbps,适合大多数 API 服务、Webhook、轻量应用。流量计费则更灵活,峰值带宽可以很高,按实际使用量付费,适合下载任务多、突发流量多的场景。

我的建议是:个人小型应用优先选固定带宽,带宽值够用就行。别为了好看选一个超高峰值带宽,然后看着账单发呆。你要跑的是 AI 管道和 Webhook,不是视频网站,带宽需求真的没那么夸张。

6. 公网暴露的真实攻击观察与防御习惯

6.1 暴力破解不是“别人的故事”

我把一台新服务器放到公网后的第一个小时,SSH 日志里就开始出现来自各个 IP 的密码尝试。有的试 root,有的试 admin,有的试 database,规律性很强。这不是有人盯上了你,而是全网扫描器在无差别洗地。

遇到这种日志,心态要放平。只要你禁用了密码登录和 root 远程登录,它们的尝试注定无效。但这件事本身是一个警钟:公网是丛林,不被骚扰只存在于你还没把服务放出去的时候。

6.2 防御三板斧:密钥、改端口、fail2ban

第一板斧是密钥登录,前面已经说过,不再赘述。第二板斧是修改 SSH 默认端口,这不多不少能过滤掉一批只扫 22 端口的脚本攻击者。第三板斧是 fail2ban,它会自动记录失败尝试的 IP,并在阈值内封禁一段时间。

# 安装并启用的关键步骤(Debian/Ubuntu) sudo apt install fail2ban sudo systemctl enable fail2ban

fail2ban 的默认配置可以用,但建议把maxretry调到 3,bantime调到 3600,既不影响正常使用,也能快速隔离可疑来源。这套组合拳下来,SSH 相关的暴力破解基本可以忽略不计。

6.3 快照与恢复:别让流程只存在于文档

云厂商基本都提供快照功能,我的习惯是每次重要改动前拍一个快照。对于个人项目,你可能不需要像企业那样做自动化备份,但至少每周手动拍一次快照,或者设置定期快照策略。

更重要的一点:找一个周末,真的从快照恢复一台临时机器,验证一下整个流程走得通。我见过很多人把快照功能打开了就当万事大吉,真到了要恢复的那天,才发现策略配置有问题、恢复出来缺文件,整个人直接傻掉。演练过几次之后,你对恢复流程会有一种踏实的掌控感。

6.4 被攻击后的止血顺序

万一真的发现服务器不对劲,先别慌。我的处理顺序是:第一,立即在云厂商控制台切断该服务器的外网连接;第二,登录控制台查看监控,确认是否有异常外联、高 CPU、高带宽;第三,登录服务器检查进程列表、crontab、登录日志和最近变更的文件;第四,根据情况决定回滚快照还是重装系统。

这里有一个很多人会忽略的点:发现入侵后不要急着当场清理恶意文件,先保留现场证据。你要先判断攻击者是通过什么途径进来的,修复漏洞,否则清理完很快还会被再次入侵。在公网环境里,攻击者的自动化脚本比你想象的勤快得多。

7. 什么样的人该买,什么样的人先别买

7.1 值得买的画像

如果你正在做以下任何一件事,申请一台带公网 IP 的云服务器是值得的:

  • 频繁需要 Webhook、回调接口,被内网穿透的稳定性折磨过
  • 在折腾聊天机器人、自动化助手、消息推送这类 7x24 小时在线服务
  • 想把自己的 AI 项目做成一个可以随时访问的线上作品,而不是永远停留在本地
  • 正在学 Linux、运维、部署流程,想有一个真实的线上环境折腾
  • 手上有多个小项目,想有一个统一管理 API Key 和通知消息的枢纽

这类人买的其实不是服务器,而是一个基础设施。它在很多项目里都是隐形的地基,不显眼,但缺了它到处是坑。

7.2 可以先不买的画像

反过来,如果你目前只是在本机调模型玩,所有的数据都在本地流转,外部没有任何人需要找你,那确实没有必要非买不可。还有一类情况,就是你对“拥有一个长期维护的服务”这件事还没有明确的规划,只是三分钟热度,那你可以先用免费的云开发环境或临时体验产品过渡一下,冲动消费一台服务器然后闲置吃灰,反而浪费。

7.3 我的投入建议

我的建议是:先按最低配买一年,把机器人和 Webhook 这类核心场景跑通,再看实际需求决定要不要升配。一年的周期足够你判断自己的使用习惯和项目走势。在我这些年的使用经验里,最初那台看似没什么用的 1 核 2G 机器,最后几乎成了所有个人项目的中心枢纽。AI 时代的个人开发者,手里有一台公网 IP 云服务器带来的自由度,真的只有用过才知道。

相关新闻

MySQL事务与MVCC深度解析:隔离级别、锁机制与实战避坑指南

MySQL事务与MVCC深度解析:隔离级别、锁机制与实战避坑指南

1. 事务到底在解决什么问题很多刚接触数据库的朋友会觉得事务这个概念有点虚,好像平时写业务代码的时候也没怎么直接用到。但只要你稍微往深了想一层,就会发现事务其实无处不在。你转账给别人,你的余额扣了,对方的余额加了&#x…

2026/10/21 0:28:48 阅读更多 →
长期项目第九周倦怠期:如何突破坚持的高原期

长期项目第九周倦怠期:如何突破坚持的高原期

1. 这个时间点,为什么值得停下来看看第九周第四天,如果按最常见的打卡节奏估算,这差不多是第60天左右。60天是个很有意思的坐标。回想一下你刚开始立目标那天,那种打鸡血的状态早就凉透了,而离真正形成稳定习惯的所谓“…

2026/10/21 0:28:48 阅读更多 →
IPv4子网划分与IPv6地址规划实战:组播地址避坑指南

IPv4子网划分与IPv6地址规划实战:组播地址避坑指南

1. 这一篇把地址规划里的“硬骨头”啃完前几篇把IPv4的基础分类、公网私有地址的边界、IPv6的地址结构挨个过了一遍,这篇终于要面对几个真正让人头疼的话题:子网怎么切才不浪费、IPv6那串超长地址到底怎么缩写成能看的样子、还有组播地址到底是个什么逻辑…

2026/10/21 0:28:48 阅读更多 →

最新新闻

单图生成3D高斯泼溅实战:API接入与交互展示

单图生成3D高斯泼溅实战:API接入与交互展示

1. 从一张图到可交互3D:这个项目到底在做什么单图生成3D高斯泼溅(3D Gaussian Splatting,后面统一简称3DGS)这个方向,最近半年热度一直没降下来。原因很直接:传统摄影测量或者多视角重建,你得围…

2026/10/21 3:52:33 阅读更多 →
Docker存储卷实战:三种挂载方式与数据持久化指南

Docker存储卷实战:三种挂载方式与数据持久化指南

容器跑起来只是第一步,真正麻烦的是数据往哪儿放。不少新手用 Docker 跑了个数据库或文件服务,重启容器后数据“凭空消失”,或者多个容器想共享同一份配置、日志,结果各写各的互不相通。这个问题的标准解法就是 Docker 存储卷&…

2026/10/21 3:52:33 阅读更多 →
Linux高级存储管理实战:LVM、RAID、磁盘配额与Swap调优

Linux高级存储管理实战:LVM、RAID、磁盘配额与Swap调优

1. 从“磁盘满了”说起:为什么基础分区不够用了很多人第一次接触Linux存储,都是从fdisk分区、mkfs格式化、mount挂载这三板斧开始的。这套流程应付单块磁盘、固定容量的场景确实够用,但只要你的机器开始承载真实业务,很快就会撞上…

2026/10/21 3:52:33 阅读更多 →
AI大模型落地制造业:六大系统智能化改造路径与避坑指南

AI大模型落地制造业:六大系统智能化改造路径与避坑指南

这两年跑过不少制造企业的数字化项目,发现一个很有意思的变化:ERP、MES、SRM、APS、WMS、EMS这些系统,能上的基本都上了,可多数老板仍然说不清“系统到底帮我省了多少钱、提了多少速”。数据是有了,但站在数据面前做决…

2026/10/21 3:52:33 阅读更多 →
C#手动拼PDU发短信:串口AT指令硬核实践

C#手动拼PDU发短信:串口AT指令硬核实践

简介:这是一份面向C#中级开发者与通信协议学习者的PDU短信发送实战项目,聚焦GSM底层通信原理在Windows平台的落地实现。资源通过完整的SMSCSharp工程,封装了PDU编码/解码核心类、Submit PDU构造逻辑、MSISDN与SMSC号码二进制转换、多段长短信…

2026/10/21 3:52:33 阅读更多 →
Excel中ROW与COLUMN函数:从自动编号到矩阵运算的实战指南

Excel中ROW与COLUMN函数:从自动编号到矩阵运算的实战指南

做了十年表哥表姐,我最常听的一句话是:“帮我把这个表重新排个序,序号也跟着变一下。”如果序号是手工敲进去的,那接下来就是一场手动改号的噩梦。但如果从一开始就用ROW函数生成序号,就算数据排序翻来覆去&#xff0c…

2026/10/21 3:51:33 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/20 10:02:08 阅读更多 →
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/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练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/20 9:50:45 阅读更多 →