<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>TechLog 技术日志</title><link>https://techlog.122113.xyz/</link><description>Recent content on TechLog 技术日志</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 07 Aug 2026 18:00:00 +0800</lastBuildDate><atom:link href="https://techlog.122113.xyz/index.xml" rel="self" type="application/rss+xml"/><item><title>Hermes Agent Docker 部署踩坑实录:从「能跑」到「为什么我最终放弃容器化」</title><link>https://techlog.122113.xyz/posts/2026-08-07-hermes-docker-vs-native/</link><pubDate>Fri, 07 Aug 2026 18:00:00 +0800</pubDate><guid>https://techlog.122113.xyz/posts/2026-08-07-hermes-docker-vs-native/</guid><description>&lt;p&gt;最近折腾了一段时间 Hermes Agent。&lt;/p&gt;
&lt;p&gt;最开始我的想法非常简单:&lt;/p&gt;
&lt;p&gt;«Hermes 不就是一个 AI Agent 吗?Docker 隔离一下环境,岂不是既干净又方便升级?»&lt;/p&gt;
&lt;p&gt;于是我选择了 Docker 部署。&lt;/p&gt;
&lt;p&gt;结果一路从&amp;quot;这东西跑起来真简单&amp;quot;,折腾到了&amp;quot;我已经把 Docker 部署所有坑都踩完了&amp;quot;。&lt;/p&gt;
&lt;p&gt;最后得出的结论反而是:&lt;/p&gt;
&lt;p&gt;Hermes 可以很好地运行在 Docker 里,但如果你的目标是让它长期作为一台机器上的自动化 Agent 使用,原生部署反而更加合理。&lt;/p&gt;
&lt;p&gt;这篇文章记录一下整个过程。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="一为什么一开始选择-docker"&gt;一、为什么一开始选择 Docker&lt;/h2&gt;
&lt;p&gt;我平时本身就大量使用 Docker。&lt;/p&gt;
&lt;p&gt;数据库、Home Assistant、各种 Web 服务基本都是容器化部署,因此看到 Hermes 官方提供 Docker 镜像之后,第一反应就是:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;services&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;hermes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;nousresearch/hermes-agent:latest&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;container_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;hermes&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;restart&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;unless-stopped&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;command&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;gateway run&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;9119:9119&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# Dashboard(默认 127.0.0.1,按需暴露)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;volumes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;./data:/opt/data&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;HERMES_DASHBOARD&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后:&lt;/p&gt;</description></item><item><title>Hermes Dashboard 修改密码:配置热更新技巧</title><link>https://techlog.122113.xyz/posts/2026-08-07-dashboard-password/</link><pubDate>Fri, 07 Aug 2026 17:00:00 +0800</pubDate><guid>https://techlog.122113.xyz/posts/2026-08-07-dashboard-password/</guid><description>&lt;blockquote&gt;
&lt;p&gt;修改 Hermes Dashboard 的登录密码,不需要重启整个容器——改配置 + kill 进程即可,QQ 会话不断线。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="背景"&gt;背景&lt;/h2&gt;
&lt;p&gt;Hermes Agent 的 Dashboard(Web 管理界面)默认带 basic auth 登录。&lt;strong&gt;Dashboard 页面本身没有&amp;quot;改密码&amp;quot;功能&lt;/strong&gt;,需要改配置文件。但很多人以为要重启容器才能生效——其实有更轻的方式。&lt;/p&gt;
&lt;h2 id="方法"&gt;方法&lt;/h2&gt;
&lt;h3 id="1-改配置文件"&gt;1. 改配置文件&lt;/h3&gt;
&lt;p&gt;编辑 Hermes 配置(config.yaml),找到 dashboard 的 basic_auth 配置:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;dashboard&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;basic_auth&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;username&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;admin&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;password_hash&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;lt;scrypt 哈希&amp;gt;&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# 或明文 password: &amp;#34;xxx&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;两种密码写法&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;password_hash&lt;/code&gt;:scrypt 哈希(推荐,不存明文)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;password&lt;/code&gt;:明文密码(简单但安全性低)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;生成 password_hash&lt;/strong&gt;(交互式输入,避免密码出现在命令行历史里):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 容器部署的,先进入容器内再执行:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker &lt;span class="nb"&gt;exec&lt;/span&gt; -it &amp;lt;容器名&amp;gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 然后在容器内:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python3 -c &lt;span class="s2"&gt;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;from plugins.dashboard_auth.basic import hash_password
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;import getpass
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;pw = getpass.getpass(&amp;#39;输入新密码: &amp;#39;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;print(hash_password(pw))
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;用 &lt;code&gt;getpass&lt;/code&gt; 交互输入——&lt;strong&gt;密码不会显示在终端、不会进 shell history&lt;/strong&gt;。
(如果容器里找不到 &lt;code&gt;plugins&lt;/code&gt; 模块,说明需要在 Hermes 的虚拟环境里执行:&lt;code&gt;/opt/hermes/.venv/bin/python3&lt;/code&gt;)&lt;/p&gt;</description></item><item><title>关于</title><link>https://techlog.122113.xyz/about/</link><pubDate>Fri, 07 Aug 2026 10:00:00 +0800</pubDate><guid>https://techlog.122113.xyz/about/</guid><description>&lt;h1 id="关于-techlog"&gt;关于 TechLog&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;TechLog 技术日志&lt;/strong&gt; — 一个 IT 运维与技术情报的公开日志站。&lt;/p&gt;
&lt;h2 id="记录什么"&gt;记录什么&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;内核与系统更新&lt;/strong&gt;:Kylin / Debian / PVE 等发行版的内核版本与安全公告追踪&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;软件动态&lt;/strong&gt;:Caddy、ddns-go 等常用软件的安全更新与版本变化&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI 与价格&lt;/strong&gt;:DeepSeek 等 AI 服务的定价变动&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;硬件调研&lt;/strong&gt;:低功耗小主机、NAS、迷你 PC 的选型与功耗数据&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="为什么做这个"&gt;为什么做这个&lt;/h2&gt;
&lt;p&gt;日常技术运维中积累了大量的版本追踪、更新核对、选型调研工作。与其散落在聊天记录里,不如整理成按日期更新的公开日志——既方便自己回溯,也能给有同样需求的人参考。&lt;/p&gt;
&lt;h2 id="内容原则"&gt;内容原则&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;所有数据来自公开来源(官方仓库、官方公告、公开评测),可自行核实&lt;/li&gt;
&lt;li&gt;按日期更新,记录真实查证过程&lt;/li&gt;
&lt;li&gt;内容公开,欢迎交流&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="技术栈"&gt;技术栈&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; + &lt;a href="https://github.com/adityatelange/hugo-PaperMod"&gt;PaperMod&lt;/a&gt; 主题&lt;/li&gt;
&lt;li&gt;部署于 GitHub Pages,自动构建&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="联系"&gt;联系&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;仓库: &lt;a href="https://github.com/Icestab/TechLog"&gt;https://github.com/Icestab/TechLog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;有问题或建议欢迎在仓库提 Issue&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Hugo + PaperMod 博客搭建记录(含踩坑)</title><link>https://techlog.122113.xyz/posts/2026-08-07-hugo-papermod-setup/</link><pubDate>Fri, 07 Aug 2026 03:30:00 +0800</pubDate><guid>https://techlog.122113.xyz/posts/2026-08-07-hugo-papermod-setup/</guid><description>&lt;blockquote&gt;
&lt;p&gt;本博客即本文的产物。记录完整搭建过程和踩过的坑,供以后重建参考。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="技术选型"&gt;技术选型&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hugo&lt;/strong&gt; v0.164.0(extended)— Go 单二进制,极快&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PaperMod&lt;/strong&gt; 主题 — 极简技术风,内置搜索/归档/标签&lt;/li&gt;
&lt;li&gt;目标:按日期更新的技术日志流&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="搭建步骤"&gt;搭建步骤&lt;/h2&gt;
&lt;h3 id="1-安装-hugo容器内免-root"&gt;1. 安装 Hugo(容器内,免 root)&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 下载官方 release 的 tar.gz 到用户目录(路径按实际环境替换)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -L &lt;span class="s2"&gt;&amp;#34;https://github.com/gohugoio/hugo/releases/download/v0.164.0/hugo_extended_0.164.0_linux-amd64.tar.gz&amp;#34;&lt;/span&gt; -o /tmp/hugo.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir -p ~/bin &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; tar -xzf /tmp/hugo.tar.gz -C ~/bin hugo
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 验证&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;~/bin/hugo version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-建站点--装主题"&gt;2. 建站点 + 装主题&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~ &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; ~/bin/hugo new site techlog
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone --depth &lt;span class="m"&gt;1&lt;/span&gt; https://github.com/adityatelange/hugo-PaperMod ~/techlog/themes/PaperMod
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-配置-configtoml中文"&gt;3. 配置 config.toml(中文)&lt;/h3&gt;
&lt;p&gt;关键配置点:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;theme = &amp;quot;PaperMod&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;菜单:归档 / 搜索 / 标签&lt;/li&gt;
&lt;li&gt;输出:HTML + RSS + JSON(搜索需要)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4-创建归档搜索页面"&gt;4. 创建归档/搜索页面&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;&amp;lt;!-- content/archives.md --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;title: &amp;#34;归档&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;layout: &amp;#34;archives&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;url: &amp;#34;/archives/&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;&amp;lt;!-- content/search.md --&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;title: &amp;#34;搜索&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;layout: &amp;#34;search&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;url: &amp;#34;/search/&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="5-构建"&gt;5. 构建&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hugo --minify &lt;span class="c1"&gt;# 输出到 public/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="踩坑记录"&gt;踩坑记录&lt;/h2&gt;
&lt;h3 id="坑-1hugotoml-vs-configtoml-并存"&gt;坑 1:hugo.toml vs config.toml 并存&lt;/h3&gt;
&lt;p&gt;Hugo 0.164 的 &lt;code&gt;hugo new site&lt;/code&gt; 默认生成 &lt;strong&gt;hugo.toml&lt;/strong&gt;,如果又写了 config.toml,&lt;strong&gt;两个文件并存时 hugo 优先读 hugo.toml&lt;/strong&gt;(还是默认内容),你的配置全部不生效。&lt;/p&gt;</description></item><item><title>AI 用量成本真相:4 亿 token 里 98.6% 是便宜的缓存读</title><link>https://techlog.122113.xyz/posts/2026-08-06-token-cost-truth/</link><pubDate>Thu, 06 Aug 2026 23:00:00 +0800</pubDate><guid>https://techlog.122113.xyz/posts/2026-08-06-token-cost-truth/</guid><description>&lt;blockquote&gt;
&lt;p&gt;仪表盘显示 7 天消耗 4 亿 token,看似吓人——但拆开看,真实成本一个月才几十块。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="现象"&gt;现象&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;hermes insights&lt;/code&gt; 显示:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入 477 万 + 输出 92 万&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Total 4 亿&lt;/strong&gt;(对不上?)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="真相total--输入--输出--缓存读--缓存写--推理"&gt;真相:Total = 输入 + 输出 + 缓存读 + 缓存写 + 推理&lt;/h2&gt;
&lt;p&gt;4 亿的真实构成:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;项目&lt;/th&gt;
&lt;th&gt;数量&lt;/th&gt;
&lt;th&gt;占比&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;缓存读取(cache read)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3.99 亿&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;98.6%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;输入&lt;/td&gt;
&lt;td&gt;447 万&lt;/td&gt;
&lt;td&gt;1.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;输出&lt;/td&gt;
&lt;td&gt;76 万&lt;/td&gt;
&lt;td&gt;0.2%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;推理&lt;/td&gt;
&lt;td&gt;33 万&lt;/td&gt;
&lt;td&gt;0.08%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;&amp;ldquo;4 亿&amp;quot;几乎全是缓存读取&lt;/strong&gt;——不是真的消耗了 4 亿新 token。&lt;/p&gt;
&lt;h2 id="为什么有这么多缓存读"&gt;为什么有这么多缓存读&lt;/h2&gt;
&lt;p&gt;长会话场景(如 QQ 单窗口聊天):每轮对话都要把&lt;strong&gt;整个会话历史&lt;/strong&gt;重新发给模型。但历史大部分没变,被**上下文缓存(cache)**命中——服务端只收极低的缓存价,不重新计费。&lt;/p&gt;
&lt;p&gt;单轮实测:发一条消息,输入 2,421 token,但&lt;strong&gt;缓存读 23 万&lt;/strong&gt;(整个历史)。&lt;/p&gt;
&lt;h2 id="成本换算"&gt;成本换算&lt;/h2&gt;
&lt;p&gt;按 DeepSeek V4-Flash 价格(涨价前):&lt;/p&gt;</description></item><item><title>Firecrawl 计费陷阱:PDF 提取按页计费</title><link>https://techlog.122113.xyz/posts/2026-08-06-firecrawl-pricing-pitfall/</link><pubDate>Thu, 06 Aug 2026 22:30:00 +0800</pubDate><guid>https://techlog.122113.xyz/posts/2026-08-06-firecrawl-pricing-pitfall/</guid><description>&lt;blockquote&gt;
&lt;p&gt;一次 82 页 PDF 提取烧掉 84 credits(月度免费额度的 8.4%),血的教训。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="计费规则官方确认"&gt;计费规则(官方确认)&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;操作&lt;/th&gt;
&lt;th&gt;消耗&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;搜索&lt;/td&gt;
&lt;td&gt;2 credits / 10 条结果(向上取整)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTML 提取&lt;/td&gt;
&lt;td&gt;1 credit / 页&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PDF 提取&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;按页计费&lt;/strong&gt;(82 页 ≈ 84 credits)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;搜索+自动抓正文&lt;/td&gt;
&lt;td&gt;搜索 2 + 每结果 1 credit&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;免费额度:1000 credits/月。&lt;/p&gt;
&lt;h2 id="教训"&gt;教训&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;PDF 绝对不要直接扔给 Firecrawl 提取&lt;/strong&gt;——按页计费,一个几十页的 PDF 就能烧掉月度额度的百分之几到十几。&lt;/p&gt;
&lt;h2 id="正确做法"&gt;正确做法&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;PDF → curl 下载到本地 → 本地解析(pymupdf/read_file) → 免费
HTML → Firecrawl(1 credit/页) 或 curl
搜索 → DeepSeek 服务端(不耗 Firecrawl 额度)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;实测对比:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;82 页 PDF 扔 Firecrawl:84 credits&lt;/li&gt;
&lt;li&gt;同 PDF curl + 本地解析:0 credits&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="为什么-firecrawl-搜索也烧额度"&gt;为什么 Firecrawl 搜索也烧额度&lt;/h2&gt;
&lt;p&gt;Firecrawl 的搜索&lt;strong&gt;默认会抓每个结果的正文&lt;/strong&gt;(&amp;ldquo;search + extraction in one call&amp;rdquo;)——一次搜索 10 条结果 = 2(搜索)+ 10(抓取)= 12 credits。所以搜索密集场景要小心,最好用纯搜索服务(如 DeepSeek web_search)。&lt;/p&gt;</description></item><item><title>搜索体系重建:DeepSeek 服务端搜索 + Firecrawl 提取</title><link>https://techlog.122113.xyz/posts/2026-08-06-search-stack-rebuild/</link><pubDate>Thu, 06 Aug 2026 22:00:00 +0800</pubDate><guid>https://techlog.122113.xyz/posts/2026-08-06-search-stack-rebuild/</guid><description>&lt;blockquote&gt;
&lt;p&gt;2026-08-05 ~ 08-06 折腾两天,解决&amp;quot;搜索引擎全被反爬&amp;quot;的痛点的完整方案。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="背景"&gt;背景&lt;/h2&gt;
&lt;p&gt;之前用 curl/浏览器直接抓搜索引擎(Google/Bing/DDG/Startpage/Yandex 等),结果&lt;strong&gt;全被反爬挡住&lt;/strong&gt;(CAPTCHA/403/验证页)。需要一个稳定、免反爬、低成本的搜索方案。&lt;/p&gt;
&lt;h2 id="方案演进"&gt;方案演进&lt;/h2&gt;
&lt;h3 id="阶段-1发现-deepseek-支持服务端-web_search"&gt;阶段 1:发现 DeepSeek 支持服务端 web_search&lt;/h3&gt;
&lt;p&gt;DeepSeek 官方 &lt;strong&gt;Responses API&lt;/strong&gt; 支持 &lt;code&gt;web_search&lt;/code&gt; 工具——&lt;strong&gt;搜索在 DeepSeek 服务器端执行&lt;/strong&gt;,客户端拿到的就是结构化结果,完全绕开反爬。&lt;/p&gt;
&lt;p&gt;关键验证:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;api.deepseek.com/v1/responses&lt;/code&gt; 支持 &lt;code&gt;tools: [{type: web_search}]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;事件流有 &lt;code&gt;web_search_call.in_progress / searching / completed&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;返回结果含 title/url/description&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="阶段-2发现-opencode-go-中转也支持"&gt;阶段 2:发现 opencode-go 中转也支持&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;意外收获&lt;/strong&gt;:opencode-go 的 &lt;code&gt;/zen/go/v1/responses&lt;/code&gt; 端点&lt;strong&gt;同样支持 web_search 工具&lt;/strong&gt;——意味着可以用&lt;strong&gt;已有的 OPENCODE_GO_API_KEY&lt;/strong&gt;(和主模型同一账户),不用额外注册 DeepSeek 官方 key。&lt;/p&gt;
&lt;p&gt;实测:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nt"&gt;&amp;#34;tools&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="nt"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;web_search&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;}]}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;→&lt;/span&gt; &lt;span class="err"&gt;output&lt;/span&gt; &lt;span class="err"&gt;含&lt;/span&gt; &lt;span class="err"&gt;web_search_call(completed),返回真实搜索结果&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="阶段-3firecrawl-负责提取分工"&gt;阶段 3:Firecrawl 负责提取(分工)&lt;/h3&gt;
&lt;p&gt;社区共识:&lt;strong&gt;Firecrawl 擅长网页提取(extract),搜索是弱项&lt;/strong&gt;(官方也承认&amp;quot;basic search endpoint, not true SERP&amp;quot;)。于是分工:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;web.search_backend: deepseek ← 搜索(服务端,免反爬)
web.extract_backend: firecrawl ← 提取(HTML 转 markdown)
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="最终架构"&gt;最终架构&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;┌─────────────────────────────────────────────┐
│ 搜索(web_search) → opencode-go /responses │
│ → DeepSeek 服务端执行 → 结构化结果 │
├─────────────────────────────────────────────┤
│ 提取(web_extract) → Firecrawl API │
│ → 网页转 markdown(1 credit/页) │
├─────────────────────────────────────────────┤
│ 兜底 → cn.bing / 搜狗 / curl 直抓 │
└─────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="关键点"&gt;关键点&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;搜索和提取解耦&lt;/strong&gt;:搜索走模型服务商(不烧 Firecrawl 额度),提取走 Firecrawl(免费 1000 credits/月)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;服务端搜索免反爬&lt;/strong&gt;:反爬是客户端直抓的问题,服务端执行彻底绕开&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;成本极低&lt;/strong&gt;:搜索按 token 计费(缓存命中 0.02 元/百万),提取 1 credit/页&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="附firecrawl-注册"&gt;附:Firecrawl 注册&lt;/h2&gt;
&lt;p&gt;2026 年 6 月起 Firecrawl 推出 &lt;strong&gt;Keyless 模式&lt;/strong&gt;(免 key 每月 1000 credits),但 Hermes 插件仍需要 key——邮箱注册即可拿到 &lt;code&gt;fc-&lt;/code&gt; 开头的 key,免费额度无需绑卡。&lt;/p&gt;</description></item><item><title>DeepSeek API 大幅涨价预告与峰谷定价</title><link>https://techlog.122113.xyz/posts/2026-08-06-deepseek-pricing/</link><pubDate>Thu, 06 Aug 2026 20:30:00 +0800</pubDate><guid>https://techlog.122113.xyz/posts/2026-08-06-deepseek-pricing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;2026-08-06,DeepSeek 在开发者后台发布涨价提示,多家媒体(东方财富/新浪财经/界面等)同日报道。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="核心信息"&gt;核心信息&lt;/h2&gt;
&lt;p&gt;DeepSeek 官方宣布:&lt;strong&gt;近期将整体上调 API 服务定价,预计涨幅较大&lt;/strong&gt;,并引入&lt;strong&gt;峰谷定价&lt;/strong&gt;机制。&lt;/p&gt;
&lt;h2 id="当前-v4-flash-价格涨价前"&gt;当前 V4-Flash 价格(涨价前)&lt;/h2&gt;
&lt;p&gt;单位:元/百万 tokens&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;计费项&lt;/th&gt;
&lt;th&gt;平峰&lt;/th&gt;
&lt;th&gt;高峰(工作日 9-12点/14-18点,翻倍)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;缓存命中输入&lt;/td&gt;
&lt;td&gt;0.02&lt;/td&gt;
&lt;td&gt;0.04&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;缓存未命中输入&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;输出&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;V4-Pro 当前价:缓存未命中输入 3 元、输出 6 元(高峰翻倍)。&lt;/p&gt;
&lt;h2 id="2026-年调价轨迹"&gt;2026 年调价轨迹&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;时间&lt;/th&gt;
&lt;th&gt;事件&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;4 月&lt;/td&gt;
&lt;td&gt;限时折扣&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5 月&lt;/td&gt;
&lt;td&gt;优惠结束,正式定价调整为原价 1/4(大降价)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6 月底&lt;/td&gt;
&lt;td&gt;预告 V4 上线涨价 + 引入峰谷定价&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8 月 6 日&lt;/td&gt;
&lt;td&gt;预告大幅整体上调&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="对重度用户的影响分析"&gt;对重度用户的影响分析&lt;/h2&gt;
&lt;p&gt;以实际用量为例(7 天 4 亿 token,其中 &lt;strong&gt;98.6% 是缓存读取&lt;/strong&gt;):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;缓存读 3.99 亿 × 0.02 元/百万 ≈ 8 元(平峰)&lt;/li&gt;
&lt;li&gt;输出 76 万 × 2 元/百万 ≈ 1.5 元&lt;/li&gt;
&lt;li&gt;输入 447 万 × 1 元/百万 ≈ 4.5 元&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;周成本约 14 元,月约 50-60 元&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;关键结论&lt;/strong&gt;:长会话 + 上下文重发型用量(缓存命中占比极高)恰好是 DeepSeek 定价最友好的场景——即使涨价翻倍,真实成本上升也有限,因为大头是本就便宜的缓存读取。&lt;/p&gt;</description></item><item><title>Kylin 内核更新 23.74 与 Caddy 2.11.4</title><link>https://techlog.122113.xyz/posts/2026-08-06-kylin-caddy-updates/</link><pubDate>Thu, 06 Aug 2026 15:00:00 +0800</pubDate><guid>https://techlog.122113.xyz/posts/2026-08-06-kylin-caddy-updates/</guid><description>&lt;h2 id="kylin-v10sp1-内核-2374"&gt;Kylin V10SP1 内核 23.74&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;版本: kernel-core 4.19.90-23.74.v2101.ky10&lt;/li&gt;
&lt;li&gt;公告: KYBA-202607-3631&lt;/li&gt;
&lt;li&gt;类型: Bugfix(缺陷修复),非安全更新,0 个 CVE&lt;/li&gt;
&lt;li&gt;发布时间: 2026-07-28&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="caddy-2114"&gt;Caddy 2.11.4&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;2026-06-02 发布&lt;/li&gt;
&lt;li&gt;含安全修复: 路径匹配器加固、占位符处理、header 冲突防护&lt;/li&gt;
&lt;li&gt;2.11.3 修复高危 CVE-2026-45692(admin API 认证绕过)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>AI Agent 记忆分层架构:常驻内存 + 外部知识库</title><link>https://techlog.122113.xyz/posts/2026-08-05-memory-tiered-architecture/</link><pubDate>Wed, 05 Aug 2026 22:00:00 +0800</pubDate><guid>https://techlog.122113.xyz/posts/2026-08-05-memory-tiered-architecture/</guid><description>&lt;blockquote&gt;
&lt;p&gt;解决 AI Agent 记忆&amp;quot;不够用、存不下、查不到&amp;quot;三难问题的实践方案。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="问题背景"&gt;问题背景&lt;/h2&gt;
&lt;p&gt;AI Agent(如 Hermes)的持久记忆面临矛盾:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;常驻记忆有容量上限&lt;/strong&gt;(默认 2000 字符,可扩容)— 存不了多少事实&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;全部塞进上下文太贵&lt;/strong&gt;——每轮对话都要重新发送,按 token 计费&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;低频信息不能丢&lt;/strong&gt;——设备配置、排障细节、API 用法,几周后可能还要用&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="分层方案"&gt;分层方案&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;┌─────────────────────────────────────────────┐
│ 第一层:常驻记忆(memory) │
│ · 高频事实:IP/端口/凭据位置/用户偏好/关键配置 │
│ · 默认2000字符可扩容,每轮注入上下文 │
│ · 只放精简核心 │
├─────────────────────────────────────────────┤
│ 第二层:外部知识库(fact_store) │
│ · 低频背景:设备配置/排障细节/软件特性/API用法 │
│ · 大容量、不衰减、不删除、不占 token │
│ · 结构化存储,支持实体关联/组合查询 │
├─────────────────────────────────────────────┤
│ 第三层:会话历史(session db) │
│ · 完整对话记录,可全文检索 │
│ · 用于回溯&amp;#34;当时怎么做的&amp;#34; │
└─────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="核心机制"&gt;核心机制&lt;/h2&gt;
&lt;h3 id="1-自动分层存储"&gt;1. 自动分层存储&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;先扩容常驻记忆&lt;/strong&gt;(默认 2000 → 8000 字符),容纳更多高频事实&lt;/li&gt;
&lt;li&gt;扩容后仍放不下的低频信息 → 外部库&lt;/li&gt;
&lt;li&gt;Agent 判断信息频度:&lt;strong&gt;高频 → 常驻 memory,低频 → 外部库&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;存储时自动打标签(tags),支持实体关联&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-索引锚点关键设计"&gt;2. 索引锚点(关键设计)&lt;/h3&gt;
&lt;p&gt;外部库内容&lt;strong&gt;不注入上下文&lt;/strong&gt;(不占 token),但需要&amp;quot;知道有这回事&amp;quot;才能去查:&lt;/p&gt;</description></item><item><title>Kylin V10SP1 内核 23.67→23.72 漏洞修复追踪</title><link>https://techlog.122113.xyz/posts/2026-07-26-kylin-kernel-cve/</link><pubDate>Sun, 26 Jul 2026 20:00:00 +0800</pubDate><guid>https://techlog.122113.xyz/posts/2026-07-26-kylin-kernel-cve/</guid><description>&lt;blockquote&gt;
&lt;p&gt;记录于 2026-07-26。数据来源:麒麟官方 updateinfo.xml(update.cs2c.com.cn),所有 CVE 均可通过麒麟安全中心核实。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="背景"&gt;背景&lt;/h2&gt;
&lt;p&gt;Kylin V10 SP1 基于 Linux 4.19 内核,版本格式 &lt;code&gt;4.19.90-XX.XX.v2101.ky10&lt;/code&gt;。服务器当时部署 23.67,需要确认升级路径上的安全修复情况。&lt;/p&gt;
&lt;h2 id="各版本修复的-cve-数量"&gt;各版本修复的 CVE 数量&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;内核版本&lt;/th&gt;
&lt;th style="text-align: center"&gt;修复 CVE 数&lt;/th&gt;
&lt;th style="text-align: center"&gt;严重程度&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;23.68&lt;/td&gt;
&lt;td style="text-align: center"&gt;1 个&lt;/td&gt;
&lt;td style="text-align: center"&gt;🟡&lt;/td&gt;
&lt;td&gt;CVE-2026-46243&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;23.69&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;strong&gt;49 个&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;🔴 &lt;strong&gt;大量&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;KYSA-202606-1308,Important 级别,跨越 2021-2026 五年漏洞&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;23.70&lt;/td&gt;
&lt;td style="text-align: center"&gt;1 个&lt;/td&gt;
&lt;td style="text-align: center"&gt;🟡&lt;/td&gt;
&lt;td&gt;CVE-2026-46331&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;23.71&lt;/td&gt;
&lt;td style="text-align: center"&gt;2 个&lt;/td&gt;
&lt;td style="text-align: center"&gt;🟡&lt;/td&gt;
&lt;td&gt;CVE-2026-43456, CVE-2026-43503&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;23.72&lt;/td&gt;
&lt;td style="text-align: center"&gt;2 个&lt;/td&gt;
&lt;td style="text-align: center"&gt;🟡&lt;/td&gt;
&lt;td&gt;CVE-2026-43499, CVE-2026-53359&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="重点2369-是大版本安全更新49-个-cve"&gt;重点:23.69 是大版本安全更新(49 个 CVE)&lt;/h2&gt;
&lt;p&gt;公告编号 &lt;strong&gt;KYSA-202606-1308&lt;/strong&gt;,类型 security,严重级别 &lt;strong&gt;Important&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;CVE 时间分布:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;年份&lt;/th&gt;
&lt;th&gt;CVE 数&lt;/th&gt;
&lt;th&gt;代表 CVE&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2021&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;CVE-2021-47209&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;CVE-2022-50073, 50616, 50630, 50735&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2023&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;CVE-2023-52935, 53305, 53596, 53616, 53622, 53668, 53676&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2024&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;CVE-2024-58240&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2025&lt;/td&gt;
&lt;td&gt;~14&lt;/td&gt;
&lt;td&gt;CVE-2025-38624, 38697, 38702, 38708, 39883, 39891, 39945 等&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2026&lt;/td&gt;
&lt;td&gt;~20+&lt;/td&gt;
&lt;td&gt;CVE-2026-23054, 23073, 23074, 23076, 23083, 23089, 23191, 23204, 23216, 23234, 23235, 23253, 23274, 23462, 31408, 31532, 31788, 43211, 43494&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="结论"&gt;结论&lt;/h2&gt;
&lt;p&gt;从 23.67 升级到 23.72,累计修复 &lt;strong&gt;55+ 个 CVE&lt;/strong&gt;(其中 23.69 一次堵上 49 个)。对于 7×24 服务器,建议直接升级到最新版。&lt;/p&gt;</description></item></channel></rss>