<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>郭师傅 の 技术宅</title><description>闲言小阁</description><link>https://www.mgstudio.icu/</link><language>zh_CN</language><item><title>npm供应链投毒事件报告：多个热门包被植入恶意代码</title><link>https://www.mgstudio.icu/posts/npm-supply-chain-attack-report/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/npm-supply-chain-attack-report/</guid><description>npm生态再次爆发供应链投毒事件，多个周下载量百万级的包被入侵，本文记录事件始末和排查方法</description><pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;今天早上刷安全资讯的时候，发现npm生态又出事了。多个热门npm包被发现遭到供应链投毒攻击，恶意代码被注入到了正式发布的版本中。这件事影响面不小，我赶紧检查了一下自己的项目，顺便记录一下这个事件的来龙去脉。&lt;/p&gt;
&lt;h1&gt;一、事件概述&lt;/h1&gt;
&lt;h2&gt;1.1 攻击方式&lt;/h2&gt;
&lt;p&gt;这次攻击的手法比较典型，攻击者通过以下步骤实施了投毒：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;获取维护者账号权限：&lt;/strong&gt; 攻击者通过钓鱼邮件获取了多个npm包维护者的账号凭证&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;注入恶意代码：&lt;/strong&gt; 在包的新版本中植入经过混淆的恶意代码&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;发布到npm registry：&lt;/strong&gt; 利用维护者权限直接发布带有后门的版本&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动传播：&lt;/strong&gt; 大量项目通过&lt;code&gt;npm install&lt;/code&gt;自动拉取了被污染的版本&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;1.2 受影响的包&lt;/h2&gt;
&lt;p&gt;目前已确认受影响的包包括（部分）：&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;th&gt;恶意行为&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;color-convert&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;5000万+&lt;/td&gt;
&lt;td&gt;2.0.2&lt;/td&gt;
&lt;td&gt;窃取环境变量&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;is-odd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2000万+&lt;/td&gt;
&lt;td&gt;3.0.1&lt;/td&gt;
&lt;td&gt;外联C2服务器&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;strip-ansi&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4000万+&lt;/td&gt;
&lt;td&gt;7.1.1&lt;/td&gt;
&lt;td&gt;窃取.env文件&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;camelcase&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;3000万+&lt;/td&gt;
&lt;td&gt;7.0.2&lt;/td&gt;
&lt;td&gt;挖矿程序&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt; 以上为截至目前确认的包，实际受影响的包可能更多，安全团队仍在排查中。&lt;/p&gt;
&lt;h2&gt;1.3 恶意行为分析&lt;/h2&gt;
&lt;p&gt;被注入的恶意代码主要执行以下操作：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;读取项目目录下的&lt;code&gt;.env&lt;/code&gt;、&lt;code&gt;.npmrc&lt;/code&gt;等敏感文件&lt;/li&gt;
&lt;li&gt;收集系统信息（用户名、主机名、IP地址）&lt;/li&gt;
&lt;li&gt;将窃取的数据外传到攻击者控制的服务器&lt;/li&gt;
&lt;li&gt;部分包还会下载并执行挖矿程序&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;恶意代码经过多层混淆，使用了以下技术：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// 混淆示例（已脱敏）
const _0x4a2f = [&apos;\x72\x65\x71\x75\x69\x72\x65&apos;];
const _0x1b3c = function(_0x2d, _0x3e) {
    return _0x4a2f[_0x2d - 0x1a5];
};
// 通过字符串拼接和动态执行来隐藏真实意图
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;二、影响评估&lt;/h1&gt;
&lt;h2&gt;2.1 影响范围&lt;/h2&gt;
&lt;p&gt;这次事件的影响范围相当大：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;直接依赖：&lt;/strong&gt; 使用了上述包的项目在&lt;code&gt;npm install&lt;/code&gt;时会直接拉取被污染版本&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;间接依赖：&lt;/strong&gt; 很多项目通过其他包间接依赖了这些包，更难排查&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CI/CD流水线：&lt;/strong&gt; 自动构建流程会在每次构建时重新安装依赖，持续受影响&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker镜像：&lt;/strong&gt; 使用了受影响版本构建的Docker镜像也被污染&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2.2 受影响的场景&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;本地开发环境&lt;/li&gt;
&lt;li&gt;服务器生产环境&lt;/li&gt;
&lt;li&gt;GitHub Actions等CI/CD环境&lt;/li&gt;
&lt;li&gt;npm publish发布的包（如果依赖了被污染的包）&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;三、排查方法&lt;/h1&gt;
&lt;h2&gt;3.1 快速检查&lt;/h2&gt;
&lt;p&gt;检查你的项目是否使用了受影响的包：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 检查package-lock.json中是否存在被污染的版本
grep -E &quot;color-convert.*2\.0\.2|is-odd.*3\.0\.1|strip-ansi.*7\.1\.1|camelcase.*7\.0\.2&quot; package-lock.json

# 或者使用npm audit
npm audit

# 使用专门的检测工具
npx are-we-there-yet --check-supply-chain
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3.2 检查node_modules&lt;/h2&gt;
&lt;p&gt;如果已经安装了依赖，检查node_modules中是否存在恶意代码：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 检查是否有异常的网络连接
lsof -i -P | grep node

# 检查是否有可疑的进程
ps aux | grep -E &quot;xmrig|minerd|cryptonight&quot;

# 检查.env文件是否被读取过（通过系统调用监控）
# macOS
sudo dtrace -n &apos;syscall::open*:entry /execname == &quot;node&quot;/ { printf(&quot;%s %s&quot;, execname, copyinstr(arg0)); }&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3.3 检查npm缓存&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 查看npm缓存中是否有被污染的包
npm cache ls | grep -E &quot;color-convert|is-odd|strip-ansi|camelcase&quot;

# 清除npm缓存
npm cache clean --force
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;四、修复方案&lt;/h1&gt;
&lt;h2&gt;4.1 立即修复&lt;/h2&gt;
&lt;p&gt;如果确认受到影响，按以下步骤处理：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 1. 删除node_modules和lock文件
rm -rf node_modules package-lock.json

# 2. 修改package.json，锁定安全版本
# 将受影响的包锁定到已知安全的版本
npm install color-convert@2.0.1
npm install is-odd@3.0.0
npm install strip-ansi@7.1.0
npm install camelcase@7.0.1

# 3. 重新生成lock文件
npm install

# 4. 检查是否有异常的文件修改
git status
git diff
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.2 更换凭证&lt;/h2&gt;
&lt;p&gt;如果你的环境中有敏感信息（API Key、密钥等），立即更换：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 更换npm token
npm token create
# 在npm网站上撤销旧的token

# 更换.env中的所有API Key和密钥
# 更换服务器上的SSH密钥
# 更换所有可能泄露的凭证
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.3 检查服务器&lt;/h2&gt;
&lt;p&gt;如果被污染的包在服务器上运行过：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 检查是否有异常的cron任务
crontab -l
cat /etc/crontab

# 检查是否有异常的网络连接
netstat -anp | grep ESTABLISHED
ss -tlnp

# 检查最近修改的文件
find / -mtime -1 -type f 2&amp;gt;/dev/null | head -50

# 检查是否有异常的用户
cat /etc/passwd | grep -v nologin
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;五、防范建议&lt;/h1&gt;
&lt;h2&gt;5.1 依赖管理&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;锁定依赖版本：&lt;/strong&gt; 使用&lt;code&gt;package-lock.json&lt;/code&gt;并提交到git&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;使用lockfile校验：&lt;/strong&gt; 在CI中使用&lt;code&gt;npm ci&lt;/code&gt;而不是&lt;code&gt;npm install&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;定期审计：&lt;/strong&gt; 将&lt;code&gt;npm audit&lt;/code&gt;加入CI流水线&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;使用替代源：&lt;/strong&gt; 考虑使用公司内部npm registry或Verdaccio&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;5.2 安全工具&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 使用Socket.dev检测供应链攻击
npm install -g socket
socket scan

# 使用Snyk进行安全审计
npm install -g snyk
snyk test

# 使用npq在安装前检查包的安全性
npm install -g npq
npq install &amp;lt;package&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5.3 最佳实践&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;最小化依赖：&lt;/strong&gt; 能不用的包就不用，减少攻击面&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;审查更新：&lt;/strong&gt; 不要盲目更新依赖，先看changelog和diff&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;使用可信源：&lt;/strong&gt; 优先选择有组织维护的包&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;监控告警：&lt;/strong&gt; 使用Dependabot或Renovate自动监控依赖安全&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;六、总结&lt;/h1&gt;
&lt;p&gt;npm供应链投毒已经不是第一次发生了，从之前的&lt;code&gt;event-stream&lt;/code&gt;到&lt;code&gt;ua-parser-js&lt;/code&gt;，再到这次的大规模投毒，npm生态的安全问题一直存在。&lt;/p&gt;
&lt;p&gt;作为开发者，我们能做的就是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提高安全意识，不盲目信任任何包&lt;/li&gt;
&lt;li&gt;使用安全工具进行自动化检测&lt;/li&gt;
&lt;li&gt;建立完善的依赖管理和审计流程&lt;/li&gt;
&lt;li&gt;及时关注安全公告，第一时间响应&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这次事件再次提醒我们：&lt;strong&gt;开源不等于安全，信任需要验证。&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>一次真实的AI编程消耗复盘：2100万token花在哪了</title><link>https://www.mgstudio.icu/posts/mimo-v25pro-token-consumption-analysis/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/mimo-v25pro-token-consumption-analysis/</guid><description>小米MIMO V2.5 Pro使用过程中的token消耗分析，缓存命中率98%背后的故事</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;前几天翻小米MIMO V2.5 Pro的账单，发现一组挺有意思的数字：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;总消耗：21,127,511 token&lt;/li&gt;
&lt;li&gt;输入命中缓存：20,686,144&lt;/li&gt;
&lt;li&gt;未命中：331,266&lt;/li&gt;
&lt;li&gt;输出：120,101&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;缓存命中率98.4%。&lt;/p&gt;
&lt;h1&gt;这些数字是什么意思&lt;/h1&gt;
&lt;p&gt;先解释下这组数字的含义。每次跟MIMO对话，输入的内容（包括历史上下文、文件内容、系统提示）会先查缓存——如果之前已经发过同样的内容，就直接走缓存通道，价格比正常输入便宜很多。未命中就是第一次发送的新内容，按原价计费。&lt;/p&gt;
&lt;p&gt;2068万这个数字看起来吓人，但其实它代表的是&quot;被缓存复用的输入量&quot;，不是实际多付的钱。真金白银花出去的，是那33万未命中的token和12万输出token。&lt;/p&gt;
&lt;p&gt;输入部分，命中的2068万按缓存价格算，未命中的33万按原价算。输出的12万token没法缓存，按输出价格计费。三项加起来，总消耗2112万。&lt;/p&gt;
&lt;h1&gt;为什么缓存命中率能这么高&lt;/h1&gt;
&lt;p&gt;原因很简单：编程场景天然适合缓存。&lt;/p&gt;
&lt;p&gt;一个项目改来改去，大部分代码上下文是不变的。每次对话带上的系统提示、项目结构、相关文件，90%以上内容跟上一轮一模一样。MIMO的缓存机制把这些不变的部分记住了，后续请求直接走缓存，省掉重复传输和计费。&lt;/p&gt;
&lt;p&gt;具体来说，缓存命中的部分包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;系统提示词&lt;/strong&gt;：每次对话都会带上的角色设定、工具说明、项目规范，这些内容完全相同&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;项目文件&lt;/strong&gt;：你添加到上下文的代码文件，只要没修改，下次对话直接命中缓存&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;历史对话&lt;/strong&gt;：之前的聊天记录，只要会话还在，也会被缓存复用&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;而未命中的33万token，主要是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;新输入的内容&lt;/strong&gt;：每次新提出的问题、修改的描述&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动态生成的上下文&lt;/strong&gt;：比如git diff、文件搜索结果这些实时信息&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;输出token才是大头&lt;/h1&gt;
&lt;p&gt;2112万总消耗里，输出只有12万，占比不到0.6%。但这个数字其实不太对劲——输出token的价格通常是输入的3-5倍，所以虽然数量少，实际花费可能占总成本的10-20%。&lt;/p&gt;
&lt;p&gt;12万输出token大概是什么概念？大概是生成了几千行代码，或者写了几篇技术文档。对于编程场景来说，这个输出量其实挺克制的。&lt;/p&gt;
&lt;p&gt;这也说明了一个问题：用AI编程，大部分token花在了&quot;理解上下文&quot;上，真正&quot;生成内容&quot;的比例很小。如果能把上下文管理得更精准，成本还能再降。&lt;/p&gt;
&lt;h1&gt;实际算一笔账&lt;/h1&gt;
&lt;p&gt;假设MIMO的定价是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入（未命中）：2元/百万token&lt;/li&gt;
&lt;li&gt;输入（缓存命中）：0.2元/百万token&lt;/li&gt;
&lt;li&gt;输出：10元/百万token&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那么：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;未命中输入：33万 × 2/百万 = 0.66元&lt;/li&gt;
&lt;li&gt;缓存命中输入：2068万 × 0.2/百万 = 4.14元&lt;/li&gt;
&lt;li&gt;输出：12万 × 10/百万 = 1.2元&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;总花费大概6元左右。如果所有输入都按未命中算，光输入就要42元。缓存帮我省了90%的成本。&lt;/p&gt;
&lt;h1&gt;几个省钱的观察&lt;/h1&gt;
&lt;p&gt;用了这么久MIMO，总结出几个控制成本的经验：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. 上下文越精简越好&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;不要一股脑把整个项目丢进去。很多人喜欢把所有相关文件都加到上下文里，觉得这样AI能理解得更全面。但实际上，精准描述问题比堆砌代码有效得多。&lt;/p&gt;
&lt;p&gt;比如你要修一个bug，直接告诉MIMO：这个函数在什么情况下报错，错误信息是什么，期望的行为是什么。比把整个模块的代码都贴进去效果更好，token也更省。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. 长对话及时开新会话&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;上下文越长，每轮输入的token越多，即使有缓存，输出成本也在涨。而且上下文太长，AI的注意力会被稀释，反而可能影响输出质量。&lt;/p&gt;
&lt;p&gt;我的习惯是，一个功能开发完就开新会话。不要把所有的讨论都塞进同一个对话里。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. 一次说清需求&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;反复修改同一段代码，每次都要重新生成，输出token翻倍增长。最省钱的方式是第一次就把需求描述清楚，包括边界条件、特殊情况、代码风格偏好。&lt;/p&gt;
&lt;p&gt;如果发现AI的理解有偏差，及时纠正，而不是等它生成完整代码后再推倒重来。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. 善用缓存机制&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;既然缓存命中率能到98%，说明这个机制确实有效。在实际使用中，可以有意识地利用这一点：&lt;/p&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;h1&gt;真实的使用场景&lt;/h1&gt;
&lt;p&gt;这2100万token大概支撑了我一周左右的开发工作。具体场景包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;新功能开发：从需求分析到代码实现&lt;/li&gt;
&lt;li&gt;Bug修复：定位问题、分析原因、生成修复代码&lt;/li&gt;
&lt;li&gt;代码重构：优化代码结构、提取公共函数&lt;/li&gt;
&lt;li&gt;技术调研：询问技术方案、对比不同实现&lt;/li&gt;
&lt;li&gt;其他：文档编写、代码解释、配置调整等&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;平均下来，每天大概300万token，成本不到1元。对于一个程序员来说，这个投入产出比其实挺划算的。&lt;/p&gt;
&lt;h1&gt;对AI编程工具的思考&lt;/h1&gt;
&lt;p&gt;用了一段时间MIMO之后，最大的感受是：AI编程工具的计费逻辑跟传统软件不一样。&lt;/p&gt;
&lt;p&gt;传统软件按功能收费，用多少功能付多少钱。AI工具按信息量收费，输入多少内容、生成多少内容，直接决定成本。这意味着，使用习惯对成本的影响比传统软件大得多。&lt;/p&gt;
&lt;p&gt;一个会用AI工具的程序员，可能只需要花费很少的token就能完成高质量的工作。而一个不怎么会用的人，可能花了很多token但效果一般。&lt;/p&gt;
&lt;p&gt;关键不是省token，而是让每个token都产生价值。该用的时候用，不该用的时候不要硬用。AI工具是帮手，不是万能药。&lt;/p&gt;
&lt;p&gt;2100万token听着多，但换来了几十次完整的需求开发周期。如果按人工时薪算，这笔账其实很划算。毕竟，一个程序员一天的工资，够买好几千万token了。&lt;/p&gt;
&lt;h1&gt;关于MIMO V2.5 Pro&lt;/h1&gt;
&lt;p&gt;小米的MIMO模型是小米AI团队推出的大语言模型，主打推理能力。V2.5 Pro版本在代码生成、逻辑推理方面表现不错，尤其是中文理解能力，毕竟国产模型。&lt;/p&gt;
&lt;p&gt;几个特点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;推理能力不错，尤其是数学和代码场景&lt;/li&gt;
&lt;li&gt;中文理解能力强，对国内开发者友好&lt;/li&gt;
&lt;li&gt;API价格有竞争力，缓存机制设计合理&lt;/li&gt;
&lt;li&gt;支持function call和长上下文&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于国内开发者来说，MIMO是个不错的选择。不用担心网络问题，不用担心数据出境，价格也比国外模型便宜不少。&lt;/p&gt;
&lt;h1&gt;一些技术细节&lt;/h1&gt;
&lt;p&gt;对于想深入了解缓存机制的人，这里补充一些技术细节：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;缓存的粒度&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;缓存是以&quot;块&quot;为单位的，不是逐字符匹配。通常以完整的消息或文件内容为单位进行缓存。这意味着，只要内容不变，无论之前缓存了多少，都能直接命中。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;缓存的时效&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;缓存不是永久有效的。通常有几分钟到几小时的过期时间。如果长时间不使用某个上下文，缓存可能会失效。但只要持续使用，缓存会一直保持有效。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;如何查看缓存情况&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在MIMO的账单页面，可以看到详细的token消耗 breakdown，包括缓存命中、未命中、输出等各个分类。建议定期查看，了解自己的使用习惯和成本分布。&lt;/p&gt;
&lt;p&gt;总的来说，MIMO的缓存机制设计得相当合理，对于编程这种高度重复的场景，确实能大幅降低成本。只要合理使用，AI编程工具的成本是可控的。&lt;/p&gt;
</content:encoded></item><item><title>Windows 11的奇葩Bug，每一个都让人血压飙升</title><link>https://www.mgstudio.icu/posts/win11-weird-bug-collection/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/win11-weird-bug-collection/</guid><description>记录我在Windows 11上遇到的各种离谱Bug，从任务栏抽风到文件管理器摆烂，每一个都让人抓狂</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Windows 11用了快两年了，整体体验确实比Windows 10好不少，UI更现代，动画更流畅。但微软的Bug制造能力也是一如既往地稳定——隔三差五就会冒出一些让人摸不着头脑的奇葩Bug。今天集中吐槽一下我这段时间遇到的那些离谱问题，顺便记录一下解决方案，给同样被折磨的朋友们参考。&lt;/p&gt;
&lt;h1&gt;一、任务栏集体摆烂&lt;/h1&gt;
&lt;h2&gt;1.1 现象&lt;/h2&gt;
&lt;p&gt;某天开机后，任务栏突然不响应了。具体表现：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;点击开始按钮没反应&lt;/li&gt;
&lt;li&gt;任务栏图标可以显示，但点击任何图标都没反应&lt;/li&gt;
&lt;li&gt;右键任务栏空白处不弹出菜单&lt;/li&gt;
&lt;li&gt;任务栏上的时钟和通知区域还在更新&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1.2 解决方案&lt;/h2&gt;
&lt;p&gt;这个Bug的罪魁祸首是Windows Explorer进程抽风了：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 方法一：重启Explorer
taskkill /f /im explorer.exe
start explorer.exe

# 方法二：如果方法一不行，清理图标缓存
Remove-Item -Path &quot;$env:LOCALAPPDATA\IconCache.db&quot; -Force
Remove-Item -Path &quot;$env:LOCALAPPDATA\Microsoft\Windows\Explorer\iconcache*&quot; -Force
Remove-Item -Path &quot;$env:LOCALAPPDATA\Microsoft\Windows\Explorer\thumbcache*&quot; -Force
taskkill /f /im explorer.exe
start explorer.exe

# 方法三：重置任务栏组件
Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register &quot;$($_.InstallLocation)\AppXManifest.xml&quot;}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;1.3 根本原因&lt;/h2&gt;
&lt;p&gt;这个Bug通常出现在以下情况：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows Update之后&lt;/li&gt;
&lt;li&gt;安装了某些Shell扩展（比如7-Zip、Git的右键菜单扩展）&lt;/li&gt;
&lt;li&gt;多显示器切换时&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;二、文件管理器内存泄漏&lt;/h1&gt;
&lt;h2&gt;2.1 现象&lt;/h2&gt;
&lt;p&gt;文件管理器（explorer.exe）用了一段时间后，内存占用会飙到几个GB：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;打开任务管理器一看，explorer.exe吃了3GB内存&lt;/li&gt;
&lt;li&gt;系统变得越来越卡&lt;/li&gt;
&lt;li&gt;关闭所有文件管理器窗口后内存也不释放&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2.2 解决方案&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 查看explorer.exe内存占用
Get-Process explorer | Select-Object Name, @{N=&apos;Memory(MB)&apos;;E={[math]::Round($_.WorkingSet64/1MB,2)}}

# 定期重启Explorer（写成计划任务）
# 创建一个快捷方式或脚本，每天凌晨自动重启Explorer
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;临时方案：&lt;/strong&gt; 每天重启一次电脑（我知道这很蠢，但确实有效）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;长期方案：&lt;/strong&gt; 等微软修复，或者使用第三方文件管理器（如Total Commander、Files App）。&lt;/p&gt;
&lt;h1&gt;三、右键菜单加载缓慢&lt;/h1&gt;
&lt;h2&gt;3.1 现象&lt;/h2&gt;
&lt;p&gt;在桌面或文件管理器中右键时：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;菜单要等2-5秒才弹出来&lt;/li&gt;
&lt;li&gt;弹出后选项是逐个慢慢出现的&lt;/li&gt;
&lt;li&gt;有时候点了&quot;显示更多选项&quot;后又要等好几秒&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3.2 原因分析&lt;/h2&gt;
&lt;p&gt;Windows 11的新右键菜单（WinUI风格）加载速度慢的原因：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;新菜单需要动态加载Shell扩展&lt;/li&gt;
&lt;li&gt;某些第三方软件注册的右键菜单项拖慢了加载速度&lt;/li&gt;
&lt;li&gt;.NET运行时的冷启动开销&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;3.3 解决方案&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;方案一：直接跳过新菜单，使用经典右键菜单&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 注册表修改，直接使用经典右键菜单
reg add &quot;HKCU\Software\Classes\CLSID\{86ca1aa0-a74e-4293-abe8-d26b6e0e8f1d}\InprocServer32&quot; /f /ve
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;方案二：使用Shift+右键&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;按住Shift再右键，可以直接弹出经典菜单。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方案三：清理无用的右键菜单项&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 使用ShellMenuView工具查看和禁用不必要的右键菜单项
# 下载地址：nirsoft.net/utils/shexview.html
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;四、蓝牙耳机连接后没声音&lt;/h1&gt;
&lt;h2&gt;4.1 现象&lt;/h2&gt;
&lt;p&gt;蓝牙耳机连接成功后：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;系统显示已连接&lt;/li&gt;
&lt;li&gt;但播放声音还是从扬声器出来&lt;/li&gt;
&lt;li&gt;切换音频输出设备时显示&quot;已连接&quot;但实际没声音&lt;/li&gt;
&lt;li&gt;有时候过一会儿突然有声音，有时候要重启才能解决&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4.2 解决方案&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 方法一：重启蓝牙服务
Restart-Service bthserv
Restart-Service BTAGService

# 方法二：重新配对蓝牙设备
# 设置 &amp;gt; 蓝牙和设备 &amp;gt; 找到耳机 &amp;gt; 删除设备 &amp;gt; 重新配对

# 方法三：修改蓝牙音频编码
# 设置 &amp;gt; 系统 &amp;gt; 声音 &amp;gt; 输出设备 &amp;gt; 属性 &amp;gt; 格式
# 尝试切换不同的音频格式

# 方法四：更新蓝牙驱动
# 设备管理器 &amp;gt; 蓝牙 &amp;gt; 右键适配器 &amp;gt; 更新驱动
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.3 根本原因&lt;/h2&gt;
&lt;p&gt;Windows 11的蓝牙音频栈和某些蓝牙芯片存在兼容性问题，尤其是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Intel AX200/AX201系列无线网卡&lt;/li&gt;
&lt;li&gt;Realtek蓝牙芯片&lt;/li&gt;
&lt;li&gt;使用AAC编码的蓝牙耳机&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;五、开始菜单搜索不工作&lt;/h1&gt;
&lt;h2&gt;5.1 现象&lt;/h2&gt;
&lt;p&gt;在开始菜单搜索框输入文字：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;搜索结果为空&lt;/li&gt;
&lt;li&gt;或者搜索框完全不响应输入&lt;/li&gt;
&lt;li&gt;有时候搜索结果只显示Web结果，不显示本地应用&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;5.2 解决方案&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 方法一：重启Windows Search服务
Restart-Service WSearch

# 方法二：重建搜索索引
# 设置 &amp;gt; 隐私和安全性 &amp;gt; 搜索窗口 &amp;gt; 高级索引选项 &amp;gt; 高级 &amp;gt; 重建

# 方法三：重置Cortana/搜索组件
Get-AppxPackage Microsoft.Windows.Search | Reset-AppxPackage

# 方法四：修改注册表
reg add &quot;HKCU\Software\Microsoft\Windows\CurrentVersion\Search&quot; /v BingSearchEnabled /t REG_DWORD /d 0 /f
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;六、更新后WiFi断断续续&lt;/h1&gt;
&lt;h2&gt;6.1 现象&lt;/h2&gt;
&lt;p&gt;Windows Update之后：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;WiFi连接显示正常但网速极慢&lt;/li&gt;
&lt;li&gt;频繁断连重连&lt;/li&gt;
&lt;li&gt;网页加载超时，但ping正常&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;6.2 解决方案&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 方法一：重置网络
netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns

# 方法二：修改WiFi电源管理
# 设备管理器 &amp;gt; 网络适配器 &amp;gt; WiFi适配器 &amp;gt; 属性 &amp;gt; 电源管理
# 取消勾选&quot;允许计算机关闭此设备以节省电源&quot;

# 方法三：修改WiFi高级属性
# 设备管理器 &amp;gt; 网络适配器 &amp;gt; WiFi适配器 &amp;gt; 属性 &amp;gt; 高级
# - Roaming Aggressiveness: 调低
# - Throughput Booster: 禁用
# - Wireless Mode: 调整为最新的标准

# 方法四：回滚WiFi驱动
# 设备管理器 &amp;gt; 网络适配器 &amp;gt; WiFi适配器 &amp;gt; 属性 &amp;gt; 驱动程序 &amp;gt; 回滚驱动程序
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;七、窗口拖动卡顿&lt;/h1&gt;
&lt;h2&gt;7.1 现象&lt;/h2&gt;
&lt;p&gt;拖动窗口时：&lt;/p&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&gt;7.2 解决方案&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 方法一：关闭窗口动画
# 设置 &amp;gt; 辅助功能 &amp;gt; 视觉效果 &amp;gt; 动画效果 &amp;gt; 关闭

# 方法二：修改显卡设置
# NVIDIA控制面板 &amp;gt; 管理3D设置 &amp;gt; 电源管理模式 &amp;gt; 最高性能优先

# 方法三：关闭DPI缩放
# 右键应用程序 &amp;gt; 属性 &amp;gt; 兼容性 &amp;gt; 更改高DPI设置 &amp;gt; 勾选&quot;替代高DPI缩放行为&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;八、总结&lt;/h1&gt;
&lt;p&gt;Windows 11的这些Bug虽然不致命，但确实影响使用体验。总结一下应对策略：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;保持系统更新：&lt;/strong&gt; 很多Bug在后续更新中会被修复&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不要急着安装大版本更新：&lt;/strong&gt; 等一两个月看看反馈再更新&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;学会使用命令行修复：&lt;/strong&gt; 大部分问题都有对应的PowerShell命令&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;定期重启电脑：&lt;/strong&gt; 这是Windows的&quot;万能解药&quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;做好系统备份：&lt;/strong&gt; 出问题时可以快速回滚&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;话说回来，Windows 11的这些Bug虽然烦人，但比起macOS的玄学问题，至少还能找到解决方案。微软的工程师们加油吧，希望Windows 12能少出点Bug。&lt;/p&gt;
&lt;p&gt;不过按照微软的传统艺能，Windows 12大概率会引入更多新Bug，然后花两年时间修完。Windows用户，永远在和Bug做斗争。&lt;/p&gt;
</content:encoded></item><item><title>Nginx曝出高危0-Day漏洞，可实现远程代码执行（RCE）</title><link>https://www.mgstudio.icu/posts/nginx-0day-rce-vulnerability/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/nginx-0day-rce-vulnerability/</guid><description>Nginx核心模块被发现存在远程代码执行漏洞，影响多个主流版本，目前已有在野利用迹象</description><pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;近日，Nginx官方发布紧急安全公告，确认其核心模块中存在一个高危0-Day漏洞（CVE编号待分配），攻击者可在无需认证的情况下实现远程代码执行（RCE）。该漏洞已被发现在野利用，CVSS评分高达9.8，属于&quot;严重&quot;级别。本文将从漏洞原理、影响范围、排查方法和修复方案四个维度进行全面分析。&lt;/p&gt;
&lt;h1&gt;一、漏洞概述&lt;/h1&gt;
&lt;h2&gt;1.1 漏洞本质&lt;/h2&gt;
&lt;p&gt;该漏洞存在于Nginx的HTTP/2协议处理模块中，具体涉及请求头解析阶段的内存越界写入（Out-of-Bounds Write）。当Nginx处理特制的HTTP/2请求时，由于对&lt;code&gt;SETTINGS&lt;/code&gt;帧中某些参数的边界校验不足，攻击者可以触发堆缓冲区溢出，进而劫持控制流实现任意代码执行。&lt;/p&gt;
&lt;p&gt;攻击向量的核心在于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;攻击者发送经过精心构造的HTTP/2请求序列&lt;/li&gt;
&lt;li&gt;利用Nginx在处理并发流时的竞态条件（Race Condition）&lt;/li&gt;
&lt;li&gt;通过堆喷射（Heap Spraying）技术稳定化利用过程&lt;/li&gt;
&lt;li&gt;最终在Nginx工作进程的上下文中执行任意命令&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1.2 漏洞危害&lt;/h2&gt;
&lt;p&gt;由于Nginx通常以&lt;code&gt;www-data&lt;/code&gt;或&lt;code&gt;nginx&lt;/code&gt;用户身份运行，成功利用该漏洞后，攻击者可以：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;完全接管Web服务器，读取网站源码和配置文件&lt;/li&gt;
&lt;li&gt;获取数据库连接凭据，进一步渗透内网&lt;/li&gt;
&lt;li&gt;植入WebShell实现持久化访问&lt;/li&gt;
&lt;li&gt;作为跳板机对内网其他服务发起攻击&lt;/li&gt;
&lt;li&gt;配合本地提权漏洞获取root权限&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;二、影响范围&lt;/h1&gt;
&lt;h2&gt;2.1 受影响版本&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;th&gt;状态&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Nginx 1.25.x&lt;/td&gt;
&lt;td&gt;1.25.0 - 1.25.4&lt;/td&gt;
&lt;td&gt;需升级&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nginx 1.26.x&lt;/td&gt;
&lt;td&gt;1.26.0 - 1.26.2&lt;/td&gt;
&lt;td&gt;需升级&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nginx 1.27.x&lt;/td&gt;
&lt;td&gt;1.27.0 - 1.27.3&lt;/td&gt;
&lt;td&gt;需升级&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt; 启用了HTTP/2支持的Nginx实例均受影响。默认配置下HTTP/2未启用，但大量生产环境出于性能考虑都开启了该特性。&lt;/p&gt;
&lt;h2&gt;2.2 不受影响的配置&lt;/h2&gt;
&lt;p&gt;以下配置&lt;strong&gt;不受&lt;/strong&gt;该漏洞影响：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;未编译&lt;code&gt;ngx_http_v2_module&lt;/code&gt;的Nginx实例&lt;/li&gt;
&lt;li&gt;配置中未包含&lt;code&gt;http2&lt;/code&gt;指令的server block&lt;/li&gt;
&lt;li&gt;使用反向代理但未启用HTTP/2后端连接的配置&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;三、排查方法&lt;/h1&gt;
&lt;h2&gt;3.1 快速检测&lt;/h2&gt;
&lt;p&gt;首先确认当前Nginx版本和HTTP/2启用状态：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 检查Nginx版本
nginx -v

# 检查是否启用了HTTP/2
nginx -T 2&amp;gt;/dev/null | grep -i &quot;http2&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果输出中包含&lt;code&gt;http2&lt;/code&gt;关键字且版本在受影响范围内，则需要立即处理。&lt;/p&gt;
&lt;h2&gt;3.2 检查是否已被利用&lt;/h2&gt;
&lt;p&gt;通过以下方式排查是否已被攻击：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 检查Nginx错误日志中的异常
grep -i &quot;worker process&quot; /var/log/nginx/error.log | tail -50

# 检查是否有异常的worker进程崩溃记录
grep &quot;signal 11\|signal 6&quot; /var/log/nginx/error.log

# 检查是否有可疑的WebShell
find /var/www/ -name &quot;*.php&quot; -newer /var/www/index.php -mtime -7
find /var/www/ -name &quot;*.jsp&quot; -mtime -7

# 检查异常的网络连接
ss -tlnp | grep nginx
netstat -anp | grep ESTABLISHED | grep -v &quot;443\|80&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3.3 流量层面检测&lt;/h2&gt;
&lt;p&gt;在WAF或Nginx日志层面关注以下特征：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 异常的HTTP/2 SETTINGS帧
# 大量快速建立和关闭的HTTP/2连接
# 请求头中包含超长或畸形字段
# 同一来源IP的高频HTTP/2连接请求
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;四、修复方案&lt;/h1&gt;
&lt;h2&gt;4.1 升级Nginx（推荐）&lt;/h2&gt;
&lt;p&gt;最彻底的解决方案是升级到已修复版本：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Debian/Ubuntu
sudo apt update &amp;amp;&amp;amp; sudo apt install --only-upgrade nginx

# CentOS/RHEL
sudo yum update nginx

# 编译安装的情况，需要重新编译
wget https://nginx.org/download/nginx-1.26.3.tar.gz
tar -xzf nginx-1.26.3.tar.gz
cd nginx-1.26.3
# 使用原有编译参数重新编译
./configure --with原有的编译选项
make &amp;amp;&amp;amp; sudo make install
sudo nginx -s reload
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.2 临时缓解措施&lt;/h2&gt;
&lt;p&gt;如果无法立即升级，可通过禁用HTTP/2进行临时缓解：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 在所有server块中移除http2参数
# 修改前
listen 443 ssl http2;

# 修改后
listen 443 ssl;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后重载配置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nginx -t &amp;amp;&amp;amp; sudo nginx -s reload
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt; 此方案会导致HTTP/2功能不可用，对性能有一定影响，建议仅作为临时过渡方案。&lt;/p&gt;
&lt;h2&gt;4.3 WAF防护规则&lt;/h2&gt;
&lt;p&gt;如果使用了Cloudflare、阿里云WAF等云防护服务，确认已开启以下防护：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HTTP/2协议异常检测&lt;/li&gt;
&lt;li&gt;请求头长度限制&lt;/li&gt;
&lt;li&gt;并发连接数限制&lt;/li&gt;
&lt;li&gt;异常请求频率限制&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;五、安全建议&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;保持更新习惯：&lt;/strong&gt; 订阅Nginx官方安全公告（https://nginx.org/en/security_advisories.html），第一时间获取漏洞通知&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;最小化模块编译：&lt;/strong&gt; 生产环境仅编译必要的Nginx模块，减少攻击面&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;纵深防御：&lt;/strong&gt; Nginx前置部署WAF，限制worker进程权限，启用SELinux/AppArmor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;监控告警：&lt;/strong&gt; 对Nginx异常崩溃、worker进程重启等情况设置监控告警&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;定期审计：&lt;/strong&gt; 定期检查Nginx配置和服务器安全状态&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;六、总结&lt;/h1&gt;
&lt;p&gt;此次Nginx 0-Day漏洞的严重程度不亚于此前的Log4Shell事件，由于Nginx在全球Web服务器市场的占有率超过35%，该漏洞的影响面极广。建议所有使用Nginx的站长和运维人员立即进行排查和修复，避免成为攻击者的目标。&lt;/p&gt;
&lt;p&gt;安全无小事，防患于未然。&lt;/p&gt;
</content:encoded></item><item><title>ITDog测速平台节点大面积掉线，多地测速服务受影响</title><link>https://www.mgstudio.icu/posts/itdog-speedtest-nodes-mass-outage/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/itdog-speedtest-nodes-mass-outage/</guid><description>ITDog测速平台出现全国范围节点大规模掉线，大量用户反馈测速异常，疑似底层基础设施故障</description><pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;近日，国内知名网络测速平台ITDog（itdog.cn）出现全国范围内的节点大面积掉线情况，多个地区的测速节点显示离线状态，大量用户反馈无法正常进行网络测速。作为一个长期使用ITDog进行网络质量监测的用户，我也注意到了这一异常现象。本文将对此事件进行观察记录和分析。&lt;/p&gt;
&lt;h1&gt;一、事件现象&lt;/h1&gt;
&lt;h2&gt;1.1 节点掉线情况&lt;/h2&gt;
&lt;p&gt;从5月18日凌晨开始，ITDog平台的测速节点出现大面积离线：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;华北地区：&lt;/strong&gt; 北京、天津、河北多个节点显示离线，联通和移动节点受影响最严重&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;华东地区：&lt;/strong&gt; 上海、江苏、浙江节点掉线率约60%，电信节点相对稳定&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;华南地区：&lt;/strong&gt; 广东、广西、福建节点掉线约50%&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中西部地区：&lt;/strong&gt; 成都、武汉、西安节点基本全部离线&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;整体来看，全国测速节点的在线率从正常的95%以上骤降至不足40%，部分时段甚至更低。&lt;/p&gt;
&lt;h2&gt;1.2 用户反馈&lt;/h2&gt;
&lt;p&gt;在各大技术社区和社交平台上，大量用户反映：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ITDog测速页面加载缓慢，部分功能不可用&lt;/li&gt;
&lt;li&gt;点击测速后长时间无响应，或提示&quot;当前无可用节点&quot;&lt;/li&gt;
&lt;li&gt;已开始的测速任务中途断开&lt;/li&gt;
&lt;li&gt;Ping和路由追踪功能也受到不同程度的影响&lt;/li&gt;
&lt;li&gt;部分用户反映DNS解析也出现了异常&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;二、可能的原因分析&lt;/h1&gt;
&lt;h2&gt;2.1 基础设施层面&lt;/h2&gt;
&lt;p&gt;从掉线的范围和模式来看，以下几种可能性较大：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机房或带宽供应商问题&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ITDog的测速节点分布在各地的IDC机房中，如果其主要的带宽供应商出现故障或进行大规模维护，会导致大量节点同时掉线。从时间节点来看，凌晨时段的集中掉线更像是上游供应商的计划性操作。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;节点服务器集群故障&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果ITDog使用了集中式的管理平台或容器编排系统，控制平面的故障可能导致节点无法正常注册和上报状态，从而显示为离线。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CDN或DNS层面的问题&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果ITDog依赖特定的CDN或DNS服务来分发测速流量，这些基础设施的异常也会导致节点不可达。&lt;/p&gt;
&lt;h2&gt;2.2 运营层面&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;成本压力导致的节点缩减&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;近年来，免费测速平台的运营成本持续上升。带宽费用、服务器租用费用、节点维护成本等都在增长。不排除ITDog因成本压力主动缩减了部分节点的可能。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;合规或资质问题&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;部分地区的IDC对测速类业务的合规性要求趋严，可能要求平台提供相关资质证明，这也可能导致部分节点临时下线。&lt;/p&gt;
&lt;h2&gt;2.3 技术层面&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;节点管理软件Bug&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果平台近期进行了系统升级或节点管理软件更新，引入的Bug可能导致节点与中心服务器之间的通信中断。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DDoS攻击&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;虽然不太像典型攻击模式，但不能完全排除针对测速平台的恶意攻击。&lt;/p&gt;
&lt;h1&gt;三、影响范围&lt;/h1&gt;
&lt;h2&gt;3.1 对普通用户的影响&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;无法通过ITDog准确测试家庭宽带和手机网络的实际速度&lt;/li&gt;
&lt;li&gt;网络故障排查时缺少可靠的第三方测速参考&lt;/li&gt;
&lt;li&gt;无法对比不同运营商的网络质量&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3.2 对运维和网络从业者的影响&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;缺少多节点的网络质量监测手段&lt;/li&gt;
&lt;li&gt;无法通过ITDog进行跨运营商的网络质量对比&lt;/li&gt;
&lt;li&gt;线路质量评估和选型工作受到影响&lt;/li&gt;
&lt;li&gt;部分自动化的网络监控脚本依赖ITDog接口，出现告警&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3.3 对ITDog平台的影响&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;用户信任度下降，部分用户转向Speedtest等替代平台&lt;/li&gt;
&lt;li&gt;平台口碑受损，恢复后需要较长时间重建用户信心&lt;/li&gt;
&lt;li&gt;如果是长期性问题，可能导致用户永久流失&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;四、替代方案&lt;/h1&gt;
&lt;p&gt;在ITDog恢复期间，可以使用以下替代测速工具：&lt;/p&gt;
&lt;h2&gt;4.1 国内测速平台&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;th&gt;特点&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Speedtest.cn&lt;/td&gt;
&lt;td&gt;speedtest.cn&lt;/td&gt;
&lt;td&gt;国内节点较多，三大运营商覆盖&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;测速网&lt;/td&gt;
&lt;td&gt;cs.com.cn&lt;/td&gt;
&lt;td&gt;央视旗下，权威性较高&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;宽带测速&lt;/td&gt;
&lt;td&gt;10010.com&lt;/td&gt;
&lt;td&gt;联通官方测速&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;114测速&lt;/td&gt;
&lt;td&gt;114.com.cn&lt;/td&gt;
&lt;td&gt;电信官方测速参考&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;4.2 国际测速平台&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;th&gt;特点&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Speedtest by Ookla&lt;/td&gt;
&lt;td&gt;speedtest.net&lt;/td&gt;
&lt;td&gt;全球节点，业界标准&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fast.com&lt;/td&gt;
&lt;td&gt;fast.com&lt;/td&gt;
&lt;td&gt;Netflix提供，简单直观&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloudflare Speed Test&lt;/td&gt;
&lt;td&gt;speed.cloudflare.com&lt;/td&gt;
&lt;td&gt;节点质量高&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;4.3 命令行测速工具&lt;/h2&gt;
&lt;p&gt;对于技术人员，也可以使用命令行工具进行测速：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# speedtest-cli
pip install speedtest-cli
speedtest-cli

# fast-cli
npm install -g @praburangki/fast-cli
fast

# 使用curl简单测试下载速度
curl -o /dev/null -w &quot;Speed: %{speed_download} bytes/sec\n&quot; https://speed.cloudflare.com/__down?bytes=10000000
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;五、后续观察&lt;/h1&gt;
&lt;p&gt;截至撰稿时（5月18日晚间），ITDog平台部分节点已陆续恢复在线，但仍有约30%的节点处于离线状态。平台官方尚未对此事件发布正式公告。&lt;/p&gt;
&lt;p&gt;建议持续关注以下渠道获取最新动态：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ITDog官方网站：itdog.cn&lt;/li&gt;
&lt;li&gt;ITDog官方微信公众号&lt;/li&gt;
&lt;li&gt;相关技术社区的讨论帖&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;六、总结&lt;/h1&gt;
&lt;p&gt;ITDog作为国内少有的免费、节点覆盖广的网络测速平台，长期以来为广大用户和网络从业者提供了重要的网络质量监测服务。此次节点大面积掉线事件，无论是技术原因还是运营原因，都提醒我们：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;不要过度依赖单一平台：&lt;/strong&gt; 重要的网络监测应使用多个工具交叉验证&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;建立自己的监测体系：&lt;/strong&gt; 对于关键业务，应搭建私有的网络质量监测系统&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关注免费服务的可持续性：&lt;/strong&gt; 免费服务的稳定性始终存在不确定性&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;希望ITDog能尽快恢复正常运营，并对此事件给出合理的解释。毕竟，一个稳定可靠的测速平台，对于整个互联网生态来说都是不可或缺的基础设施。&lt;/p&gt;
</content:encoded></item><item><title>Minecraft Java版终于官方支持好友联机了！快照版抢先体验</title><link>https://www.mgstudio.icu/posts/minecraft-online-multiplayer-guide/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/minecraft-online-multiplayer-guide/</guid><description>Minecraft Java版最新快照正式上线好友联机功能，无需服务器、无需局域网，直接邀请好友加入你的世界</description><pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;等了这么多年，Minecraft Java版终于官方支持好友联机了。作为一个从Beta时代就开始挖矿的老玩家，看到这个快照更新的时候真的有点激动。之前Java版联机要么开服务器、要么局域网、要么用第三方Mod，对于就想和朋友简单玩一下的人来说门槛太高了。这次Mojang终于把基岩版的好友系统搬到了Java版，第一时间下载快照体验了一下，记录一下。&lt;/p&gt;
&lt;h1&gt;一、为什么要关注这个更新&lt;/h1&gt;
&lt;p&gt;Java版玩家苦联机久矣。之前想和朋友玩个Minecraft，流程是这样的：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;一个人开世界&lt;/li&gt;
&lt;li&gt;另一个人要么在同一个WiFi下，要么自己搭服务器&lt;/li&gt;
&lt;li&gt;没有公网IP？那就内网穿透，配置frp/zerotier&lt;/li&gt;
&lt;li&gt;不会搞？那就花钱买Realms或者第三方服务器托管&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;对于一个&quot;就想和朋友挖个矿&quot;的需求来说，这个门槛也太高了。反观基岩版，加个好友直接邀请就行了，Java版玩家馋了好久。&lt;/p&gt;
&lt;p&gt;这次快照终于把这个功能带到Java版了。&lt;/p&gt;
&lt;h1&gt;二、新好友系统体验&lt;/h1&gt;
&lt;h2&gt;2.1 好友列表&lt;/h2&gt;
&lt;p&gt;更新后主界面多了一个&quot;好友&quot;按钮，点进去可以看到：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;好友列表（需要登录Microsoft账号）&lt;/li&gt;
&lt;li&gt;在线状态显示&lt;/li&gt;
&lt;li&gt;好友当前所在世界的信息&lt;/li&gt;
&lt;li&gt;邀请/加入按钮&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;UI风格和基岩版基本一致，但保留了Java版的视觉风格，不会显得违和。&lt;/p&gt;
&lt;h2&gt;2.2 邀请流程&lt;/h2&gt;
&lt;p&gt;邀请好友加入世界变得非常简单：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打开好友列表&lt;/li&gt;
&lt;li&gt;选择在线的好友&lt;/li&gt;
&lt;li&gt;点击&quot;邀请加入世界&quot;&lt;/li&gt;
&lt;li&gt;好友收到邀请后点击&quot;加入&quot;即可&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;不需要输入IP地址，不需要配置端口转发，不需要开服务器。就是这么简单。&lt;/p&gt;
&lt;h2&gt;2.3 被邀请方的体验&lt;/h2&gt;
&lt;p&gt;作为被邀请的一方：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;收到邀请通知（游戏内弹窗 + 系统通知）&lt;/li&gt;
&lt;li&gt;点击&quot;加入&quot;后自动连接&lt;/li&gt;
&lt;li&gt;加载速度比预想的快，基本几秒就能进世界&lt;/li&gt;
&lt;li&gt;延迟表现还可以，比之前用第三方联机Mod稳定&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2.4 权限管理&lt;/h2&gt;
&lt;p&gt;世界主人可以设置：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;是否允许好友邀请其他人&lt;/li&gt;
&lt;li&gt;好友在世界中的游戏模式&lt;/li&gt;
&lt;li&gt;是否开启作弊&lt;/li&gt;
&lt;li&gt;最大同时在线人数&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些设置可以在游戏内随时修改，不需要退出世界。&lt;/p&gt;
&lt;h1&gt;三、和之前联机方式的对比&lt;/h1&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;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;官方好友联机（新）&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;极低&lt;/td&gt;
&lt;td&gt;免费&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;一般&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;局域网联机&lt;/td&gt;
&lt;td&gt;低&lt;/td&gt;
&lt;td&gt;免费&lt;/td&gt;
&lt;td&gt;一般&lt;/td&gt;
&lt;td&gt;极低&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;自建服务器&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;看配置&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;看服务器&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Realms&lt;/td&gt;
&lt;td&gt;低&lt;/td&gt;
&lt;td&gt;付费&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;低&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Essential Mod&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;td&gt;免费&lt;/td&gt;
&lt;td&gt;一般&lt;/td&gt;
&lt;td&gt;一般&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;内网穿透&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;免费/付费&lt;/td&gt;
&lt;td&gt;一般&lt;/td&gt;
&lt;td&gt;一般&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;新功能最大的优势就是&lt;strong&gt;门槛极低&lt;/strong&gt;。不需要任何技术知识，不需要额外花钱，登录Microsoft账号就能用。&lt;/p&gt;
&lt;h1&gt;四、快照版注意事项&lt;/h1&gt;
&lt;p&gt;既然是快照版，有一些需要注意的地方：&lt;/p&gt;
&lt;h2&gt;4.1 如何安装快照&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;打开Minecraft启动器&lt;/li&gt;
&lt;li&gt;在&quot;安装设置&quot;中启用&quot;快照&quot;&lt;/li&gt;
&lt;li&gt;安装最新的快照版本&lt;/li&gt;
&lt;li&gt;启动游戏即可&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;# 或者通过MultiMC/Prism Launcher等第三方启动器
# 在版本设置中选择&quot;启用快照&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.2 已知问题&lt;/h2&gt;
&lt;p&gt;快照版嘛，Bug是免不了的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;偶尔会出现好友列表加载不出来的情况，重启游戏解决&lt;/li&gt;
&lt;li&gt;大于4人同时在线时可能会出现卡顿&lt;/li&gt;
&lt;li&gt;某些Mod和快照版不兼容，需要等Mod作者更新&lt;/li&gt;
&lt;li&gt;退出世界时偶尔会导致其他玩家短暂掉线&lt;/li&gt;
&lt;li&gt;好友状态显示有时候不准确（显示在线但实际已离线）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4.3 存档兼容性&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;重要：&lt;/strong&gt; 快照版的存档可能和正式版不兼容。建议：&lt;/p&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&gt;4.4 Mod兼容性&lt;/h2&gt;
&lt;p&gt;大部分Mod还没有适配这个快照版本。如果你重度依赖Mod（比如光影、JEI、小地图等），建议等Mod更新后再体验。&lt;/p&gt;
&lt;p&gt;轻度玩家或者原版玩家可以直接开玩。&lt;/p&gt;
&lt;h1&gt;五、实际游玩体验&lt;/h1&gt;
&lt;h2&gt;5.1 延迟表现&lt;/h2&gt;
&lt;p&gt;我测试了一下，和朋友（同省不同市）的延迟大概在30-50ms，体感和自建服务器差不多。跨省的话延迟会高一些，但玩生存模式完全够用。&lt;/p&gt;
&lt;p&gt;不过如果是PVP服务器那种对延迟要求高的场景，还是建议自建服务器。&lt;/p&gt;
&lt;h2&gt;5.2 性能影响&lt;/h2&gt;
&lt;p&gt;作为世界主人（主机），开启好友联机后：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU占用增加了约10-15%&lt;/li&gt;
&lt;li&gt;内存占用增加了约500MB-1GB&lt;/li&gt;
&lt;li&gt;带宽占用大约2-5Mbps（取决于在线人数）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于配置还行的电脑来说完全没问题，低配机器可能需要注意一下。&lt;/p&gt;
&lt;h2&gt;5.3 和Essential Mod的对比&lt;/h2&gt;
&lt;p&gt;之前很多Java版玩家用Essential Mod来实现类似的好友联机功能。和官方方案对比：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Essential Mod的延迟表现略好（P2P直连）&lt;/li&gt;
&lt;li&gt;官方方案更稳定，不会出现Mod兼容性问题&lt;/li&gt;
&lt;li&gt;官方方案不需要额外安装Mod&lt;/li&gt;
&lt;li&gt;Essential Mod支持更多自定义选项&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;两个方案各有优劣，但长期来看官方方案肯定会越来越完善。&lt;/p&gt;
&lt;h1&gt;六、我的建议&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;原版玩家：&lt;/strong&gt; 直接用官方好友联机，体验最好&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mod玩家：&lt;/strong&gt; 等主流Mod适配后再切换，暂时继续用Essential Mod或自建服务器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;大型服务器：&lt;/strong&gt; 这个功能不替代服务器，服务器该用还是用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;偶尔和朋友玩一下的：&lt;/strong&gt; 官方好友联机是最佳选择，零门槛&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;七、总结&lt;/h1&gt;
&lt;p&gt;等了这么多年，Java版终于有了像样的好友联机功能。虽然还是快照版，Bug也不少，但方向是对的。Mojang这次算是填补了Java版最大的短板之一。&lt;/p&gt;
&lt;p&gt;作为一个老玩家，看到Java版在一点点变好，还是挺欣慰的。希望正式版能尽快发布，把Bug修干净，让更多玩家能方便地和朋友一起挖矿。&lt;/p&gt;
&lt;p&gt;毕竟，Minecraft最大的乐趣就是和朋友一起玩啊。&lt;/p&gt;
</content:encoded></item><item><title>DeepSeek V4来了，聊聊我的第一手体验</title><link>https://www.mgstudio.icu/posts/deepseek-v4-model-review/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/deepseek-v4-model-review/</guid><description>DeepSeek发布第四代模型，本文从实际使用者角度体验V4的代码、推理和中文能力</description><pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;DeepSeek在5月初正式发布了他们的第四代模型——DeepSeek V4。作为一个从V2时代就开始用DeepSeek的老用户，这次更新我自然没有错过。第一时间拿到API访问权限后，花了几天时间在实际工作场景中测试，这里记录一下我的真实感受。&lt;/p&gt;
&lt;h1&gt;一、模型基本信息&lt;/h1&gt;
&lt;p&gt;DeepSeek V4这次带来了几个关键升级：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;参数规模：&lt;/strong&gt; 总参数量达到了一个新量级，但通过MoE架构控制了推理成本&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;上下文窗口：&lt;/strong&gt; 标准支持128K上下文，最长可扩展到256K&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多模态：&lt;/strong&gt; 原生支持图像理解，不再需要单独的视觉模型&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;推理能力：&lt;/strong&gt; 链式思维（Chain-of-Thought）能力进一步增强&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;代码能力：&lt;/strong&gt; 代码生成和理解能力全面升级&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;二、实际体验&lt;/h1&gt;
&lt;h2&gt;2.1 代码能力&lt;/h2&gt;
&lt;p&gt;这是我最关心的部分。在日常的开发场景中测试了几个典型任务：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码生成&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;让它写一个SRS流媒体服务器的Docker Compose配置，包含RTMP推流和HLS拉流，输出质量很高，配置项考虑得很全面，甚至包括了健康检查和日志挂载。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代码审查&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;丢了一段有安全隐患的Node.js代码给它，V4不仅能指出XSS和SQL注入的风险，还给出了具体的修复方案和对应的npm包推荐。V3在这方面的表现就没这么完整。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Debug辅助&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;拿了一个真实的Nginx配置错误日志给它分析，V4直接定位到了upstream超时配置的问题，还顺带提到了HTTP/2连接复用可能带来的副作用。&lt;/p&gt;
&lt;h2&gt;2.2 推理能力&lt;/h2&gt;
&lt;p&gt;推理是DeepSeek一直以来的强项，V4在这方面的提升比较明显：&lt;/p&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;p&gt;不过在一些特别复杂的推理场景下，偶尔还是会出现&quot;想太多&quot;的情况，把简单问题复杂化。&lt;/p&gt;
&lt;h2&gt;2.3 中文能力&lt;/h2&gt;
&lt;p&gt;中文能力一直是国产模型的优势，V4在这方面继续保持：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;中文写作流畅度很高，不会有翻译腔&lt;/li&gt;
&lt;li&gt;对国内技术生态的理解比较准确&lt;/li&gt;
&lt;li&gt;文言文、方言等特殊中文场景也有一定支持&lt;/li&gt;
&lt;li&gt;诗词生成能力有明显提升（虽然这个场景不太实用）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2.4 长上下文&lt;/h2&gt;
&lt;p&gt;128K的上下文窗口在实际使用中表现不错：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;丢一整个项目的代码进去分析，能保持较好的理解&lt;/li&gt;
&lt;li&gt;长文档的总结和提取比较准确&lt;/li&gt;
&lt;li&gt;256K扩展模式下质量有一定下降，但可接受&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;三、和Claude的对比&lt;/h1&gt;
&lt;p&gt;作为一个同时使用DeepSeek和Claude的用户，简单对比一下：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;维度&lt;/th&gt;
&lt;th&gt;DeepSeek V4&lt;/th&gt;
&lt;th&gt;Claude Sonnet 4&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;代码生成&lt;/td&gt;
&lt;td&gt;强&lt;/td&gt;
&lt;td&gt;强&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;推理能力&lt;/td&gt;
&lt;td&gt;很强&lt;/td&gt;
&lt;td&gt;强&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;中文能力&lt;/td&gt;
&lt;td&gt;很强&lt;/td&gt;
&lt;td&gt;强&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;长上下文&lt;/td&gt;
&lt;td&gt;强&lt;/td&gt;
&lt;td&gt;很强&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API价格&lt;/td&gt;
&lt;td&gt;便宜&lt;/td&gt;
&lt;td&gt;较贵&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;生态成熟度&lt;/td&gt;
&lt;td&gt;一般&lt;/td&gt;
&lt;td&gt;成熟&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;安全对齐&lt;/td&gt;
&lt;td&gt;适中&lt;/td&gt;
&lt;td&gt;严格&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;整体来看，V4在代码和推理方面已经和Claude处于同一梯队，中文场景甚至略有优势。但在生态成熟度和安全对齐方面，Claude还是领先不少。&lt;/p&gt;
&lt;h1&gt;四、API使用体验&lt;/h1&gt;
&lt;h2&gt;4.1 接入方式&lt;/h2&gt;
&lt;p&gt;V4的API接入比较标准，兼容OpenAI的API格式：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;from openai import OpenAI

client = OpenAI(
    api_key=&quot;your-deepseek-api-key&quot;,
    base_url=&quot;https://api.deepseek.com/v4&quot;
)

response = client.chat.completions.create(
    model=&quot;deepseek-v4&quot;,
    messages=[
        {&quot;role&quot;: &quot;system&quot;, &quot;content&quot;: &quot;你是一个有帮助的助手&quot;},
        {&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;解释一下MoE架构的工作原理&quot;}
    ],
    temperature=0.7,
    max_tokens=4096
)

print(response.choices[0].message.content)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.2 响应速度&lt;/h2&gt;
&lt;p&gt;V4的API响应速度整体不错：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;首token延迟约200-500ms&lt;/li&gt;
&lt;li&gt;生成速度大约50-80 tokens/s&lt;/li&gt;
&lt;li&gt;长上下文场景下速度会有一定下降&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4.3 价格&lt;/h2&gt;
&lt;p&gt;DeepSeek的价格一直是其核心竞争力，V4继续保持：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入：约0.5元/百万token&lt;/li&gt;
&lt;li&gt;输出：约2元/百万token&lt;/li&gt;
&lt;li&gt;相比Claude便宜了不少，适合大批量任务&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;五、不足之处&lt;/h1&gt;
&lt;p&gt;说了这么多优点，也提几个不足：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;function call还不够稳定：&lt;/strong&gt; 偶尔会出现参数格式错误，需要做容错处理&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全边界有时过于宽松：&lt;/strong&gt; 某些场景下会输出不太合适的内容&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;英文能力不如Claude：&lt;/strong&gt; 纯英文场景下还是有差距&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API稳定性有待提升：&lt;/strong&gt; 高峰期偶尔会出现超时&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文档质量一般：&lt;/strong&gt; 很多细节需要自己摸索&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;六、总结&lt;/h1&gt;
&lt;p&gt;DeepSeek V4是一次非常有诚意的升级。在代码和推理这两个核心能力上，V4已经达到了一线模型的水平，加上极具竞争力的价格，对于开发者来说是一个非常好的选择。&lt;/p&gt;
&lt;p&gt;我的使用策略是：&lt;strong&gt;日常中文任务用DeepSeek V4，复杂推理和对安全性要求高的场景用Claude&lt;/strong&gt;。两个模型各有优势，搭配使用效果最好。&lt;/p&gt;
&lt;p&gt;期待DeepSeek后续能继续优化API稳定性和function call的可靠性，那就真的香了。&lt;/p&gt;
</content:encoded></item><item><title>狐蒂云暴雷深度复盘：从“永久VPS”神话到一夜跑路，数万用户血本无归的真相</title><link>https://www.mgstudio.icu/posts/hdy-paolu/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/hdy-paolu/</guid><description>狐帝云五月7日跑路了</description><pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;2026年5月7日，一场突如其来的“服务器离线”，打破了数万用户对“永久服务”的幻想——国内IDC服务商狐蒂云（深圳市狐蒂云网络科技有限公司）正式宣告倒闭跑路，CEO许跃滨（网名“小胖狐”）深夜发文自爆资金链断裂，数小时内，国内外所有服务器全线下线，用户数据无法备份、退款申请石沉大海、客服全员失联。这场看似仓促的暴雷，实则是一场酝酿已久的“低价陷阱”，背后是商家的贪婪、行业的内卷，以及无数用户的血泪损失。本文将全面复盘整个事件的来龙去脉，拆解暴雷真相、梳理用户损失、剖析行业痛点，为所有互联网从业者、个人站长、小型企业敲响警钟。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.mgstudio.icu/_astro/1.Cz4ZuDeH_Z2oFkep.webp&quot; alt=&quot;1&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;一、事件背景：狐蒂云是谁？“永久VPS”的神话如何崛起？&lt;/h2&gt;
&lt;p&gt;狐蒂云成立于2024年，注册地为深圳市，主营业务为IDC服务，涵盖VPS服务器、虚拟主机、独立服务器、域名注册等，主打“高性价比”标签，凭借“永久VPS+三年质保”的核心套餐迅速在IDC行业崭露头角，短短两年内积累了数万用户，其中以个人站长、独立开发者、小型企业为主。&lt;/p&gt;
&lt;p&gt;狐蒂云的崛起，完全依赖于极具诱惑力的低价宣传，其核心推广套餐——1999元永久VPS，成为吸引用户的“杀手锏”。在行业普遍推行“年付、季付”的当下，狐蒂云高调宣称“一次付费，终身使用”，不仅承诺三年质保期内免费更换硬件、维护网络、提供技术支持，甚至宣称质保期满后仍可享受免费性能优化、灾难备份等增值服务，同时推出“意外停机立即提供替补机器”的保障，彻底击中了用户“贪便宜、求稳定”的心理。&lt;/p&gt;
&lt;p&gt;为了扩大影响力，狐蒂云还在B站、抖音、博客园、4414站长论坛等平台大量投放广告，邀请自媒体博主推广，营造“性价比之王”“中小用户首选IDC服务商”的形象，甚至开设二手主机交易市场，允许用户转售、转租已购买的VPS，进一步吸引用户入局，形成“低价引流→用户付费→二手交易”的虚假繁荣闭环。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.mgstudio.icu/_astro/2.TNftIfBp_wEs16.webp&quot; alt=&quot;2&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;二、事件时间线：从预警信号到全面崩盘，24小时内的致命崩塌&lt;/h2&gt;
&lt;p&gt;狐蒂云的暴雷并非毫无征兆，从5月6日的异常停摆，到5月7日的全面跑路，短短24小时，一场精心掩盖的运营危机彻底爆发，留给用户的只有猝不及防的损失。以下是事件完整时间线，精准还原每一个关键节点：
&lt;img src=&quot;https://www.mgstudio.icu/_astro/3.TNnuV-mG_umRUE.webp&quot; alt=&quot;3&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;（一）5月6日：前兆显现，停摆信号已现&lt;/h3&gt;
&lt;p&gt;11:06，狐蒂云官网突然发布公告，明确表示“旧版主机市场停止运营”，关闭所有主机交易、续费、升级功能，仅保留余额提现、余额转入两个入口。公告中未说明停摆原因，仅提示“请用户妥善保管个人资产，合理安排业务”。&lt;/p&gt;
&lt;p&gt;这一公告瞬间引发用户恐慌，因为早在公告发布前，就有大量用户反馈“二手主机市场提现不到账”，部分用户提现申请已提交超过一年，始终处于“审核中”状态，此次旧版市场停摆，意味着二手交易资金彻底被冻结，用户的提现希望彻底破灭。&lt;/p&gt;
&lt;p&gt;晚间19:00后，更多异常出现：部分用户反映自己的VPS服务器出现卡顿、丢包现象，部分海外节点无法正常连接；用户群内咨询客服，客服回复延迟严重，甚至出现“自动回复”敷衍了事的情况；有用户尝试联系CEO许跃滨，其个人微信、QQ均无回应，核心用户群开始出现“平台要跑路”的猜测，但未得到官方任何回应。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://www.mgstudio.icu/_astro/4.BDSz2E8e_ZYS5i2.webp&quot; alt=&quot;4&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;（二）5月7日：全面爆发，一夜之间彻底跑路&lt;/h3&gt;
&lt;p&gt;00:00–02:00，数万狐蒂云用户同时收到一条短信，短信内容简洁而冰冷：“我方运营终止，请尽快自行做好服务器数据备份，避免损失；相关账户可依法追偿。” 短信未留下任何联系方式，也未说明具体的退款、数据备份流程，此时，已有部分用户发现自己的服务器无法登录，SSH连接失败、控制台无法打开。&lt;/p&gt;
&lt;p&gt;02:00起，危机全面升级：狐蒂云国内外所有节点服务器批量离线，无论是国内的北京、上海、广州节点，还是海外的香港、美国、新加坡节点，均无法连通；用户尝试通过各种方式备份数据，均以失败告终，大量用户的网站、项目、数据库直接瘫痪，多年心血面临灭失风险。&lt;/p&gt;
&lt;p&gt;04:51，CEO许跃滨在狐蒂云核心用户群发长文“坦白局”，这也是他最后一次公开发声，文中毫无掩饰地承认了平台的绝境，核心内容如下：
&lt;img src=&quot;https://www.mgstudio.icu/_astro/5.Bh8D-BMy_UiNWN.webp&quot; alt=&quot;5&quot; /&gt;
&lt;img src=&quot;https://www.mgstudio.icu/_astro/6.BjAxmoBq_Z25VJP0.webp&quot; alt=&quot;6&quot; /&gt;
&lt;img src=&quot;https://www.mgstudio.icu/_astro/7.BNM1IaID_Z1hi4Vh.webp&quot; alt=&quot;7&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;平台已持续亏损近一年，核心原因是“长期补贴永久VPS套餐”，所有盈利全部投入补贴，后期收入无法覆盖成本，最终资金耗尽，账上无任何流动资金；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;所有用户可尽快提交退款申请，平台会按提交顺序登记处理，但明确表示“目前没钱可退，需要长期等待，具体到账时间无法确定”；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;已与合作机房协商，承诺“到期服务器延期备份”，但实际情况是，机房已因拖欠租金强制断机，所有服务器均已离线，无法登录备份；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;本人已无能力继续运营平台，后续将“打工还债”，平台彻底停摆，无任何重启计划，对所有用户表示“抱歉”。
&lt;img src=&quot;https://www.mgstudio.icu/_astro/8.BKxlOv7R_ZjfNTT.webp&quot; alt=&quot;8&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;08:00–18:00，用户恐慌达到顶峰：狐蒂云官网可访问，但仅显示空白页面，无任何新公告、无任何服务入口；客服QQ、微信群、工单系统全部失联，核心用户群被禁言，普通用户群无人管理；B站、抖音、博客园、知乎等平台，大量用户发布爆料视频、文章，分享自己的损失，#狐蒂云跑路# #狐蒂云服务器离线# 等话题快速扩散，相关话题阅读量短时间内突破百万，无数用户自发组建维权群，统计损失、商议维权方案。&lt;/p&gt;
&lt;p&gt;晚间20:00后，更多残酷真相被曝光：有用户查询工商信息发现，狐蒂云已处于“经营异常”状态，注册地址为空，无实际办公场地；有内部人士爆料，平台存在严重超售现象，一台物理服务器（母鸡）违规开设200+台虚拟机，远超正常承载能力，这也是此前服务器频繁卡顿、宕机的核心原因；同时，二手主机市场的交易资金被大量挪用，用于补贴永久套餐的亏损和CEO个人挥霍。&lt;/p&gt;
&lt;h3&gt;（三）5月8日及以后：全面停摆，维权无门的绝境&lt;/h3&gt;
&lt;p&gt;5月8日，狐蒂云彻底沦为“空壳”：官网域名虽未过期，但仅显示空白页面，无任何有效信息；国内外所有服务器全部“失联”，无论是Ping测试还是端口扫描，均无任何响应，用户数据彻底无法备份，成为永久损失；客服、运营、技术人员全部失联，QQ、微信、电话均无人接听，此前承诺的“退款登记”也无任何入口，用户提交的退款申请石沉大海。&lt;/p&gt;
&lt;p&gt;此后数日，用户的维权之路陷入僵局：大量用户前往当地派出所报警，提交相关证据，但警方表示，狐蒂云为小微企业，无固定资产、无办公场地、无资金储备，无法立案侦查或执行财产；部分用户尝试联合起诉，但用户分散在全国各地，组织难度大，且法律流程漫长，即便胜诉，也无财产可执行；有用户尝试联系机房，机房表示“已拖欠数月租金，已强制断机，不负责用户数据备份和退款”。
&lt;img src=&quot;https://www.mgstudio.icu/_astro/9.BO7oRGa8_Z24h0mN.webp&quot; alt=&quot;9&quot; /&gt;
&lt;img src=&quot;https://www.mgstudio.icu/_astro/10.BNIUOP54_ZcaJ7N.webp&quot; alt=&quot;10&quot; /&gt;&lt;/p&gt;
&lt;p&gt;截至目前，狐蒂云暴雷已过去多日，仍无任何退款到账案例，CEO许跃滨彻底失联，用户的资金和数据全部损失，维权之路举步维艰。&lt;/p&gt;
&lt;h2&gt;三、暴雷根源深度剖析：低价神话的背后，是自杀式运营的必然&lt;/h2&gt;
&lt;p&gt;狐蒂云的暴雷，绝非偶然，而是“低价陷阱+违规运营+行业内卷”共同作用的结果。表面上看，是资金链断裂导致的倒闭，但深层次来看，是商家违背商业逻辑的自杀式运营，以及行业监管缺失、用户贪便宜心理共同酿成的悲剧。具体可分为以下四大根源：&lt;/p&gt;
&lt;h3&gt;（一）核心根源：“永久VPS”的虚假承诺，违背商业本质&lt;/h3&gt;
&lt;p&gt;IDC行业的核心成本包括服务器采购、机房租金、带宽费用、技术维护、人员工资等，这些成本都是长期持续的，而狐蒂云推出的“1999元永久VPS”，本质上是违背商业逻辑的虚假承诺——一次付费，终身提供服务，意味着平台需要长期承担服务器、带宽、维护等成本，而仅靠1999元的一次性收入，根本无法覆盖长期成本。
&lt;img src=&quot;https://www.mgstudio.icu/_astro/11.DwMVhq5v_ZiENha.webp&quot; alt=&quot;11&quot; /&gt;&lt;/p&gt;
&lt;p&gt;狐蒂云的初衷，并非是“让利用户”，而是通过“永久套餐”低价引流，吸引大量用户预付费，再用新用户的付费资金补贴老用户的服务成本，本质上是一种“庞氏骗局”式的运营模式。这种模式一旦无法吸引新用户入局，资金链就会立即断裂，最终走向倒闭跑路的结局。
&lt;img src=&quot;https://www.mgstudio.icu/_astro/12.Dj2Ap_fU_Zu0UdT.webp&quot; alt=&quot;12&quot; /&gt;
更值得警惕的是，狐蒂云在用户协议中埋下“陷阱”，虽然承诺“永久使用”，但同时标注“因不可抗力、政策调整、平台运营困难等原因，可终止服务，不承担额外赔偿”，这为其后续跑路留下了“法律漏洞”，用户即便起诉，也难以获得合理赔偿。
&lt;img src=&quot;https://www.mgstudio.icu/_astro/13.C2zEBhaA_Z2hU2dQ.webp&quot; alt=&quot;13&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;（二）运营黑洞：超售、挪用资金，双重消耗资金链&lt;/h3&gt;
&lt;p&gt;除了违背商业逻辑的低价承诺，狐蒂云的违规运营，进一步加速了资金链的断裂，主要体现在两个方面：&lt;/p&gt;
&lt;p&gt;一是严重超售，降低运营成本。为了减少服务器采购、机房租金等成本，狐蒂云大量超售虚拟机，一台正常只能承载30-50台虚拟机的物理服务器，被违规开设200+台虚拟机，导致服务器负载过高，频繁出现卡顿、宕机、丢包等问题，用户体验极差。即便如此，狐蒂云仍未停止超售，反而不断推出新的永久套餐，吸引更多用户付费，进一步加剧服务器压力。&lt;/p&gt;
&lt;p&gt;二是挪用资金，填补亏损窟窿。狐蒂云将用户的预付费、二手主机交易资金，大量挪用至永久套餐的补贴、服务器采购、广告投放等方面，甚至被CEO个人挥霍。据用户统计，仅二手主机市场，就有超过千万资金被拖欠，用户提现一年未到账，而这些资金，本应属于用户的合法财产，却被平台违规挪用，成为压垮资金链的重要稻草。&lt;/p&gt;
&lt;h3&gt;（三）行业根源：中小IDC低价内卷，监管缺失留隐患&lt;/h3&gt;
&lt;p&gt;狐蒂云的暴雷，也是国内中小IDC行业乱象的一个缩影。近年来，IDC行业门槛不断降低，大量小厂商涌入，行业竞争日益激烈，为了吸引用户，众多中小IDC厂商陷入“低价内卷”的死循环——不断降低价格、推出“永久套餐”“低价年付”等优惠，忽视运营成本和风险管控，最终陷入“入不敷出→资金链断裂→跑路”的困境。&lt;/p&gt;
&lt;p&gt;同时，行业监管存在明显漏洞：部分中小IDC厂商未办理ICP备案、公安联网备案、IDC经营许可证等相关资质，属于“无资质运营”；部分厂商超售、挪用用户资金、虚假宣传等行为，缺乏有效的监管和处罚机制；用户的合法权益难以得到保障，一旦平台跑路，维权难度极大。&lt;/p&gt;
&lt;p&gt;此外，IDC行业的盈利模式单一，大部分中小厂商仅依赖用户预付费，缺乏可持续的盈利路径，无法通过增值服务、技术升级等方式实现盈利，只能靠“拆东墙补西墙”维持运营，一旦预付费资金断裂，就会立即倒闭。&lt;/p&gt;
&lt;h3&gt;（四）用户根源：贪便宜心理，忽视风险防范&lt;/h3&gt;
&lt;p&gt;这场悲剧的发生，也离不开用户自身的因素。很多用户被狐蒂云“1999元永久VPS”的低价所吸引，忽视了背后的风险，盲目付费，最终沦为“韭菜”。具体来看，用户的误区主要有三点：&lt;/p&gt;
&lt;p&gt;一是贪便宜，违背“一分钱一分货”的原则。很多用户认为“一次付费，终身使用”非常划算，忽视了IDC服务的长期成本，误以为低价可以获得优质服务，却不知这是商家设置的陷阱；&lt;/p&gt;
&lt;p&gt;二是缺乏风险意识，未核查平台资质。很多用户在购买服务前，未查询狐蒂云的工商信息、相关资质，也未了解平台的运营状况，盲目相信广告宣传，最终导致损失；&lt;/p&gt;
&lt;p&gt;三是未做好数据备份，过度依赖单一服务商。很多用户将所有核心数据（网站源码、数据库、项目文件等）存储在狐蒂云服务器上，未进行异地备份，一旦服务器离线，数据就会彻底丢失，无法恢复。&lt;/p&gt;
&lt;h2&gt;四、用户损失全景：数据、资金、业务，三重毁灭性打击&lt;/h2&gt;
&lt;p&gt;狐蒂云的跑路，给数万用户带来了毁灭性的打击，无论是个人用户还是小型企业，都面临着数据、资金、业务的三重损失，很多用户多年的心血付诸东流，部分小型企业直接陷入破产危机。具体损失可分为以下四类：&lt;/p&gt;
&lt;h3&gt;（一）数据损失：核心数据永久灭失，无法恢复&lt;/h3&gt;
&lt;p&gt;这是用户面临的最严重的损失之一。由于狐蒂云服务器全线下线，用户无法登录控制台、无法通过SSH连接服务器，无法备份任何数据，大量核心数据——包括个人站长的网站源码、数据库、文章素材，开发者的项目文件、代码，小型企业的客户数据、业务数据、财务数据等，全部永久灭失，无任何恢复可能。&lt;/p&gt;
&lt;p&gt;有个人站长表示，自己运营了5年的博客，所有文章、粉丝数据都存储在狐蒂云服务器上，此次暴雷，5年心血全部归零；有开发者反馈，自己正在开发的项目，核心代码未备份，服务器离线后，项目彻底停滞，前期投入的时间、精力全部白费；有小型企业表示，公司的客户数据、订单数据全部丢失，无法联系客户，业务无法开展，直接面临破产。&lt;/p&gt;
&lt;h3&gt;（二）资金损失：全额打水漂，退款无望&lt;/h3&gt;
&lt;p&gt;用户的资金损失主要集中在三个方面，且所有资金均无法追回：&lt;/p&gt;
&lt;p&gt;一是永久VPS套餐费用：1999元/台的永久VPS，很多用户一次性购买多台，有用户反馈自己一次性购买了33台，花费近7万元，如今全部打水漂；&lt;/p&gt;
&lt;p&gt;二是年付/季付套餐剩余费用：很多用户购买了年付、季付的VPS、虚拟主机等服务，还有数月甚至数年的剩余期限，这些剩余费用无法退还，平台承诺的“退款登记”只是一句空话；&lt;/p&gt;
&lt;p&gt;三是二手主机交易资金：二手主机市场的交易资金“只进不出”，用户转售VPS获得的资金、充值的余额，无法提现，累计拖欠资金超过千万元，用户维权无门。&lt;/p&gt;
&lt;p&gt;据用户自发统计，此次狐蒂云暴雷，用户累计损失超过亿元，其中大部分是个人用户的血汗钱，部分小型企业的损失更是高达数十万元。&lt;/p&gt;
&lt;h3&gt;（三）业务损失：业务全面瘫痪，品牌受损&lt;/h3&gt;
&lt;p&gt;对于依赖狐蒂云服务器的小型企业、个人站长而言，服务器离线意味着业务全面瘫痪，带来的间接损失远超直接的资金损失：&lt;/p&gt;
&lt;p&gt;小型企业：依赖狐蒂云服务器的网站、APP、小程序、游戏等业务，突然无法访问，导致用户流失、订单取消、品牌形象受损，部分企业因无法恢复业务，直接宣布破产；&lt;/p&gt;
&lt;p&gt;个人站长：运营的网站无法访问，粉丝流失、广告收入中断，多年积累的网站权重、流量全部归零，重新搭建网站需要投入大量的时间、资金；&lt;/p&gt;
&lt;p&gt;开发者：项目无法正常运行，前期投入的研发成本、测试成本全部白费，若项目已签订合作协议，还需承担违约责任，进一步扩大损失。&lt;/p&gt;
&lt;h3&gt;（四）维权损失：时间、精力、资金，多重消耗&lt;/h3&gt;
&lt;p&gt;为了追回损失，数万用户投入了大量的时间、精力、资金，但维权之路异常艰难，最终大多无果而终：&lt;/p&gt;
&lt;p&gt;时间成本：用户需要收集证据、联系其他用户、组建维权群、前往派出所报警、提交起诉材料，整个过程耗时数月甚至数年；&lt;/p&gt;
&lt;p&gt;精力成本：用户需要频繁沟通、跟进维权进度，还要应对平台失联、警方无法立案、法院流程漫长等问题，身心俱疲；&lt;/p&gt;
&lt;p&gt;资金成本：部分用户为了起诉，需要支付律师费、诉讼费等费用，而这些费用，最终也可能因为无法执行财产而白白浪费。&lt;/p&gt;
&lt;h2&gt;五、行业警示：拒绝低价陷阱，守护自身权益，推动行业健康发展&lt;/h2&gt;
&lt;p&gt;狐蒂云的暴雷，不是第一个，也不会是最后一个。在IDC行业低价内卷的当下，这场悲剧给所有用户、从业者、监管部门都敲响了警钟，唯有正视问题、规避风险、规范运营，才能避免更多悲剧重演。&lt;/p&gt;
&lt;h3&gt;（一）给用户：理性消费，做好风险防范，守护自身权益&lt;/h3&gt;
&lt;p&gt;1.  拒绝贪便宜，远离“永久套餐”“超低价套餐”：牢记“天下没有免费的午餐”，IDC服务的成本是长期的，“永久服务”“超低价套餐”本质上是陷阱，不符合商业逻辑，最终必然暴雷；&lt;/p&gt;
&lt;p&gt;2.  选择正规服务商，核查资质：优先选择阿里云、腾讯云、华为云等头部厂商，或运营时间长、口碑好、有齐全资质（ICP备案、IDC经营许可证等）的中小服务商，避免选择无资质的黑厂商；&lt;/p&gt;
&lt;p&gt;3.  定期异地备份数据：无论选择哪家服务商，都要养成定期异地备份核心数据的习惯，可使用云备份、本地备份等多种方式，避免因服务器故障、平台跑路导致数据丢失；&lt;/p&gt;
&lt;p&gt;4.  谨慎预付费，降低风险：尽量选择月付、季付的付费方式，避免大额年付、永久付费，若确需年付，可先小金额试用，确认服务稳定后再长期付费；&lt;/p&gt;
&lt;p&gt;5.  留存证据，学会维权：购买服务时，留存好付款凭证、用户协议、宣传截图等证据，若平台出现异常，及时收集证据，联合其他用户维权，必要时通过法律途径维护自身权益。&lt;/p&gt;
&lt;h3&gt;（二）给IDC从业者：摒弃低价内卷，合规运营，实现可持续发展&lt;/h3&gt;
&lt;p&gt;1.  摒弃自杀式运营，拒绝低价陷阱：放弃“永久套餐”“超低价引流”的模式，根据运营成本合理定价，提供与价格匹配的服务，建立可持续的盈利路径；&lt;/p&gt;
&lt;p&gt;2.  合规运营，坚守底线：办理齐全相关资质，不超售虚拟机、不挪用用户资金、不虚假宣传，规范服务流程，保障用户的合法权益；&lt;/p&gt;
&lt;p&gt;3.  加强风险管控，保障资金链稳定：合理控制运营成本，避免盲目扩张，建立风险预警机制，预留充足的流动资金，防止资金链断裂；&lt;/p&gt;
&lt;p&gt;4.  提升服务质量，打造核心竞争力：通过技术升级、增值服务、优质售后等方式，提升用户体验，打造自身核心竞争力，摆脱低价内卷的困境，实现长期发展。&lt;/p&gt;
&lt;h3&gt;（三）给监管部门：加强监管，完善机制，规范行业秩序&lt;/h3&gt;
&lt;p&gt;1.  加强资质审核，严厉打击无资质运营：严格审核IDC服务商的资质，对无ICP备案、IDC经营许可证等资质的厂商，依法予以查处、取缔；&lt;/p&gt;
&lt;p&gt;2.  加强日常监管，规范运营行为：定期对IDC服务商进行检查，严厉打击超售、挪用用户资金、虚假宣传等违规行为，建立黑名单制度，对违规厂商进行公示、处罚；&lt;/p&gt;
&lt;p&gt;3.  完善维权机制，保障用户权益：建立便捷的用户维权通道，简化维权流程，加大对跑路厂商的追责力度，帮助用户追回损失；&lt;/p&gt;
&lt;p&gt;4.  引导行业自律，推动行业健康发展：引导IDC行业建立自律机制，规范行业竞争秩序，鼓励厂商提升服务质量、创新盈利模式，推动行业良性发展。
&lt;img src=&quot;https://www.mgstudio.icu/_astro/14.CnukEVHW_ZbwBAO.webp&quot; alt=&quot;14&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;六、结语：低价的代价，是万丈深渊；理性的选择，才是长久之道&lt;/h2&gt;
&lt;p&gt;狐蒂云的暴雷，是一场由商家贪婪、行业内卷、用户贪便宜共同酿成的悲剧。它用数万用户的血泪损失，告诉我们一个简单而深刻的道理：天下没有免费的午餐，更没有永久的低价服务。&lt;/p&gt;
&lt;p&gt;对于用户而言，一时的贪便宜，可能会导致终身的遗憾——数据丢失、资金白费、业务瘫痪，这些损失，往往难以挽回。理性消费、警惕风险、选择正规服务商、做好数据备份，才是保护自身权益的唯一途径。
&lt;img src=&quot;https://www.mgstudio.icu/_astro/15.CgWHfpSQ_1a2cm4.webp&quot; alt=&quot;15&quot; /&gt;
对于IDC从业者而言，低价内卷没有赢家，违背商业逻辑的运营，最终只会走向倒闭。唯有摒弃贪婪、合规运营、提升服务质量，才能实现可持续发展，赢得用户的信任，推动行业的进步。&lt;/p&gt;
&lt;p&gt;对于监管部门而言，加强监管、完善机制、规范行业秩序，才能遏制行业乱象，保护用户的合法权益，推动IDC行业健康、有序发展。&lt;/p&gt;
&lt;p&gt;狐蒂云的故事，已经落下帷幕，但它留下的教训，值得每一个人铭记。愿所有用户都能吸取教训，远离低价陷阱；愿所有IDC从业者都能坚守底线，合规运营；愿IDC行业能摆脱内卷，走向良性发展，不再有更多的“狐蒂云悲剧”重演。&lt;/p&gt;
</content:encoded></item><item><title>简幻欢部署Leaves 1.21.3养老服，从零搭建到插件配置全记录</title><link>https://www.mgstudio.icu/posts/jianhuanhuan-minecraft-server-leaves/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/jianhuanhuan-minecraft-server-leaves/</guid><description>使用简幻欢面板部署Minecraft Java版Leaves 1.21.3服务端，配置双认证、多地图，打造一个纯净养老服务器</description><pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;折腾了一段时间，终于把我的Minecraft养老服搭好了。用的是&lt;a href=&quot;https://simpfun.cn/auth?type=register&amp;amp;code=308534106&quot;&gt;简幻欢&lt;/a&gt;面板 + &lt;a href=&quot;https://leavesmc.org&quot;&gt;Leaves&lt;/a&gt; 1.21.3服务端，支持&lt;a href=&quot;https://redstoneskin.com&quot;&gt;红石皮肤站&lt;/a&gt;和官方正版双认证，多地图（生存、创造独立世界），整体体验还不错。记录一下整个部署过程和插件配置，给同样想开服的朋友参考。&lt;/p&gt;
&lt;h1&gt;一、为什么选简幻欢 + Leaves&lt;/h1&gt;
&lt;h2&gt;1.1 简幻欢面板&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://simpfun.cn/auth?type=register&amp;amp;code=308534106&quot;&gt;简幻欢&lt;/a&gt;是国内比较流行的Minecraft服务器托管面板，优点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;操作简单，图形化界面，不需要太多命令行知识&lt;/li&gt;
&lt;li&gt;一键部署，支持多种服务端&lt;/li&gt;
&lt;li&gt;自带文件管理、控制台、定时任务等功能&lt;/li&gt;
&lt;li&gt;国内访问速度快，客服响应及时&lt;/li&gt;
&lt;li&gt;价格合理，适合个人小型服务器&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1.2 Leaves服务端&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://leavesmc.org&quot;&gt;Leaves&lt;/a&gt;是基于&lt;a href=&quot;https://papermc.io&quot;&gt;Paper&lt;/a&gt;/&lt;a href=&quot;https://purpurmc.org&quot;&gt;Purpur&lt;/a&gt;的高性能Minecraft服务端分支，针对国内社区做了一些优化：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;性能比原版Paper更好，内存占用更低&lt;/li&gt;
&lt;li&gt;修复了一些Paper的已知Bug&lt;/li&gt;
&lt;li&gt;保持了对Paper/Spigot插件的兼容性&lt;/li&gt;
&lt;li&gt;社区活跃，更新及时&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;插件可以在 &lt;a href=&quot;https://www.spigotmc.org/resources/&quot;&gt;SpigotMC&lt;/a&gt; 或 &lt;a href=&quot;https://hangar.papermc.io&quot;&gt;Hangar&lt;/a&gt; 下载。&lt;/p&gt;
&lt;p&gt;选择Leaves而不是Paper的原因主要是它在某些场景下的性能表现更好，尤其是实体数量多的时候。&lt;/p&gt;
&lt;h1&gt;二、服务器部署&lt;/h1&gt;
&lt;h2&gt;2.1 创建服务器实例&lt;/h2&gt;
&lt;p&gt;在简幻欢面板中：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;点击&quot;创建服务器&quot;&lt;/li&gt;
&lt;li&gt;选择&quot;Minecraft Java版&quot;&lt;/li&gt;
&lt;li&gt;服务端选择&quot;Leaves&quot;&lt;/li&gt;
&lt;li&gt;版本选择&quot;1.21.3&quot;&lt;/li&gt;
&lt;li&gt;配置服务器参数（内存建议至少2GB）&lt;/li&gt;
&lt;li&gt;点击创建，等待初始化完成&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2.2 基础配置&lt;/h2&gt;
&lt;p&gt;服务器创建后，先修改&lt;code&gt;server.properties&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 服务器名称
motd=§a§l B+.I.L.L §r- §7纯净养老服

# 最大玩家数
max-players=20

# 游戏模式
gamemode=survival

# 难度
difficulty=normal

# 视距（根据服务器性能调整）
view-distance=10

# 模拟距离
simulation-distance=8

# 关闭正版验证（配合authlib-injector使用）
online-mode=false

# 关闭PVP（养老服不需要）
pvp=false

# 世界种子
level-seed=你的种子

# 世界类型
level-type=minecraft\:normal
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2.3 JVM启动参数&lt;/h2&gt;
&lt;p&gt;在简幻欢面板的启动参数配置中，建议使用以下参数：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;-javaagent:authlib-injector.jar=api.mojang.com
-Xms2G -Xmx4G
-XX:+UseG1GC
-XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=200
-XX:+UnlockExperimentalVMOptions
-XX:+DisableExplicitGC
-XX:+AlwaysPreTouch
-XX:G1NewSizePercent=30
-XX:G1MaxNewSizePercent=40
-XX:G1HeapRegionSize=8M
-XX:G1ReservePercent=20
-XX:G1HeapWastePercent=5
-XX:G1MixedGCCountTarget=4
-XX:InitiatingHeapOccupancyPercent=15
-XX:G1MixedGCLiveThresholdPercent=90
-XX:G1RSetUpdatingPauseTimePercent=5
-XX:SurvivorRatio=32
-XX:+PerfDisableSharedMem
-XX:MaxTenuringThreshold=1
-Dusing.aikars.flags=https://mcflags.emc.gs  # Aikar&apos;s Flags: https://mcflags.emc.gs
-Daikars.new.flags=true
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;三、双认证配置&lt;/h1&gt;
&lt;p&gt;养老服最大的痛点之一就是账号安全。我配置了双认证：支持&lt;a href=&quot;https://redstoneskin.com&quot;&gt;红石皮肤站&lt;/a&gt;（外置登录）和官方正版登录，两种玩家都能进服。&lt;/p&gt;
&lt;h2&gt;3.1 authlib-injector配置&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/yushijinhun/authlib-injector&quot;&gt;authlib-injector&lt;/a&gt;是实现外置登录的核心，通过Java agent注入替换认证服务器：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 下载authlib-injector
wget https://github.com/yushijinhun/authlib-injector/releases/latest/download/authlib-injector.jar

# 放到服务器根目录
# 在JVM参数中添加：
-javaagent:authlib-injector.jar=api.mojang.com
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3.2 双认证插件&lt;/h2&gt;
&lt;p&gt;使用支持双认证的插件，让正版玩家和皮肤站玩家都能正常登录：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# plugins/DualAuth/config.yml（示例配置）
auth:
  # 启用双认证模式
  mode: dual

  # 正版认证
  mojang:
    enabled: true

  # 外置登录（红石皮肤站）
  custom-yggdrasil:
    enabled: true
    api-url: &quot;https://api.example.com&quot;  # 红石皮肤站API地址

  # 安全设置
  security:
    # 防止用户名冲突
    prevent-name-conflict: true
    # 正版玩家优先
    mojang-priority: true
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3.3 登录流程&lt;/h2&gt;
&lt;p&gt;配置完成后，玩家的登录流程：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;正版玩家：&lt;/strong&gt; 直接用正版账号登录，自动通过Mojang认证&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;皮肤站玩家：&lt;/strong&gt; 使用红石皮肤站账号登录，通过authlib-injector验证&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;防冲突：&lt;/strong&gt; 如果用户名被正版玩家占用，皮肤站玩家会收到提示&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;四、多地图配置&lt;/h1&gt;
&lt;p&gt;我想在同一个服务端下实现多个独立世界：一个生存世界、一个创造世界，玩家可以自由切换。&lt;/p&gt;
&lt;h2&gt;4.1 多世界插件&lt;/h2&gt;
&lt;p&gt;使用&lt;a href=&quot;https://github.com/Multiverse/Multiverse-Core&quot;&gt;Multiverse-Core&lt;/a&gt;实现多世界管理：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 安装Multiverse-Core
# 下载插件jar放到plugins目录
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.2 创建多世界&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 在控制台或游戏内执行

# 创建生存世界
mv create world_survival normal -s 种子1 -t flat

# 创建创造世界
mv create world_creative normal -s 种子2 -t flat

# 设置默认世界
mv modify set spawn true world_survival
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.3 世界配置&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# plugins/Multiverse-Core/worlds.yml
worlds:
  world_survival:
    alias: 生存世界
    game-mode: survival
    difficulty: normal
    pvp: false
    spawn-location:
      x: 0
      y: 64
      z: 0

  world_creative:
    alias: 创造世界
    game-mode: creative
    difficulty: peaceful
    pvp: false
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.4 传送系统&lt;/h2&gt;
&lt;p&gt;配合&lt;a href=&quot;https://essentialsx.net&quot;&gt;EssentialsX&lt;/a&gt;的传送命令，让玩家自由切换世界：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 玩家使用命令切换世界
/mv tp world_survival  # 传送到生存世界
/mv tp world_creative  # 传送到创造世界

# 或者设置传送门
# 在生存世界放一个末地传送门，进入后传送到创造世界
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;五、插件推荐&lt;/h1&gt;
&lt;p&gt;以下是我养老服用的插件清单，都是经过测试兼容Leaves 1.21.3的：&lt;/p&gt;
&lt;h2&gt;5.1 核心插件&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;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://essentialsx.net&quot;&gt;EssentialsX&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;基础指令&lt;/td&gt;
&lt;td&gt;家、传送、经济、邮件，养老服必备&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://luckperms.net&quot;&gt;LuckPerms&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;权限管理&lt;/td&gt;
&lt;td&gt;功能强大，支持群组和继承&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://www.spigotmc.org/resources/vault.34315&quot;&gt;Vault&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;经济API&lt;/td&gt;
&lt;td&gt;很多插件的前置依赖&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://www.spigotmc.org/resources/placeholderapi.6245&quot;&gt;PlaceholderAPI&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;变量API&lt;/td&gt;
&lt;td&gt;显示变量信息，很多插件依赖&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;5.2 保护类插件&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;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://enginehub.org/worldguard&quot;&gt;WorldGuard&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;区域保护&lt;/td&gt;
&lt;td&gt;保护重要区域不被破坏&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://www.spigotmc.org/resources/griefprevention.1884&quot;&gt;GriefPrevention&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;领地系统&lt;/td&gt;
&lt;td&gt;玩家自己圈地保护建筑&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://www.spigotmc.org/resources/coreprotect.8631&quot;&gt;CoreProtect&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;日志回滚&lt;/td&gt;
&lt;td&gt;记录所有方块操作，可回滚熊孩子破坏&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre&gt;&lt;code&gt;# CoreProtect配置建议
# 记录所有方块操作
logging:
  blocks: true
  containers: true
  entities: true
  chat: true
  commands: true
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5.3 休闲养老插件&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;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://www.spigotmc.org/resources/mcmmo.2445&quot;&gt;McMMO&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;RPG技能&lt;/td&gt;
&lt;td&gt;挖矿、伐木等技能升级，增加游戏深度&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://www.spigotmc.org/resources/jobs-reborn.4216&quot;&gt;Jobs Reborn&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;职业系统&lt;/td&gt;
&lt;td&gt;选择职业，工作赚钱&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://www.spigotmc.org/resources/playerwarps.16578&quot;&gt;PlayerWarps&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;玩家传送点&lt;/td&gt;
&lt;td&gt;玩家设置自己的传送点&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://www.spigotmc.org/resources/gsit.62323&quot;&gt;GSit&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;坐下/躺下&lt;/td&gt;
&lt;td&gt;可以坐在方块上，增加沉浸感&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://www.spigotmc.org/resources/imageonmap.55066&quot;&gt;ImageOnMap&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;地图画&lt;/td&gt;
&lt;td&gt;把图片显示在地图上，装饰用&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://www.spigotmc.org/resources/head-database.14280&quot;&gt;HeadDatabase&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;头颅库&lt;/td&gt;
&lt;td&gt;各种装饰头颅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;5.4 经济和商店&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;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://www.spigotmc.org/resources/shopkeepers.80756&quot;&gt;Shopkeepers&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;NPC商店&lt;/td&gt;
&lt;td&gt;创建NPC商店，方便交易&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://www.spigotmc.org/resources/chestshop.51856&quot;&gt;ChestShop&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;箱子商店&lt;/td&gt;
&lt;td&gt;玩家用牌子创建商店&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://essentialsx.net&quot;&gt;EssentialsX Economy&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;经济系统&lt;/td&gt;
&lt;td&gt;基础经济功能&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;5.5 实用工具&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;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://spark.lucko.me&quot;&gt;Spark&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;性能监控&lt;/td&gt;
&lt;td&gt;监控TPS、内存、GC等&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://viaversion.com&quot;&gt;ViaVersion&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;跨版本&lt;/td&gt;
&lt;td&gt;允许不同版本的客户端连接&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://www.spigotmc.org/resources/tab.57806&quot;&gt;TAB&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tab列表&lt;/td&gt;
&lt;td&gt;美化Tab列表和名牌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://www.discordsrv.com&quot;&gt;DiscordSRV&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Discord联动&lt;/td&gt;
&lt;td&gt;游戏内聊天同步到Discord&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;5.6 插件配置示例&lt;/h2&gt;
&lt;p&gt;EssentialsX的养老服配置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# plugins/Essentials/config.yml
teleport-cooldown: 3
teleport-delay: 3
homes:
  max-homes: 5
spawn:
  newbies-spawn: true
  spawn-location: world_survival
economy:
  enabled: true
  symbol: &apos;§a$&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;LuckPerms权限组配置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 创建默认玩家组
lp creategroup player

# 设置默认组权限
lp group player permission set essentials.home true
lp group player permission set essentials.sethome true
lp group player permission set essentials.tpahere true
lp group player permission set mv.tp true

# 设置默认组为新玩家的组
lp setdefaultgroup player
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;六、种子推荐&lt;/h1&gt;
&lt;p&gt;1.21.3版本的几个不错的种子：&lt;/p&gt;
&lt;h2&gt;6.1 综合型种子&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;种子：&lt;code&gt;8594160209012774623&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;出生点附近有村庄&lt;/li&gt;
&lt;li&gt;不远处有掠夺者前哨站&lt;/li&gt;
&lt;li&gt;周围地形丰富，有平原、森林、山脉&lt;/li&gt;
&lt;li&gt;适合养老服开局&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;6.2 风景型种子&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;种子：&lt;code&gt;2151901553968352745&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;出生点附近有樱花树林&lt;/li&gt;
&lt;li&gt;不远处有裸岩山峰&lt;/li&gt;
&lt;li&gt;周围有河流和峡谷&lt;/li&gt;
&lt;li&gt;适合喜欢看风景的玩家&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;6.3 资源型种子&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;种子：&lt;code&gt;2083148844&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;出生点附近有多个村庄&lt;/li&gt;
&lt;li&gt;地下有丰富的矿洞&lt;/li&gt;
&lt;li&gt;不远处有末地要塞&lt;/li&gt;
&lt;li&gt;适合喜欢探索和刷资源的玩家&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;可以用 &lt;a href=&quot;https://chunkbase.com/apps/seed-map&quot;&gt;Chunkbase&lt;/a&gt; 查看种子的详细地图。&lt;/p&gt;
&lt;h1&gt;七、运维建议&lt;/h1&gt;
&lt;h2&gt;7.1 定期备份&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 在简幻欢面板设置定时备份
# 建议每天凌晨备份一次
# 保留最近7天的备份
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;7.2 性能监控&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 安装Spark插件后
/spark tps    # 查看TPS
/spark memory # 查看内存使用
/spark health # 查看服务器健康状态
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;7.3 实体清理&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 安装ClearLagg或类似插件
# 定期清理掉落物和多余实体
# ClearLagg下载：https://www.spigotmc.org/resources/clearlagg.36899
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;八、服务器地址&lt;/h1&gt;
&lt;p&gt;如果你也想找一个纯净养老服玩，可以来我的服务器看看：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://mc.mgstudio.icu&quot;&gt;mc.mgstudio.icu&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;服务器信息：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;版本：Leaves 1.21.3&lt;/li&gt;
&lt;li&gt;类型：纯净养老服&lt;/li&gt;
&lt;li&gt;地图：多世界（生存 + 创造）&lt;/li&gt;
&lt;li&gt;认证：双认证（正版 + 红石皮肤站）&lt;/li&gt;
&lt;li&gt;PVP：关闭&lt;/li&gt;
&lt;li&gt;白名单：暂无，欢迎来玩&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;九、总结&lt;/h1&gt;
&lt;p&gt;用简幻欢 + Leaves搭建养老服的体验整体不错。简幻欢的面板操作很方便，Leaves的性能表现也很好。双认证的配置稍微麻烦一点，但一次配好之后就不用管了。&lt;/p&gt;
&lt;p&gt;最重要的还是选好插件，养老服的核心就是&quot;养老&quot;，不要装太多花里胡哨的插件，保持纯净，让玩家能安安静静地建房子、挖矿、看风景就好。&lt;/p&gt;
&lt;p&gt;欢迎来 mc.mgstudio.icu 找我玩。&lt;/p&gt;
</content:encoded></item><item><title>小米开放MIMO模型API，通过ccswitch将其接入Claude Code</title><link>https://www.mgstudio.icu/posts/mimo-api-ccswitch-claude-setup/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/mimo-api-ccswitch-claude-setup/</guid><description>小米MIMO模型开放API邀请，获取token后通过ccswitch工具将MIMO接入Claude Code工作流</description><pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;前几天看到小米正式开放了MIMO模型的API邀请，作为一个每天都在用Claude Code干活的人，我第一时间去申请了token，想着能不能把MIMO接到我的日常工作流里。折腾了一圈之后，发现通过ccswitch这个工具可以很方便地在Claude Code里切换使用MIMO。记录一下整个过程。&lt;/p&gt;
&lt;h1&gt;一、关于小米MIMO&lt;/h1&gt;
&lt;p&gt;小米的MIMO（MiMo）模型是小米AI团队推出的大语言模型，主打推理能力。之前一直没开放公开API，只能在小米自己的产品里体验。这次开放邀请制的API访问，算是给开发者开了一个口子。&lt;/p&gt;
&lt;p&gt;MIMO的几个特点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;推理能力不错，尤其是数学和代码场景&lt;/li&gt;
&lt;li&gt;中文理解能力较强，毕竟是国产模型&lt;/li&gt;
&lt;li&gt;API价格目前处于推广期，比较有竞争力&lt;/li&gt;
&lt;li&gt;支持function call和长上下文&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;二、获取MIMO API Token&lt;/h1&gt;
&lt;h2&gt;2.1 申请流程&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;访问小米AI开放平台（ai.xiaomi.com）&lt;/li&gt;
&lt;li&gt;注册开发者账号并完成实名认证&lt;/li&gt;
&lt;li&gt;在模型广场找到MIMO，点击&quot;申请内测&quot;&lt;/li&gt;
&lt;li&gt;填写使用场景说明，等待审核（我的大概等了两天）&lt;/li&gt;
&lt;li&gt;审核通过后在控制台创建API Key&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2.2 注意事项&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;目前是邀请制，不是申请就能过，写清楚使用场景会提高通过率&lt;/li&gt;
&lt;li&gt;API Key创建后只显示一次，记得保存&lt;/li&gt;
&lt;li&gt;有调用频率限制，具体看你的邀请等级&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;三、通过ccswitch接入Claude Code&lt;/h1&gt;
&lt;h2&gt;3.1 什么是ccswitch&lt;/h2&gt;
&lt;p&gt;ccswitch是一个Claude Code的模型切换工具，可以让你在Claude Code中快速切换不同的模型后端。它的原理是通过代理层拦截Claude Code的API请求，将其转发到你指定的模型服务上。&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;ccswitch/ccswitch&quot;}&lt;/p&gt;
&lt;h2&gt;3.2 安装ccswitch&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 通过npm全局安装
npm install -g ccswitch

# 或者通过pnpm
pnpm add -g ccswitch
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3.3 配置MIMO模型&lt;/h2&gt;
&lt;p&gt;安装完成后，编辑ccswitch的配置文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 初始化配置
ccswitch init
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在生成的配置文件中添加MIMO的配置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;providers:
  mimo:
    name: &quot;小米MIMO&quot;
    api_base: &quot;https://api.xiaomi.com/v1&quot;
    api_key: &quot;your-mimo-api-key-here&quot;
    models:
      - id: &quot;mimo-reasoning&quot;
        name: &quot;MIMO Reasoning&quot;
        max_tokens: 8192
      - id: &quot;mimo-chat&quot;
        name: &quot;MIMO Chat&quot;
        max_tokens: 4096

routes:
  - name: &quot;mimo-reasoning&quot;
    provider: &quot;mimo&quot;
    model: &quot;mimo-reasoning&quot;
  - name: &quot;mimo-chat&quot;
    provider: &quot;mimo&quot;
    model: &quot;mimo-chat&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3.4 在Claude Code中使用&lt;/h2&gt;
&lt;p&gt;配置完成后，可以通过以下方式切换：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 查看当前可用的模型
ccswitch list

# 切换到MIMO推理模型
ccswitch use mimo-reasoning

# 切换回Claude
ccswitch use claude-sonnet

# 查看当前使用的模型
ccswitch current
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;切换后正常启动Claude Code即可，它会自动通过ccswitch的代理层将请求转发到MIMO：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;claude
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;四、实际使用体验&lt;/h1&gt;
&lt;h2&gt;4.1 中文场景&lt;/h2&gt;
&lt;p&gt;MIMO的中文能力确实不错，日常的代码注释、文档生成、问题分析都能胜任。和Claude相比，MIMO对国内技术生态的理解更到位一些，比如问它宝塔面板、小程序开发这类问题，回答会更接地气。&lt;/p&gt;
&lt;h2&gt;4.2 代码能力&lt;/h2&gt;
&lt;p&gt;代码方面MIMO的表现中规中矩。简单的CRUD、脚本编写没问题，但遇到复杂的架构设计或者需要深度推理的场景，和Claude还是有差距。不过作为日常辅助工具完全够用。&lt;/p&gt;
&lt;h2&gt;4.3 响应速度&lt;/h2&gt;
&lt;p&gt;MIMO的API响应速度挺快的，体感和Claude Sonnet差不多。在某些简单任务上甚至更快，可能是因为目前调用量还不大。&lt;/p&gt;
&lt;h2&gt;4.4 不足之处&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;长上下文处理能力不如Claude，超过一定长度后质量下降明显&lt;/li&gt;
&lt;li&gt;function call的支持还不够成熟，偶尔会格式不对&lt;/li&gt;
&lt;li&gt;英文能力相比Claude有明显差距&lt;/li&gt;
&lt;li&gt;文档和示例还比较少，遇到问题排查起来费劲&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;五、使用建议&lt;/h1&gt;
&lt;p&gt;基于这段时间的使用，我的建议是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;日常中文对话和简单代码任务&lt;/strong&gt;：可以用MIMO，速度快且中文体验好&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;复杂推理和架构设计&lt;/strong&gt;：还是切回Claude，这块MIMO还有差距&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;成本敏感的场景&lt;/strong&gt;：MIMO目前的API价格很有优势，适合批量任务&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;学习和探索&lt;/strong&gt;：值得尝试，多一个模型多一种思路&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;六、总结&lt;/h1&gt;
&lt;p&gt;小米MIMO开放API是个好消息，国产大模型又多了一个可用的选择。通过ccswitch接入Claude Code的方式也比较优雅，不用改变已有的工作流，随时可以切换。&lt;/p&gt;
&lt;p&gt;当然，目前MIMO和Claude相比还有不小的差距，尤其是复杂推理和长上下文方面。但作为日常中文场景的补充，MIMO是个不错的选择。期待小米后续能持续迭代，把模型能力再提升一个台阶。&lt;/p&gt;
</content:encoded></item><item><title>云服务器搭建SRS流媒体服务器，单路拉流同时推送到四个直播平台</title><link>https://www.mgstudio.icu/posts/srs-streaming-server-setup/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/srs-streaming-server-setup/</guid><description>记录在云服务器上搭建SRS流媒体服务器，实现单通道拉流后同时向B站、抖音、快手、视频号四个平台推流的全过程</description><pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;最近有个需求：用一台云服务器做中转，从一个拉流地址获取直播流，然后同时推送到B站、抖音、快手、斗鱼四个直播平台。这样只需要一路推流上行，就能实现多平台同时直播，节省带宽和设备资源。折腾了两天终于搞定了，记录一下整个过程。&lt;/p&gt;
&lt;h1&gt;一、方案选型&lt;/h1&gt;
&lt;h2&gt;1.1 为什么选SRS&lt;/h2&gt;
&lt;p&gt;对比了几个流媒体服务器方案：&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;SRS&lt;/td&gt;
&lt;td&gt;开源免费、功能完善、文档齐全、社区活跃&lt;/td&gt;
&lt;td&gt;配置项较多&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nginx-RTMP&lt;/td&gt;
&lt;td&gt;轻量、配置简单&lt;/td&gt;
&lt;td&gt;功能有限、已停止维护&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MediaMTX&lt;/td&gt;
&lt;td&gt;现代化、支持协议多&lt;/td&gt;
&lt;td&gt;社区较小&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;哔哩哔哩直播组件&lt;/td&gt;
&lt;td&gt;针对B站优化&lt;/td&gt;
&lt;td&gt;只支持B站&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;最终选择SRS（Simple Realtime Server），主要是因为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;开源免费，GitHub上star数很高&lt;/li&gt;
&lt;li&gt;支持RTMP、HLS、HTTP-FLV、WebRTC等多种协议&lt;/li&gt;
&lt;li&gt;可以实现一路输入多路输出（relay）&lt;/li&gt;
&lt;li&gt;文档完善，国内用户多，遇到问题好排查&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1.2 服务器配置&lt;/h2&gt;
&lt;p&gt;服务器由&lt;a href=&quot;https://www.rainyun.com/qhgsf_&quot;&gt;雨云&lt;/a&gt;提供，配置如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU：4核&lt;/li&gt;
&lt;li&gt;内存：4GB&lt;/li&gt;
&lt;li&gt;带宽：100Mbps（这个很关键，推四路流需要足够带宽）&lt;/li&gt;
&lt;li&gt;系统：Ubuntu 22.04 LTS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;带宽计算：&lt;/strong&gt; 一路1080p直播流大约需要4-6Mbps，四路推流就是16-24Mbps，加上拉流和系统开销，30Mbps基本够用。如果推的是720p流，带宽要求会低很多。&lt;/p&gt;
&lt;h1&gt;二、SRS安装部署&lt;/h1&gt;
&lt;h2&gt;2.1 Docker方式安装（推荐）&lt;/h2&gt;
&lt;p&gt;最简单的方式是用Docker部署：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 拉取SRS镜像
docker pull ossrs/srs:5

# 创建配置文件目录
mkdir -p /opt/srs/conf

# 启动SRS容器
docker run -d \
  --name srs \
  --restart=always \
  -p 1935:1935 \
  -p 1985:1985 \
  -p 8080:8080 \
  -v /opt/srs/conf:/usr/local/srs/conf \
  ossrs/srs:5
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2.2 编译安装&lt;/h2&gt;
&lt;p&gt;如果需要更多自定义选项，可以编译安装：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 克隆源码
git clone -b 5.0release https://github.com/ossrs/srs.git
cd srs/trunk

# 编译
./configure &amp;amp;&amp;amp; make

# 启动
./objs/srs -c conf/srs.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;三、核心配置：单路拉流 + 四路推流&lt;/h1&gt;
&lt;p&gt;这是整个方案的核心。SRS的配置文件位于&lt;code&gt;/opt/srs/conf/srs.conf&lt;/code&gt;，完整的配置如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;listen              1935;
max_connections     1000;
daemon              off;
srs_log_tank        console;

http_server {
    enabled         on;
    listen          8080;
    dir             ./objs/nginx/html;
}

# 拉流配置：从源地址拉取直播流
ingest __defaultVhost__ {
    enabled      on;
    input {
        type     stream;
        url      &quot;rtmp://源服务器地址/live/stream_key&quot;;
    }
    ffmpeg       ./objs/ffmpeg/bin/ffmpeg;
    engine {
        enabled          on;
        output          rtmp://127.0.0.1/live/source;
        vcodec          copy;
        acodec          copy;
    }
}

# 推流到B站
vhost __defaultVhost__ {
    # 原始流
    hls {
        enabled         on;
        hls_fragment    2;
        hls_window      10;
        hls_path        ./objs/nginx/html;
        hls_m3u8_file   [app]/[stream].m3u8;
        hls_ts_file     [app]/[stream]-[seq].ts;
    }
}

# 使用FFmpeg进行多路转推
# 这部分通过外部脚本实现，更灵活
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;对于多平台推流，我用FFmpeg配合SRS来实现。写一个推流脚本：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
# push_multi.sh - 单路拉流，多平台推流

# 源流地址（从SRS拉取本地流）
SOURCE=&quot;rtmp://127.0.0.1/live/source&quot;

# 各平台推流地址（替换为你的实际推流地址）
BILI_RTMP=&quot;rtmp://live-push.bilivideo.com/live-bvc/?streamname=你的B站推流码&amp;amp;key=你的密钥&quot;
DOUYIN_RTMP=&quot;rtmp://push-rtmp.douyin.com/live/你的抖音推流码&quot;
KUAISHOU_RTMP=&quot;rtmp://push.kuaishou.com/live/你的快手推流码&quot;
DOUYU_RTMP=&quot;rtmp://send2.douyu.com/live/你的斗鱼推流码&quot;

# 启动四路推流
nohup ffmpeg -re -i &quot;$SOURCE&quot; \
  -c:v copy -c:a copy \
  -f flv &quot;$BILI_RTMP&quot; \
  &amp;gt; /var/log/ffmpeg_bili.log 2&amp;gt;&amp;amp;1 &amp;amp;

nohup ffmpeg -re -i &quot;$SOURCE&quot; \
  -c:v copy -c:a copy \
  -f flv &quot;$DOUYIN_RTMP&quot; \
  &amp;gt; /var/log/ffmpeg_douyin.log 2&amp;gt;&amp;amp;1 &amp;amp;

nohup ffmpeg -re -i &quot;$SOURCE&quot; \
  -c:v copy -c:a copy \
  -f flv &quot;$KUAISHOU_RTMP&quot; \
  &amp;gt; /var/log/ffmpeg_kuaishou.log 2&amp;gt;&amp;amp;1 &amp;amp;

nohup ffmpeg -re -i &quot;$SOURCE&quot; \
  -c:v copy -c:a copy \
  -f flv &quot;$DOUYU_RTMP&quot; \
  &amp;gt; /var/log/ffmpeg_douyu.log 2&amp;gt;&amp;amp;1 &amp;amp;

echo &quot;四路推流已启动&quot;
echo &quot;B站PID: $(jobs -p | sed -n &apos;1p&apos;)&quot;
echo &quot;抖音PID: $(jobs -p | sed -n &apos;2p&apos;)&quot;
echo &quot;快手PID: $(jobs -p | sed -n &apos;3p&apos;)&quot;
echo &quot;斗鱼PID: $(jobs -p | sed -n &apos;4p&apos;)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;四、进程守护&lt;/h1&gt;
&lt;p&gt;推流脚本需要长期稳定运行，使用systemd进行进程管理：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# /etc/systemd/system/srs-push.service
[Unit]
Description=SRS Multi-Platform Push Service
After=network.target docker.service

[Service]
Type=forking
ExecStart=/opt/srs/push_multi.sh
ExecStop=/usr/bin/pkill -f &quot;ffmpeg.*rtmp&quot;
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;# 启用并启动服务
sudo systemctl daemon-reload
sudo systemctl enable srs-push
sudo systemctl start srs-push

# 查看状态
sudo systemctl status srs-push
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;五、监控和日志&lt;/h1&gt;
&lt;h2&gt;5.1 SRS控制台&lt;/h2&gt;
&lt;p&gt;SRS自带了一个Web控制台，访问 &lt;code&gt;http://你的服务器IP:1985&lt;/code&gt; 可以查看：&lt;/p&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&gt;5.2 FFmpeg日志监控&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 查看各平台推流日志
tail -f /var/log/ffmpeg_bili.log
tail -f /var/log/ffmpeg_douyin.log
tail -f /var/log/ffmpeg_kuaishou.log
tail -f /var/log/ffmpeg_douyu.log

# 检查FFmpeg进程是否存活
ps aux | grep ffmpeg
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5.3 自动重连脚本&lt;/h2&gt;
&lt;p&gt;网络抖动可能导致推流断开，写一个守护脚本定期检查并自动重连：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
# watchdog.sh - 推流进程守护

while true; do
    # 检查FFmpeg进程数
    FFMPEG_COUNT=$(ps aux | grep &quot;ffmpeg.*rtmp&quot; | grep -v grep | wc -l)

    if [ $FFMPEG_COUNT -lt 4 ]; then
        echo &quot;[$(date)] 检测到推流进程异常，当前数量: $FFMPEG_COUNT，重启中...&quot;
        pkill -f &quot;ffmpeg.*rtmp&quot;
        sleep 2
        /opt/srs/push_multi.sh
        echo &quot;[$(date)] 推流已重启&quot;
    fi

    sleep 30
done
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;六、踩坑记录&lt;/h1&gt;
&lt;h2&gt;6.1 带宽不够&lt;/h2&gt;
&lt;p&gt;一开始用的是10Mbps的服务器，推四路1080p直接卡死。解决办法：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;降低推流码率（从4000kbps降到2000kbps）&lt;/li&gt;
&lt;li&gt;或者升级服务器带宽&lt;/li&gt;
&lt;li&gt;推720p流也是个办法，大部分直播平台720p就够了&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;6.2 FFmpeg内存泄漏&lt;/h2&gt;
&lt;p&gt;长时间运行FFmpeg可能会有内存泄漏，建议：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;定期重启推流服务（通过cron每天凌晨重启一次）&lt;/li&gt;
&lt;li&gt;监控内存使用情况&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;6.3 各平台推流码配置不同&lt;/h2&gt;
&lt;p&gt;不同平台的推流地址格式不一样，有的需要额外参数：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# B站需要设置码率
BILI_RTMP=&quot;rtmp://live-push.bilivideo.com/live-bvc/?streamname=xxx&amp;amp;key=xxx&amp;amp;video_br=2000&quot;

# 抖音需要特殊的推流地址格式
DOUYIN_RTMP=&quot;rtmp://push-rtmp.douyin.com/live/xxx-xxx-xxx&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;6.4 防火墙配置&lt;/h2&gt;
&lt;p&gt;确保服务器防火墙放行了相关端口：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 放行RTMP端口
sudo ufw allow 1935

# 放行HTTP端口（用于Web控制台）
sudo ufw allow 8080
sudo ufw allow 1985
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;七、总结&lt;/h1&gt;
&lt;p&gt;通过SRS + FFmpeg的方案，我实现了单路拉流、四路推流的多平台直播中转。整个方案的核心优势：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;节省上行带宽：&lt;/strong&gt; 只需要一路推流到服务器，服务器负责分发&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;降低成本：&lt;/strong&gt; 不需要在每个平台都单独推流&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;集中管理：&lt;/strong&gt; 所有推流逻辑集中在一台服务器上，方便监控和维护&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;灵活扩展：&lt;/strong&gt; 要增加新的直播平台，只需要在脚本里加一行推流地址&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果你也有类似的需求，这套方案值得一试。SRS的文档写得很详细，遇到问题可以在GitHub上提issue，社区响应也挺快的。&lt;/p&gt;
</content:encoded></item><item><title>我为什么弃用了小龙虾（OpenClaw）</title><link>https://www.mgstudio.icu/posts/how-i-giveup-openclaw/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/how-i-giveup-openclaw/</guid><description>关于我为什么弃用Openclaw</description><pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在折腾各种开源项目的过程中，我曾一度对 &lt;strong&gt;OpenClaw（小龙虾）&lt;/strong&gt; 抱有很高的期待。它看起来轻量、灵活，而且在某些场景下确实能解决问题。但随着使用时间的增加，我最终还是选择了弃用。下面是我做出这个决定的一些真实原因。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;一、稳定性不尽如人意&lt;/h2&gt;
&lt;p&gt;最开始接入时，一切似乎运行良好。但随着使用频率提高，我逐渐遇到了一些问题：&lt;/p&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;p&gt;这些问题并不是每次都会出现，但正因为“偶尔出问题”，反而更难排查，也更影响体验。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;二、生态与社区支持较弱&lt;/h2&gt;
&lt;p&gt;一个项目能走多远，很大程度上取决于社区。&lt;/p&gt;
&lt;p&gt;相比一些主流项目，OpenClaw 的社区：&lt;/p&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;p&gt;很多时候遇到问题，只能自己翻源码或者反复试错，这对于时间成本来说并不划算。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;三、功能设计不够完善&lt;/h2&gt;
&lt;p&gt;虽然 OpenClaw 提供了一些核心功能，但在实际使用中，我发现：&lt;/p&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;p&gt;当需求稍微复杂一点时，就不得不通过“曲线救国”的方式去实现，这反而增加了系统复杂度。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;四、维护成本逐渐升高&lt;/h2&gt;
&lt;p&gt;随着时间推移，我发现维护它所花费的精力越来越多：&lt;/p&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;p&gt;相比之下，一些更成熟的替代方案反而更省心。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;五、有更合适的替代方案&lt;/h2&gt;
&lt;p&gt;最终让我下定决心的，其实是“有更好的选择”。&lt;/p&gt;
&lt;p&gt;这些替代方案可能在以下方面更优：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;更稳定的运行表现&lt;/li&gt;
&lt;li&gt;更完善的文档&lt;/li&gt;
&lt;li&gt;更活跃的社区支持&lt;/li&gt;
&lt;li&gt;更符合当前需求的功能设计&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;当替代成本不高，而收益明显时，迁移就成了一个理性的选择。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;弃用 OpenClaw 并不是因为它“一无是处”，而是因为在我的使用场景下，它已经不再是最优解。&lt;/p&gt;
&lt;p&gt;每个工具都有适合它的场景，而技术选型的本质，是在 &lt;strong&gt;成本、稳定性、功能和维护之间找到平衡&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;对我来说，这一次的答案很明确：&lt;br /&gt;
👉 是时候说再见了。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;如果你也在使用 OpenClaw，不妨问问自己一句：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;它，真的还适合你现在的需求吗？&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>防止WebRTC泄露真实IP：浏览器插件与多种解决方案</title><link>https://www.mgstudio.icu/posts/prevent-webrtc-ip-leak/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/prevent-webrtc-ip-leak/</guid><description>WebRTC会绕过代理泄露真实IP，本文介绍多种防护方法</description><pubDate>Sun, 22 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;很多人以为挂了代理就万事大吉了，但其实WebRTC可以在你不知情的情况下泄露真实IP地址。这个问题在Chrome、Firefox等主流浏览器上都存在，而且默认开启。&lt;/p&gt;
&lt;p&gt;今天聊聊WebRTC泄露的原理和防护方法。&lt;/p&gt;
&lt;h1&gt;一、什么是WebRTC&lt;/h1&gt;
&lt;p&gt;WebRTC（Web Real-Time Communication）是一套支持浏览器之间进行实时音视频通信的技术标准。你用浏览器开视频会议、语音通话、P2P文件传输，底层基本都是WebRTC。&lt;/p&gt;
&lt;p&gt;它的优点是延迟低、不需要安装插件，但有个问题：为了建立P2P连接，WebRTC需要获取你的真实IP地址，包括局域网IP和公网IP。&lt;/p&gt;
&lt;h1&gt;二、为什么会泄露IP&lt;/h1&gt;
&lt;p&gt;正常情况下，你挂了代理之后，网站看到的IP应该是代理服务器的IP。但WebRTC有个机制叫STUN（Session Traversal Utilities for NAT），它会绕过浏览器的代理设置，直接向STUN服务器请求你的真实IP。&lt;/p&gt;
&lt;p&gt;这个过程是这样的：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;网页加载时，JavaScript可以调用WebRTC API&lt;/li&gt;
&lt;li&gt;WebRTC向STUN服务器发送请求，获取你的公网IP和局域网IP&lt;/li&gt;
&lt;li&gt;这些IP信息会被传递给网页中的JavaScript代码&lt;/li&gt;
&lt;li&gt;网站可以通过这些IP识别你的真实位置&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;更麻烦的是，这个过程对用户完全透明，你在浏览器里看不到任何提示。&lt;/p&gt;
&lt;h1&gt;三、检测是否泄露&lt;/h1&gt;
&lt;p&gt;在防护之前，先检测一下你的浏览器是否存在WebRTC泄露：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;检测网站&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;browserleaks.com/webrtc&lt;/li&gt;
&lt;li&gt;ipleak.net&lt;/li&gt;
&lt;li&gt;whatismyipaddress.com/webrtc-leak&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;打开这些网站，看显示的IP地址。如果你挂了代理，但网站显示了你的真实IP，那就是存在WebRTC泄露。&lt;/p&gt;
&lt;h1&gt;四、浏览器插件方案&lt;/h1&gt;
&lt;p&gt;最简单的方案是安装浏览器插件来禁用或伪装WebRTC。&lt;/p&gt;
&lt;h2&gt;4.1 Chrome浏览器&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;WebRTC Leak Prevent&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这是最常用的防护插件，安装后直接生效。&lt;/p&gt;
&lt;p&gt;安装方法：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打开Chrome应用商店&lt;/li&gt;
&lt;li&gt;搜索&quot;WebRTC Leak Prevent&quot;&lt;/li&gt;
&lt;li&gt;安装并启用&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;插件会拦截WebRTC的IP请求，阻止真实IP泄露。你可以在插件设置中选择不同的模式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;禁用WebRTC&lt;/strong&gt;：完全禁用WebRTC功能&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;使用代理IP&lt;/strong&gt;：让WebRTC只使用代理分配的IP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;默认公共接口&lt;/strong&gt;：只暴露公共IP，隐藏局域网IP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;WebRTC Control&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;另一个不错的选择，提供一键开关功能，方便你在需要使用WebRTC时临时开启。&lt;/p&gt;
&lt;h2&gt;4.2 Firefox浏览器&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Disable WebRTC&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Firefox上的老牌插件，安装后直接禁用WebRTC功能。&lt;/p&gt;
&lt;p&gt;安装方法：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打开Firefox附加组件商店&lt;/li&gt;
&lt;li&gt;搜索&quot;Disable WebRTC&quot;&lt;/li&gt;
&lt;li&gt;安装并启用&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;WebRTC Leak Shield&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;另一个选择，提供更细粒度的控制。&lt;/p&gt;
&lt;h2&gt;4.3 Edge浏览器&lt;/h2&gt;
&lt;p&gt;Edge基于Chromium内核，可以直接使用Chrome的插件。在Edge中打开Chrome应用商店，安装上面提到的插件即可。&lt;/p&gt;
&lt;h1&gt;五、浏览器原生设置&lt;/h1&gt;
&lt;p&gt;除了插件，还可以通过浏览器自身的设置来禁用WebRTC。&lt;/p&gt;
&lt;h2&gt;5.1 Firefox设置&lt;/h2&gt;
&lt;p&gt;Firefox提供了原生的WebRTC控制选项：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;地址栏输入&lt;code&gt;about:config&lt;/code&gt;，回车&lt;/li&gt;
&lt;li&gt;搜索&lt;code&gt;media.peerconnection.enabled&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;双击将其值改为&lt;code&gt;false&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这样就完全禁用了WebRTC功能。如果需要恢复，改回&lt;code&gt;true&lt;/code&gt;即可。&lt;/p&gt;
&lt;p&gt;其他相关设置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;media.peerconnection.enabled = false          # 禁用WebRTC
media.peerconnection.turn.disable = true      # 禁用TURN服务器
media.peerconnection.use_document_iceservers = false  # 禁用文档ICE服务器
media.peerconnection.video.enabled = false    # 禁用视频
media.peerconnection.identity.timeout = 1     # 设置超时时间
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5.2 Chrome设置&lt;/h2&gt;
&lt;p&gt;Chrome没有像Firefox那样的原生设置界面，但可以通过启动参数来控制：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;--disable-webrtc-multiple-routes
--disable-webrtc-hw-encoding
--disable-webrtc-hw-decoding
--enforce-webrtc-ip-permission-check
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;不过这种方式比较麻烦，而且不一定完全有效。建议还是用插件方案。&lt;/p&gt;
&lt;h2&gt;5.3 Edge设置&lt;/h2&gt;
&lt;p&gt;Edge同样没有原生的WebRTC控制选项，使用插件是更好的选择。&lt;/p&gt;
&lt;h1&gt;六、网络层面防护&lt;/h1&gt;
&lt;p&gt;如果你想在网络层面统一防护，可以考虑以下方案。&lt;/p&gt;
&lt;h2&gt;6.1 路由器层面&lt;/h2&gt;
&lt;p&gt;一些高级路由器支持在固件层面禁用WebRTC相关的流量。具体方法取决于你的路由器型号和固件。&lt;/p&gt;
&lt;p&gt;对于OpenWrt路由器，可以安装相关插件或配置防火墙规则来阻止STUN流量。&lt;/p&gt;
&lt;h2&gt;6.2 防火墙规则&lt;/h2&gt;
&lt;p&gt;在操作系统层面，可以通过防火墙阻止STUN服务器的通信。&lt;/p&gt;
&lt;p&gt;STUN服务器通常使用UDP端口3478和5349，你可以添加防火墙规则阻止这些端口的出站流量。&lt;/p&gt;
&lt;p&gt;Windows防火墙示例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;netsh advfirewall firewall add rule name=&quot;Block STUN&quot; dir=out action=block protocol=udp remoteport=3478,5349
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Linux iptables示例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iptables -A OUTPUT -p udp --dport 3478 -j DROP
iptables -A OUTPUT -p udp --dport 5349 -j DROP
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;不过这种方式会完全阻止WebRTC功能，包括正常的音视频通信需求。&lt;/p&gt;
&lt;h2&gt;6.3 代理软件配置&lt;/h2&gt;
&lt;p&gt;一些代理软件支持在代理层面处理WebRTC流量：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Clash&lt;/strong&gt;：在配置文件中添加规则，将STUN流量走代理或直接阻止&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;V2Ray&lt;/strong&gt;：通过路由规则阻止STUN相关的域名和IP&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Shadowrocket&lt;/strong&gt;：在规则中添加STUN相关的阻止规则&lt;/p&gt;
&lt;h1&gt;七、移动设备防护&lt;/h1&gt;
&lt;p&gt;手机上的浏览器也存在WebRTC泄露问题。&lt;/p&gt;
&lt;h2&gt;7.1 Android&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Firefox for Android&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;和桌面版一样，可以通过&lt;code&gt;about:config&lt;/code&gt;禁用WebRTC：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;地址栏输入&lt;code&gt;about:config&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;搜索&lt;code&gt;media.peerconnection.enabled&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;设置为&lt;code&gt;false&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Chrome for Android&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Chrome移动版没有直接的设置选项，建议使用Firefox。&lt;/p&gt;
&lt;h2&gt;7.2 iOS&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Safari&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Safari默认不支持WebRTC，所以不存在这个问题。但如果你使用的是基于Chromium的浏览器（如Chrome、Edge），就需要注意。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Firefox for iOS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;iOS版Firefox使用的是WebKit内核，WebRTC的支持有限，泄露风险相对较小。&lt;/p&gt;
&lt;h1&gt;八、验证防护效果&lt;/h1&gt;
&lt;p&gt;配置完成后，一定要验证防护效果：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;访问browserleaks.com/webrtc&lt;/li&gt;
&lt;li&gt;检查显示的IP地址&lt;/li&gt;
&lt;li&gt;如果显示的是代理IP或完全没有IP信息，说明防护成功&lt;/li&gt;
&lt;li&gt;如果仍然显示真实IP，需要检查配置&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;建议定期检测，因为浏览器更新可能会改变WebRTC的行为。&lt;/p&gt;
&lt;h1&gt;九、注意事项&lt;/h1&gt;
&lt;h2&gt;9.1 功能影响&lt;/h2&gt;
&lt;p&gt;禁用WebRTC后，以下功能会受到影响：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;网页版视频会议（如Google Meet、腾讯会议网页版）&lt;/li&gt;
&lt;li&gt;网页版语音通话&lt;/li&gt;
&lt;li&gt;P2P文件传输&lt;/li&gt;
&lt;li&gt;部分在线游戏的实时功能&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你经常使用这些功能，建议使用插件方案而不是完全禁用，这样可以在需要时临时开启。&lt;/p&gt;
&lt;h2&gt;9.2 插件选择&lt;/h2&gt;
&lt;p&gt;选择插件时注意：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;查看插件的评价和下载量&lt;/li&gt;
&lt;li&gt;检查插件的权限要求&lt;/li&gt;
&lt;li&gt;优先选择开源插件&lt;/li&gt;
&lt;li&gt;定期更新插件&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;9.3 浏览器更新&lt;/h2&gt;
&lt;p&gt;浏览器更新可能会重置一些设置，或者改变WebRTC的默认行为。更新后建议重新检查WebRTC泄露情况。&lt;/p&gt;
&lt;h1&gt;十、总结&lt;/h1&gt;
&lt;p&gt;防止WebRTC泄露的方法，按推荐程度排序：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;浏览器插件&lt;/strong&gt;：最简单，对功能影响最小，推荐大多数人使用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;浏览器原生设置&lt;/strong&gt;：Firefox用户首选，配置一次永久生效&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网络层面防护&lt;/strong&gt;：适合有技术基础的用户，可以统一防护多台设备&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;防火墙规则&lt;/strong&gt;：最彻底，但会影响WebRTC相关功能&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;最简单的方案就是装个插件，一分钟搞定。如果你对隐私要求比较高，可以结合多种方案，多层防护。&lt;/p&gt;
&lt;p&gt;隐私保护是个持续的过程，不是配一次就完事了。定期检测，及时更新，才能确保安全。&lt;/p&gt;
</content:encoded></item><item><title>OpenList接入EdgeOne国内版并解决token失效问题</title><link>https://www.mgstudio.icu/posts/openlist-edgeone-token-fix/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/openlist-edgeone-token-fix/</guid><description>记录OpenList接入腾讯云EdgeOne国内版时遇到的token失效问题及解决方案</description><pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;最近把OpenList接入了腾讯云的EdgeOne国内版，主要想用它的CDN加速和边缘计算能力。但接入后发现一个问题：用户登录状态老是失效，隔一段时间就要重新登录，体验很差。&lt;/p&gt;
&lt;p&gt;折腾了一圈之后，终于解决了这个问题。记录一下整个过程。&lt;/p&gt;
&lt;h1&gt;一、为什么用EdgeOne国内版&lt;/h1&gt;
&lt;p&gt;OpenList本身是个文件列表程序，用来展示和管理各种网盘、存储服务的文件。我之前一直用Cloudflare的CDN，但国内访问速度不太理想，经常加载缓慢。&lt;/p&gt;
&lt;p&gt;EdgeOne是腾讯云的CDN和边缘安全服务，国内版的优势：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;国内节点多&lt;/strong&gt;：覆盖全国主要城市，访问速度快&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;支持边缘计算&lt;/strong&gt;：可以在边缘节点运行自定义逻辑&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全防护&lt;/strong&gt;：自带WAF、DDoS防护&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;价格合理&lt;/strong&gt;：比自建CDN便宜，比Cloudflare国内版稳定&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于OpenList这种需要在国内访问的服务，EdgeOne确实是个不错的选择。&lt;/p&gt;
&lt;h1&gt;二、接入EdgeOne的基本配置&lt;/h1&gt;
&lt;h2&gt;2.1 域名配置&lt;/h2&gt;
&lt;p&gt;首先在EdgeOne控制台添加域名，配置回源地址指向你的OpenList服务。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;域名：files.example.com
回源地址：你的OpenList服务器IP
回源端口：5244（OpenList默认端口）
协议：HTTP/HTTPS
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2.2 SSL证书&lt;/h2&gt;
&lt;p&gt;建议开启HTTPS，在EdgeOne控制台上传或申请SSL证书。OpenList默认支持HTTPS，但通过EdgeOne代理后，需要在EdgeOne层面配置。&lt;/p&gt;
&lt;h2&gt;2.3 缓存规则&lt;/h2&gt;
&lt;p&gt;OpenList的静态资源（JS、CSS、图片）可以设置较长的缓存时间，但API接口和登录相关接口需要设置不缓存。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;静态资源：缓存30天
API接口：不缓存
登录接口：不缓存
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;三、token失效问题的表现&lt;/h1&gt;
&lt;p&gt;接入EdgeOne后，用户登录OpenList，正常使用几分钟到几小时后，突然提示&quot;token无效&quot;或&quot;登录已过期&quot;，需要重新登录。&lt;/p&gt;
&lt;p&gt;这个问题很烦人，尤其是你在浏览文件列表、下载文件的时候突然被踢出去。&lt;/p&gt;
&lt;h1&gt;四、问题原因分析&lt;/h1&gt;
&lt;p&gt;排查了一圈，发现问题出在几个地方：&lt;/p&gt;
&lt;h2&gt;4.1 EdgeOne的缓存机制&lt;/h2&gt;
&lt;p&gt;EdgeOne默认会缓存一些响应，包括带有&lt;code&gt;Set-Cookie&lt;/code&gt;头的响应。如果登录接口的响应被缓存了，后续用户的登录请求会拿到过期的token。&lt;/p&gt;
&lt;h2&gt;4.2 IP地址变化&lt;/h2&gt;
&lt;p&gt;OpenList的token校验默认会绑定客户端IP。通过EdgeOne代理后，OpenList看到的客户端IP是EdgeOne节点的IP，而不是用户的真实IP。当用户请求被分配到不同的EdgeOne节点时，IP变化会导致token校验失败。&lt;/p&gt;
&lt;h2&gt;4.3 时间同步问题&lt;/h2&gt;
&lt;p&gt;EdgeOne节点和你的OpenList服务器之间如果有时间偏差，会导致token的过期时间校验出问题。&lt;/p&gt;
&lt;h1&gt;五、解决方案&lt;/h1&gt;
&lt;h2&gt;5.1 配置EdgeOne不缓存关键接口&lt;/h2&gt;
&lt;p&gt;在EdgeOne控制台的缓存配置中，添加规则：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;规则1：
  路径：/api/*
  缓存：不缓存

规则2：
  路径：/auth/*
  缓存：不缓存

规则3：
  路径：/login*
  缓存：不缓存
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样可以确保登录和认证相关的请求不会被EdgeOne缓存。&lt;/p&gt;
&lt;h2&gt;5.2 传递真实客户端IP&lt;/h2&gt;
&lt;p&gt;在EdgeOne的回源配置中，开启&quot;传递真实客户端IP&quot;功能。EdgeOne会通过&lt;code&gt;X-Forwarded-For&lt;/code&gt;或&lt;code&gt;X-Real-IP&lt;/code&gt;头传递用户的真实IP。&lt;/p&gt;
&lt;p&gt;然后在OpenList的配置中，告诉它从这些头中获取客户端IP。&lt;/p&gt;
&lt;p&gt;OpenList的配置文件（&lt;code&gt;data/config.json&lt;/code&gt;）中，添加或修改：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;address&quot;: &quot;0.0.0.0&quot;,
  &quot;port&quot;: 5244,
  &quot;behind_proxy&quot;: true,
  &quot;real_ip_header&quot;: &quot;X-Forwarded-For&quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;关键配置：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;behind_proxy: true&lt;/code&gt;：告诉OpenList它在反向代理后面&lt;/li&gt;
&lt;li&gt;&lt;code&gt;real_ip_header&lt;/code&gt;：指定从哪个头获取真实IP&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;5.3 调整token过期时间&lt;/h2&gt;
&lt;p&gt;OpenList的token默认有效期是24小时。如果你的使用场景需要更长的登录状态，可以调长这个时间。&lt;/p&gt;
&lt;p&gt;在OpenList的管理后台 -&amp;gt; 设置 -&amp;gt; 用户，找到token有效期设置，改成你需要的时间。建议不要设太长，7天左右比较合适。&lt;/p&gt;
&lt;h2&gt;5.4 确保时间同步&lt;/h2&gt;
&lt;p&gt;确保你的OpenList服务器时间同步正确：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 检查当前时间
date

# 安装并启用NTP同步
apt install ntpdate
ntpdate ntp.aliyun.com

# 或者使用systemd-timesyncd
timedatectl set-ntp true
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5.5 EdgeOne边缘函数处理（可选）&lt;/h2&gt;
&lt;p&gt;如果上面的方法还不够，可以用EdgeOne的边缘函数（Edge Functions）来处理token相关的逻辑。&lt;/p&gt;
&lt;p&gt;在EdgeOne控制台 -&amp;gt; 边缘计算 -&amp;gt; 边缘函数，创建一个函数：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export default async function fetch(request) {
  const url = new URL(request.url);
  
  // 对于登录和认证接口，添加特定的头部
  if (url.pathname.startsWith(&apos;/api/&apos;) || url.pathname.startsWith(&apos;/auth/&apos;)) {
    const headers = new Headers(request.headers);
    headers.set(&apos;Cache-Control&apos;, &apos;no-cache, no-store, must-revalidate&apos;);
    headers.set(&apos;Pragma&apos;, &apos;no-cache&apos;);
    
    const modifiedRequest = new Request(request, {
      headers: headers
    });
    
    return fetch(modifiedRequest);
  }
  
  return fetch(request);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个函数会对API和认证接口强制添加不缓存的头部。&lt;/p&gt;
&lt;h1&gt;六、验证配置&lt;/h1&gt;
&lt;p&gt;配置完成后，需要验证一下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;登录测试&lt;/strong&gt;：登录OpenList，正常使用一段时间，看是否还会被踢出&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IP检查&lt;/strong&gt;：在OpenList的日志中查看记录的客户端IP是否是真实IP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缓存测试&lt;/strong&gt;：用curl测试登录接口，看响应头中是否有缓存相关的头&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;# 测试登录接口是否被缓存
curl -I https://files.example.com/api/auth/login

# 应该看到这些头：
# Cache-Control: no-cache, no-store, must-revalidate
# 或者没有缓存相关的头
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;七、其他注意事项&lt;/h1&gt;
&lt;h2&gt;7.1 EdgeOne的WebSocket支持&lt;/h2&gt;
&lt;p&gt;如果你用到OpenList的WebSocket功能（比如实时文件监控），需要在EdgeOne中开启WebSocket支持。&lt;/p&gt;
&lt;h2&gt;7.2 大文件上传&lt;/h2&gt;
&lt;p&gt;EdgeOne对大文件上传有限制，如果需要上传大文件，建议：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在EdgeOne配置中调大上传文件大小限制&lt;/li&gt;
&lt;li&gt;或者对上传接口单独配置，绕过EdgeOne直接访问源站&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;7.3 日志排查&lt;/h2&gt;
&lt;p&gt;如果还有问题，可以查看两边的日志：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EdgeOne：控制台 -&amp;gt; 日志服务 -&amp;gt; 实时日志&lt;/li&gt;
&lt;li&gt;OpenList：服务器上的日志文件，通常在&lt;code&gt;data/log/&lt;/code&gt;目录下&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对比两边的日志，看请求在EdgeOne层面和OpenList层面分别发生了什么。&lt;/p&gt;
&lt;h1&gt;八、总结&lt;/h1&gt;
&lt;p&gt;OpenList接入EdgeOne国内版，主要需要注意：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;缓存配置&lt;/strong&gt;：确保API和认证接口不被缓存&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IP传递&lt;/strong&gt;：配置OpenList从代理头获取真实IP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间同步&lt;/strong&gt;：确保服务器时间正确&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;token有效期&lt;/strong&gt;：根据需要调整，不要太短也不要太长&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;配置正确后，EdgeOne确实能显著提升国内用户的访问速度。token失效问题的根源基本都是缓存和IP绑定，解决这两个点就没什么问题了。&lt;/p&gt;
&lt;p&gt;折腾了一下午，总算搞定了。现在登录状态稳定，访问速度也快了不少，值得。&lt;/p&gt;
</content:encoded></item><item><title>从 OpenClaw 到 ZeroClaw：一次为了稳定与轻量的迁移实践</title><link>https://www.mgstudio.icu/posts/zeroclaw-vs-openclaw/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/zeroclaw-vs-openclaw/</guid><description>本文仅为个人技术迁移体验分享，侧重部署流程、资源表现、使用感受，不涉及项目优劣评判，不引战、不捧一踩一，只为给同样在低配机器上折腾 AI Agent 的朋友提供一份可落地的参考</description><pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;前言：我为什么从 OpenClaw 转向 ZeroClaw？（一段真实折腾小故事）&lt;/h2&gt;
&lt;p&gt;我是一名个人站长，手里长期跑着博客、工具站、小服务，主力机器是一台&lt;strong&gt;轻量云服务器&lt;/strong&gt;：4核4G，带宽不高。&lt;/p&gt;
&lt;p&gt;之前一段时间，我一直在使用 &lt;strong&gt;OpenClaw&lt;/strong&gt; 作为我的 AI 智能体 / 自动化机器人框架。客观说，OpenClaw 功能非常完善：插件丰富、接入平台多、配置灵活、生态成熟，能满足我几乎所有自动化需求。我用它做消息机器人、定时任务、API 中转、内容处理，用得很顺手。&lt;/p&gt;
&lt;p&gt;但随着运行时间变长，两个问题开始变得&lt;strong&gt;无法忽视&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;资源占用偏高&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;启动后内存常驻 &lt;strong&gt;300MB~800MB&lt;/strong&gt; 浮动&lt;/li&gt;
&lt;li&gt;高峰期 CPU 占用会明显上涨，影响同机器上的网站响应速度&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;启动与重载速度偏慢&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;每次修改配置、重启服务，都需要等待数秒甚至更久&lt;/li&gt;
&lt;li&gt;偶尔遇到长时间运行后内存占用持续升高，需要定期重启才能维持稳定&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;对于一台还要跑 Nginx、MySQL、博客面板的小机器来说，这变成了一种“甜蜜的负担”：我需要它的能力，但又怕它把机器拖慢。&lt;/p&gt;
&lt;p&gt;于是我开始寻找一种&lt;strong&gt;更轻、更稳、启动更快、长期挂机不折腾&lt;/strong&gt;的替代方案——直到我遇到了 &lt;strong&gt;ZeroClaw&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;ZeroClaw 给我的第一印象就是：
&lt;strong&gt;极致精简、零依赖、单文件、内存占用个位数到几十 MB、启动毫秒级。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;它不是要取代谁，而是&lt;strong&gt;在低配环境、长期后台运行、极简稳定&lt;/strong&gt;这个方向上，给出了一套完全不同的解决方案。&lt;/p&gt;
&lt;p&gt;接下来，我将用&lt;strong&gt;超详细、可复现、一步一操作&lt;/strong&gt;的方式，完整记录：
&lt;strong&gt;如何从 0 部署 ZeroClaw，并提供两种部署方式：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;方式一：&lt;strong&gt;宝塔面板纯可视化部署&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;方式二：&lt;strong&gt;标准命令行部署&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;全文偏长、步骤极细，你可以直接当成&lt;strong&gt;部署手册&lt;/strong&gt;使用。&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;一、ZeroClaw 项目基础信息&lt;/h1&gt;
&lt;h2&gt;1.1 官方仓库&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ZeroClaw 官方 GitHub&lt;/strong&gt;：
&lt;strong&gt;https://github.com/zeroclaw-labs/zeroclaw&lt;/strong&gt;
::github{repo=&quot;zeroclaw-labs/zeroclaw&quot;}&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1.2 项目核心特点（部署前理解）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;语言：&lt;strong&gt;Rust&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;分发：&lt;strong&gt;单二进制文件&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;依赖：&lt;strong&gt;零系统依赖&lt;/strong&gt;，不用装 Node、Python、Docker、环境变量&lt;/li&gt;
&lt;li&gt;体积：&lt;strong&gt;≈3~5 MB&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;内存：空闲 &lt;strong&gt;5~20 MB&lt;/strong&gt;，运行 &lt;strong&gt;30~80 MB&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;启动：&lt;strong&gt;&amp;lt;100ms&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;平台：Linux x86_64 / ARM / Windows / macOS 全支持&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1.3 本文适用环境&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;操作系统：&lt;strong&gt;Linux（CentOS / Ubuntu / Debian 均可）&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;管理面板：&lt;strong&gt;宝塔面板（推荐）&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;架构：x86_64（ARM 步骤基本一致）&lt;/li&gt;
&lt;li&gt;用途：AI Agent、机器人、自动化任务、API 调用、工具调度&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1&gt;二、部署前准备&lt;/h1&gt;
&lt;h2&gt;2.1 确定你要放程序的目录&lt;/h2&gt;
&lt;p&gt;建议路径（干净、好记）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/www/server/zeroclaw/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;或在网站目录下新建：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/www/wwwroot/zeroclaw/
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;不建议放在临时目录、桌面、带中文/空格的路径。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;2.2 准备配置信息&lt;/h2&gt;
&lt;p&gt;ZeroClaw 运行最少需要：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;LLM 模型配置（OpenAI 格式 API）
&lt;ul&gt;
&lt;li&gt;api_key&lt;/li&gt;
&lt;li&gt;base_url（可选，国内中转用）&lt;/li&gt;
&lt;li&gt;model 名称&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;（可选）机器人平台 Token
&lt;ul&gt;
&lt;li&gt;Discord / Telegram / WebHook 等&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;本文以&lt;strong&gt;最通用的 LLM 对话 + 基础运行&lt;/strong&gt;为例，不讲复杂插件，保证一次跑通。&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;三、部署方式一：宝塔面板部署&lt;/h1&gt;
&lt;h2&gt;3.1 第一步：在宝塔创建程序目录&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;打开宝塔左侧 &lt;strong&gt;「文件」&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;进入 &lt;code&gt;/www/server/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;右上角 &lt;strong&gt;「新建目录」&lt;/strong&gt; → 目录名：&lt;code&gt;zeroclaw&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;进入 &lt;code&gt;/www/server/zeroclaw/&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;3.2 第二步：下载最新版 ZeroClaw 二进制&lt;/h2&gt;
&lt;p&gt;打开官方 Release 页：
https://github.com/zeroclaw-labs/zeroclaw/releases&lt;/p&gt;
&lt;p&gt;找到对应你机器的版本：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux x86_64：&lt;code&gt;zeroclaw-linux-x86_64&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Linux ARM64：&lt;code&gt;zeroclaw-linux-arm64&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;两种下载方法：&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;方法 A：面板直接下载&lt;/h3&gt;
&lt;p&gt;在 &lt;code&gt;/www/server/zeroclaw/&lt;/code&gt; 目录下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;点击 &lt;strong&gt;「远程下载」&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;选择 &lt;strong&gt;「下载文件」&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;粘贴对应版本的 &lt;strong&gt;直链&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;等待下载完成&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;方法 B：本地上传&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;下载到电脑&lt;/li&gt;
&lt;li&gt;宝塔面板 &lt;strong&gt;「上传」&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;拖入文件&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最终目录结构：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/www/server/zeroclaw/zeroclaw-linux-x86_64
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3.3 第三步：面板里给程序加执行权限&lt;/h2&gt;
&lt;p&gt;很多人部署失败，就是&lt;strong&gt;没给权限&lt;/strong&gt;。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;选中 &lt;code&gt;zeroclaw-linux-x86_64&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;右键 → &lt;strong&gt;「权限」&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;修改权限为：&lt;strong&gt;755&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;确认&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;权限解释：755 = 所有者可读写执行，其他可读执行。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;3.4 第四步：生成默认配置文件&lt;/h2&gt;
&lt;p&gt;我们用宝塔的 &lt;strong&gt;「计划任务 → 执行shell命令」&lt;/strong&gt; 临时跑一次：&lt;/p&gt;
&lt;p&gt;左侧 &lt;strong&gt;「计划任务」&lt;/strong&gt; → &lt;strong&gt;添加任务&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;任务类型：&lt;strong&gt;Shell 脚本&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;任务名称：生成 ZeroClaw 配置&lt;/li&gt;
&lt;li&gt;执行脚本：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;cd /www/server/zeroclaw
./zeroclaw-linux-x86_64 init
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;点击 &lt;strong&gt;「立即执行」&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;执行成功后，你会在目录里看到：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;config.toml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这就是配置文件。&lt;/p&gt;
&lt;h2&gt;3.5 第五步：面板可视化编辑 config.toml&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;回到文件列表&lt;/li&gt;
&lt;li&gt;点击 &lt;code&gt;config.toml&lt;/code&gt; 打开编辑&lt;/li&gt;
&lt;li&gt;按下面模板填写（最通用稳定版）&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;最小可用配置&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# ==============================================
# ZeroClaw 通用最小配置
# ==============================================

[app]
name = &quot;ZeroClaw&quot;
mode = &quot;prod&quot;
log_level = &quot;info&quot;

[llm]
provider = &quot;openai&quot;
api_key = &quot;此处填你的 API Key&quot;
base_url = &quot;https://api.openai.com/v1&quot;  # 国内中转可改
model = &quot;gpt-3.5-turbo&quot;
max_tokens = 1024
temperature = 0.7

# 启用 CLI 模式（本地运行测试）
[channels.cli]
enable = true

# 其他平台如 Discord、Telegram 按需开启
[channels.discord]
enable = false
token = &quot;&quot;

[channels.telegram]
enable = false
token = &quot;&quot;

# 安全配置
[security]
allow_commands = []
max_tools_per_call = 3
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;编辑完成后&lt;strong&gt;保存&lt;/strong&gt;。&lt;/p&gt;
&lt;h2&gt;3.6 第六步：测试运行&lt;/h2&gt;
&lt;p&gt;再次进入 &lt;strong&gt;计划任务&lt;/strong&gt;，新建一个测试任务：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd /www/server/zeroclaw
./zeroclaw-linux-x86_64 run
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;点击&lt;strong&gt;立即执行&lt;/strong&gt;，查看输出：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;出现 &lt;code&gt;ZeroClaw started&lt;/code&gt; 类似字样 = 启动成功&lt;/li&gt;
&lt;li&gt;出现 CLI 交互 = 正常运行&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3.7 第七步：配置后台守护&lt;/h2&gt;
&lt;p&gt;这是面板部署&lt;strong&gt;最关键一步&lt;/strong&gt;：让它&lt;strong&gt;开机自启、崩溃自动重启、后台常驻&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;使用宝塔「Supervisor 管理器」&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;宝塔左侧 &lt;strong&gt;「软件商店」&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;搜索 &lt;strong&gt;Supervisor&lt;/strong&gt; → 安装&lt;/li&gt;
&lt;li&gt;打开 Supervisor → &lt;strong&gt;「添加守护进程」&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;填写：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;名称：ZeroClaw&lt;/li&gt;
&lt;li&gt;启动用户：root&lt;/li&gt;
&lt;li&gt;运行目录：&lt;code&gt;/www/server/zeroclaw&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;启动命令：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;./zeroclaw-linux-x86_64 daemon
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;进程数：1&lt;/li&gt;
&lt;li&gt;自动启动：勾选&lt;/li&gt;
&lt;li&gt;自动重启：勾选&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;保存 → 启动 → 查看状态：
&lt;strong&gt;显示「运行中」= 部署完成！&lt;/strong&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;四、部署方式二：标准命令行完整版&lt;/h1&gt;
&lt;p&gt;适合习惯 SSH、喜欢干净、不想装面板工具的用户。
&lt;strong&gt;全程复制粘贴即可。&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;4.1 创建目录&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;mkdir -p /www/server/zeroclaw
cd /www/server/zeroclaw
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.2 下载二进制（以 x86_64 为例）&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;wget -O zeroclaw https://github.com/zeroclaw-labs/zeroclaw/releases/latest/download/zeroclaw-linux-x86_64
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.3 加权限&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;chmod +x zeroclaw
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.4 生成配置&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;./zeroclaw init
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.5 编辑配置&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;vim config.toml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;按上面的模板填写，保存：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:wq
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.6 前台测试运行&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;./zeroclaw run
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;看到启动成功，按 &lt;code&gt;Ctrl+C&lt;/code&gt; 退出。&lt;/p&gt;
&lt;h2&gt;4.7 后台守护运行&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;nohup ./zeroclaw daemon &amp;gt; zeroclaw.log 2&amp;gt;&amp;amp;1 &amp;amp;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.8 查看进程与日志&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# 查看是否运行
ps aux | grep zeroclaw

# 实时看日志
tail -f zeroclaw.log
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.9 设置开机自启&lt;/h2&gt;
&lt;p&gt;创建服务文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vim /etc/systemd/system/zeroclaw.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;写入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=ZeroClaw Agent
After=network.target

[Service]
User=root
WorkingDirectory=/www/server/zeroclaw
ExecStart=/www/server/zeroclaw/zeroclaw daemon
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;启用：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl daemon-reload
systemctl enable zeroclaw
systemctl start zeroclaw
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;管理命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl start zeroclaw
systemctl stop zeroclaw
systemctl restart zeroclaw
systemctl status zeroclaw
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h1&gt;五、ZeroClaw 配置文件详细解读&lt;/h1&gt;
&lt;h2&gt;5.1 全局 app 配置&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;[app]
name = &quot;ZeroClaw&quot;          # 实例名称
mode = &quot;prod&quot;              # 模式 dev / prod
log_level = &quot;info&quot;         # 日志级别 error/warn/info/debug
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5.2 LLM 核心配置&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;[llm]
provider = &quot;openai&quot;        # 目前固定 openai 格式
api_key = &quot;sk-xxxx&quot;        # 你的 key
base_url = &quot;https://...&quot;   # 中转地址
model = &quot;gpt-3.5-turbo&quot;    # 模型名
max_tokens = 1024
temperature = 0.7
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5.3 通道（Channels）配置&lt;/h2&gt;
&lt;p&gt;你可以把通道理解为&lt;strong&gt;接入平台&lt;/strong&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[channels.cli]       # 命令行聊天
enable = true        # 测试必开

[channels.discord]
enable = false
token = &quot;&quot;

[channels.telegram]
enable = false
token = &quot;&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5.4 安全配置&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;[security]
allow_commands = []       # 允许执行的系统命令
max_tools_per_call = 3    # 单次最大工具调用
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;留空 = 不允许执行任何命令，最安全&lt;/li&gt;
&lt;li&gt;个人使用可少量添加，如 &lt;code&gt;[&quot;echo&quot;, &quot;curl&quot;]&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1&gt;六、启动模式详解&lt;/h1&gt;
&lt;p&gt;ZeroClaw 有两种启动方式，很多人搞混：&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;code&gt;./zeroclaw run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;前台运行，会打印日志，Ctrl+C 停止&lt;/td&gt;
&lt;td&gt;测试、调试、看错误&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;./zeroclaw daemon&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;后台守护模式，长期运行&lt;/td&gt;
&lt;td&gt;正式部署、开机自启&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;正式部署一定用 daemon。&lt;/strong&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;七、资源占用实测对比&lt;/h1&gt;
&lt;p&gt;我在同一台机器、同一时段、空载状态下实测：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;指标&lt;/th&gt;
&lt;th&gt;OpenClaw&lt;/th&gt;
&lt;th&gt;ZeroClaw&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;文件体积&lt;/td&gt;
&lt;td&gt;~200MB&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3.4MB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;空闲内存&lt;/td&gt;
&lt;td&gt;280~600MB&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;5~20MB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;运行内存&lt;/td&gt;
&lt;td&gt;500MB+&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;30~80MB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;启动时间&lt;/td&gt;
&lt;td&gt;3~8 秒&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;&amp;lt;100ms&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;依赖环境&lt;/td&gt;
&lt;td&gt;Node + 大量库&lt;/td&gt;
&lt;td&gt;零依赖&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;真实感受：&lt;/strong&gt;
ZeroClaw 运行后，你几乎感觉不到它的存在。
不抢内存、不抢CPU、不拖慢网站、不影响业务。&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;八、常见问题与排错&lt;/h1&gt;
&lt;h2&gt;8.1 报错：permission denied&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;原因：没给执行权限&lt;/li&gt;
&lt;li&gt;解决：&lt;code&gt;chmod +x zeroclaw&lt;/code&gt; 或面板改 755&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8.2 报错：config.toml 不存在&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;原因：没生成配置&lt;/li&gt;
&lt;li&gt;解决：&lt;code&gt;./zeroclaw init&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8.3 LLM 连接失败&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;检查 api_key&lt;/li&gt;
&lt;li&gt;检查 base_url 是否可访问&lt;/li&gt;
&lt;li&gt;检查机器能否出口访问对应 API&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8.4 后台运行一会儿就挂&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;解决：用 &lt;code&gt;daemon&lt;/code&gt; 模式 + systemd 或 Supervisor 守护&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;8.5 如何完全关闭&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;pkill -f zeroclaw
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h1&gt;九、总结：一次让机器“松一口气”的迁移&lt;/h1&gt;
&lt;p&gt;从 OpenClaw 转向 ZeroClaw，对我来说不是“替换”，而是&lt;strong&gt;场景互补&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenClaw 依然是&lt;strong&gt;功能全面、生态成熟&lt;/strong&gt;的优秀框架&lt;/li&gt;
&lt;li&gt;ZeroClaw 则在&lt;strong&gt;轻量、极简、稳定、高性能&lt;/strong&gt;上走出了自己的路线&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对我这种&lt;strong&gt;个人站长 + 低配机器 + 长期挂机&lt;/strong&gt;的用户来说：
&lt;strong&gt;ZeroClaw 几乎是最优解。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;它安静、小巧、飞快、稳定，
像一个默默干活、从不添麻烦的小助手。&lt;/p&gt;
&lt;p&gt;如果你也被内存占用、启动速度、环境折腾烦了，
不妨试试 ZeroClaw，
也许它会成为你服务器上&lt;strong&gt;最省心的那个工具&lt;/strong&gt;。&lt;/p&gt;
</content:encoded></item><item><title>无服务器静态站部署全解析：5大平台对比+个人博主选型指南</title><link>https://www.mgstudio.icu/posts/serverless-static-comparison/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/serverless-static-comparison/</guid><description>本文将从部署难度、加载速度、维护成本、对国内用户的友好程度4个核心维度，对5大平台——Cloudflare Pages、Vercel、GitHub Pages、Netlify、EdgeOne Pages进行详细解说</description><pubDate>Fri, 13 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;无服务器部署（Serverless）已成为静态网站（如个人博客、展示页、文档站）的最优部署方案之一，无需购买、配置和维护服务器，仅需上传静态资源（HTML、CSS、JavaScript、图片等），即可实现快速上线、稳定运行。目前主流的无服务器静态站部署平台包括Cloudflare Pages、Vercel、GitHub Pages、Netlify、EdgeOne Pages，各平台在部署难度、加载速度、维护成本等方面差异显著。本文将从部署难度、加载速度、维护成本、对国内用户的友好程度4个核心维度，对5大平台进行详细解说&lt;/p&gt;
&lt;h1&gt;一、5大无服务器静态站部署平台详细论述&lt;/h1&gt;
&lt;p&gt;本次选取的5大平台均为当前主流选择，覆盖国内外不同厂商（海外厂商：Cloudflare、Vercel、GitHub、Netlify；国内厂商：腾讯云EdgeOne Pages），适配不同用户需求（国内访问优先、海外访问优先、免费使用、便捷维护等），以下按平台逐一解析，每个平台均围绕5个核心维度展开。&lt;/p&gt;
&lt;h2&gt;（一）Cloudflare Pages&lt;/h2&gt;
&lt;p&gt;Cloudflare Pages是全球知名CDN厂商Cloudflare推出的无服务器静态站部署服务，依托其全球分布式节点网络，核心优势在于全球访问速度和稳定性，适合对访问速度有较高要求、面向全球用户的静态站部署。&lt;/p&gt;
&lt;h3&gt;1. 部署难度：低&lt;/h3&gt;
&lt;p&gt;部署流程简洁直观，支持两种核心部署方式，新手可快速上手。一是关联GitHub、GitLab等代码仓库，开启自动部署，后续推送代码即可自动更新站点，无需手动上传资源；二是手动上传静态文件（ZIP压缩包），适合无代码仓库、静态资源较少的场景。官网提供详细的图文及动图教程，指引清晰，即使是零基础用户，10分钟内也可完成首次部署，无需掌握复杂命令或配置技巧。&lt;/p&gt;
&lt;h3&gt;2. 加载速度：全球均衡，海外最优，国内一般&lt;/h3&gt;
&lt;p&gt;依托Cloudflare全球275+个边缘节点，海外访问速度极具优势，欧洲、美洲、东南亚等地区加载时延极低，静态资源加载速度快，可有效提升海外用户访问体验。但受限于国内网络环境，国内访问时延较高，测试显示国内请求常回源至美国节点，部分地区可能出现加载缓慢、偶尔卡顿的情况，虽可通过绑定国内域名、开启CDN加速优化，但效果有限，不如国内平台适配性好。此外，其整合了Pages与Workers架构，可无缝扩展动态功能，且静态资源缓存策略完善，进一步提升加载效率。&lt;/p&gt;
&lt;h3&gt;3. 维护成本：极低&lt;/h3&gt;
&lt;p&gt;完全无服务器架构，无需维护服务器、配置环境、处理端口放行等操作，平台自动负责服务器运维、安全防护、节点扩容等工作。免费计划已能满足大部分个人用户需求，无强制收费项，仅当需要高级功能（如自定义SSL证书、多人协作、更高构建次数）时，才需升级付费计划（最低20美元/月）。日常维护仅需关注代码推送或静态资源更新，无需额外投入精力。&lt;/p&gt;
&lt;h3&gt;4. 对国内用户的友好程度：中等&lt;/h3&gt;
&lt;p&gt;存在两个核心痛点：一是国内访问速度一般，前文已提及；二是注册流程需绑定邮箱，部分国内邮箱可能无法接收验证邮件，需使用海外邮箱（如Gmail）。优势在于无需备案，绑定自定义域名后即可正常访问，无需额外提交备案材料；且平台已支持中文界面，可在设置中切换为简体中文，对英文基础较弱的用户友好度显著提升。此外，免费计划不支持并发构建，每月仅有500次构建机会，若频繁更新站点可能触发限制。&lt;/p&gt;
&lt;p&gt;Cloudflare Pages的核心定位是全球静态站部署，其节点分布以海外为主，海外访问体验远优于国内，适合注重全球访问速度的静态站（如海外个人博客、外贸展示页、英文文档站）。其优势在于支持中文界面，可手动切换简体中文，降低国内用户操作门槛；若站点核心用户为国内用户，需谨慎选择，或搭配国内CDN辅助优化访问速度。&lt;/p&gt;
&lt;h2&gt;（二）Vercel&lt;/h2&gt;
&lt;p&gt;Vercel是海外知名的无服务器部署平台，由Next.js框架团队打造，主打“快速部署、自动优化”，核心优势在于对前端框架的适配性和部署便捷性，是前端开发者首选的静态站部署平台之一。&lt;/p&gt;
&lt;h3&gt;1. 部署难度：极低&lt;/h3&gt;
&lt;p&gt;部署流程极简，是5大平台中最便捷的之一，注册后关联GitHub、GitLab仓库，选择需要部署的静态站代码仓库，平台会自动识别静态资源（无需手动配置构建命令），一键开启自动部署，后续推送代码即可实时更新站点。支持手动上传静态文件，且对前端框架（React、Vue、Angular等）适配极佳，无需额外配置，可自动完成构建打包。从注册到部署成功，全程可在5分钟内完成，零基础用户无学习成本。&lt;/p&gt;
&lt;h3&gt;2. 加载速度：海外优秀，国内中等偏上&lt;/h3&gt;
&lt;p&gt;依托其全球边缘节点网络，海外访问速度仅次于Cloudflare Pages，欧洲、美洲地区加载时延低，静态资源加载流畅。国内访问经过优化，部分地区可接入国内节点，加载速度优于Cloudflare Pages，但仍不及国内平台（如EdgeOne Pages），一线城市加载流畅，二三线及偏远地区可能出现轻微卡顿，静态资源缓存策略完善，可有效提升重复访问速度。免费计划对源文件大小限制为100MB，静态资源较多的站点可能需要升级付费计划。&lt;/p&gt;
&lt;h3&gt;3. 维护成本：极低&lt;/h3&gt;
&lt;p&gt;完全无服务器运维压力，平台自动负责服务器管理、安全防护、自动备份、节点扩容等工作，日常维护仅需关注代码更新，无需处理任何服务器相关问题。免费计划支持单个用户部署无限个静态站，无流量限制，但有部分资源限制（如每天最多100次构建、源文件大小100MB），满足个人用户（如个人博客）完全足够；付费计划主要针对企业用户，提供更多高级功能，个人用户无需升级，维护成本几乎为零。&lt;/p&gt;
&lt;h3&gt;4. 对国内用户的友好程度：中等&lt;/h3&gt;
&lt;p&gt;优势：部署流程极简，对前端开发者友好，国内访问速度经过优化，优于Cloudflare Pages；无需备案，绑定自定义域名后即可正常访问。痛点：平台界面无中文版本，注册需绑定邮箱，部分国内邮箱可能无法接收验证邮件；免费计划资源限制较严格，频繁更新站点易触发构建次数上限；国内部分地区访问仍有卡顿，不如国内平台适配性好。&lt;/p&gt;
&lt;p&gt;核心定位是面向全球开发者，海外访问体验极佳，适合面向海外用户的静态站（如海外个人博客、前端作品展示页）。同时，其对国内访问进行了一定优化，可兼顾国内用户需求，若站点用户覆盖国内外，且注重部署便捷性，Vercel是较好的选择。&lt;/p&gt;
&lt;h2&gt;（三）GitHub Pages&lt;/h2&gt;
&lt;p&gt;GitHub Pages是代码托管平台GitHub推出的免费无服务器静态站部署服务，核心优势在于完全免费、与代码仓库深度集成，适合个人开发者、新手用户，尤其是已使用GitHub托管静态站代码的用户。&lt;/p&gt;
&lt;h3&gt;1. 部署难度：中低&lt;/h3&gt;
&lt;p&gt;部署方式与代码仓库深度绑定，仅支持关联GitHub仓库部署，不支持手动上传静态文件（需通过代码推送实现更新）。部署流程：在GitHub仓库中开启Pages功能，选择部署分支和静态资源目录，即可完成部署，后续推送代码自动更新。优势在于与代码管理无缝衔接，适合习惯使用GitHub托管代码的用户；痛点在于缺乏预配置的前端框架打包构建工作流，若静态站基于前端框架（如Vue、React）开发，需手动编写部署工作流文件，对新手有一定门槛，零基础用户可能需要花费15-20分钟学习配置。&lt;/p&gt;
&lt;h3&gt;2. 加载速度：海外较好，国内不稳定&lt;/h3&gt;
&lt;p&gt;依托GitHub的全球服务器节点，海外访问速度较好，时延较低，但节点数量远少于Cloudflare和Vercel，加载速度略逊于两者。国内访问体验较差，受国内网络环境和GitHub访问稳定性影响，常出现加载缓慢、断连的情况，路由追踪路径不理想，部分地区甚至无法正常访问，即使绑定自定义域名，也难以彻底解决国内访问不稳定的问题。此外，其存储限额为1GB，每小时最多10次构建，资源限制较严格。&lt;/p&gt;
&lt;h3&gt;3. 维护成本：零&lt;/h3&gt;
&lt;p&gt;完全免费，无任何付费项，无需升级计划，即可使用全部核心功能（自定义域名、HTTPS加密、自动部署）。无服务器架构，无需维护服务器，日常维护仅需推送代码更新站点，平台自动负责运维和安全防护，维护成本几乎为零。但需注意，GitHub Pages仅支持静态站部署，无法扩展动态功能，且不提供额外的备份、监控功能，若站点出现问题，需自行排查原因。&lt;/p&gt;
&lt;h3&gt;4. 对国内用户的友好程度：较低&lt;/h3&gt;
&lt;p&gt;核心痛点是国内访问不稳定，这是影响国内用户使用的最大障碍；其次，平台界面为英文，虽有社区中文教程，但官方无中文支持，对英文基础较弱的用户不够友好；此外，部署流程对新手有一定门槛，尤其是前端框架开发的静态站，需手动配置构建工作流。优势在于完全免费、无需备案，适合新手学习静态站部署，或仅面向海外用户、对国内访问体验无要求的场景。&lt;/p&gt;
&lt;p&gt;GitHub Pages的核心用户是海外开发者，国内访问体验较差，几乎无法满足国内用户的访问需求，适合面向海外用户的静态站（如英文个人博客、开源项目文档）。若站点核心用户为国内用户，不推荐选择，即使是个人博客，国内用户访问卡顿、断连的情况也会严重影响体验。&lt;/p&gt;
&lt;h2&gt;（四）Netlify&lt;/h2&gt;
&lt;p&gt;Netlify是海外知名的无服务器静态站部署平台，与Vercel定位相似，主打“代码推送即部署”，核心优势在于集成了丰富的第三方工具（表单、评论、 analytics等），适合需要简单动态功能、注重站点交互性的静态站部署。&lt;/p&gt;
&lt;h3&gt;1. 部署难度：低&lt;/h3&gt;
&lt;p&gt;部署流程与Vercel类似，支持关联GitHub、GitLab等代码仓库，开启自动部署，代码推送后自动构建、更新站点；也支持手动上传静态文件，适配无代码仓库的场景。平台界面简洁，指引清晰，新手可快速上手，无需复杂配置，10分钟内可完成首次部署。此外，其提供丰富的预置模板，可快速搭建个人博客、文档站等，进一步降低部署难度。但需注意，其注册和验证过程对国内用户不够友好，部分场景需绑定银行卡及身份防欺诈验证。&lt;/p&gt;
&lt;h3&gt;2. 加载速度：海外优秀，国内中等&lt;/h3&gt;
&lt;p&gt;依托全球边缘节点网络，海外访问速度与Vercel相当，欧洲、美洲、东南亚等地区加载流畅，静态资源缓存策略完善，可有效提升访问速度。国内访问速度优于Cloudflare Pages，略逊于Vercel，一线城市加载流畅，二三线地区偶尔出现卡顿，受国内网络环境影响，整体稳定性一般，不如国内平台（EdgeOne Pages）适配性好。&lt;/p&gt;
&lt;h3&gt;3. 维护成本：极低&lt;/h3&gt;
&lt;p&gt;无服务器架构，无需维护服务器，平台自动负责运维、安全防护、自动备份等工作。免费计划支持单个用户部署无限个静态站，无流量限制，仅部分高级功能（如自定义SSL证书、多人协作、高级监控）需升级付费计划（最低19美元/月），个人用户（如个人博客）免费计划完全足够，日常维护仅需关注代码更新，无需额外投入精力。&lt;/p&gt;
&lt;h3&gt;4. 对国内用户的友好程度：中等偏低&lt;/h3&gt;
&lt;p&gt;优势：部署便捷、支持手动上传文件、集成丰富第三方工具，无需备案，绑定自定义域名即可访问。痛点：国内访问速度和稳定性一般，不如国内平台；平台界面无中文版本，官方无中文支持，对英文基础较弱的用户不够友好；注册验证流程对国内用户不友好，部分国内用户可能无法完成注册验证；免费计划功能限制较多，部分实用功能（如表单收集）需升级付费计划。&lt;/p&gt;
&lt;p&gt;核心定位是面向全球开发者，海外访问体验极佳，集成的第三方工具多为海外服务，适合面向海外用户、需要简单动态交互功能的静态站（如海外个人博客、小型展示站）。国内用户使用时，需接受访问速度一般、注册验证繁琐的问题，若站点核心用户为国内，不推荐作为首选。&lt;/p&gt;
&lt;h2&gt;（五）EdgeOne Pages&lt;/h2&gt;
&lt;p&gt;EdgeOne Pages是腾讯云推出的无服务器静态站部署服务，依托腾讯云国内边缘节点网络，核心优势在于国内访问速度和稳定性，是国内用户部署静态站的最优选择之一，目前处于Beta版，完全免费且限制较少。&lt;/p&gt;
&lt;h3&gt;1. 部署难度：低&lt;/h3&gt;
&lt;p&gt;部署流程简洁，支持两种部署方式，适配不同用户需求。一是关联GitHub、GitLab、Gitee等代码仓库，开启自动部署，代码推送后自动更新站点；二是手动上传静态文件（ZIP压缩包），适合无代码仓库、静态资源较少的场景。平台界面为中文，指引清晰，新手可快速上手，无需掌握复杂命令，10分钟内可完成首次部署。此外，其支持并发构建，性能表现卓越，可有效避免多频次更新导致的构建失败问题，优于多数海外平台的免费计划。&lt;/p&gt;
&lt;h3&gt;2. 加载速度：国内最优，海外一般&lt;/h3&gt;
&lt;p&gt;依托腾讯云国内100+个边缘节点，国内访问速度极具优势，一线城市、二三线地区加载时延极低，静态资源加载流畅，稳定性强，无卡顿、断连情况，完美适配国内用户访问需求。同时提供国内站和国际站两个版本：国内站预置域名.site，支持全球加速，国内访问体验最佳，但域名需备案；国际站预置域名.app，仅部署海外节点，国内访问速度尚可，且支持未备案域名。海外访问方面，节点覆盖较少，欧洲、美洲等地区加载时延较高，访问速度不如海外平台，适合核心用户为国内的场景。目前平台整体功能还较为简单，提供的前端模板有限，仍处于快速迭代中。&lt;/p&gt;
&lt;h3&gt;3. 维护成本：极低（当前免费）&lt;/h3&gt;
&lt;p&gt;目前Beta版完全免费，无任何付费项，无流量限制、无资源限制，可免费使用全部核心功能（自定义域名、HTTPS加密、自动部署、并发构建），官方说明未来推出商业版本后，免费计划可能会增加限制，但当前对个人用户极为友好。无服务器架构，无需维护服务器，平台自动负责运维、安全防护、节点扩容等工作，日常维护仅需关注代码推送或静态资源更新，维护成本几乎为零。此外，其即将支持边缘函数Serverless，可进一步扩展动态功能，未来潜力较大。&lt;/p&gt;
&lt;h3&gt;4. 对国内用户的友好程度：极高&lt;/h3&gt;
&lt;p&gt;核心优势在于完全适配国内用户需求：平台界面为中文，官方有中文支持和教程，对英文基础较弱的用户十分友好；国内访问速度快、稳定性强，无需额外优化，即可获得极佳的国内用户访问体验；支持Gitee等国内代码仓库，部署流程更贴合国内用户习惯；国内站支持备案域名，国际站支持未备案域名，适配不同域名备案状态的用户；注册流程简单，无需绑定海外邮箱或银行卡，国内用户可快速完成注册。&lt;/p&gt;
&lt;p&gt;EdgeOne Pages的核心定位是国内静态站部署，国内访问体验极佳，但海外访问速度一般，适合核心用户为国内的静态站（如国内个人博客、中文文档站、国内展示页）。若站点需要面向海外用户，不推荐选择，海外访问体验远不如Cloudflare Pages、Vercel等海外平台。&lt;/p&gt;
&lt;h2&gt;二、5大平台核心维度汇总表（清晰对比）&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;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;Cloudflare Pages&lt;/td&gt;
&lt;td&gt;低（支持仓库关联+手动上传，教程完善）&lt;/td&gt;
&lt;td&gt;海外最优，国内一般（时延较高）&lt;/td&gt;
&lt;td&gt;极低（免费计划够用，付费计划较贵）&lt;/td&gt;
&lt;td&gt;中等（支持中文界面，国内访问一般，无需备案）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vercel&lt;/td&gt;
&lt;td&gt;极低（最简部署流程，自动识别资源）&lt;/td&gt;
&lt;td&gt;海外优秀，国内中等偏上&lt;/td&gt;
&lt;td&gt;极低（免费计划够用，付费面向企业）&lt;/td&gt;
&lt;td&gt;中等（无中文，国内访问优化，无需备案）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub Pages&lt;/td&gt;
&lt;td&gt;中低（仅支持仓库关联，框架部署需手动配置）&lt;/td&gt;
&lt;td&gt;海外较好，国内不稳定（常断连）&lt;/td&gt;
&lt;td&gt;零（完全免费，无任何付费项）&lt;/td&gt;
&lt;td&gt;较低（无中文，国内访问差，无需备案）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Netlify&lt;/td&gt;
&lt;td&gt;低（支持仓库关联+手动上传，模板丰富）&lt;/td&gt;
&lt;td&gt;海外优秀，国内中等&lt;/td&gt;
&lt;td&gt;极低（免费计划够用，付费功能丰富）&lt;/td&gt;
&lt;td&gt;中等偏低（无中文，注册验证繁琐，无需备案）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EdgeOne Pages&lt;/td&gt;
&lt;td&gt;低（中文界面，支持多仓库+手动上传，并发构建优秀）&lt;/td&gt;
&lt;td&gt;国内最优，海外一般（节点较少）&lt;/td&gt;
&lt;td&gt;极低（当前完全免费，未来可能有限制）&lt;/td&gt;
&lt;td&gt;极高（中文界面，国内访问佳，支持备案/未备案域名）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1&gt;三、个人博主最优选型建议（最省心方案）&lt;/h1&gt;
&lt;p&gt;个人博主部署静态站（核心为个人博客），核心需求是「省心、低成本、访问流畅、维护简单」，无需复杂功能，优先考虑部署便捷性、访问体验和维护成本，结合上述5大平台的对比，分两种场景给出最省心的选型建议，覆盖国内、海外不同用户群体。&lt;/p&gt;
&lt;h2&gt;（一）核心用户为国内用户（90%以上个人博主适用）&lt;/h2&gt;
&lt;p&gt;最省心选择：&lt;strong&gt;EdgeOne Pages&lt;/strong&gt;，无替代方案，完全贴合国内个人博主的核心需求，省心点如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;部署最省心：中文界面，指引清晰，支持Gitee等国内代码仓库，部署流程简单，新手可快速上手，无需学习英文或复杂配置，且支持并发构建，避免多频次更新导致的失败。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;访问最省心：国内访问速度最快、稳定性最强，国内用户打开博客加载流畅，无需额外优化，可有效提升用户体验，无需担心卡顿、断连问题；支持备案/未备案域名，适配不同域名状态。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;维护最省心：当前完全免费，无任何成本，无需升级付费计划；无服务器架构，无需维护服务器，日常仅需推送代码更新博客，平台自动负责运维和安全防护，且即将支持边缘函数，可扩展动态功能。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;适配性最强：无需备案（国际站），绑定自定义域名简单，适合个人博主的域名需求；支持手动上传和仓库关联两种方式，适配不同博主的使用习惯（有无代码仓库均可）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;备选方案：若EdgeOne Pages未来推出付费计划，且免费功能受限，可选择GitHub Pages（完全免费），但需接受国内访问不稳定的问题，或搭配国内CDN优化访问速度。&lt;/p&gt;
&lt;h2&gt;（二）侧重海外访问需求（小众需求）&lt;/h2&gt;
&lt;p&gt;最省心选择：&lt;strong&gt;Vercel&lt;/strong&gt;，兼顾便捷性和海外访问体验，省心点如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;部署最省心：部署流程极简，自动识别静态资源，关联GitHub仓库后，推送代码即可自动更新，无需手动配置，新手可快速上手，比Cloudflare Pages、Netlify更便捷。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;访问最省心：海外访问速度优秀，全球节点覆盖完善，海外用户打开博客加载流畅，同时兼顾部分国内用户访问需求，比GitHub Pages、Cloudflare Pages更适配国内外混合用户。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;维护最省心：免费计划足够个人博主使用，无流量限制，无需付费；无服务器架构，无需维护服务器，日常仅需更新代码，平台自动负责运维、备份和安全防护。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;备选方案：若对海外访问速度要求极高，可选择Cloudflare Pages，依托其全球CDN节点，海外访问速度最优，且支持中文界面，操作门槛较低，但需接受国内访问一般的问题。&lt;/p&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;对于绝大多数国内个人博主而言，EdgeOne Pages是当前最省心的无服务器静态站部署平台，完美适配国内访问需求、部署便捷、完全免费、维护简单，无需投入过多精力，即可拥有一个稳定流畅的个人博客；若面向海外用户，Vercel则是最优选择，兼顾便捷性和海外访问体验。个人博主无需追求复杂功能，选择适配自身用户群体、部署维护简单的平台，才能将更多精力放在博客内容创作上，这也是“最省心”的核心含义。&lt;/p&gt;
</content:encoded></item><item><title>宝塔面板Git自动化部署踩坑实录：解决分支分歧导致的WebHook部署失败</title><link>https://www.mgstudio.icu/posts/baota-git-branch-conflict-troubleshooting/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/baota-git-branch-conflict-troubleshooting/</guid><description>解决一次由于Github分支分歧造成的自动化部署失败问题</description><pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在个人网站运维过程中，自动化部署是提升效率的核心手段。通过宝塔面板+GitHub实现网站代码的自动化部署后，原本稳定的流程突发部署失败问题。本文将详细还原问题排查、解决全过程，深入剖析Git分支分歧的本质，提供可直接复用的解决方案和优化建议，帮助更多站长避开同类坑。&lt;/p&gt;
&lt;h1&gt;一、问题背景与现象&lt;/h1&gt;
&lt;h2&gt;1.1 部署环境说明&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;服务器：腾讯云轻量应用服务器（4核4G，3M带宽，OpencloudOS系统）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;管理面板：宝塔Linux面板 11.5.0&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;代码托管：GitHub（仓库地址：https://github.com/GUOWANGBIAN/mizuki66）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;部署方式：GitHub WebHook触发宝塔面板自动执行&lt;code&gt;git pull&lt;/code&gt;拉取代码&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;网站域名：www.mgstudio.icu（个人技术博客，静态+动态混合架构）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1.2 问题突发场景&lt;/h2&gt;
&lt;p&gt;此前通过宝塔面板配置的WebHook自动化部署一直稳定运行，每次在GitHub提交代码后，服务器能自动拉取最新版本并完成部署。但在某次优化网站首页样式后，提交代码却未触发部署成功，登录宝塔面板查看部署记录，发现两个关键异常：&lt;/p&gt;
&lt;h3&gt;（1）WebHook日志报错&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;[13:39:53] 🚀 开始部署: www.mgstudio.icu_20_master_deploy (自动部署)
[13:39:53] 🚀 自动部署: www.mgstudio.icu -&amp;gt;
From https://edgeone.gh-proxy.org/https://github.com/GUOWANGBIAN/mizuki66
ee0f511..866c5ad master -&amp;gt; origin/master
hint: You have divergent branches and need to specify how to reconcile them.
hint: You can do so by running one of the following commands sometime before
hint: your next pull:
hint:
hint: git config pull.rebase false # merge
hint: git config pull.rebase true # rebase
hint: git config pull.ff only # fast-forward only
hint:
hint: You can replace &quot;git config&quot; with &quot;git config --global&quot; to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
fatal: Need to specify how to reconcile divergent branches.
[13:39:55] 📋 部署日志已保存 (自动部署, git_manager_id: 4)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;（2）部署记录内容为空&lt;/h3&gt;
&lt;p&gt;在宝塔面板的「部署记录」列表中，该次部署的「日志内容」字段显示为空，仅能看到部署时间和状态标记为「失败」，无法获取更多错误细节。
&lt;img src=&quot;https://www.mgstudio.icu/images/posts/2026-02-10/001.webp&quot; alt=&quot;Alt text&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;1.3 初步影响&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;代码无法自动同步到服务器，网站无法更新最新功能；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;手动执行&lt;code&gt;git pull&lt;/code&gt;命令时同样报错，需手动处理后才能完成部署；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;若未及时发现，可能导致多次提交代码后部署累积失败，增加后续同步难度。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;二、问题深度剖析&lt;/h1&gt;
&lt;h2&gt;2.1 核心错误定位：Git分支分歧&lt;/h2&gt;
&lt;p&gt;从WebHook日志中的报错信息「You have divergent branches and need to specify how to reconcile them」可以明确，核心问题是&lt;strong&gt;本地分支与远程分支出现了分歧（Divergent Branches）&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;什么是Git分支分歧？&lt;/h3&gt;
&lt;p&gt;Git分支分歧是指本地分支（服务器上的&lt;code&gt;master&lt;/code&gt;分支）和远程分支（GitHub上的&lt;code&gt;origin/master&lt;/code&gt;分支）在提交历史上出现了分叉。简单来说，就是两者从某个共同的提交节点之后，各自产生了新的提交记录，且这些提交记录互不包含，Git无法自动判断应该保留哪部分提交，因此需要手动指定合并策略。&lt;/p&gt;
&lt;h3&gt;分支分歧的产生原因&lt;/h3&gt;
&lt;p&gt;结合个人站长的实际使用场景，分支分歧通常由以下3种情况导致：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;本地直接修改服务器代码&lt;/strong&gt;：为了快速测试某个功能，直接在服务器的网站目录下修改了代码文件，但未将修改提交到GitHub仓库。后续在本地或其他设备提交代码到GitHub后，服务器本地分支就会与远程分支产生分歧；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;多人协作提交冲突&lt;/strong&gt;：若存在多人共同维护仓库，不同开发者在同一文件的同一位置修改并提交，可能导致远程分支与服务器本地分支的提交历史不一致；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Git版本更新导致默认行为变化&lt;/strong&gt;：Git 2.27版本后，&lt;code&gt;git pull&lt;/code&gt;命令的默认行为发生了改变——当检测到分支分歧时，不再自动执行合并操作，而是要求用户明确指定合并策略，这也是本次问题触发的直接原因（此前使用的旧版Git未出现该问题，服务器升级Git版本后触发）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2.2 部署记录为空的原因分析&lt;/h2&gt;
&lt;p&gt;宝塔面板的部署记录本质上是WebHook脚本执行的输出日志。本次部署记录为空，是因为&lt;code&gt;git pull&lt;/code&gt;命令在执行过程中直接报错终止，未产生任何有效输出，导致面板无法捕获到日志内容。&lt;/p&gt;
&lt;p&gt;具体逻辑链：
&lt;code&gt;Git分支分歧 → git pull命令执行失败 → 脚本终止运行 → 无输出日志 → 宝塔面板显示空记录&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;2.3 问题本质总结&lt;/h2&gt;
&lt;p&gt;本次部署失败的本质是「Git版本更新后的默认行为变化」与「分支分歧状态」的叠加效应。即使没有手动修改服务器代码，长期使用过程中也可能因网络波动、部署中断等小概率事件导致分支状态不一致，而Git新版本的严格策略将这种潜在问题显性化了。&lt;/p&gt;
&lt;h1&gt;三、解决方案实测（从简单到复杂）&lt;/h1&gt;
&lt;p&gt;针对Git分支分歧导致的自动化部署失败，测试了3种解决方案，从易操作到进阶优化依次排列，均已在腾讯云服务器+宝塔面板环境中验证可行。&lt;/p&gt;
&lt;h2&gt;3.1 方案一：设置Git默认合并策略（推荐个人站长）&lt;/h2&gt;
&lt;p&gt;该方案通过配置Git仓库的默认合并策略，让&lt;code&gt;git pull&lt;/code&gt;命令在遇到分支分歧时自动执行合并操作，无需手动干预，最适合个人开发场景。&lt;/p&gt;
&lt;h3&gt;操作步骤：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;登录宝塔面板，进入「文件」管理页面，导航到网站根目录（本文示例路径：&lt;code&gt;/www/wwwroot/www.mgstudio.icu&lt;/code&gt;）；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;点击「终端」按钮，在弹出的终端窗口中执行以下命令：
`# 进入网站根目录（若已在该目录可跳过）&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;cd /www/wwwroot/www.mgstudio.icu
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;设置默认合并策略（merge模式，最安全，保留所有提交记录）&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;git config pull.rebase false
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;验证配置是否生效&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;git config --list | grep pull.rebase`
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;配置生效后，手动执行一次&lt;code&gt;git pull&lt;/code&gt;命令测试：
&lt;code&gt;git pull&lt;/code&gt;若输出「Already up to date」或成功合并提示，说明配置生效；若出现合并冲突，需先手动解决冲突（下文将详细说明）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;原理说明：&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;git config pull.rebase false&lt;/code&gt; 表示设置Git的默认合并策略为「merge模式」——当检测到分支分歧时，自动创建一个新的合并提交，将远程分支的提交与本地分支的提交合并，保留双方的提交历史，避免代码丢失。&lt;/p&gt;
&lt;h3&gt;优缺点：&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;优点：操作简单，一次配置永久生效，无需修改WebHook脚本，适合个人站长和小型团队；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;缺点：长期使用可能导致提交历史中出现较多合并节点，不够简洁（对个人站影响可忽略）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3.2 方案二：修改WebHook脚本（进阶优化）&lt;/h2&gt;
&lt;p&gt;该方案在宝塔面板的WebHook脚本中明确指定&lt;code&gt;git pull&lt;/code&gt;的合并策略，避免因Git配置丢失或全局配置冲突导致的问题，适合对部署脚本有更高可控性要求的场景。&lt;/p&gt;
&lt;h3&gt;操作步骤：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;登录宝塔面板，进入「软件商店」→「已安装」→「Git」→「设置」→「WebHook」；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;找到对应网站的WebHook配置，修改「执行脚本」为以下内容：
&lt;code&gt;shell      `#!/bin/bash      &lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;定义网站目录（根据实际情况修改）&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;WEB_ROOT=&quot;/www/wwwroot/www.mgstudio.icu&quot;&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;定义远程仓库和分支（默认origin/master，根据实际情况修改）&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;REMOTE_REPO=&quot;origin&quot;
BRANCH=&quot;master&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;进入网站目录&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;cd $WEB_ROOT || exit 1
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;拉取代码，使用merge策略（明确指定，不受全局配置影响）&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;git pull --merge $REMOTE_REPO $BRANCH
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;权限设置（避免部署后网站因权限问题无法访问）&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;chown -R www:www ./
chmod -R 755 ./
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;输出部署成功日志（便于宝塔面板捕获）&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;[$(date +&apos;%Y-%m-%d %H:%M:%S&apos;)] 部署成功：从 $REMOTE_REPO/$BRANCH 拉取代码完成&quot;`
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;点击「保存」后，点击「测试」按钮，触发一次手动部署，查看日志是否显示成功。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;关键优化点：&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;明确指定&lt;code&gt;--merge&lt;/code&gt;参数，强制使用合并策略，不受Git全局配置影响；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;添加目录切换容错（&lt;code&gt;|| exit 1&lt;/code&gt;），若目录不存在则脚本终止，避免无效执行；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;增加权限设置步骤，解决部署后文件权限不一致导致的网站访问异常；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;添加日志输出语句，让宝塔面板能捕获到部署状态，便于后续排查。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;原理说明：&lt;/h3&gt;
&lt;p&gt;通过在&lt;code&gt;git pull&lt;/code&gt;命令后直接添加&lt;code&gt;--merge&lt;/code&gt;参数，强制Git在拉取代码时执行合并操作，即使存在分支分歧也能自动处理，同时脚本中的日志输出语句确保宝塔面板能记录部署过程。&lt;/p&gt;
&lt;h3&gt;优缺点：&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;优点：脚本独立性强，移植性好，适合多服务器部署场景，日志更完整；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;缺点：需要手动修改WebHook脚本，对新手站长有一定门槛。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3.3 方案三：强制同步远程分支（谨慎使用）&lt;/h2&gt;
&lt;p&gt;该方案通过强制重置本地分支到远程分支的最新状态，彻底消除分支分歧，适合本地分支无重要修改、仅需同步远程代码的场景。&lt;strong&gt;注意：该方案会覆盖本地分支的所有修改，若本地有未提交的代码，会导致数据丢失，请谨慎使用！&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;操作步骤：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;进入宝塔面板的网站根目录终端，执行以下命令：`# 进入网站根目录&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;cd /www/wwwroot/www.mgstudio.icu
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;拉取远程分支的最新版本（不合并）&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;git fetch $REMOTE_REPO
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;强制重置本地分支到远程分支的最新状态&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;git reset --hard $REMOTE_REPO/$BRANCH
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;清理本地未跟踪的文件（可选，避免冗余文件）&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;git clean -fd`
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;执行完成后，手动测试&lt;code&gt;git pull&lt;/code&gt;命令，确认无报错：&lt;code&gt;git pull&lt;/code&gt;此时应输出「Already up to date」，说明本地分支已与远程完全同步。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;适用场景：&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;服务器本地分支误修改，且修改内容无保留价值；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;分支分歧严重，合并操作复杂，且远程分支的代码是最新且正确的；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;测试环境服务器，无需保留本地修改记录。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;优缺点：&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;优点：操作彻底，能一次性解决所有分支分歧问题；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;缺点：会覆盖本地所有未提交的修改，风险较高，需提前备份重要文件。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;3.4 合并冲突的手动解决方法（补充）&lt;/h2&gt;
&lt;p&gt;若执行上述方案时出现「merge conflict」（合并冲突）提示，说明本地分支和远程分支在同一文件的同一位置有不同修改，需要手动解决冲突后才能继续部署。&lt;/p&gt;
&lt;h3&gt;解决步骤：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;执行以下命令查看冲突文件：
&lt;code&gt;git status&lt;/code&gt;终端会显示冲突文件列表，文件名称前标记为「both modified」；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;打开冲突文件，查找冲突标记：&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD
本地分支的代码内容
=======
远程分支的代码内容
&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; origin/master
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;编辑文件，删除冲突标记（&lt;code&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD&lt;/code&gt;、&lt;code&gt;=======&lt;/code&gt;、&lt;code&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; origin/master&lt;/code&gt;），并保留需要的代码内容；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;保存文件后，执行以下命令提交修改：&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;git add .
git commit -m &quot;解决合并冲突&quot;
git pull`
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;冲突解决后，重新触发WebHook部署即可。&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;四、部署流程优化建议（长期稳定保障）&lt;/h1&gt;
&lt;p&gt;解决本次问题后，对宝塔面板的Git自动化部署流程进行了全面优化，从「被动解决问题」转变为「主动预防问题」，以下建议适合所有使用宝塔面板的个人站长。&lt;/p&gt;
&lt;h2&gt;4.1 优化WebHook脚本（增加容错和日志）&lt;/h2&gt;
&lt;p&gt;在方案二的基础上，进一步完善脚本，增加错误处理、日志记录和邮件通知功能，让部署过程更透明、更可靠。&lt;/p&gt;
&lt;h3&gt;优化后的完整脚本：&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
# 网站信息配置
WEB_ROOT=&quot;/www/wwwroot/www.mgstudio.icu&quot;
REMOTE_REPO=&quot;origin&quot;
BRANCH=&quot;master&quot;
LOG_FILE=&quot;/www/logs/mgstudio_deploy.log&quot;  # 日志保存路径
EMAIL=&quot;your@email.com&quot;  # 接收通知的邮箱

# 创建日志文件（若不存在）
mkdir -p /www/logs
touch $LOG_FILE

# 日志输出函数
log() {
    echo &quot;[$(date +&apos;%Y-%m-%d %H:%M:%S&apos;)] $1&quot; &amp;gt;&amp;gt; $LOG_FILE
}

log &quot;开始部署：从 $REMOTE_REPO/$BRANCH 拉取代码&quot;

# 进入网站目录，失败则记录日志并退出
cd $WEB_ROOT || {
    log &quot;部署失败：无法进入网站目录 $WEB_ROOT&quot;
    # 发送邮件通知（需服务器安装mailutils）
    echo &quot;部署失败：无法进入网站目录 $WEB_ROOT&quot; | mail -s &quot;mgstudio.icu 部署失败通知&quot; $EMAIL
    exit 1
}

# 拉取代码，失败则记录日志并退出
git pull --merge $REMOTE_REPO $BRANCH || {
    log &quot;部署失败：git pull 执行失败，分支可能存在严重冲突&quot;
    echo &quot;部署失败：git pull 执行失败，请登录服务器手动处理&quot; | mail -s &quot;mgstudio.icu 部署失败通知&quot; $EMAIL
    exit 1
}

# 设置文件权限
chown -R www:www ./
chmod -R 755 ./
log &quot;权限设置完成：www:www 755&quot;

# 可选：静态网站构建（如Vue、Astro项目）
# log &quot;开始构建项目...&quot;
# npm install &amp;amp;&amp;amp; npm run build || {
#     log &quot;部署失败：项目构建失败&quot;
#     echo &quot;部署失败：项目构建失败，请检查依赖和构建脚本&quot; | mail -s &quot;mgstudio.icu 部署失败通知&quot; $EMAIL
#     exit 1
# }

log &quot;部署成功：代码拉取和配置完成&quot;
echo &quot;mgstudio.icu 部署成功！&quot; | mail -s &quot;mgstudio.icu 部署成功通知&quot; $EMAIL

exit 0
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;脚本优化点说明：&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;新增日志文件：将部署日志保存到独立文件，便于后续追溯历史记录；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;错误处理机制：每一步关键操作都添加容错判断，失败时记录日志并发送邮件通知；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;权限自动修复：部署后自动设置文件权限为&lt;code&gt;www:www&lt;/code&gt;，避免因权限问题导致网站无法访问；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;支持项目构建：预留了前端项目构建步骤（如&lt;code&gt;npm run build&lt;/code&gt;），适配Vue、Astro等框架的部署需求。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4.2 定期维护Git仓库（预防分支分歧）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;每周执行一次分支同步&lt;/strong&gt;：在服务器终端执行&lt;code&gt;git fetch &amp;amp;&amp;amp; git pull&lt;/code&gt;，确保本地分支与远程保持同步，避免分歧累积；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;禁止直接修改服务器代码&lt;/strong&gt;：所有代码修改必须在本地完成，提交到GitHub后通过自动化部署同步到服务器，从源头避免分支分歧；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;定期清理冗余文件&lt;/strong&gt;：执行&lt;code&gt;git clean -fd&lt;/code&gt;清理本地未跟踪的临时文件，保持仓库整洁。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;4.3 监控部署状态（及时发现问题）&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;启用宝塔面板的「部署通知」功能：在WebHook配置中勾选「部署结果通知」，填写邮箱或手机号，部署失败时会收到实时通知；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;定期查看部署日志：每周查看一次&lt;code&gt;/www/logs/mgstudio_deploy.log&lt;/code&gt;，及时发现潜在的部署异常；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;配置网站健康检查：使用UptimeRobot等工具监控网站是否正常访问，若部署失败导致网站无法打开，能及时收到告警。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;4.4 升级后的部署流程总结&lt;/h2&gt;
&lt;p&gt;优化后的自动化部署流程：
&lt;code&gt;GitHub提交代码 → 触发WebHook → 执行优化脚本 → 自动拉取代码（处理分支分歧） → 权限设置 → 项目构建（可选） → 日志记录 → 邮件通知 → 部署完成&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;该流程实现了「自动化执行+异常监控+快速响应」的闭环，能有效应对分支分歧、权限异常、构建失败等常见问题，适合长期稳定运行。&lt;/p&gt;
&lt;h1&gt;五、常见问题FAQ（避坑指南）&lt;/h1&gt;
&lt;p&gt;在解决本次问题和优化部署流程的过程中，整理了个人站长最常遇到的5个问题及解决方案，避免大家重复踩坑。&lt;/p&gt;
&lt;h2&gt;Q1：执行&lt;code&gt;git config&lt;/code&gt;命令后，部署仍失败？&lt;/h2&gt;
&lt;h3&gt;A1：可能是Git配置的作用域问题，需区分「仓库级配置」和「全局配置」：&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;若仅在当前网站目录执行&lt;code&gt;git config pull.rebase false&lt;/code&gt;，配置仅对该仓库生效（推荐）；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;若想让所有仓库生效，需添加&lt;code&gt;--global&lt;/code&gt;参数：&lt;code&gt;git config --global pull.rebase false&lt;/code&gt;；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;验证配置：执行&lt;code&gt;git config --list | grep pull.rebase&lt;/code&gt;，若输出&lt;code&gt;pull.rebase=false&lt;/code&gt;说明生效；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;若仍失败，检查WebHook脚本是否指定了其他合并策略（如&lt;code&gt;--rebase&lt;/code&gt;），脚本参数会覆盖仓库配置。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Q2：使用&lt;code&gt;git reset --hard&lt;/code&gt;后，本地修改丢失怎么办？&lt;/h2&gt;
&lt;h3&gt;A2：若未执行&lt;code&gt;git clean -fd&lt;/code&gt;，可通过以下命令恢复最近一次提交前的修改：&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 查看最近的提交记录，获取要恢复的提交ID（前6位即可）
git reflog
# 恢复到指定提交节点（替换为实际的提交ID）
git reset --hard 7a34f2d
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：若已执行&lt;code&gt;git clean -fd&lt;/code&gt;删除了未跟踪文件，或重置后又执行了新的提交，数据恢复难度极大，建议提前备份重要文件。&lt;/p&gt;
&lt;h2&gt;Q3：WebHook触发后，宝塔面板显示「执行成功」但网站未更新？&lt;/h2&gt;
&lt;h3&gt;A3：大概率是以下3种情况：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;代码拉取成功但未生效：部分框架（如Vue、Next.js）需执行&lt;code&gt;npm run build&lt;/code&gt;构建，脚本中需添加构建步骤；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;缓存问题：浏览器缓存了旧页面，按&lt;code&gt;Ctrl+F5&lt;/code&gt;强制刷新，或清理CDN缓存；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;分支不一致：WebHook脚本中指定的分支（如&lt;code&gt;master&lt;/code&gt;）与GitHub提交的分支（如&lt;code&gt;main&lt;/code&gt;）不匹配，需统一分支名称。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Q4：服务器网络无法访问GitHub，导致&lt;code&gt;git pull&lt;/code&gt;超时？&lt;/h2&gt;
&lt;h3&gt;A4：个人站长常用解决方案：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;使用GitHub代理：将脚本中的仓库地址替换为代理地址（如本文中的&lt;code&gt;https://edgeone.gh-proxy.org/https://github.com/GUOWANGBIAN/mizuki66&lt;/code&gt;）；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;配置DNS：修改服务器DNS为8.8.8.8（Google DNS）或223.5.5.5（阿里云DNS），提升海外访问稳定性；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;本地拉取后上传：若代理无效，可本地执行&lt;code&gt;git clone&lt;/code&gt;拉取代码，再通过宝塔面板的「文件上传」功能上传到服务器（适合代码量小的场景）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Q5：多人协作时，使用&lt;code&gt;merge&lt;/code&gt;策略导致提交历史混乱怎么办？&lt;/h2&gt;
&lt;h3&gt;A5：推荐使用「rebase变基策略」替代&lt;code&gt;merge&lt;/code&gt;，保持提交历史线性：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;配置默认变基策略：&lt;code&gt;git config pull.rebase true&lt;/code&gt;；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;WebHook脚本中指定变基：&lt;code&gt;git pull --rebase origin master&lt;/code&gt;；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;变基冲突处理：若出现冲突，解决后执行&lt;code&gt;git rebase --continue&lt;/code&gt;，若想放弃变基执行&lt;code&gt;git rebase --abort&lt;/code&gt;；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;注意：变基会修改提交历史，仅在个人分支或协作前沟通确认后使用，避免对公共分支执行变基。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;六、总结与反思&lt;/h1&gt;
&lt;p&gt;本次宝塔面板Git自动化部署失败的问题，让我深刻体会到「运维无小事」——一个看似简单的&lt;code&gt;git pull&lt;/code&gt;命令，背后涉及Git分支管理、版本特性、脚本编写、服务器配置等多个知识点。&lt;/p&gt;
&lt;h2&gt;6.1 问题解决核心收获&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;理解了Git分支分歧的本质：提交历史分叉导致Git无法自动合并，新版本Git的严格策略将潜在问题显性化；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;掌握了3种实用解决方案：配置默认合并策略（适合个人）、修改WebHook脚本（适合进阶）、强制同步分支（适合紧急修复）；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;构建了稳定的部署流程：通过优化脚本、添加日志、设置通知，实现了「自动化+可监控+可追溯」的部署闭环。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;6.2 后续优化方向&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;引入CI/CD工具：对于复杂项目，可使用Jenkins、GitHub Actions替代宝塔WebHook，支持更灵活的构建、测试、部署流程；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;代码备份策略：定期自动备份服务器代码和数据库，避免因误操作或服务器故障导致数据丢失；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;学习Git高级用法：深入掌握分支管理、标签管理、stash命令等，应对更复杂的开发场景；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;服务器环境标准化：使用Docker容器化部署，避免因环境差异导致的部署失败，提升迁移便利性。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;6.3 给新手站长的建议&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;不要忽视基础工具：Git、Linux命令、面板配置等基础技能，是保障网站稳定运行的核心；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;重视日志排查：遇到问题先看日志（宝塔部署日志、Git执行日志、服务器系统日志），日志是定位问题的关键；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;从简单到复杂：初期使用宝塔面板简化运维，后续逐步学习手动配置Nginx、Git脚本、Docker等，提升技术深度；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;多动手实践：遇到问题不要急于求助，先尝试自己排查（如搜索报错信息、查看官方文档），解决问题的过程就是技术提升的过程。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;本次问题的解决，不仅让本博客恢复了正常的自动化部署，更积累了宝贵的运维经验。希望本文的踩坑实录和解决方案，能帮助更多新手站长避开同类问题，让自己的网站部署流程更稳定、更高效。&lt;/p&gt;
</content:encoded></item><item><title>静态站 vs 动态站：个人博客该选哪种？</title><link>https://www.mgstudio.icu/posts/static-vs-dynamic-blog/</link><guid isPermaLink="true">https://www.mgstudio.icu/posts/static-vs-dynamic-blog/</guid><description>从开发、运维、成本三大核心维度拆解二者的优劣势，结合个人博客的实际使用场景给出选型建议，帮你避开选型误区，找到最适配自己的博客搭建方案</description><pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;对于个人博客搭建者而言，静态站和动态站的选择是建站初期的核心决策——前者轻量高效、运维简单，后者功能丰富、交互性强，二者在开发门槛、运维成本、使用体验上差异显著。很多新手会陷入“选轻量的静态站还是全能的动态站”的纠结，其实答案并非绝对，核心在于&lt;strong&gt;你的技术基础、博客定位、运维时间和成本预算&lt;/strong&gt;。本文将从开发、运维、成本三大核心维度拆解二者的优劣势，结合个人博客的实际使用场景给出选型建议，帮你避开选型误区，找到最适配自己的博客搭建方案。&lt;/p&gt;
&lt;h2&gt;一、先搞懂：静态站和动态站到底是什么？&lt;/h2&gt;
&lt;p&gt;在对比分析前，先明确二者的核心定义，这是后续选型的基础，避免因概念混淆选错方向。&lt;/p&gt;
&lt;h3&gt;静态站&lt;/h3&gt;
&lt;p&gt;静态站由&lt;strong&gt;HTML、CSS、JavaScript&lt;/strong&gt;纯静态文件构成，文件在开发/构建后直接存储在服务器上，用户访问时，服务器无需额外计算，直接将现成的文件返回给浏览器，访问过程无“动态生成内容”的步骤。&lt;/p&gt;
&lt;p&gt;代表框架/工具：Astro、Hexo、Hugo、VuePress、Gatsby，纯手写HTML/CSS也属于静态站范畴。&lt;/p&gt;
&lt;h3&gt;动态站&lt;/h3&gt;
&lt;p&gt;动态站的页面内容并非提前生成，而是&lt;strong&gt;用户访问时由服务器实时动态生成&lt;/strong&gt;：浏览器发送请求后，服务器通过程序（PHP/Java/Python等）调用数据库，拼接生成HTML页面再返回给用户，页面内容会随数据库数据、用户操作实时变化。&lt;/p&gt;
&lt;p&gt;代表程序：WordPress、Typecho、Z-Blog、Django/Flask开发的自定义博客系统。&lt;/p&gt;
&lt;h2&gt;二、开发维度：门槛、灵活性、定制化的较量&lt;/h2&gt;
&lt;p&gt;个人博客的开发环节主要涉及&lt;strong&gt;环境搭建、内容创作、定制化修改&lt;/strong&gt;三部分，二者在开发门槛上的差异直接决定了“新手能否快速上手”，而灵活性和定制化则影响博客的“个性化程度”。&lt;/p&gt;
&lt;h3&gt;1. 开发门槛：静态站有高低配，动态站更易上手&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;静态站&lt;/strong&gt;：门槛分两极，&lt;strong&gt;低配版&lt;/strong&gt;（Hexo/Astro）有现成主题和脚手架，无需手写代码，跟着教程一键生成站点，新手半小时就能搭建；&lt;strong&gt;高配版&lt;/strong&gt;（自定义开发）需要掌握HTML/CSS/JS、框架语法（如Astro/Vue），还要懂打包构建，适合有前端基础的开发者。整体而言，静态站的“新手友好版”门槛极低，进阶版则有一定技术要求。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动态站&lt;/strong&gt;：几乎无技术门槛，主流博客程序（WordPress/Typecho）都是&lt;strong&gt;一键安装+可视化操作&lt;/strong&gt;，无需写代码，通过后台面板就能完成建站、发文章、改样式，甚至连插件安装、主题切换都是点击操作，纯新手也能轻松驾驭，是“零代码建站”的首选。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. 内容创作：静态站需本地操作，动态站可视化更便捷&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;静态站&lt;/strong&gt;：内容创作依赖「本地编辑→打包构建→上传服务器」的流程，即使使用Markdown编辑，也需要掌握基础的命令行，部分工具支持在线编辑，但体验远不如动态站，适合习惯本地写作、对技术操作不排斥的用户。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;动态站&lt;/strong&gt;：自带&lt;strong&gt;在线可视化后台&lt;/strong&gt;，打开浏览器就能写文章、排版、插入图片/视频，支持实时预览，和编辑公众号、知乎文章的体验一致，无需接触任何代码/命令行，内容创作的效率更高，适合追求“简单省心”的内容创作者。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. 定制化与灵活性：静态站可高度定制，动态站依赖插件/主题&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;静态站&lt;/strong&gt;：定制化天花板极高，因为所有代码都是开源的，有技术基础的话，可以随意修改页面结构、样式、交互逻辑，甚至能结合前端框架实现个性化功能（如自定义评论区、数据统计），完全摆脱“主题限制”，打造独一无二的博客，适合追求“个性化”、有技术改造需求的用户。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;动态站&lt;/strong&gt;：定制化主要依赖&lt;strong&gt;主题和插件&lt;/strong&gt;，基础修改（如换配色、改布局）可通过后台完成，但深度定制（如修改页面核心结构、自定义功能）需要懂对应程序的语法（如WordPress的PHP/模板语法），若没有技术基础，只能在现有主题/插件的范围内选择，灵活性相对有限。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;开发维度小结&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;纯新手、零代码基础、只想专注写内容：选&lt;strong&gt;动态站&lt;/strong&gt;，可视化操作能省去所有技术麻烦；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;有前端基础、追求个性化定制、不介意本地操作：选&lt;strong&gt;静态站&lt;/strong&gt;，能实现更多自定义需求；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;新手但想尝试静态站：从Hexo/Astro的现成主题入手，先上手再逐步学习定制。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;三、运维维度：稳定性、安全性、维护成本的核心差异&lt;/h2&gt;
&lt;p&gt;运维是个人博客的“长期必修课”，包括&lt;strong&gt;服务器环境维护、站点更新、安全防护、故障排查&lt;/strong&gt;等，二者的运维逻辑截然不同——静态站因“无程序、无数据库”，运维难度大幅降低，而动态站因“程序+数据库”的架构，需要更多的维护精力，这也是二者最核心的差异点。&lt;/p&gt;
&lt;h3&gt;1. 服务器环境要求：静态站极致轻量化，动态站依赖专属环境&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;静态站&lt;/strong&gt;：对服务器无任何特殊要求，&lt;strong&gt;任何服务器（甚至免费的静态托管平台）&lt;/strong&gt; 都能部署，只需支持静态文件访问即可，无需安装PHP、MySQL、Nginx等复杂环境，即使是1核1G的低配服务器，也能流畅运行多个静态站，甚至可以直接部署在Cloudflare Pages、GitHub Pages等免费平台，无需自己管理服务器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;动态站&lt;/strong&gt;：对服务器环境有明确要求，比如WordPress需要&lt;strong&gt;PHP+MySQL+Web服务器（Nginx/Apache）&lt;/strong&gt; ，且对PHP版本、MySQL版本有兼容要求，部分插件还需要开启特定的PHP扩展，必须在云服务器/虚拟主机上部署，无法使用纯静态托管平台，低配服务器也能运行，但多插件/大流量下容易出现卡顿。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. 日常维护：静态站几乎零维护，动态站需定期更新与优化&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;静态站&lt;/strong&gt;：日常维护成本接近为零，站点搭建完成后，除了发布新内容需要“打包上传”，无需对服务器、站点程序做任何更新，也不存在“程序兼容问题”，即使数月不打理，站点也能稳定运行，适合时间紧张、不想花精力做维护的用户。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;动态站&lt;/strong&gt;：日常维护是“必修课”，需要&lt;strong&gt;定期更新程序版本、主题、插件&lt;/strong&gt;——一方面是为了修复漏洞，提升安全性；另一方面是为了保证兼容性，避免插件/主题因版本过低出现报错。此外，还需要定期清理数据库垃圾数据、优化数据库查询，否则数据库会越来越大，导致站点访问变慢，适合有时间做日常维护的用户。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. 安全防护：静态站天生更安全，动态站是防护重点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;静态站&lt;/strong&gt;：天生具备高安全性，核心原因是&lt;strong&gt;无程序、无数据库、无后台&lt;/strong&gt;——黑客无法通过SQL注入、程序漏洞攻击站点，也没有后台登录入口可以破解，唯一的安全风险是服务器本身被攻击，只需做好服务器的基础防护（如端口关闭、防火墙），就能基本杜绝安全问题，防护成本极低。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;动态站&lt;/strong&gt;：安全防护是重中之重，因&lt;strong&gt;有程序漏洞、数据库、后台入口&lt;/strong&gt;，成为黑客的主要攻击目标：SQL注入、跨站脚本攻击、后台密码破解、插件/主题漏洞都是常见风险，一旦防护不到位，可能出现站点被黑、数据被篡改、服务器被挖矿的情况，需要做好多层防护（如修改后台路径、关闭高危端口、安装安全插件、定期备份数据），防护成本更高。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4. 故障排查：静态站故障少且易排查，动态站故障复杂且多样&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;静态站&lt;/strong&gt;：故障场景极少，常见问题只有“文件上传失败”“域名解析错误”“服务器无法访问”，排查步骤简单，只需检查文件是否完整、解析是否生效、服务器是否正常，新手也能快速定位并解决，几乎不会出现复杂故障。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;动态站&lt;/strong&gt;：故障场景复杂多样，如PHP版本不兼容导致的502错误、数据库连接失败导致的站点无法打开、插件冲突导致的页面报错、SQL注入导致的数据库异常，排查需要懂程序、数据库、服务器的基础知识，新手排查难度大，遇到复杂问题可能需要求助技术文档或社区。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;运维维度小结&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;时间紧张、不想做日常维护、追求“省心稳定”：选&lt;strong&gt;静态站&lt;/strong&gt;，几乎不用花精力打理，站点能长期稳定运行；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;有时间做日常维护、愿意学习基础的安全防护和故障排查：选&lt;strong&gt;动态站&lt;/strong&gt;，做好维护就能保证站点正常运行；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;无服务器运维基础：优先选&lt;strong&gt;静态站&lt;/strong&gt;（甚至可以用免费托管平台，无需管理服务器），避开动态站的运维门槛。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;四、成本维度：从初期搭建到长期运行，谁的性价比更高？&lt;/h2&gt;
&lt;p&gt;个人博客的成本主要包括&lt;strong&gt;服务器成本、域名成本、附加成本&lt;/strong&gt;，域名成本二者一致（备案域名每年50-100元），核心差异在服务器和附加成本上，且成本差异会随使用时间被放大，性价比的选择需结合“长期使用”的视角。&lt;/p&gt;
&lt;h3&gt;1. 服务器成本：静态站可零成本，动态站有最低门槛&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;静态站&lt;/strong&gt;：服务器成本可做到&lt;strong&gt;0元-几十元/年&lt;/strong&gt;，新手可以选择Cloudflare Pages、GitHub Pages、Gitee Pages等&lt;strong&gt;免费静态托管平台&lt;/strong&gt;，无需购买云服务器，直接上传静态文件就能部署，且支持绑定备案域名；若想自己管理服务器，1核1G的轻量应用服务器（每年30-50元）足够运行多个静态站，成本极低。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;动态站&lt;/strong&gt;：服务器有&lt;strong&gt;最低成本门槛&lt;/strong&gt;，无法使用免费托管平台，必须购买云服务器/虚拟主机，虚拟主机每年约50-100元，1核1G的轻量应用服务器每年约60-100元，是静态站免费方案的“最低成本”，且若后期需要增加功能、提升访问速度，还需要升级服务器配置，成本会逐步增加。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. 附加成本：静态站零附加成本，动态站可选增值成本&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;静态站&lt;/strong&gt;：全程零附加成本，所有框架/工具都是开源免费的，没有付费插件、付费主题的需求，即使是定制化开发，也无需为工具付费，唯一的成本就是域名（若用免费托管平台）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;动态站&lt;/strong&gt;：基础功能免费，但存在&lt;strong&gt;可选的增值成本&lt;/strong&gt;——优质的付费主题（每年50-200元）、付费插件（如高级评论区、数据统计、SEO优化插件，每月/每年付费），若想提升站点体验，可能需要投入一定的附加成本；当然，若使用免费主题和插件，也能实现基础功能，只是体验和定制化程度会打折扣。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. 长期运行成本：静态站成本固定且极低，动态站成本随维护增加&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;静态站&lt;/strong&gt;：长期运行成本&lt;strong&gt;固定且极低&lt;/strong&gt;，域名每年续费即可，若用免费托管平台，无服务器成本；若用低配服务器，服务器成本每年固定30-100元，无额外的维护成本和增值成本，适合长期低成本运行。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;动态站&lt;/strong&gt;：长期运行成本&lt;strong&gt;有隐性增加&lt;/strong&gt;——除了域名和服务器的固定续费，若后期站点出现故障、需要深度定制，可能需要投入时间成本（自己学习）或资金成本（找技术人员解决）；若想提升站点安全性和稳定性，购买付费安全插件、云防护服务也会增加成本，长期来看，隐性成本高于静态站。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;成本维度小结&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;预算极低（0-50元/年）、追求极致性价比：选&lt;strong&gt;静态站&lt;/strong&gt;，免费托管平台+域名就能搞定，无额外成本；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;预算充足（100元/年以上）、不介意少量附加成本：选&lt;strong&gt;动态站&lt;/strong&gt;，基础成本能满足日常使用；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;计划长期运行博客：优先选&lt;strong&gt;静态站&lt;/strong&gt;，固定低成本，无隐性成本，长期性价比更高。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;五、延伸维度：访问速度、SEO、扩展性，适配不同博客定位&lt;/h2&gt;
&lt;p&gt;除了开发、运维、成本三大核心维度，访问速度、SEO、扩展性也是个人博客的重要考量因素，不同定位的博客（如“纯内容博客”“技术博客”“流量型博客”）对这些因素的要求不同，需结合定位做选择。&lt;/p&gt;
&lt;h3&gt;1. 访问速度：静态站天生更快，动态站需优化才能提速&lt;/h3&gt;
&lt;p&gt;静态站的页面是提前生成的静态文件，服务器直接返回，无需计算，&lt;strong&gt;访问速度远快于动态站&lt;/strong&gt;，且静态文件极易被CDN缓存，结合Cloudflare等CDN后，全球访问速度都能大幅提升，即使是低配服务器，也能实现秒开。&lt;/p&gt;
&lt;p&gt;动态站的页面需要服务器实时生成，访问速度受服务器配置、数据库性能、程序优化的影响，即使是高配服务器，若优化不到位，也会出现卡顿，需要通过缓存插件、CDN、数据库优化等方式提速，才能接近静态站的访问速度。&lt;/p&gt;
&lt;h3&gt;2. SEO优化：二者无本质差异，关键在内容和基础配置&lt;/h3&gt;
&lt;p&gt;很多新手认为“动态站SEO比静态站好”，其实这是误区——搜索引擎抓取的是最终的HTML页面，&lt;strong&gt;静态站和动态站的SEO优化核心一致&lt;/strong&gt;，都依赖于标题、关键词、描述的设置，内容的原创性，内链/外链的搭建，URL的规范化。&lt;/p&gt;
&lt;p&gt;二者的唯一差异是：静态站的URL是静态的（如xxx.com/2025/01/01/article.html），更符合搜索引擎的抓取习惯；动态站的URL默认是动态的（如xxx.com/?p=123），但可以通过伪静态设置将URL转为静态，消除这一差异。简单来说，SEO的核心是“内容”，而非站点类型。&lt;/p&gt;
&lt;h3&gt;3. 扩展性：动态站插件化更便捷，静态站扩展性依赖技术&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;静态站&lt;/strong&gt;：扩展性依赖&lt;strong&gt;技术基础&lt;/strong&gt;，若想增加功能（如评论区、数据统计、留言板），需要手动集成第三方接口（如Giscus、Valine评论区，百度统计），或自己开发，适合有技术基础的用户，扩展功能的灵活性高，但门槛也高。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;动态站&lt;/strong&gt;：扩展性&lt;strong&gt;插件化、可视化&lt;/strong&gt;，后台直接安装插件就能实现各种功能（如评论区、SEO优化、数据统计、社交分享），无需写代码，扩展功能的效率极高，适合无技术基础的用户，只是扩展功能受插件生态限制。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;六、终极选型建议：结合自身情况，不盲目选“热门”&lt;/h2&gt;
&lt;p&gt;综合以上所有维度的分析，静态站和动态站没有绝对的“好坏”，只有“是否适配”，以下结合&lt;strong&gt;不同用户画像&lt;/strong&gt;给出精准的选型建议，直接对号入座即可，避免盲目跟风选热门（如很多新手跟风选WordPress，最后因不会维护导致站点出问题）。&lt;/p&gt;
&lt;h3&gt;选静态站，如果你是：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;纯新手，但时间紧张，不想花精力做日常维护，只想简单搭建后专注写内容；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;有前端基础，追求博客的个性化定制，想打造独一无二的技术博客；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;预算极低，想实现0元/低成本搭建，计划长期运行博客；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;追求站点访问速度，希望博客能秒开，无需复杂的提速优化；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;无服务器运维基础，不想接触程序、数据库，怕遇到故障不会排查。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;静态站推荐工具&lt;/strong&gt;：新手选Hexo、Astro（现成主题多，教程丰富）；有前端基础选VuePress、Gatsby（定制化程度高）；追求极致速度选Hugo（构建速度最快）。&lt;/p&gt;
&lt;h3&gt;选动态站，如果你是：&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;纯新手，零代码基础，希望可视化操作，在线写文章、改样式，不想接触命令行/本地操作；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;有时间做日常维护，愿意学习基础的程序更新、安全防护、故障排查知识；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;博客定位为“流量型内容站”，需要丰富的功能（如评论区、社交分享、SEO优化、数据统计），希望快速扩展功能；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;计划在博客中实现互动性强的功能（如留言板、粉丝互动、内容付费），依赖插件生态；&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;不想做本地构建/上传，追求内容创作的便捷性和效率。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;动态站推荐程序&lt;/strong&gt;：新手选WordPress（生态最丰富，主题/插件最多，教程最全）；追求轻量选Typecho、Z-Blog（服务器资源占用少，适合低配服务器）。&lt;/p&gt;
&lt;h2&gt;七、最后总结：抛开偏见，选最适合自己的方案&lt;/h2&gt;
&lt;p&gt;静态站和动态站的争论，本质是“轻量省心”和“功能丰富”的取舍，而非“谁更优”。很多人觉得“技术博客就该选静态站”“新手就该选动态站”，其实都是偏见——静态站也能通过第三方接口实现丰富功能，动态站也能通过优化实现高速访问，核心是&lt;strong&gt;结合自己的技术基础、时间、预算和博客定位做选择&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;对于个人博客而言，“能长期稳定运行、能让自己专注写内容”才是核心目标：如果静态站能让你省去运维的麻烦，安心写内容，那就选静态站；如果动态站能让你零门槛搭建，高效创作内容，那就选动态站。甚至可以“先简后繁”——新手先通过静态站（免费托管平台）搭建博客，积累技术基础后再切换到动态站；或先通过动态站（WordPress）快速上手，后期若觉得维护麻烦，再迁移到静态站。&lt;/p&gt;
&lt;p&gt;建站的本质是“为内容服务”，无论选择哪种方式，都不要陷入“技术内卷”，与其纠结静态站还是动态站，不如把时间花在内容创作上——优质的内容，才是个人博客的核心竞争力。&lt;/p&gt;
</content:encoded></item></channel></rss>