<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss/feed.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>猫猫博客</title><description>你好,明天</description><link>https://catcat.blog/</link><language>zh_CN</language><image><url>https://catcat.blog//favicon/avatar-540.avif</url><title>猫猫博客</title><link>https://catcat.blog/</link></image><follow_challenge><feedId>57338290732168192</feedId><userId>57337421484469248</userId></follow_challenge><item><title>猫猫Emby服食用指南</title><link>https://catcat.blog/catcat-emby.html</link><guid isPermaLink="true">https://catcat.blog/catcat-emby.html</guid><description>做这个媒体库初衷是：给朋友分享一些BDRIP方便观看，不会因此影响画质，后来经过大佬的介绍，学习了很多相关的知识。</description><pubDate>Tue, 06 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;截图一览&lt;/h2&gt;
&lt;p&gt;目前所存储的媒体内容： &lt;a href=&quot;https://wall.sakiko.de&quot;&gt;喵影坞&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/08/image.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-5.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-5.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/08/image-5.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-4.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-4.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/08/image-4.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-1.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-1.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/08/image-1.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-2.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-2.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/08/image-2.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-3.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-3.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/08/image-3.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;h3&gt;资源说明：&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;里面全是BDRIP和Blu-ray Remux，以画质为最优先级。&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;每次改动调整和新增，都会记录在更新日志中。新番默认直接使用ANI抓取，没有任何优化。&lt;/strong&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;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;新番采取全自动化入库洗版，如果BD发布会删除&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;压制组会选择较好较全的，多为：VCB-Studio和Moozzi2。&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;sp和扫图是默认删除的，因为sp小剧场对画质要求不高，我也不是很感冒，可b站自行观看，又全还带字幕。&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;li&gt;
&lt;p&gt;&lt;strong&gt;禁止用浏览器观看，让我发现，直接ban。&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;食用指南&lt;/h2&gt;
&lt;h3&gt;小作文（该节点负载已满不再开放）&lt;/h3&gt;
&lt;h4&gt;申请条件：&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;动画爱好者，Bangumi动画观看记录超过&lt;strong&gt;&lt;strong&gt;2&lt;/strong&gt;&lt;/strong&gt;00部，有BD收藏可加分，并推荐一部你最喜欢的动画&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Galgame爱好者，Bangumi中Galgame推完超过20部，有实体收藏可加分，并推荐一部你最喜欢的Galgame&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;漫画爱好者，Bangumi漫画观看记录超过50本，有实体收藏可加分，并推荐一部你最喜欢的漫画&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;1、2、3条件任意一个完成即可。&lt;/strong&gt;（&lt;strong&gt;当然包括不限于以上这些，其他方式也可以，软门槛&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;a href=&quot;https://t.me/catcat_chat_bot&quot;&gt;申请地址&lt;/a&gt;（直接发上述你满足的条件，不要再问怎么进，问的直接拉黑）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;默认采用TG进行管理，开设账户等操作请自行前往TG。&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;付费观看 （介于很多人留言，所以单独新增节点重新开放）&lt;/h3&gt;
&lt;h4&gt;购买&lt;/h4&gt;
&lt;p&gt;前往爱发电：&lt;a href=&quot;https://afdian.com/a/Yuri-NagaSaki&quot;&gt;爱发电地址&lt;/a&gt;
可以看到有10元和30元的挡位（都是30天）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;30是开号和当月30天播放观看&lt;/li&gt;
&lt;li&gt;10是下个月续费观看（30天）
&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308135332433.avif&quot; alt=&quot;image-20260308135325074&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;发电后你都会得到一个优惠码，前往&lt;a href=&quot;https://t.me/catcat_emby&quot;&gt;TG群聊&lt;/a&gt; 输入 /start@catcat_embybot 找机器人开户&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308135718117.avif&quot; alt=&quot;image-20260308135718033&quot; /&gt;&lt;/p&gt;
&lt;p&gt;点击使用注册码&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308135806716.avif&quot; alt=&quot;image-20260308135806140&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308135839962.avif&quot; alt=&quot;image-20260308135839826&quot; /&gt;&lt;/p&gt;
&lt;p&gt;注册成功
&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308135928649.avif&quot; alt=&quot;image-20260308135928504&quot; /&gt;&lt;/p&gt;
&lt;p&gt;获得账户密码&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308140004071.avif&quot; alt=&quot;image-20260308140003935&quot; /&gt;&lt;/p&gt;
&lt;p&gt;续期码的使用同理，但是是从10元那里获取的。这里不再重复了。&lt;/p&gt;
&lt;h2&gt;播放指南&lt;/h2&gt;
&lt;p&gt;这边Windows只推荐使用&lt;strong&gt;小秘Emby&lt;/strong&gt;进行播放，安卓请使用&lt;strong&gt;Yamby&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;mac和ios用户建议使用&lt;strong&gt;Infuse和SenPlayer&lt;/strong&gt;进行播放。&lt;/p&gt;
&lt;p&gt;具体可参见 &lt;a href=&quot;https://catcat.blog/emby-server.html&quot;&gt;Emby客户端推荐&lt;/a&gt;。&lt;strong&gt;这里仅仅只教学Win端，因为其他客户端属于傻瓜都会的点点点。&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Windows&lt;/h3&gt;
&lt;h4&gt;1.小秘客户端下载&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;地址：&lt;a href=&quot;https://www.alipan.com/s/S2MXxS3L1gY&quot;&gt;https://www.alipan.com/s/5ULuWmg3fjh&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;2.🧭 开启弹幕&lt;/h4&gt;
&lt;p&gt;此为旧版弹幕插件，目前社区开发了更好的弹幕插件，也可以尝试&lt;/p&gt;
&lt;p&gt;记事本编辑 &lt;strong&gt;你的安装目录/Emby Theater/electronapp/www/index.html&lt;/strong&gt;，添加以下内容后保存即可&lt;/p&gt;
&lt;p&gt;安装原理不变，但是需要下载js到本地路径，下载ede.js文件，保存到对应目录，编辑index.html文件&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/chen3861229/dd-danmaku&quot;&gt;chen3861229/dd-danmaku&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-17.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-17.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/08/image-17.jpg&quot; alt=&quot;文件夹和文件目录视图，包含插件和HTML文件。&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// &amp;lt;script src=&quot;ede.js&quot; charset=&quot;utf-8&quot; defer&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;ede.js&quot; charset=&quot;utf-8&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## 旧方案
&amp;lt;script type=&quot;text/javascript&quot; src=&quot;https://danmaku.movie.kg/ext.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://danmaku.movie.kg/ext.css&quot;/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-7.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-7.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/08/image-7.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;h4&gt;🌟 集成 Anime4K&lt;/h4&gt;
&lt;p&gt;讲第一步里下载的Anime-4K文件夹解压到 &lt;code&gt;%appdata%&lt;/code&gt; 目录下&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-8.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-8.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/08/image-8.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;播放 1080p 及以下分辨率非 HDR 视频时自动开启(一般新番都会自动开启)&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-9.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-9.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/08/image-9.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;如果客户端版本比较新，需要修改下列设置，否则 Anime4K 可能没有效果&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-10.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/08/image-10.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/08/image-10.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;到此，你就可以开始愉快的欣赏番剧了。😋&lt;/p&gt;
</content:encoded><category>category:Emby</category><category>tag:Emby</category></item><item><title>Netcup 注册免税入坑指南</title><link>https://catcat.blog/netcup-signup.html</link><guid isPermaLink="true">https://catcat.blog/netcup-signup.html</guid><description>带你全面掌握Netcup注册免税：准备英文账单、领取并兑换优惠券、下单选机房与合约周期解析，详细避坑指南助你低价拿下高性能VPS，远离合同与位置附加费陷阱。</description><pubDate>Wed, 15 May 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Netcup介绍&lt;/h2&gt;
&lt;p&gt;Netcup是一家总部位于德国的服务器提供商,成立于1998年，拥有德国&lt;strong&gt;纽伦堡和维也纳&lt;/strong&gt;两大机房。目前运营域名注册,VDS,VPS,ARM VPS,杜甫,块存储等。因为机器性能优秀，带宽大，流量足常常被国内玩家用于PT场景。Netcup连续多年荣获欧洲最喜爱的网络托管商，他们非常在乎口碑，服务也非常好。但是由于欧洲德国人古板的守旧合同，购买时候的坑点不少。&lt;/p&gt;
&lt;h2&gt;注册准备&lt;/h2&gt;
&lt;p&gt;一份英文的账单。（可以是和其他欧洲VPS厂家的账单，但必须和你netcup的注册信息一样）&lt;/p&gt;
&lt;h3&gt;注册流程&lt;/h3&gt;
&lt;p&gt;打开官网：&lt;a href=&quot;https://www.netcup.eu/&quot;&gt;https://www.netcup.eu/&lt;/a&gt;（英文）&lt;a href=&quot;https://www.netcup.eu/&quot;&gt;https://www.netcup.eu/&lt;/a&gt;（德语）&lt;/p&gt;
&lt;h3&gt;获取优惠券&lt;/h3&gt;
&lt;p&gt;打开网址：&lt;a href=&quot;https://www.netcup-sonderangebote.de&quot;&gt;https://www.netcup-sonderangebote.de&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;输入你的邮箱获取订阅&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-6.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-6.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-6.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;成功后你的邮箱将会收到两份邮件，一份是通知你的订阅他们的促销销毁，一份是给你的5欧代金券&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-7.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-7.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-7.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-8.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-8.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-8.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;兑换优惠券：&lt;a href=&quot;https://www.netcup.eu/bestellen/gutschein_einloesen.php&quot;&gt;https://www.netcup.eu/bestellen/gutschein_einloesen.php&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-5.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-5.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-5.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;找个订单（建议先看一下&lt;strong&gt;NetCup 机器价格说明&lt;/strong&gt;）加入购物车，例如购买 &lt;a href=&quot;https://www.netcup.eu/vserver/&quot;&gt;RS 1000 G11&lt;/a&gt;的VDS系列。&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-4.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-4.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-4.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;点击Order now,会跳转至下方的界面。&lt;/p&gt;
&lt;p&gt;请选择你需要订阅的周期，在Contract period处&lt;/p&gt;
&lt;p&gt;解释一下：订购的时间越久，获得的折扣越大。所有12个月订购和1个月单独订购的价格是不一样的。&lt;/p&gt;
&lt;p&gt;12个月免税前 每个月的价格是9.81欧元，单独订购一个月的价格是11.77欧元。&lt;/p&gt;
&lt;p&gt;如果订购的是9.87那个，你必须要完成至少一年的付费，不管你是用还是不用，都必须要付费，无法取消。德国人严格遵守合同，如果你没有完成12个月的订单，有可能会律师函。不重视合约的行为，会导致国人名声越来越差，只会导致后面人越来越难注册，也会对中国买家设置更高门槛。&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-9.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-9.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-9.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;下方可以进行你所需要的机房&lt;/p&gt;
&lt;p&gt;无偏好的意思将根据实际可用容量托管在两个位置之一，随机一个机房。注意选择无偏好后不能更改机房位置。如果有自己偏好的话，德国机房需要额外增加&lt;strong&gt;1.51欧元&lt;/strong&gt;，维也纳机房需要额外增加&lt;strong&gt;0.86欧元&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;官方对于指定机房偏贵的解释是：如果选择“无偏好”，我们可以优化产能扩张，并传递由此产生的成本优势。简单点理解就是根据实际产能，优化订单的位置，产能多的机房会优先给无偏好的。&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-10.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-10.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-10.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;确认无误后，可以点击下方的加入购物车，进入结算界面&lt;/p&gt;
&lt;p&gt;如果上面你已经兑换了代金券的话，这里购物车也会一并出现。如果没有的话可以同样在下面进行代金券的兑换。这边不再过多赘述。&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-11.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-11.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-11.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-12.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-12.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-12.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;点击下方，继续订购。来到了Netcup的注册界面&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-13.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-13.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-13.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;填写你的相关信息&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注意：最好和你上面准备的订单信息一致，地址也需要翻译成英文，地区可以选China&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-14.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-14.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-14.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;点击最下面保存地址，然后继续确认订单&lt;/p&gt;
&lt;p&gt;会出现订单的详细信息，可以清晰看到使用了5欧优惠券，月付的RS1000订单。下面两个都要选上同意。&lt;/p&gt;
&lt;p&gt;点击继续订单，出现如下图所示文字代表订单已经订购完成，等待审核。&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-16.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-16.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-16.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;h2&gt;账户验证&lt;/h2&gt;
&lt;p&gt;如果完成了上述步骤，下面开始账户的身份验证。一般来说德国人会在你工作日时间的时候下午上班。&lt;/p&gt;
&lt;p&gt;你的邮箱会收到一份邮件，如下图&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-17.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-17.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-17.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;请向我们发送以下信息，以便我们处理您的订单：

1. 拉丁字母地址证明（最好是英语或德语翻译）
例如：
- 煤气费、水费、电费、互联网提供商、移动电话提供商的账单
-来自您银行的文件，其中包括您的地址和姓名。
请注意，我们不接受订单确认和发货跟踪。

2. 如果您不需要增值税豁免，也请告知我们。在这种情况下，我们可以更快地处理您的订单。
如果您没有提及这一点，我们会将您的请求传递给我们的会计部门，该部门将检查是否免税。请注意，这可能需要几个工作日。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;直接回复这份邮件，将准备好的订单作为附件发送过去。&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-18.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-18.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-18.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;发送之后就可以美滋滋的等待免税成功的通知和账户包含CCP的通知&lt;/p&gt;
&lt;p&gt;里面会含有你的账户，密码。类似这样的&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-19.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-19.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-19.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;同时会收到他们的恭喜信息和账单说明&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-20.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-20.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-20.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;这封代表你的免税已经完成，需要你完全支付，人工确认你的订单&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-22.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-22.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-22.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-21.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-21.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-21.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;你可以用上面的CCP进行登陆支付啦&lt;/p&gt;
&lt;h2&gt;CCP支付订单&lt;/h2&gt;
&lt;p&gt;地址：&lt;a href=&quot;https://www.customercontrolpanel.de/&quot;&gt;https://www.customercontrolpanel.de&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-23.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-23.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-23.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;一般来说，网址的右上角会有你未付的订单，你需要完成付款&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-24.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-24.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-24.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;付款完成等待Netcup官方确认后，你会收到一封名字叫 &lt;strong&gt;Access data for SCP&lt;/strong&gt; 的邮件。&lt;/p&gt;
&lt;p&gt;里面包含了你的SCP的账户密码，用于管理Netcup给你的服务器&lt;/p&gt;
&lt;p&gt;地址是：&lt;a href=&quot;https://www.servercontrolpanel.de/SCP/&quot;&gt;https://www.servercontrolpanel.de/SCP/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-25.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-25.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-25.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;第二份邮件是你的服务器信息，名字叫 &lt;strong&gt;A Server has been created&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;里面会给到你的IP地址，root密码等信息。&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-26.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-26.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-26.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;这样，你就完成了Netcup免税,注册，购买的一条龙服务器啦。&lt;/p&gt;
&lt;h2&gt;取消Netcup机器&lt;/h2&gt;
&lt;p&gt;先登陆CCP，地址：&lt;a href=&quot;https://www.customercontrolpanel.de/&quot;&gt;https://www.customercontrolpanel.de&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;点击左边的 Products&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-27.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-27.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-27.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-28.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-28.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-28.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;点击机器前面的放大镜，点击&lt;strong&gt;Cancellation&lt;/strong&gt;，选择里面的&lt;strong&gt;Cancel product&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;特别说明：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;netcup针对使用中的主机VPS取消，要在下一次续约时间前至少31天提交，也就是至少提前一个月提交取消申请。假如你购买的是计费周期按月计算的VPS，你只想用一个月，不想续约，那么就要在你购买付款后的第一天就要在后台点取消产品，否则将进入下个计费周期，至少订购2个月。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;当然不知道具体取消时间也很简单，后台管理界面Cancellation里显示了当前时间终止合同后的生效时间。上面显示的时间就是你现在终止后，你的VPS最后使用的到期时间。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-29.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-29.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-29.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;h2&gt;Netcup机器价格说明&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;以RS1000为例：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;月付价格是11,76 €，免税后是9.88欧/月，每月付一次款，如果不想用了，要提前31天在后台取消。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;由于新帐号都会使用5欧的优惠券，因此免税后，第一个月的帐单是5.67欧，后面每月是9.88欧。最短时间可以在第一次付款后，机器出现第一时间后台取消，因为要提前31天，可能是就这一个月就结束了，也有可能是下一个月结束。如果是下个月结束，2个月成本就是5.67+9.88欧。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;年合约价格是9.81欧/月，免税后是8.24欧/月，每半年付一次款，至少要用1年。正常半年价格是8.24*6=49.44欧。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;如果帐号是使用了3个月免费券的，因此前半年价格是8.24*3=24.72欧，后面半年是49.44欧。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;像很多人说的活动款，大部分是硬盘翻倍的，如RS1000 G9.5 SE，此类就是年合约，半年付，免税后的半年付价格是8.24*6=49.44欧，每半年付，至少用一年！没有任何其它优惠。不能使用任何券。相对于普通版RS1000贵了3个月费用，在高速流量120T的情况下，其实就单刷PT来说普通版年付性价比会更高。&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;如何确认Netcup机器的订单周期&lt;/h2&gt;
&lt;p&gt;可以点击机器的订单界面，&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Contract period代表合同期，意味着必须付款这12个月&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Billing period 代表结算周期，代表费用多久缴一次&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;figure&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-30.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-30.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-30.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;figcaption&amp;gt;&lt;/p&gt;
&lt;p&gt;RS1000&lt;/p&gt;
&lt;p&gt;&amp;lt;/figcaption&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/figure&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;figure&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-31.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-31.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-31.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;figcaption&amp;gt;&lt;/p&gt;
&lt;p&gt;ARM G11&lt;/p&gt;
&lt;p&gt;&amp;lt;/figcaption&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/figure&amp;gt;&lt;/p&gt;
&lt;h2&gt;如何确认你的账户是否免税成功&lt;/h2&gt;
&lt;p&gt;先登陆CCP，地址：&lt;a href=&quot;https://www.customercontrolpanel.de/&quot;&gt;https://www.customercontrolpanel.de&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;点击左侧，&lt;strong&gt;Master Data&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-34.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2024/05/image-34.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2024/05/image-34.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;h2&gt;如何PUSH机器&lt;/h2&gt;
&lt;p&gt;和上面取消机器在同一个地方，会生成一个转移码，这里不再过多赘述。&lt;/p&gt;
&lt;p&gt;netcup对于后台有帐单未付的情况下，是无法接收其它人的机器的，因此对于新帐号注册时的订单，你需要付款或者发邮件取消，但一般也会回复你15天后会自动消失。因此一般情况下就是要么将未付的订单付款，要么等15天自动取消即可。&lt;/p&gt;
&lt;h2&gt;带宽流量规则&lt;/h2&gt;
&lt;p&gt;普通VPS流量为80TB，1G的带宽，超过80TB后会宽带会限制在100M带宽，可以无限流量，没有任何额外费用。&lt;/p&gt;
&lt;p&gt;Root-Server系列是不限流量的，根服务器2.5G带宽，每个VPS保证至少1G可用带宽。为了保证其它客户的公平性，在同时满足以下条件时会被限制在200M带宽使用。&lt;/p&gt;
&lt;p&gt;1、一个月内超过120TB流量。&lt;/p&gt;
&lt;p&gt;2、 超过60分钟的时间连续使用超过1Gbit/s的带宽。&lt;/p&gt;
&lt;p&gt;上述2个条件，第一个很好理解，第二个估计部分人会觉得绕口，这里简单描述一下具体情况：就是你的VPS在一个小时内的流量超过了128M/s*3600s=460800M=460G，就是说只要保证一小时流量不超过460G，就可以一直以2.5G带宽运行。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;新款Root Server G11最新流量规则是：如果过去24小时内流量超过3TB，则会临时限制为300Mbps。一旦条件不再适用，限制就会取消&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Netcup优惠活动时间&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;黑色星期五(11月下旬)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;圣诞节/元旦(12月下旬至1月初)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;春季特卖(3-4月)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;生日周年庆(5-6月份)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;夏季特卖(7-8月)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;NetCup 优惠券&lt;/h2&gt;
&lt;h3&gt;5欧优惠券&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;36nc17454213600
36nc17454213601
36nc17454213602
36nc17454213603
36nc17454213604
36nc17454213605
36nc17454213606
36nc17454213607
36nc17454213608
36nc17454213609

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;VPS 1000 G11&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;4095nc17454214330
4095nc17454214331
4095nc17454214332
4095nc17454214333
4095nc17454214334
4095nc17454214335
4095nc17454214336
4095nc17454214337
4095nc17454214338
4095nc17454214339
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;RS 1000 优惠券&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;4096nc17454210800
4096nc17454210801
4096nc17454210802
4096nc17454210803
4096nc17454210804
4096nc17454210805
4096nc17454210806
4096nc17454210807
4096nc17454210808
4096nc17454210809
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;RS 2000 优惠券&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;4098nc17454214730
4098nc17454214731
4098nc17454214732
4098nc17454214733
4098nc17454214734
4098nc17454214735
4098nc17454214736
4098nc17454214737
4098nc17454214738
4098nc17454214739
&lt;/code&gt;&lt;/pre&gt;
</content:encoded><category>category:教程</category><category>tag:德国</category><category>tag:Netcup</category></item><item><title>什么值得买-持续更新ing（VPS推荐）</title><link>https://catcat.blog/vps-recommend.html</link><guid isPermaLink="true">https://catcat.blog/vps-recommend.html</guid><description>持续更新的高性价比VPS推荐清单，拒绝超兽商家，仅收录本人长期持有与实测。覆盖Hetzner、Crunchbits、Liteserver、Netcup等，附详尽测评与购买链接，适合建站、项目与性能需求人群参考。</description><pubDate>Wed, 05 Jul 2023 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;经常有朋友会问我 &quot;什么 VPS 适合建站、跑项目&quot;、&quot;什么 VPS 适合用来科学上网&quot;、&quot;什么 VPS 适合离线下载，PT下载&quot; 之类的问题。于是准备写一篇我使用的VPS（什么值得买推荐）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;PS:这里不会出现CloudCone,Racknerd等超兽大王商家的推荐，以下均目前本人所持，长期使用的商家。&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;项目,建站,性能需求型推荐&lt;/h2&gt;
&lt;h3&gt;1.Hetzner&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;俗称欧洲阿里云，性能钢炮。Hetzner 拥有数十万台服务器，是欧洲最大的数据中心运营商之一。自 1997 年成立以来，Hetzner 一直为私人和企业客户提供强大的托管产品和可靠的 IT 基础设施。通过结合其在创新技术、有吸引力的价格、专家支持和灵活的客户服务方面的优势，Hetzner 在德国和欧洲内外扩大了市场。Hetzner 是一家德国公司，在纽伦堡和法尔肯施泰因（均位于德国）和芬兰赫尔辛基拥有并运营着自己的高科技数据中心，最近又在美国弗吉尼亚州阿什本增设了一个新机房。一共有四个数据中心：德国 2 个，芬兰 1 个，美国 1 个。Hetzner 家的 VPS 和独服价格实惠，性能稳定，NVMe SSD，10Gbp 带宽，支持信用卡、Paypal 付款。就是到国内网络比较慢。AMD EPYC 处理器的 VDS 套餐性能可以。2024年还升级了旧的 CX产品线，价格同ARM系列持平。非常适合一些小业务需求。2024年 8 月更新，新上的新加坡地区，性价比较差。&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;相关测试&lt;/h4&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/hetzner-dedicated.html&quot;&gt;Hetzner-Dedicated-VDS-EPYC-9654&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/hetzner%e7%be%8e%e8%a5%bf%e4%bf%84%e5%8b%92%e5%86%88vps%e8%af%84%e6%b5%8b.html&quot;&gt;Hetzner-Shared vCPU-VPS-X86&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/hetzner-arm-%e5%92%8cx86-%e5%af%b9%e6%af%94%e8%af%84%e6%b5%8b.html&quot;&gt;Hetzner-Shared vCPU-VPS-ARM&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/hetzner-25%e6%ac%a7%e6%9d%9c%e7%94%ab%e6%b5%8b%e8%af%95.html&quot;&gt;Hetzner-Dedicated server&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/hetzner-sg-vds.html&quot;&gt;Hetzner 新加坡 VDS 测评&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;picture&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2023/07/image.avif&quot; type=&quot;image/avif&quot;&amp;gt;
&amp;lt;source srcset=&quot;https://s3.catcat.blog/images/2023/07/image.webp&quot; type=&quot;image/webp&quot;&amp;gt;
&amp;lt;img src=&quot;https://s3.catcat.blog/images/2023/07/image.jpg&quot; alt=&quot;&quot; loading=&quot;lazy&quot;&amp;gt;
&amp;lt;/picture&amp;gt;&lt;/p&gt;
&lt;h4&gt;购买链接&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;官网地址：&lt;a href=&quot;https://hetzner.cloud/?ref=5WVbNP94ckFR&quot;&gt;Hetzner 官网&lt;/a&gt;（使用该链接首次注册或者购买机器，可以得到 20 欧的试用金（有效期一个月），可以试用各种型号的 VPS）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2025年社区20欧信用代码：HCC25-L4ET82&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;2.Crunchbits&lt;/h3&gt;
&lt;p&gt;一家 2021 年 11 月 30 日成立的美国主机商，主营 NVMe KVM VPS、EPYC 高频 NVMe VPS、锐龙 5950X NVMe KVM VPS、大硬盘存储、VDS锐龙 7950X 、GPU 显卡服务器和独立服务器，数据中心位于美国 爱达荷州。最近在Low促销，生意不错，荣获 2023 最受推荐的供应商。机器稳定性不错，已有一台年兽近 360 天运行，2024年初的时候有年兽套餐，性价比极高，4.5G内存配125G 硬盘跑一些监控，小日志什么的非常合适。（目前年兽套餐已经无法循环计费，商家给出了升级版的迁移方案。）&lt;/p&gt;
&lt;h4&gt;相关测试&lt;/h4&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/crunchbits.html&quot;&gt;Crunchbits-5950X&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/crunchbits-17-vds.html&quot;&gt;Crunchbits-7950x VDS&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/crunchbits-special.html&quot;&gt;Crunchbits Special&lt;/a&gt;&lt;a href=&quot;http://img.laoda.de/i/2023/02/11/ibby0z-2.webp&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;购买链接&lt;/h4&gt;
&lt;p&gt;官网地址：&lt;a href=&quot;https://crunchbits.com/&quot;&gt;Crunchbits 官网&lt;/a&gt;（无AFF）&lt;/p&gt;
&lt;p&gt;促销请关注 &lt;a href=&quot;https://lowendtalk.com/profile/crunchbits&quot;&gt;Crunchbits-lowendtalk&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;3.Liteserver （近两年涨价离谱，非黑五不推荐）&lt;/h3&gt;
&lt;p&gt;2007年的老商家，自有ASN AS60404，主机托管于荷兰Serverius DC1资料中心，有NVMe及HDD可选，均提供1Gbps网络线路，流量会使用完成后会限速10Mbps。Liteserver的性价比很不错，在欧洲的口碑良好。支持NVME和HDD款互相切换，每年黑五都有五折优惠。2023年黑五进货了AMD 四代 9754系列，现在nvme款有两套选择，CPU不同，7763和9754。两款CPU性能差距不是很大，但是9754款存在io限制。建议的慎入。&lt;/p&gt;
&lt;h4&gt;相关测试&lt;/h4&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/liteserver-%e8%8d%b7%e5%85%b0-amd-epyc-genoa-9754-%e6%b5%8b%e8%af%84.html&quot;&gt;LiteServer 荷兰  AMD EPYC™ Genoa 9754 测评&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/112-2.html&quot;&gt;LiteServer 荷兰 AMD Milan 7763 测评&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;购买链接&lt;/h4&gt;
&lt;p&gt;官网地址：&lt;a href=&quot;https://clients.liteserver.nl/aff.php?aff=621&quot;&gt;Liteserver官网&lt;/a&gt;（有AFF）&lt;/p&gt;
&lt;h3&gt;4.Netcup&lt;/h3&gt;
&lt;p&gt;德国和 Hetzner 齐名的供应商，有 ARM，VDS，VPS，域名，块存储等一系列业务。经常做活动，有概率可以拿到很不错的配置，例如 RS2000 硬盘翻倍到 1T 的配置。唯一缺点是德国人对于合同的严谨性，部分机型存在合同期，购买前需谨慎。Netcup连续多年荣获欧洲最喜爱的网络托管商，他们非常在乎口碑，服务也非常好。&lt;/p&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/netcup-rs-1000-g11-at-amd-9634.html&quot;&gt;Netcup RS 1000 G11 维也纳 AMD 9634 测评&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;注册教程：&lt;a href=&quot;https://catcat.blog/netcup-signup.html&quot;&gt;Netcup 注册免税入坑指南&lt;/a&gt;(内含优惠券)&lt;/p&gt;
&lt;h3&gt;5.Alwyzon&lt;/h3&gt;
&lt;p&gt;奥地利云服务商 Alwyzon，Hohl IT e.U.旗下品牌，主要售卖 KVM 虚拟化的 VPS，大硬盘存储 VPS 和独立服务器，在奥地利最大互联网中心 Interxion 园区内运营所有服务器。欧洲对等互联优秀。2024年也更新了性能款的产品线，目前使用的四代EPYC，Raid10 存储。&lt;/p&gt;
&lt;h4&gt;相关测试&lt;/h4&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/alwyzon-at-amd-epyc-genoa-9354p.html&quot;&gt;Alwyzon 维也纳 AMD EPYC™ Genoa 9354P 测评&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;购买链接&lt;/h4&gt;
&lt;p&gt;官网地址：&lt;a href=&quot;https://www.alwyzon.com/en&quot;&gt;Alwyzon 官网&lt;/a&gt;（无AFF）&lt;/p&gt;
&lt;h3&gt;6.Nube.sh&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;快车道老板的品牌，知名上游，很多常见的例如lain 都是他们的下游。虚拟机流量计费为单向计费，只计算流出流量，不记流入。支持按小时计费。也有裸金属租用等，价格从亚太的角度来说挺不错。目前地区已经有了HK,US,SG,JP。机器性能比较不错，Zen 3 EPYC的1 vCPU 加 1GB DDR4内存最低每月2.82美金起。自营 IP 骨干网。控制台也是出钱自研的，非常简洁直观。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe src=&quot;https://static.nube.sh/html-image/speed-sc/336x280/index.html?lp=https%3A%2F%2Fnube.sh%2Finvite%2F424692390H4EEM&quot; style=&quot;width:336px;height:280px;border:none;&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h4&gt;相关测试&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;测评地址：&lt;a href=&quot;https://catcat.blog/alwyzon-at-amd-epyc-genoa-9354p.html&quot;&gt;Nube Cloud 香港 AMD 7713 测评&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;测评地址：&lt;a href=&quot;https://catcat.blog/nube-cloud-hk-amd-7950x.html&quot;&gt;Nube Cloud 香港 AMD 7950X 独立服务器 测评&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;测评地址：&lt;a href=&quot;https://catcat.blog/nube-amd-7663-sjc.html&quot;&gt;Nube Cloud 美国 AMD 7663 测评&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;测评地址：&lt;a href=&quot;https://catcat.blog/nube-cloud-hk-amd-7532-dedicated-server.html&quot;&gt;Nube Cloud 香港 AMD 7532 独立服务器 测评&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;测评地址：&lt;a href=&quot;https://catcat.blog/nube-sh-hk-amd-9950x.html&quot;&gt;Nube.SH 香港 AMD 9950X 裸金属服务器测评&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;购买链接&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;官网地址：&lt;a href=&quot;https://nube.sh/invite/424692390H4EEM&quot;&gt;Nube.sh 官网&lt;/a&gt;（有AFF）&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;7.Evoxt&lt;/h3&gt;
&lt;p&gt;Evoxt，美国商家，成立于2020年，自有ASN 212083。老板是马来西亚华裔，工单支持中文，目前数据中心有12 个节点。机器的 CPU 和 IO 配置都比较可以，有些热门地区托管在比较知名的上游，比如香港日本在 xtom 的数据中心。香港也使用 7950x，其他地区也有像 epyc 四代一样的配置。&lt;/p&gt;
&lt;h4&gt;相关测试&lt;/h4&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/alwyzon-at-amd-epyc-genoa-9354p.html&quot;&gt;Evoxt AMD EPYC-Genoa 荷兰测评&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/evoxt-amd-epyc-genoa-pl.html&quot;&gt;Evoxt AMD EPYC-Genoa 波兰测评&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/evoxt-amd-epyc-genoa-pl.html&quot;&gt;Evoxt AMD Ryzen 7950x 香港测评&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;购买链接&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;官网地址：&lt;a href=&quot;https://console.evoxt.com/aff.php?aff=292&quot;&gt;Evoxt 官网&lt;/a&gt;（有AFF）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优惠码: AFF292-sa （5%折扣）&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;离线下载,存储PT下载型推荐&lt;/h2&gt;
&lt;p&gt;对于下载需求分为两类，短期存储和长期存储。通过 VPS 下载中转然后上传到网盘，不需要长期保存，下载完传到网盘就删除，通常一部电影的大小在 5G 左右，一般 VPS 只有 10-20G 左右磁盘容量，除去系统和软件的占用，最多只能 1-2 个任务同时进行。如果有同时下载更多任务的需求，或者需要长期存储，那就需要考虑更大的空间，或者直接上大盘鸡了。&lt;/p&gt;
&lt;p&gt;PT下载对网络和内存CPU都有一定的考验，流量消耗极大，常规机器刷力堪忧。&lt;/p&gt;
&lt;h3&gt;1.HostBrr （可刷PT，但注意流量，Hetzner转售）&lt;/h3&gt;
&lt;p&gt;Hetzner转售商，性价比极高。价格低廉（平均单价 2.2$/1TB），适合保种，离线下载用。目前开业一年有余，非常好。服务器主要位于&lt;strong&gt;德国/芬兰&lt;/strong&gt;，支持Linux/Windows有储存鸡、高配鸡（7950XD、5950X、3900x、12900k）、独服、虚拟主机、Nat鸡，可以说什么都有。商家工单回复还算快、急的话可以直接去LET私聊商家，态度很好，无客户歧视。退款政策：14天内无条件退款（非常爽快），发工单即可。&lt;/p&gt;
&lt;h4&gt;相关测试&lt;/h4&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/hostbrr-amd-9454p.html&quot;&gt;Hostbrr 德国 AMD 9454P 测评&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/hostbbr-3t%e8%b6%85%e5%a4%a7%e5%ad%98%e5%82%a8vps%e6%b5%8b%e8%af%84.html&quot;&gt;Hostbbr 3T超大存储年付72刀翻倍款vps测评&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/hostbbr.html&quot;&gt;Hostbbr 存储 NAT VPS 测评&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/hostbrr-fi-6t.html&quot;&gt;Hostbrr 芬兰周年庆6T存储优惠 测评&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/hostbrr-1-year-celebration-deals-6t.html&quot;&gt;Hostbrr 德国周年庆6T存储优惠 测评&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/hostbrr-de-amd-7950x3d-%e6%b5%8b%e8%af%84.html&quot;&gt;Hostbrr DE AMD 7950X3D 测评&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;购买链接&lt;/h4&gt;
&lt;p&gt;官网地址：&lt;a href=&quot;https://my.hostbrr.com/order/forms/a/MzQw&quot;&gt;HostBrr 官网&lt;/a&gt;（含AFF）&lt;/p&gt;
&lt;p&gt;促销请关注 &lt;a href=&quot;https://lowendtalk.com/profile/labze&quot;&gt;HostBrr-lowendtalk&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;2.BuyVM（PT刷力很烂，离线下载不错，唯一优点抗DMCA）&lt;/h3&gt;
&lt;p&gt;运营了十多年的老牌 VPS 商家，其无限流量 VPS 低至 3.5 美元/月，加上仅需 1.25 美元/月的 256G 附加存储空间，总共只需 4.75 美元/月就可以拥有一个 256G 无限流量大盘鸡。。连续付三个月可以升级为PRO用户，带宽升级到10G无限。由于极具性价比，所以经常处于缺货状态。有需求建议先&lt;strong&gt;注册账号&lt;/strong&gt;。晚上凌晨为补货时间。&lt;/p&gt;
&lt;p&gt;2025年更新：目前已经被 Cloudzy AI 收购。卢森堡地区可能会迁移去瑞士或者荷兰，具体方案还没给出。DMCA抗的效果未知。&lt;/p&gt;
&lt;h4&gt;相关测试&lt;/h4&gt;
&lt;p&gt;测评地址：&lt;a href=&quot;https://catcat.blog/buyvm-%e5%8d%a2%e6%a3%ae%e5%a0%a1-5900x-%e4%b8%8d%e9%99%90%e6%b5%81%e9%87%8f.html&quot;&gt;BuyVM-Luxembourg-5900X&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;购买链接&lt;/h4&gt;
&lt;p&gt;官网地址：&lt;a href=&quot;https://my.frantech.ca/aff.php?aff=6455&quot;&gt;BuyVM官网&lt;/a&gt;(有 AFF)&lt;/p&gt;
</content:encoded><category>category:什么值得买</category><category>tag:什么值得买</category></item><item><title>VPS 常用测试脚本</title><link>https://catcat.blog/vps-benchmark.html</link><guid isPermaLink="true">https://catcat.blog/vps-benchmark.html</guid><description>汇总VPS常用脚本：体检跑分（Yabs/GB5）、融合怪Go、回程与解锁/流媒体测试，以及Docker、Zsh、qBittorrent、代理、Snell等一键安装；另附NVM与国内外加速源，复制即用。</description><pubDate>Tue, 28 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;1.体检脚本&lt;/h2&gt;
&lt;h3&gt;Yabs 脚本&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;GB6 跑分脚本，附带宽测试：
curl -sL yabs.sh | bash

GB6 剔除带宽测试，因为都是国外节点测试，国内跑没多大意义：
curl -sL yabs.sh | bash -s -- -i

GB5 跑分脚本，附带宽测试：
curl -sL yabs.sh | bash -5

GB5 剔除带宽测试：
curl -sL yabs.sh | bash -s -- -i -5

GB5 单向测试脚本
bash &amp;lt;(wget -qO- https://raw.githubusercontent.com/i-abc/GB5/main/gb5-test.sh)

Benchy Yabs 分支测试脚本
curl -Ls benchy.pw | sh

上古老脚本
curl -sL bench.monster | bash -s -- -asia
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;融合怪Go脚本&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;国际用户无加速：

export noninteractive=true &amp;amp;&amp;amp; curl -L https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh &amp;amp;&amp;amp; chmod +x goecs.sh &amp;amp;&amp;amp; bash goecs.sh env &amp;amp;&amp;amp; bash goecs.sh install &amp;amp;&amp;amp; goecs

国际/国内使用 CDN 加速：

export noninteractive=true &amp;amp;&amp;amp; curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh &amp;amp;&amp;amp; chmod +x goecs.sh &amp;amp;&amp;amp; bash goecs.sh env &amp;amp;&amp;amp; bash goecs.sh install &amp;amp;&amp;amp; goecs

国内用户使用 CNB 加速：

export noninteractive=true &amp;amp;&amp;amp; curl -L https://cnb.cool/oneclickvirt/ecs/-/git/raw/main/goecs.sh -o goecs.sh &amp;amp;&amp;amp; chmod +x goecs.sh &amp;amp;&amp;amp; bash goecs.sh env &amp;amp;&amp;amp; bash goecs.sh install &amp;amp;&amp;amp; goecs

短链接：

export noninteractive=true &amp;amp;&amp;amp; curl -L https://bash.spiritlhl.net/goecs -o goecs.sh &amp;amp;&amp;amp; chmod +x goecs.sh &amp;amp;&amp;amp; bash goecs.sh env &amp;amp;&amp;amp; bash goecs.sh install &amp;amp;&amp;amp; goecs
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2.回程脚本&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;curl https://raw.githubusercontent.com/ludashi2020/backtrace/main/install.sh -sSf | sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;3.一键安装脚本&lt;/h2&gt;
&lt;h3&gt;Docker&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;curl -fsSL https://ba.sh/install-docker | bash
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Zsh&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;curl -fsSL https://ba.sh/install-zsh | bash
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;qbittorrent&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;curl -fsSL https://ba.sh/install-qbt | bash
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;TCP内核一键调整&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;wget https://ba.sh/network &amp;amp;&amp;amp; chmod 755 network &amp;amp;&amp;amp; bash network
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;代理一键设置脚本&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;wget https://ba.sh/proxy &amp;amp;&amp;amp; chmod 755 proxy &amp;amp;&amp;amp; bash proxy
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Snell 脚本&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;bash &amp;lt;(curl -fsSL snell-ten.vercel.app)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;代理一键安装&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;wget -P /root -N --no-check-certificate &quot;https://raw.githubusercontent.com/mack-a/v2ray-agent/master/install.sh&quot; &amp;amp;&amp;amp; chmod 700 /root/install.sh &amp;amp;&amp;amp; /root/install.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;4.NodeJS NVM脚本&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
# in lieu of restarting the shell
\. &quot;$HOME/.nvm/nvm.sh&quot;
# Download and install Node.js:
nvm install 22
# Verify the Node.js version:
node -v # Should print &quot;v22.17.1&quot;.
nvm current # Should print &quot;v22.17.1&quot;.
# Verify npm version:
npm -v # Should print &quot;10.9.2&quot;.
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;5.解锁测试&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;bash &amp;lt;(curl -Ls unlock.icmp.ing/test.sh)
bash &amp;lt;(curl -sL IP.Check.Place)
bash &amp;lt;(curl -Ls Net.Check.Place)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;6.综合工具箱&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh &amp;amp;&amp;amp; chmod +x box.sh &amp;amp;&amp;amp; clear &amp;amp;&amp;amp; ./box.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;7.流媒体测试&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;bash &amp;lt;(curl -Ls unlock.icmp.ing/test.sh) -m 4
bash &amp;lt;(curl -Ls unlock.icmp.ing/test.sh)
bash &amp;lt;(curl -sL IP.Check.Place)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;8.Oracle 修改root脚本&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
echo root:11235879 |sudo chpasswd root
sudo sed -i &apos;s/^#\?PermitRootLogin.*/PermitRootLogin yes/g&apos; /etc/ssh/sshd_config;
sudo sed -i &apos;s/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g&apos; /etc/ssh/sshd_config;
sudo service sshd restart
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;默认密码是: 11235879&lt;br /&gt;
登录后一定要修改密码！命令：&lt;code&gt;passwd&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;9.Swap脚本&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;wget https://www.moerats.com/usr/shell/swap.sh &amp;amp;&amp;amp; bash swap.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;10.Oracle dd Debian11 脚本&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;bash &amp;lt;(wget --no-check-certificate -qO- &apos;https://moeclub.org/attachment/LinuxShell/InstallNET.sh&apos;) -d 11 -v 64 -a  -p 自定义密码
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;11.byte-unixbench 性能测试&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;wget --no-check-certificate https://ba.sh/unixbench &amp;amp;&amp;amp; chmod +x unixbench.sh &amp;amp;&amp;amp; ./unixbench.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;12.&lt;a href=&quot;https://www.passmark.com/products/pt_linux/download.php&quot;&gt;PerformanceTest Linux&lt;/a&gt; 测试&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;wget -O PerformanceTest_Linux_x86-64 https://catcat.cloud/d/ftp/PerformanceTest_Linux_x86-64 &amp;amp;&amp;amp; chmod +x PerformanceTest_Linux_x86-64 &amp;amp;&amp;amp; apt update &amp;amp;&amp;amp; apt install -y libncurses6 libtinfo6 &amp;amp;&amp;amp; ln -sf /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64-linux-gnu/libncurses.so.5 &amp;amp;&amp;amp; ln -sf /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5 &amp;amp;&amp;amp; ldconfig &amp;amp;&amp;amp; ./PerformanceTest_Linux_x86-64

&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;13.杜甫通用检测脚本&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# English
curl -sL https://ba.sh/sick | bash 

# Chinese
curl -sL https://ba.sh/sick | bash -s -- -cn
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;14.独立服务器检测硬盘通电时间&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;wget https://github.com/Aniverse/A/raw/i/a &amp;amp;&amp;amp; bash a
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;15.网络测试脚本&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;region_name = na, sa, eu, asia, africa, au, middle-east, india, china, iran, indonesia
curl -sL nws.sh | bash -s -- -r region_name

wget -qO- bench.sh | bash
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;wget -qO- nws.sh | bash
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;wget -qO- nws.sh | bash -s -- -r region_name
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;16.Warp 脚本&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;https://gitlab.com/fscarmen/warp.git

warp 一键脚本
wget -N https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh &amp;amp;&amp;amp; bash menu.sh
warp-go 一键脚本
wget -N https://gitlab.com/fscarmen/warp/-/raw/main/warp-go.sh &amp;amp;&amp;amp; bash warp-go.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;17.SpeedTest 安装&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install curl
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
sudo apt-get install speedtest
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;18.国内常用脚本&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;更换镜像源
bash &amp;lt;(curl -sSL https://linuxmirrors.cn/main.sh) 
Docker 安装
export DOWNLOAD_URL=&quot;https://mirrors.tuna.tsinghua.edu.cn/docker-ce&quot;# 如您使用 curl
curl -fsSL https://raw.githubusercontent.com/docker/docker-install/master/install.sh | sh
# 如您使用 wget
wget -O- https://raw.githubusercontent.com/docker/docker-install/master/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;19.ServerStatus 部署&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;curl -sS -O https://raw.githubusercontent.com/Yuri-NagaSaki/Shell/refs/heads/main/setup_serverstatus.sh &amp;amp;&amp;amp; chmod +x setup_serverstatus.sh &amp;amp;&amp;amp; ./setup_serverstatus.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;20.PVE 脚本&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;更换PVE主题脚本
git clone https://github.com/Happyrobot33/PVEThemes &amp;amp;&amp;amp; cd PVEThemes &amp;amp;&amp;amp; chmod +x install.sh &amp;amp;&amp;amp; ./install.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;bash &amp;lt;(curl -sSL https://gh-proxy.sakiko.de/https://raw.githubusercontent.com/Yuri-NagaSaki/Shell/refs/heads/main/PVE-Tools.sh)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;21.Clash 一键设置&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;git clone --branch master --depth 1 https://github.com/nelvko/clash-for-linux-install.git \
  &amp;amp;&amp;amp; cd clash-for-linux-install \
  &amp;amp;&amp;amp; sudo bash install.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;22.DD 一键重装脚本&lt;/h2&gt;
&lt;p&gt;具体参考 &lt;a href=&quot;https://github.com/bin456789/reinstall&quot;&gt;https://github.com/bin456789/reinstall&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || wget -O reinstall.sh $_
bash reinstall.sh debian --ssh-key &quot;&quot;
&lt;/code&gt;&lt;/pre&gt;
</content:encoded><category>category:脚本</category><category>tag:脚本</category></item><item><title>什么值得买-持续更新ing(自用机场推荐)</title><link>https://catcat.blog/recommended-proxy.html</link><guid isPermaLink="true">https://catcat.blog/recommended-proxy.html</guid><description>持续更新的自用机场推荐：详评YToo与花云，专线稳定、多协议支持、低倍率高性价比，节点覆盖广含IPv6与EMBY，价格与年付注意事项一并解析，助你选到省心好用的梯子。</description><pubDate>Thu, 23 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;:::caution
任何机场服务商都存在跑路风险，建议谨慎选择年付套餐，并准备多个备用服务以防失联。建议优先选择月付或季付套餐，分散风险。
:::&lt;/p&gt;
&lt;h2&gt;目前在使用的&lt;/h2&gt;
&lt;h3&gt;YToo&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://aff.af/ytoo&quot;&gt;官网链接&lt;/a&gt;（含 AFF）&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;一线顶级机场，稳定性表现优秀，价格合理，提供低倍率节点。&lt;/li&gt;
&lt;li&gt;支持 SSR、SS、Trojan 三种协议，兼容 Clash 客户端。&lt;/li&gt;
&lt;li&gt;年付套餐非按 12 个月价格计算，例如 36 元月套餐年付为 372 元，配合 0.2 倍率节点使用性价比极高。&lt;/li&gt;
&lt;li&gt;全专线机场，线路分布：港新方向采用深圳电信⚡/移动📱，日美🇯🇵🇺🇸方向采用镇江 BGP（边界网关协议，Border Gateway Protocol），欧洲方向采用深圳电信⚡/移动📱。&lt;/li&gt;
&lt;li&gt;节点倍率：日用 0.2、标准 0.5、高级/特殊/购物 1.0。倍率解释：使用 0.2 倍率节点时，实际消耗 10GB 流量，系统仅计量 2GB，其他倍率以此类推。&lt;/li&gt;
&lt;li&gt;落地节点：香港、台湾、日本、新加坡、美国等主要地区主要使用 Kirino。此外，日本还提供 NTT、SONET、Oracle 等线路；新加坡提供 M247、LeaseWeb；韩国提供 KT、Oracle；美国提供 Cogent、Zenlayer、SharkTech。近期新增多个非主流地区：泰国、越南、印度、菲律宾、迪拜、以色列、加拿大、巴西、阿根廷、英国、德国、意大利、西班牙、匈牙利、土耳其、澳大利亚。&lt;/li&gt;
&lt;li&gt;机场限速千兆，低倍率节点限速相对严格但仍可达数百兆，足够日常使用。按 0.2 倍率计算，每月 200GB 套餐相当于可使用 1000GB 流量。不限制客户端设备数量，但严禁账号共享。&lt;/li&gt;
&lt;li&gt;SSH 端口限制：屏蔽 22 端口&lt;/li&gt;
&lt;li&gt;官方监控：https://status.waitu.de/status/services&lt;/li&gt;
&lt;li&gt;Telegram 频道：https://t.me/waitu_channel&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;节点分析&lt;/h3&gt;
&lt;h4&gt;电信&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229200255610.avif&quot; alt=&quot;上海电信&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;联通&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229200310617.avif&quot; alt=&quot;佛山联通&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;移动&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229200310617.avif&quot; alt=&quot;广西移动&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;拓扑分析&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229195531151.avif&quot; alt=&quot;YTOO电信拓扑分析&quot; /&gt;
&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229195629808.avif&quot; alt=&quot;YTOO联通拓扑分析&quot; /&gt;
&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229195659981.avif&quot; alt=&quot;YTOO移动拓扑分析&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;价格&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229202312200.avif&quot; alt=&quot;image-20251229202311790&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;青云梯&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://aff.af/QingYunTi&quot;&gt;官方链接（含 AFF）&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;根据公开信息，该机场于 2021 年开设，至今已运营四年有余。采用专线内网传输，最高速率可达 4Gbps，由新加坡海外团队运营。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;采用 IPLC（国际专线，International Private Leased Circuit）线路，价格优势明显。最低年付套餐为 96 元/60GB 每月。&lt;/li&gt;
&lt;li&gt;支持 Clash、Surge、Shadowrocket、Quantumult X、Stash 订阅。&lt;/li&gt;
&lt;li&gt;落地节点相对单一，目前提供 Akari、Nearoute、CHOOPA、Hytron、Cogent、Fibert、ReliableSite 等线路。&lt;/li&gt;
&lt;li&gt;月付/季付/半年付：享受 85 折优惠，优惠码：&lt;strong&gt;0080&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;年付及以上周期：享受 8 折优惠，优惠码：&lt;strong&gt;0080&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;不限制客户端设备数量，支持多设备同时在线。&lt;/li&gt;
&lt;li&gt;线路架构：香港透传入口 + IEPL（国际以太网专线，International Ethernet Private Line）传输&lt;/li&gt;
&lt;li&gt;线路倍率：香港 ×20、台湾 ×10、日本 ×10、新加坡 ×10、马来西亚 ×10、美国 ×10、韩国 ×2、越南 ×1、菲律宾 ×1、泰国 ×1、印度 ×1、德国 ×1、法国 ×1、英国 ×1、阿根廷 ×2&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;线路&lt;/h3&gt;
&lt;h4&gt;电信&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229201835313.avif&quot; alt=&quot;青云梯-广东电信1000M&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;联通&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229201908670.avif&quot; alt=&quot;青云梯-佛山联通2000M&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;移动&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229201839700.avif&quot; alt=&quot;青云梯-广西移动2000M&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;拓扑分析&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229201927253.avif&quot; alt=&quot;青云梯拓扑分析&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;价格&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229201414305.avif&quot; alt=&quot;image-20251229201413801&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229201324809.avif&quot; alt=&quot;image-20251229201324087&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;星岛梦&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://aff.af/GKqU&quot;&gt;官方链接（含 AFF）&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2025 年下半年新开业的机场服务商，目前采用全 IPLC 专线。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;支持 Trojan/SS 等协议。价格较为实惠，但开业时间较短，建议谨慎选择年付套餐。&lt;/li&gt;
&lt;li&gt;套餐特点：无限速、无倍率限制、不限制设备数量。&lt;/li&gt;
&lt;li&gt;优惠码：66 折 &lt;strong&gt;XDM666&lt;/strong&gt;，最低套餐年付 98.56 元，100GB/月&lt;/li&gt;
&lt;li&gt;提供永久不限时套餐，请谨慎评估后购买。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;测试&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229203322156.avif&quot; alt=&quot;image-20251229203321836&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;价格&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229203237992.avif&quot; alt=&quot;image-20251229203237460&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;MujikaNetwork&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://aff.af/Mujika&quot;&gt;官方链接（含 AFF）&lt;/a&gt;
2024 年开业的机场服务商，采用 IEPL 专线。
主要优势是价格亲民，月付套餐仅需 5 元。&lt;/p&gt;
&lt;h3&gt;测试&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229203533864.avif&quot; alt=&quot;image-20251229203533760&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;节点列表&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229203823538.avif&quot; alt=&quot;image-20251229203823117&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;价格&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229203612521.avif&quot; alt=&quot;image-20251229203612234&quot; /&gt;
&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251229203626194.avif&quot; alt=&quot;image-20251229203625977&quot; /&gt;&lt;/p&gt;
</content:encoded><category>category:机场</category><category>tag:机场</category></item><item><title>部署 OpenClaw：开源 AI 个人助手从安装到 QQ 机器人接入</title><link>https://catcat.blog/2026/03/deploy-openclaw-ai-assistant.html</link><guid isPermaLink="true">https://catcat.blog/2026/03/deploy-openclaw-ai-assistant.html</guid><description>从零部署 OpenClaw 开源 AI 个人助手：安装配置、接入 AI 模型、QQ 机器人集成全流程教程</description><pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;OpenClaw 是一款开源 AI 个人助手，运行在本地机器上，通过各种聊天应用与你交互。它支持多种 AI 模型提供商，拥有丰富的插件和技能系统，让你轻松打造属于自己的 AI 助手。&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;openclaw/openclaw&quot;}&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;官网：https://openclaw.ai&lt;/li&gt;
&lt;li&gt;文档：https://docs.openclaw.ai&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;什么是 OpenClaw？&lt;/h2&gt;
&lt;p&gt;OpenClaw 是一个本地优先的开源 AI 个人助手框架，核心特性包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;多平台聊天接入&lt;/strong&gt;：支持 QQ、Telegram、Discord、微信等主流聊天平台&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模型无关&lt;/strong&gt;：可接入 Anthropic、OpenAI、DeepSeek、Moonshot 等多种 AI 模型&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;：内置 Dashboard 管理界面&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;支持的聊天渠道：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;QQ（通过 QQ 开放平台）&lt;/li&gt;
&lt;li&gt;Telegram&lt;/li&gt;
&lt;li&gt;Discord&lt;/li&gt;
&lt;li&gt;微信（企业微信）&lt;/li&gt;
&lt;li&gt;Slack&lt;/li&gt;
&lt;li&gt;命令行（CLI）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;支持的 AI 模型提供商：&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;Anthropic&lt;/td&gt;
&lt;td&gt;Claude 4 Sonnet&lt;/td&gt;
&lt;td&gt;综合能力强&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;GPT-4o&lt;/td&gt;
&lt;td&gt;多模态支持好&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenRouter&lt;/td&gt;
&lt;td&gt;多种模型&lt;/td&gt;
&lt;td&gt;聚合平台，按需选择&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek&lt;/td&gt;
&lt;td&gt;DeepSeek-V3&lt;/td&gt;
&lt;td&gt;性价比高&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Moonshot（Kimi）&lt;/td&gt;
&lt;td&gt;Kimi 2.5&lt;/td&gt;
&lt;td&gt;中文优化，长上下文&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;本地模型&lt;/td&gt;
&lt;td&gt;Ollama / LM Studio&lt;/td&gt;
&lt;td&gt;完全离线运行&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;环境准备&lt;/h2&gt;
&lt;p&gt;OpenClaw 基于 Node.js 运行，需要 &lt;strong&gt;Node.js 22+&lt;/strong&gt; 环境。&lt;/p&gt;
&lt;p&gt;推荐使用 nvm 管理 Node.js 版本：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

# 安装 Node.js 22
nvm install 22
nvm use 22

# 验证版本
node --version  # 应该显示 v22.x.x
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;:::note
国内用户如果 npm 下载速度慢，可以使用 npmmirror 镜像：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm config set registry https://registry.npmmirror.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;:::&lt;/p&gt;
&lt;h2&gt;第一步：安装 OpenClaw&lt;/h2&gt;
&lt;p&gt;通过 npm 全局安装 OpenClaw：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm install -g openclaw
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装完成后验证：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;openclaw --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308210730820.avif&quot; alt=&quot;image-20260308210730699&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;第二步：运行初始化向导&lt;/h2&gt;
&lt;p&gt;首次安装完成后，运行初始化向导进行配置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;openclaw onboard
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;向导会引导你完成以下步骤。&lt;/p&gt;
&lt;h3&gt;安全提示&lt;/h3&gt;
&lt;p&gt;初次运行时会显示安全提示，告知 OpenClaw 将在本地启动 Gateway 服务。确认后选择 &lt;strong&gt;Yes&lt;/strong&gt; 继续。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308210856238.avif&quot; alt=&quot;image-20260308210855911&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;选择 Onboarding 模式&lt;/h3&gt;
&lt;p&gt;向导提供两种模式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;QuickStart（推荐）&lt;/strong&gt;：快速配置，适合大部分用户&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Advanced&lt;/strong&gt;：高级配置，可自定义更多选项&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;建议选择 QuickStart 模式快速上手。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308211017720.avif&quot; alt=&quot;image-20260308211017473&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;配置 AI 模型&lt;/h3&gt;
&lt;p&gt;选择你要接入的 AI 模型提供商，填写对应的 API Key。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;提供商&lt;/th&gt;
&lt;th&gt;API Key 获取地址&lt;/th&gt;
&lt;th&gt;备注&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;https://console.anthropic.com&lt;/td&gt;
&lt;td&gt;Claude 系列模型&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;https://platform.openai.com&lt;/td&gt;
&lt;td&gt;GPT 系列模型&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenRouter&lt;/td&gt;
&lt;td&gt;https://openrouter.ai&lt;/td&gt;
&lt;td&gt;聚合多种模型&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek&lt;/td&gt;
&lt;td&gt;https://platform.deepseek.com&lt;/td&gt;
&lt;td&gt;国产高性价比&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Moonshot&lt;/td&gt;
&lt;td&gt;https://platform.moonshot.cn&lt;/td&gt;
&lt;td&gt;Kimi 系列模型&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;本地模型&lt;/td&gt;
&lt;td&gt;Ollama / LM Studio&lt;/td&gt;
&lt;td&gt;无需 API Key&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这里以 Kimi 2.5 为例，在 Moonshot 平台获取 API Key 后填入即可，其他提供商的配置流程类似。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308211053964.avif&quot; alt=&quot;image-20260308211053756&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308211309169.avif&quot; alt=&quot;image-20260308211308708&quot; /&gt;&lt;/p&gt;
&lt;p&gt;:::tip
每个提供商的详细配置方式可参考 OpenClaw 官方文档：https://docs.openclaw.ai/models
:::&lt;/p&gt;
&lt;h3&gt;选择聊天频道&lt;/h3&gt;
&lt;p&gt;选择你要接入的聊天平台。可以选择多个频道，后续也可以在 Dashboard 中添加。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308211208411.avif&quot; alt=&quot;image-20260308211208196&quot; /&gt;&lt;/p&gt;
&lt;p&gt;:::note
QQ 频道需要额外的配置步骤（注册 QQ 开放平台、创建机器人等），将在下一节详细说明。初始化时可以先跳过 QQ，后续再接入。
:::&lt;/p&gt;
&lt;h3&gt;配置技能&lt;/h3&gt;
&lt;p&gt;根据自己所需，如果你是Linux/mac，最好安装一下brew。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308211417495.avif&quot; alt=&quot;image-20260308211416956&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308211455841.avif&quot; alt=&quot;image-20260308211455555&quot; /&gt;&lt;/p&gt;
&lt;p&gt;:::note
这些 API Key 都是可选的，用于特定技能。没有的话全部选 No 跳过即可，后续可通过 openclaw configure 随时补充。
:::&lt;/p&gt;
&lt;h3&gt;确认UI&lt;/h3&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;**Hatch in TUI (recommended) **&lt;/td&gt;
&lt;td&gt;直接在终端进入交互式 TUI 界面，与 Bot 对话并设定人设。推荐选择此方式。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Open the Web UI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;打开浏览器中的 Web 控制面板完成初始化配置。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Do this later&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;跳过初始化流程，以后再进行设置。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308211607877.avif&quot; alt=&quot;image-20260308211607580&quot; /&gt;&lt;/p&gt;
&lt;p&gt;选择 Hatch in TUI 后，会自动进入终端聊天界面：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;openclaw tui - ws://127.0.0.1:18789 - agent main - session main
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308211819167.avif&quot; alt=&quot;image-20260308211818888&quot; /&gt;
Bot 会发送 “Wake up, my friend!” 作为第一条消息。你可以开始和它对话，告诉它你的需求和偏好——描述越详细，后续体验越好。&lt;/p&gt;
&lt;p&gt;退出 TUI：按 Ctrl+C 即可退出。Bot 的 Gateway 服务仍在后台运行。&lt;/p&gt;
&lt;h3&gt;完成安装&lt;/h3&gt;
&lt;p&gt;向导完成后，OpenClaw 会自动启动 Gateway 服务。&lt;/p&gt;
&lt;p&gt;验证运行状态：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;openclaw status
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;打开可视化管理面板：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;openclaw dashboard
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;默认面板地址为 &lt;code&gt;http://localhost:3210&lt;/code&gt;，可以在面板中查看和管理你的 AI 助手。&lt;/p&gt;
&lt;h2&gt;第三步：QQ 机器人接入&lt;/h2&gt;
&lt;p&gt;将 OpenClaw 接入 QQ 机器人，需要完成以下步骤。&lt;/p&gt;
&lt;h3&gt;注册 QQ 开放平台&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;访问 &lt;a href=&quot;https://q.qq.com/qqbot/openclaw/login.html&quot;&gt;QQ 开放平台&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;使用手机 QQ 扫码登录或注册开发者账号&lt;/li&gt;
&lt;li&gt;完成开发者认证&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308212008809.avif&quot; alt=&quot;image-20260308212007378&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;创建 QQ Bot 机器人&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;登录后进入 &lt;a href=&quot;https://q.qq.com/#/app/bot&quot;&gt;QQ 机器人管理页面&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;创建机器人&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;填写机器人基本信息（名称、头像、简介等）&lt;/li&gt;
&lt;li&gt;创建成功后，在机器人详情页获取 &lt;strong&gt;AppID&lt;/strong&gt; 和 &lt;strong&gt;AppSecret&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308211927944.avif&quot; alt=&quot;image-20260308211927499&quot; /&gt;&lt;/p&gt;
&lt;p&gt;:::important
AppID 和 AppSecret 是机器人的核心凭据，请妥善保管，不要泄露到公开仓库或分享给他人。
:::&lt;/p&gt;
&lt;h3&gt;安装 QQ Bot 插件并配置&lt;/h3&gt;
&lt;p&gt;安装 OpenClaw 的 QQ Bot 插件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;openclaw plugins install @sliverp/qqbot@latest

openclaw channels add --channel qqbot --token &quot;&quot;

openclaw gateway restart
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;使用&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/03/20260308212208744.avif&quot; alt=&quot;image-20260308212208310&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;安全注意事项&lt;/h2&gt;
&lt;p&gt;:::warning
OpenClaw 的 Gateway 服务默认监听本地端口，以下安全建议请务必注意：
:::&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;不要将 Gateway 端口直接暴露到公网&lt;/strong&gt;，避免未授权访问&lt;/li&gt;
&lt;li&gt;如需远程访问，使用 &lt;strong&gt;反向代理&lt;/strong&gt;（如 Nginx、Caddy）+ &lt;strong&gt;HTTPS&lt;/strong&gt; 加密&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;定期更新&lt;/strong&gt; OpenClaw 到最新版本，获取安全修复&lt;/li&gt;
&lt;li&gt;API Key 等敏感信息不要提交到版本控制系统&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;常用命令&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;命令&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;openclaw init&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;运行初始化向导&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;openclaw status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;查看运行状态&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;openclaw dashboard&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;打开管理面板&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;openclaw gateway start&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;启动 Gateway&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;openclaw gateway stop&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;停止 Gateway&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;openclaw gateway restart&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;重启 Gateway&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;openclaw plugins install &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;安装插件&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;openclaw plugins list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;查看已安装插件&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;openclaw skills list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;查看可用技能&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;openclaw config edit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;编辑配置文件&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;openclaw update&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;更新到最新版本&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;通过本文，我们完成了以下步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;安装 OpenClaw&lt;/strong&gt;：通过 npm 全局安装&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;初始化配置&lt;/strong&gt;：运行向导完成 AI 模型和聊天频道配置&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;QQ 机器人接入&lt;/strong&gt;：注册 QQ 开放平台、创建机器人、安装插件并配置&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;OpenClaw 的插件和技能系统非常灵活，建议进一步探索：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;安装更多插件扩展功能&lt;/li&gt;
&lt;li&gt;尝试接入不同的 AI 模型对比效果&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;ul&gt;
&lt;li&gt;OpenClaw 官网：https://openclaw.ai&lt;/li&gt;
&lt;li&gt;OpenClaw 文档：https://docs.openclaw.ai&lt;/li&gt;
&lt;li&gt;OpenClaw GitHub：https://github.com/openclaw/openclaw&lt;/li&gt;
&lt;li&gt;QQ 开放平台：https://q.qq.com&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>category:教程</category><category>tag:OpenClaw</category><category>tag:AI</category><category>tag:QQ Bot</category><category>tag:Node.js</category><category>tag:自托管</category></item><item><title>Hetzner CX33 部署 Proxmox Backup Server 并集成对象存储完整指南</title><link>https://catcat.blog/2026/02/hetzner-cx33-proxmox-backup-server-object-storage.html</link><guid isPermaLink="true">https://catcat.blog/2026/02/hetzner-cx33-proxmox-backup-server-object-storage.html</guid><description>详细教程：在 Hetzner CX33 云服务器上部署 Proxmox Backup Server，配置 Hetzner 对象存储作为后端，并与 Proxmox VE 集成实现自动化备份策略</description><pubDate>Wed, 04 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言&lt;/h2&gt;
&lt;p&gt;在现代数据中心管理中，数据备份是确保业务连续性和灾难恢复能力的核心环节。Proxmox Virtual Environment (PVE) 作为开源虚拟化平台的佼佼者，配合其官方推出的 Proxmox Backup Server (PBS)，能够构建一套完整、高效且经济的企业级备份解决方案。&lt;/p&gt;
&lt;p&gt;本教程将详细介绍如何在 Hetzner Cloud 的 CX33 实例上部署 Proxmox Backup Server，利用 Hetzner 对象存储作为高性价比的后端存储，并与现有的 Proxmox VE 环境无缝集成，实现自动化的备份与保留策略。&lt;/p&gt;
&lt;h2&gt;为什么选择 Proxmox Backup Server&lt;/h2&gt;
&lt;p&gt;Proxmox Backup Server 是专为 PVE 环境设计的备份解决方案，相比传统的文件级备份工具，它具有以下显著优势：&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;/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;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;端到端加密&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;支持客户端加密，确保备份数据在传输和存储过程中的安全性&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;压缩支持&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;内置 Zstandard 压缩算法，在 CPU 开销和压缩率之间取得良好平衡&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;自动保留策略&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;灵活的备份保留规则，支持按时间维度（日/周/月/年）自动清理过期备份&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PVE 原生集成&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;与 Proxmox VE 深度集成，支持一键备份/恢复，无需额外配置&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;第一部分：创建 Hetzner CX33 服务器&lt;/h2&gt;
&lt;h3&gt;实例规格选择&lt;/h3&gt;
&lt;p&gt;Hetzner CX33 是一款性价比极高的云服务器，其规格如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;vCPU&lt;/strong&gt;: 4 核（Intel Xeon 或 AMD EPYC）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;内存&lt;/strong&gt;: 8 GB&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;存储&lt;/strong&gt;: 80 GB SSD&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网络&lt;/strong&gt;: 1 Gbps 带宽，20 TB 月流量&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;价格&lt;/strong&gt;: 约 4.99 欧元/月&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于中小型 PVE 环境的备份需求，CX33 的性能完全足够。PBS 本身对计算资源要求不高，主要依赖内存进行去重索引，8GB 内存可以支持数 TB 级别的备份存储。&lt;/p&gt;
&lt;h3&gt;创建步骤&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;登录 &lt;a href=&quot;https://console.hetzner.cloud/&quot;&gt;Hetzner Cloud Console&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;选择项目，点击 &quot;Add Server&quot;&lt;/li&gt;
&lt;li&gt;选择 Location（建议选择与 PVE 主机相同的区域以降低延迟）&lt;/li&gt;
&lt;li&gt;选择 Type: &lt;strong&gt;CX33&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;选择 Image: &lt;strong&gt;Debian 13&lt;/strong&gt; (Trixie)&lt;/li&gt;
&lt;li&gt;配置 SSH Key 或密码认证&lt;/li&gt;
&lt;li&gt;确认防火墙规则，确保 &lt;strong&gt;8007&lt;/strong&gt; 端口可访问&lt;/li&gt;
&lt;li&gt;创建服务器并记录分配的 IP 地址&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/02/20260204154048305.avif&quot; alt=&quot;firewall&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;第二部分：安装 Proxmox Backup Server&lt;/h2&gt;
&lt;p&gt;通过 SSH 连接到新创建的 CX33 服务器，执行以下安装步骤：&lt;/p&gt;
&lt;h3&gt;添加 Proxmox 软件源&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 下载并添加 Proxmox 发行版签名密钥
sudo wget https://enterprise.proxmox.com/debian/proxmox-release-trixie.gpg \
  -O /etc/apt/trusted.gpg.d/proxmox-release-trixie.gpg

# 添加 PBS 社区版软件源（无订阅）
echo &quot;deb http://download.proxmox.com/debian/pbs trixie pbs-no-subscription&quot; | \
  sudo tee /etc/apt/sources.list.d/proxmox-backup-server.list
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;安装软件包&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install proxmox-backup -y
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装过程中，系统会提示配置 Postfix 邮件传输代理。如果您尚未配置邮件发送策略，建议暂时选择 &lt;strong&gt;&quot;No configuration&quot;&lt;/strong&gt;，后续可通过 &lt;code&gt;dpkg-reconfigure postfix&lt;/code&gt; 重新配置。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/02/20260204154020117.avif&quot; alt=&quot;Postfix&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;访问 Web 管理界面&lt;/h3&gt;
&lt;p&gt;安装完成后，PBS 服务将自动启动。通过浏览器访问：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://&amp;lt;your-server-ip&amp;gt;:8007
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/02/20260204154130411.avif&quot; alt=&quot;pbs&quot; /&gt;&lt;/p&gt;
&lt;p&gt;首次访问时会遇到 SSL 证书警告，这是因为 PBS 使用自签名证书。添加安全例外后即可进入登录页面。默认使用 Linux 系统用户 &lt;code&gt;root&lt;/code&gt; 及其密码登录。&lt;/p&gt;
&lt;h2&gt;第三部分：配置 Hetzner 对象存储&lt;/h2&gt;
&lt;p&gt;Hetzner 对象存储是基于 S3 兼容 API 的高性价比存储服务，价格仅为 €0.006/GB/月，非常适合作为 PBS 的远程存储后端。&lt;/p&gt;
&lt;h3&gt;创建对象存储桶&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;进入 &lt;a href=&quot;https://console.hetzner.cloud/&quot;&gt;Hetzner Cloud Console&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;导航至左侧菜单的 &lt;strong&gt;Object Storage&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;选择 &lt;strong&gt;Locations&lt;/strong&gt; 标签，启用所需区域（如 hel1、fsn1 或 nbg1）&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;Create Bucket&lt;/strong&gt;，输入桶名称（如 &lt;code&gt;proxmox-backups&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;记录桶的 &lt;strong&gt;Endpoint URL&lt;/strong&gt; 格式：&lt;code&gt;https://&amp;lt;bucket-name&amp;gt;.&amp;lt;region&amp;gt;.your-objectstorage.com&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Available endpoints&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Location&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Endpoint&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Falkenstein&lt;/td&gt;
&lt;td&gt;&lt;code&gt;fsn1.your-objectstorage.com&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nuremberg&lt;/td&gt;
&lt;td&gt;&lt;code&gt;nbg1.your-objectstorage.com&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Helsinki&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hel1.your-objectstorage.com&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/02/20260204154157794.avif&quot; alt=&quot;object-storage&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;生成访问密钥&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;在 Object Storage 页面，切换到 &lt;strong&gt;Credentials&lt;/strong&gt; 标签&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;S3 Credentials&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;输入描述（如 &lt;code&gt;PBS-Access&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;复制生成的 &lt;strong&gt;Access Key&lt;/strong&gt; 和 &lt;strong&gt;Secret Key&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/02/20260204154204072.avif&quot; alt=&quot;S3 Credentials&quot; /&gt;&lt;/p&gt;
&lt;p&gt;:::caution[密钥安全]
Secret Key 仅在创建时显示一次，请妥善保存。如遗失，需要重新生成新的凭证。
:::&lt;/p&gt;
&lt;h2&gt;第四部分：PBS 配置对象存储集成&lt;/h2&gt;
&lt;h3&gt;创建 S3 端点配置&lt;/h3&gt;
&lt;p&gt;登录 PBS Web 界面，按以下步骤配置：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;导航至 &lt;strong&gt;Configuration → S3 Endpoints&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;Add&lt;/strong&gt; 按钮&lt;/li&gt;
&lt;/ol&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;&lt;strong&gt;S3 Endpoint ID&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hetzner-obs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;PBS 内部标识符，可自定义&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Endpoint&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://&amp;lt;region&amp;gt;.your-objectstorage.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;用上面默认的&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Region&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hel1&lt;/code&gt; / &lt;code&gt;fsn1&lt;/code&gt; / &lt;code&gt;nbg1&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;根据创建桶时选择的区域填写&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Access Key&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;YOUR_ACCESS_KEY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;从 Credentials 页面获取&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Secret Key&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;YOUR_SECRET_KEY&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;从 Credentials 页面获取&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ol&gt;
&lt;li&gt;展开 &lt;strong&gt;Advanced&lt;/strong&gt; 选项&lt;/li&gt;
&lt;li&gt;将 &lt;strong&gt;Provider Quirks&lt;/strong&gt; 设置为 &lt;strong&gt;Skip&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/02/20260204154430214.avif&quot; alt=&quot;Create S3 Endpoint&quot; /&gt;&lt;/p&gt;
&lt;p&gt;:::tip[Provider Quirks 说明]
Hetzner 对象存储在某些 S3 API 实现上与 AWS S3 存在细微差异。启用 &quot;Skip&quot;  quirks 可以确保 PBS 正确处理这些差异，避免备份操作失败。
:::&lt;/p&gt;
&lt;h3&gt;创建数据存储&lt;/h3&gt;
&lt;p&gt;配置好 S3 端点后，创建实际的数据存储：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;导航至 &lt;strong&gt;Datastore&lt;/strong&gt; 菜单&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;Add Datastore&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;填写配置：&lt;/li&gt;
&lt;/ol&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;字段&lt;/th&gt;
&lt;th&gt;值&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hetzner-backup&lt;/code&gt;（可自定义）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Type&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;S3&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Local Path&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/var/lib/proxmox-backup/s3-cache&lt;/code&gt;（本地缓存目录）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;S3 Endpoint&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;选择刚才创建的 &lt;code&gt;hetzner-pbs&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bucket&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;下拉选择自动识别的存储桶&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/02/20260204154432954.avif&quot; alt=&quot;Create Datastore&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;点击 &lt;strong&gt;Add&lt;/strong&gt; 完成创建&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;PBS 会在本地维护一个缓存层，用于存储去重索引和最近访问的数据块，从而减少对对象存储的 API 调用次数，提升备份和恢复性能。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/02/20260204154615833.avif&quot; alt=&quot;Cache&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;第五部分：PVE 集成与备份配置&lt;/h2&gt;
&lt;h3&gt;创建 PBS 备份用户&lt;/h3&gt;
&lt;p&gt;为了遵循最小权限原则，建议为 PVE 连接创建专用用户：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在 PBS 中，导航至 &lt;strong&gt;Configuration → Access Control → User Management&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;Add&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;填写用户信息：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;User name&lt;/strong&gt;: &lt;code&gt;dataguard&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Realm&lt;/strong&gt;: &lt;code&gt;pbs&lt;/code&gt;（本地认证）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;设置强密码并记录&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;配置用户权限&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;进入 &lt;strong&gt;Permissions&lt;/strong&gt; 标签&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;Add → User Permission&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;配置：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Path&lt;/strong&gt;: &lt;code&gt;/hetzner-backup&lt;/code&gt;（选择创建的数据存储）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User&lt;/strong&gt;: &lt;code&gt;dataguard@pbs&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Role&lt;/strong&gt;: &lt;strong&gt;DatastoreBackup&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;此角色允许用户创建、读取和删除备份，但无法修改 PBS 系统配置。&lt;/p&gt;
&lt;h3&gt;在 PVE 中添加 PBS 存储&lt;/h3&gt;
&lt;p&gt;登录 PVE Web 界面：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;导航至 &lt;strong&gt;Datacenter → Storage → Add → Proxmox Backup Server&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;填写配置：&lt;/li&gt;
&lt;/ol&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;字段&lt;/th&gt;
&lt;th&gt;值&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ID&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pbs-hetzner&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Server&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;PBS 服务器 IP 或域名&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Username&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dataguard@pbs&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Password&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;上述设置的密码&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Datastore&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;hetzner-backup&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Fingerprint&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;从 PBS 证书页面获取的 SHA-256 指纹&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/02/20260204154646307.avif&quot; alt=&quot;Get Fingerprint&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/02/20260204154652817.avif&quot; alt=&quot;ADD Storage&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/02/20260204154656334.avif&quot; alt=&quot;Add Storage Success&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;点击 &lt;strong&gt;Add&lt;/strong&gt; 完成添加&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;配置虚拟机备份任务&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;选择目标节点，进入 &lt;strong&gt;Backup&lt;/strong&gt; 标签&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;Add&lt;/strong&gt; 创建备份任务&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/02/20260204154803391.avif&quot; alt=&quot;create backup&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/02/20260204154939254.avif&quot; alt=&quot;backup task&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;基本设置：&lt;/strong&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Storage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pbs-hetzner&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Schedule&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0 2 * * *&lt;/code&gt;（每天凌晨 2 点）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Selection&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;选择需要备份的 VM/CT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mode&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Snapshot&lt;/strong&gt;（推荐，零停机）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Compression&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;ZSTD&lt;/strong&gt;（平衡压缩率和速度）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Encryption&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;启用并设置加密密钥（可选但推荐）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;配置自动修剪策略&lt;/h3&gt;
&lt;p&gt;在 PBS Web 界面中，为数据存储配置保留策略：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;进入 &lt;strong&gt;Datastore → hetzner-backup → Prune &amp;amp; GC&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;Add&lt;/strong&gt; 创建保留规则&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;示例配置（3-2-1 备份策略变体）：&lt;/strong&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;&lt;strong&gt;Keep Daily&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;保留最近 7 天的每日备份&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Keep Weekly&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;保留最近 4 周的每周备份&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Keep Monthly&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;保留最近 6 个月的每月备份&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ol&gt;
&lt;li&gt;启用 &lt;strong&gt;Prune Jobs&lt;/strong&gt; 自动执行修剪&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;此配置确保：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;短期恢复：可回滚到最近 7 天内的任意一天&lt;/li&gt;
&lt;li&gt;中期恢复：可获取过去 4 周的周级快照&lt;/li&gt;
&lt;li&gt;长期归档：保留 6 个月的月度备份用于合规或审计&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;第六部分：验证与监控&lt;/h2&gt;
&lt;h3&gt;测试备份流程&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;在 PVE 中手动触发一次备份任务&lt;/li&gt;
&lt;li&gt;观察任务日志，确认无错误&lt;/li&gt;
&lt;li&gt;在 PBS Web 界面中验证备份快照已创建&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;测试恢复流程&lt;/h3&gt;
&lt;p&gt;定期进行恢复测试是备份策略的关键环节：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在 PBS 中选择备份快照，点击 &lt;strong&gt;Restore&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;选择目标 PVE 节点和存储&lt;/li&gt;
&lt;li&gt;执行恢复并验证虚拟机/容器可正常启动&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;监控与告警建议&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;备份任务通知&lt;/strong&gt;: 在 PVE 中配置通知邮箱，接收备份失败告警&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;存储容量监控&lt;/strong&gt;: 通过 Hetzner Console 监控对象存储使用量&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PBS 指标&lt;/strong&gt;: 访问 &lt;strong&gt;Metrics&lt;/strong&gt; 页面查看去重率、传输速率等关键指标&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;通过本教程，您已成功构建了一套基于 Hetzner CX33 和对象存储的 Proxmox Backup Server 解决方案。该架构具有以下特点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;成本效益&lt;/strong&gt;: CX33 实例+ 对象存储，远低于商业备份方案&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可靠性&lt;/strong&gt;: Hetzner 对象存储基于分布式架构，提供 99.9% 的可用性 SLA&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全性&lt;/strong&gt;: 支持传输层 TLS 加密和备份数据客户端加密&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动化&lt;/strong&gt;: 完整的定时备份和自动修剪，减少人工干预&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于生产环境，建议进一步考虑：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;配置 PBS 的冗余部署或定期异地复制&lt;/li&gt;
&lt;li&gt;启用备份加密并安全保管密钥&lt;/li&gt;
&lt;li&gt;建立定期的恢复演练机制&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;参考资源&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://pbs.proxmox.com/docs/&quot;&gt;Proxmox Backup Server 官方文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.hetzner.com/storage/object-storage/&quot;&gt;Hetzner 对象存储文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pve.proxmox.com/wiki/Backup_and_Restore&quot;&gt;PVE 备份最佳实践&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>category:教程</category><category>tag:Proxmox</category><category>tag:Hetzner</category><category>tag:备份</category><category>tag:对象存储</category><category>tag:PBS</category><category>tag:教程</category></item><item><title>玩转IX与Mkcloud互联互通</title><link>https://catcat.blog/2026/01/mkcloud-benchamrk-and-ix-cloud-connectivity.html</link><guid isPermaLink="true">https://catcat.blog/2026/01/mkcloud-benchamrk-and-ix-cloud-connectivity.html</guid><description>深入解析IX互联网交换中心的工作原理，对比IX与传统专线的优缺点，并实测Mkcloud的广港IEPL、沪日IPLC及IX专线产品性能表现</description><pubDate>Thu, 29 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;之前一直听群友之间传一款IX专线或者上云专线类似的产品，无奈我没有相关的机器和渠道，最终也只是停留在了解阶段。最近刚好有个机会，Mkcloud找我测试他们家的IX和专线等产品，本着学习的精神立马入手了相关IX的前置条件和浅浅的了解了一下。&lt;/p&gt;
&lt;h2&gt;什么是IX?&lt;/h2&gt;
&lt;p&gt;IX（Internet Exchange）或 IXP（Internet Exchange Point），中文全称是“互联网交换中心”。简单来说，就是多个网络运营商在一个物理位置建立的交换中心，用于交换网络流量。他是没有公网入口的专线，他的入口是IX交换中心的内网IP没有公网的路由，只与几个大厂如腾讯阿里华为等大厂交换路由。所以需要用户准备前置的入口来接入。&lt;/p&gt;
&lt;h2&gt;IX和传统专线的对比&lt;/h2&gt;
&lt;h3&gt;优点&lt;/h3&gt;
&lt;p&gt;IX 架构的一个显著优势在于其不暴露公网 IP。
由于业务运行在交换网络的内网地址之上，天然规避了来自公网的直接攻击面。相比依赖公网 IP 的网络形态，IX 环境下几乎不存在传统意义上的大规模公网 DDoS 风险。即便发生异常流量，也能够在交换层或成员网络内部快速定位来源。与此同时，发起攻击的成本被显著抬高——相关资源通常依赖云厂商或运营网络的强实名体系，无论是合规性还是经济成本，都远高于普通公网 DDoS 行为。&lt;/p&gt;
&lt;p&gt;同样由于不暴露公网地址，IX 网络几乎无法被公网扫描。
这意味着相关服务难以被自动化扫描工具发现，也就极大降低了被安全机构通报、误报或连带清退的风险。与部分依赖公网专线、频繁因扫描或流量异常触发通报的方案相比，IX 在稳定性与合规风险控制方面具有明显优势。(近期听说通报越来越频繁)&lt;/p&gt;
&lt;h3&gt;缺点&lt;/h3&gt;
&lt;p&gt;优点说完了，那缺点呢。尽管 IX 架构在安全性与合规风险控制方面具备明显优势，但传统专线模式所固有的一些问题并未消失，而是以另一种形式转移给了终端使用者。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;DDoS 防护责任前移至用户侧
在多数情况下，IX 专线并不自带公网级别的 DDoS 清洗能力，相关防护需要由用户自行配置或额外购买。对于普通云服务器而言，一旦遭遇攻击，往往会直接触发黑洞机制，且缺乏明确的前置 SLA 保障。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;通报风险并未消失，而是由用户直接承担
所谓“抗通报”，本质上并非问题被消解，而是合规与责任被前置到使用者一侧。当前主流云厂商普遍采用强实名制度，一旦出现违规流量或合规问题，追责路径十分清晰，最终责任需要由用户自行承担。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;时延表现略逊于极致优化的传统专线
在网络路径上，IX 架构通常需要经过一段前置网络才能进入专线内网，相比直连型传统专线，客观上会引入额外延迟。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;IX总结&lt;/h2&gt;
&lt;p&gt;综合来看，前文提到的这些不足，在 IX 相对低廉的定价面前其实是可以接受的(其实也不算低)。对于大多数个人用户而言，被大规模 DDoS 攻击的概率并不高。&lt;/p&gt;
&lt;p&gt;在实际使用中，IX 的主要门槛反而并不在链路本身，而在于前置资源的选择与对端配置能力。目前性价比较高、带宽较大的前置方案主要集中在阿里云和腾讯云的轻量实例（如标称 200M 带宽），但其带宽并不具备强保证，已有不少实例被限速至 20M 甚至 1M 的实际案例。另一方面，延迟表现更优的火山云并未提供轻量实例形态，其按量计费的流量成本（约 0.8 元/GB）在长期使用场景下显得较为高昂。&lt;/p&gt;
&lt;p&gt;因此，IX 的使用门槛更多体现在前置网络的稳定性、成本控制，以及用户自行完成链路与对端配置的能力上；而传统专线方案则已经在这些环节完成了预配置与整合，用户只需“即开即用”。这也是两种方案在使用体验上的核心差异所在。&lt;/p&gt;
&lt;h2&gt;Mkcloud介绍&lt;/h2&gt;
&lt;p&gt;以下介绍来自商家自述。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;公司名称：MKADMD&lt;/li&gt;
&lt;li&gt;成立时间：2023年11月25日&lt;/li&gt;
&lt;li&gt;运营时间：接近三年&lt;/li&gt;
&lt;li&gt;业务介绍：提供广港IEPL、沪日/沪港IPLC及IXP等多种跨境专线资源，全线产品均需实名认证并限正规用途，无论共享或独享带宽均配有独立IP&lt;/li&gt;
&lt;li&gt;产品介绍：https://www.mkcloud.net/index.php/knowledgebase/38 (我们是第一家发布以及售卖的ixp专线商家)&lt;/li&gt;
&lt;li&gt;TOS地址：https://www.mkcloud.net/index.php/announcements/2&lt;/li&gt;
&lt;li&gt;SLA说明：全部产品均无SLA保证，上一年出现突发故障约3次(不包含提前告知的网络维护等通知)，虽然无SLA保证，但是我们会尽力保证可用性。如需SLA保证也可以定制化&lt;/li&gt;
&lt;li&gt;退款政策：24小时内产品无质量问题不支持退款&lt;/li&gt;
&lt;li&gt;官方网站：https://www.mkcloud.net/&lt;/li&gt;
&lt;li&gt;官方交流群：https://t.me/mkcloudchat&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;转述一个他们对于正规用途的定义:我们对正规用途的定义是不进行回国等违法行为即为合规用途&lt;/p&gt;
&lt;h2&gt;测评&lt;/h2&gt;
&lt;h3&gt;测评环境&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;前置：火山引擎ECS&lt;/li&gt;
&lt;li&gt;带宽：2000M&lt;/li&gt;
&lt;li&gt;计费：按量计费 机器550/年，共享流量包 437/T/年&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/02/20260201214048128.avif&quot; alt=&quot;image-20260201214040914&quot; /&gt;&lt;/p&gt;
&lt;p&gt;提供测试的机器有  广港专线、沪日专线、深港ix专线、沪港ix专线、沪日ix专线。&lt;/p&gt;
&lt;p&gt;由于我没有买华南的火山包和机器，深港ix咱们就不看。其中广港专线、沪日专线是仅限一个省份连入的，这个需要额外注意。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;线路名称&lt;/th&gt;
&lt;th&gt;CPU&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;/th&gt;
&lt;th&gt;出口&lt;/th&gt;
&lt;th&gt;IPv4&lt;/th&gt;
&lt;th&gt;端内延迟&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;广港专线&lt;/td&gt;
&lt;td&gt;1核&lt;/td&gt;
&lt;td&gt;2GB&lt;/td&gt;
&lt;td&gt;20GB&lt;/td&gt;
&lt;td&gt;150M&lt;/td&gt;
&lt;td&gt;500GB&lt;/td&gt;
&lt;td&gt;腾讯广州八线 BGP&lt;/td&gt;
&lt;td&gt;香港 BGP&lt;/td&gt;
&lt;td&gt;独享 x2&lt;/td&gt;
&lt;td&gt;1–2 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;沪日专线&lt;/td&gt;
&lt;td&gt;1核&lt;/td&gt;
&lt;td&gt;2GB&lt;/td&gt;
&lt;td&gt;20GB&lt;/td&gt;
&lt;td&gt;150M&lt;/td&gt;
&lt;td&gt;500GB&lt;/td&gt;
&lt;td&gt;上海电信&lt;/td&gt;
&lt;td&gt;日本 BGP&lt;/td&gt;
&lt;td&gt;独享 x2&lt;/td&gt;
&lt;td&gt;25–28 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;沪港 IX 专线&lt;/td&gt;
&lt;td&gt;2核&lt;/td&gt;
&lt;td&gt;4GB&lt;/td&gt;
&lt;td&gt;40GB&lt;/td&gt;
&lt;td&gt;500M&lt;/td&gt;
&lt;td&gt;2TB&lt;/td&gt;
&lt;td&gt;云厂优化网络通道&lt;/td&gt;
&lt;td&gt;香港 BGP&lt;/td&gt;
&lt;td&gt;独享 x2&lt;/td&gt;
&lt;td&gt;21 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;沪日 IX 专线&lt;/td&gt;
&lt;td&gt;2核&lt;/td&gt;
&lt;td&gt;4GB&lt;/td&gt;
&lt;td&gt;40GB&lt;/td&gt;
&lt;td&gt;200M&lt;/td&gt;
&lt;td&gt;1TB&lt;/td&gt;
&lt;td&gt;云厂优化网络通道&lt;/td&gt;
&lt;td&gt;日本 BGP&lt;/td&gt;
&lt;td&gt;独享 x2&lt;/td&gt;
&lt;td&gt;25–28 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;深港 IX 专线&lt;/td&gt;
&lt;td&gt;2核&lt;/td&gt;
&lt;td&gt;4GB&lt;/td&gt;
&lt;td&gt;40GB&lt;/td&gt;
&lt;td&gt;500M&lt;/td&gt;
&lt;td&gt;2TB&lt;/td&gt;
&lt;td&gt;云厂优化网络通道&lt;/td&gt;
&lt;td&gt;香港 BGP&lt;/td&gt;
&lt;td&gt;独享 x2&lt;/td&gt;
&lt;td&gt;1~2ms&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;入口延迟,时间短就没放grafana，后面我会补上。
&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260129175110667.avif&quot; alt=&quot;image-20260129175109780&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;火山ECS&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;Basic System Information:
---------------------------------
Uptime     : 0 days, 0 hours, 41 minutes
Processor  : AMD EPYC 9Y95 192-Core Processor
CPU cores  : 2 @ 2246.622 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ❌ Disabled
RAM        : 3.8 GiB
Swap       : 0.0 KiB
Disk       : 39.3 GiB
Distro     : Debian GNU/Linux 12 (bookworm)
Kernel     : 6.1.0-18-amd64
VM Type    : KVM
IPv4/IPv6  : ✔ Online / ❌ Offline

IPv4 Network Information:
---------------------------------
ISP        : BITNET
ASN        : AS137718 Beijing Volcano Engine Technology Co., Ltd.
Host       : Beijing Bitone United Networks Technology Service Co., Ltd.
Location   : Beijing, Beijing (BJ)
Country    : China

fio Disk Speed Tests (Mixed R/W 50/50) (Partition /dev/vda2):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 4.68 MB/s     (1.1k) | 57.82 MB/s     (903)
Write      | 4.71 MB/s     (1.1k) | 58.37 MB/s     (912)
Total      | 9.40 MB/s     (2.3k) | 116.19 MB/s   (1.8k)
           |                      |                     
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 55.77 MB/s     (108) | 54.98 MB/s      (53)
Write      | 58.68 MB/s     (114) | 58.80 MB/s      (57)
Total      | 114.45 MB/s    (222) | 113.79 MB/s    (110)

Geekbench 5 Benchmark Test:
---------------------------------
Test            | Value                         
                |                               
Single Core     | 1802                          
Multi Core      | 2335                          
Full Test       | https://browser.geekbench.com/v5/cpu/24072017

YABS completed in 12 min 21 sec

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;上海IX-香港BGP&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;Basic System Information:
---------------------------------
Uptime     : 0 days, 23 hours, 10 minutes
Processor  : AMD EPYC-Rome Processor
CPU cores  : 2 @ 2794.750 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ❌ Disabled
RAM        : 3.8 GiB
Swap       : 0.0 KiB
Disk       : 39.3 GiB
Distro     : Debian GNU/Linux 13 (trixie)
Kernel     : 6.12.38+deb13-amd64
VM Type    : KVM
IPv4/IPv6  : ✔ Online / ❌ Offline

IPv4 Network Information:
---------------------------------
ISP        : Nearoute Limited
ASN        : AS147293 Nearoute Limited.
Host       : Private Customer
Location   : Hong Kong, Kowloon ()
Country    : Hong Kong

fio Disk Speed Tests (Mixed R/W 50/50) (Partition /dev/vda3):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 51.96 MB/s   (12.9k) | 143.03 MB/s   (2.2k)
Write      | 52.04 MB/s   (13.0k) | 143.79 MB/s   (2.2k)
Total      | 104.01 MB/s  (26.0k) | 286.82 MB/s   (4.4k)
           |                      |                     
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 118.22 MB/s    (230) | 90.71 MB/s      (88)
Write      | 124.51 MB/s    (243) | 96.75 MB/s      (94)
Total      | 242.73 MB/s    (473) | 187.46 MB/s    (182)

Geekbench 5 Benchmark Test:
---------------------------------
Test            | Value                         
                |                               
Single Core     | 921                           
Multi Core      | 1818                          
Full Test       | https://browser.geekbench.com/v5/cpu/24072348
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260129163827175.avif&quot; alt=&quot;image-20260129163826530&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;上海IX-日本BGP&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;Basic System Information:
---------------------------------
Uptime     : 0 days, 23 hours, 13 minutes
Processor  : AMD EPYC-Rome Processor
CPU cores  : 2 @ 2794.750 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ❌ Disabled
RAM        : 3.8 GiB
Swap       : 0.0 KiB
Disk       : 39.3 GiB
Distro     : Debian GNU/Linux 13 (trixie)
Kernel     : 6.12.38+deb13-amd64
VM Type    : KVM
IPv4/IPv6  : ✔ Online / ❌ Offline

IPv4 Network Information:
---------------------------------
ISP        : Nearoute Limited
ASN        : AS51847 Nearoute Limited
Location   : Tokyo, Tokyo (13)
Country    : Japan

fio Disk Speed Tests (Mixed R/W 50/50) (Partition /dev/vda3):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 52.02 MB/s   (13.0k) | 65.04 MB/s    (1.0k)
Write      | 52.10 MB/s   (13.0k) | 65.43 MB/s    (1.0k)
Total      | 104.12 MB/s  (26.0k) | 130.47 MB/s   (2.0k)
           |                      |                     
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 144.98 MB/s    (283) | 178.37 MB/s    (174)
Write      | 152.69 MB/s    (298) | 190.25 MB/s    (185)
Total      | 297.67 MB/s    (581) | 368.63 MB/s    (359)

Geekbench 5 Benchmark Test:
---------------------------------
Test            | Value                         
                |                               
Single Core     | 925                           
Multi Core      | 1757                          
Full Test       | https://browser.geekbench.com/v5/cpu/24072349

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260129163745554.avif&quot; alt=&quot;image-20260129163744890&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260129175836826.avif&quot; alt=&quot;image-20260129175836377&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;广港IEPL&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;Basic System Information:
---------------------------------
Uptime     : 0 days, 23 hours, 7 minutes
Processor  : AMD EPYC-Rome Processor
CPU cores  : 1 @ 2395.500 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ❌ Disabled
RAM        : 1.9 GiB
Swap       : 0.0 KiB
Disk       : 19.6 GiB
Distro     : Debian GNU/Linux 13 (trixie)
Kernel     : 6.12.38+deb13-amd64
VM Type    : KVM
IPv4/IPv6  : ✔ Online / ❌ Offline

IPv4 Network Information:
---------------------------------
ISP        : Nearoute Limited
ASN        : AS147293 Nearoute Limited.
Location   : Hong Kong, Kowloon ()
Country    : Hong Kong

fio Disk Speed Tests (Mixed R/W 50/50) (Partition /dev/vda3):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 121.26 MB/s  (30.3k) | 195.38 MB/s   (3.0k)
Write      | 121.58 MB/s  (30.3k) | 196.41 MB/s   (3.0k)
Total      | 242.85 MB/s  (60.7k) | 391.80 MB/s   (6.1k)
           |                      |                     
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 201.44 MB/s    (393) | 208.35 MB/s    (203)
Write      | 212.15 MB/s    (414) | 222.22 MB/s    (217)
Total      | 413.59 MB/s    (807) | 430.58 MB/s    (420)

Geekbench 5 Benchmark Test:
---------------------------------
Test            | Value                         
                |                               
Single Core     | 735                           
Multi Core      | 630                           
Full Test       | https://browser.geekbench.com/v5/cpu/24072352

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260129163906453.avif&quot; alt=&quot;image-20260129163905906&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;沪日IPLC&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;Basic System Information:
---------------------------------
Uptime     : 0 days, 23 hours, 12 minutes
Processor  : AMD EPYC-Rome Processor
CPU cores  : 1 @ 2794.750 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ❌ Disabled
RAM        : 1.9 GiB
Swap       : 0.0 KiB
Disk       : 19.6 GiB
Distro     : Debian GNU/Linux 13 (trixie)
Kernel     : 6.12.38+deb13-amd64
VM Type    : KVM
IPv4/IPv6  : ✔ Online / ❌ Offline

IPv4 Network Information:
---------------------------------
ISP        : Nearoute Limited
ASN        : AS51847 Nearoute Limited
Host       : Private Customer
Location   : Tokyo, Tokyo (13)
Country    : Japan

fio Disk Speed Tests (Mixed R/W 50/50) (Partition /dev/vda3):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 101.10 MB/s  (25.2k) | 197.13 MB/s   (3.0k)
Write      | 101.37 MB/s  (25.3k) | 198.17 MB/s   (3.0k)
Total      | 202.48 MB/s  (50.6k) | 395.31 MB/s   (6.1k)
           |                      |                     
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 210.97 MB/s    (412) | 214.51 MB/s    (209)
Write      | 222.18 MB/s    (433) | 228.80 MB/s    (223)
Total      | 433.16 MB/s    (845) | 443.32 MB/s    (432)

Geekbench 5 Benchmark Test:
---------------------------------
Test            | Value                         
                |                               
Single Core     | 930                           
Multi Core      | 948                           
Full Test       | https://browser.geekbench.com/v5/cpu/24072355

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260129163943030.avif&quot; alt=&quot;image-20260129163942379&quot; /&gt;&lt;/p&gt;
&lt;p&gt;到日本aws延迟
&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260129175746362.avif&quot; alt=&quot;image-20260129175745684&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;节点测速&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/02/20260201214302632.avif&quot; alt=&quot;image-20260201214301686&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260129191618773.avif&quot; alt=&quot;image-20260129191611288&quot; /&gt;&lt;/p&gt;
</content:encoded><category>category:测评</category><category>tag:VPS测评</category><category>tag:专线</category><category>tag:IX</category><category>tag:IEPL</category><category>tag:IPLC</category><category>tag:Mkcloud</category></item><item><title>qBitWebUI：现代化的 qBittorrent 多实例管理界面</title><link>https://catcat.blog/2026/01/qbitwebui-modern-qbittorrent-web-interface.html</link><guid isPermaLink="true">https://catcat.blog/2026/01/qbitwebui-modern-qbittorrent-web-interface.html</guid><description>介绍 qBitWebUI - 一个功能强大的 qBittorrent Web 管理工具,支持多实例管理、Prowlarr 集成和 PWA,提供 Docker 和 Dokploy 两种便捷部署方式</description><pubDate>Fri, 23 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;引言&lt;/h2&gt;
&lt;p&gt;qBittorrent 作为一款开源的 BitTorrent 客户端,凭借其轻量、无广告和跨平台的特性,深受用户喜爱。然而,当你需要管理多个 qBittorrent 实例时,在不同的 Web UI 之间来回切换就会变得非常繁琐。&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;Maciejonos/qbitwebui&quot;}&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/Maciejonos/qbitwebui&quot;&gt;qBitWebUI&lt;/a&gt; 正是为了解决这个痛点而诞生的现代化管理界面。它不仅提供了统一的多实例管理能力,还带来了更现代化的用户体验、PWA 支持、Prowlarr 集成等强大功能。&lt;/p&gt;
&lt;h2&gt;项目介绍&lt;/h2&gt;
&lt;p&gt;qBitWebUI 是一个基于 Web 的 qBittorrent 管理工具,允许你从单一界面管理多个 qBittorrent 实例。项目采用现代化的技术栈构建,提供流畅的用户体验。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;核心特性:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;多实例管理&lt;/strong&gt; - 在一个界面中管理所有 qBittorrent 实例&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实时监控&lt;/strong&gt; - 自动刷新种子状态和下载进度&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全认证&lt;/strong&gt; - AES-256-GCM 加密存储连接凭证&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prowlarr 集成&lt;/strong&gt; - 直接搜索索引器并添加种子&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PWA 支持&lt;/strong&gt; - 可安装为移动应用,支持离线访问&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多主题支持&lt;/strong&gt; - Catppuccin、Gruvbox、Dracula、Nord 等主题&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文件浏览器&lt;/strong&gt; - 直接浏览和管理下载目录&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RSS 管理&lt;/strong&gt; - 订阅 RSS 源并设置自动下载规则&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;p&gt;项目使用 React 19、TypeScript、Tailwind CSS v4、Vite、TanStack Query、Hono、SQLite 和 Bun 构建,确保了现代化的开发体验和优秀的性能表现。&lt;/p&gt;
&lt;h2&gt;核心优势&lt;/h2&gt;
&lt;h3&gt;多实例统一管理&lt;/h3&gt;
&lt;p&gt;这是 qBitWebUI 最核心的功能。如果你有多台服务器运行 qBittorrent,传统方式需要记住每个实例的地址和端口,然后在浏览器标签页之间来回切换。qBitWebUI 让你可以:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在一个界面中添加和管理所有 qBittorrent 实例&lt;/li&gt;
&lt;li&gt;快速切换不同实例,查看各自的下载状态&lt;/li&gt;
&lt;li&gt;为每个实例设置独立的速度限制(全局和备用速度)&lt;/li&gt;
&lt;li&gt;统一的操作体验,无需适应不同版本的 UI&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;现代化的用户界面&lt;/h3&gt;
&lt;p&gt;相比 qBittorrent 原生的 Web UI,qBitWebUI 提供了更加现代化和美观的界面:&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;p&gt;:::tip
最最最重要的一点：如果你用过原版UI，可以发现他经常大批量种子卡死的情况。（PT 玩家肯定知道我在说什么）
:::&lt;/p&gt;
&lt;h2&gt;UI 预览和使用&lt;/h2&gt;
&lt;h3&gt;主页&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260123115111765.avif&quot; alt=&quot;Homepage&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;登录注册页面&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260123114453772.avif&quot; alt=&quot;login&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;添加节点页面&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260123114500472.avif&quot; alt=&quot;Add node&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;种子页面&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260123114507304.avif&quot; alt=&quot;seed&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;管理页面&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260123114514891.avif&quot; alt=&quot;manager page&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;工具页面&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260123114533774.avif&quot; alt=&quot;Tools&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;部署方式&lt;/h2&gt;
&lt;p&gt;qBitWebUI 提供了多种部署方式,这里介绍两种最便捷的方法:Docker Compose 和 Dokploy 一键部署。&lt;/p&gt;
&lt;h3&gt;方式一: Docker Compose 部署&lt;/h3&gt;
&lt;h4&gt;1. 创建 docker-compose.yml&lt;/h4&gt;
&lt;p&gt;首先创建一个目录用于存放配置文件,然后创建 &lt;code&gt;docker-compose.yml&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;version: &quot;3.8&quot;

services:
  qbitwebui:
    image: ghcr.io/maciejonos/qbitwebui:latest
    restart: unless-stopped
    ports:
      - &quot;3000:3000&quot;
    environment:
      # 必需: 加密密钥,用于存储凭证(至少 32 个字符)
      - ENCRYPTION_KEY=your-secret-key-min-32-chars-long
      # 可选: 服务器端口(默认: 3000)
      - PORT=3000
      # 可选: 数据库位置(默认: ./data/qbitwebui.db)
      - DATABASE_PATH=/data/qbitwebui.db
      # 可选: Salt 文件位置(默认: ./data/.salt)
      - SALT_PATH=/data/.salt
      # 可选: 允许自签名证书(默认: false)
      # - ALLOW_SELF_SIGNED_CERTS=false
      # 可选: 禁用认证/登录,单用户模式(默认: false)
      # - DISABLE_AUTH=false
      # 可选: 禁用新用户注册,创建默认管理员账户(默认: false)
      # - DISABLE_REGISTRATION=false
      # 可选: 启用文件浏览器,设置下载路径
      # - DOWNLOADS_PATH=/downloads
    volumes:
      - qbitwebui_data:/data
      # 可选: 挂载下载目录以启用文件浏览器功能
      # 只读挂载(仅浏览和下载):
      # - /path/to/your/downloads:/downloads:ro
      # 读写挂载(允许删除/移动/复制/重命名):
      # - /path/to/your/downloads:/downloads
    healthcheck:
      test: [&quot;CMD&quot;, &quot;wget&quot;, &quot;--no-verbose&quot;, &quot;--tries=1&quot;, &quot;--spider&quot;, &quot;http://localhost:3000&quot;]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 10s

volumes:
  qbitwebui_data:
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;2. 生成加密密钥&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;ENCRYPTION_KEY&lt;/code&gt; 是必需的环境变量,用于加密存储 qBittorrent 的连接凭证。你可以使用以下命令生成一个安全的密钥:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;openssl rand -hex 32
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;将生成的密钥替换 &lt;code&gt;docker-compose.yml&lt;/code&gt; 中的 &lt;code&gt;your-secret-key-min-32-chars-long&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;3. 启动服务&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;4. 访问界面&lt;/h4&gt;
&lt;p&gt;启动后,在浏览器中访问 &lt;code&gt;http://your-server-ip:3000&lt;/code&gt;,首次访问会提示注册账户。&lt;/p&gt;
&lt;h4&gt;5. 添加 qBittorrent 实例&lt;/h4&gt;
&lt;p&gt;登录后,点击添加实例按钮,填写以下信息:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;名称&lt;/strong&gt;: 给实例起个名字(如 &quot;家庭 NAS&quot;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;URL&lt;/strong&gt;: qBittorrent Web UI 地址(如 &lt;code&gt;http://192.168.1.100:8080&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用户名&lt;/strong&gt;: qBittorrent 的用户名&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;密码&lt;/strong&gt;: qBittorrent 的密码&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;保存后即可开始管理该实例。&lt;/p&gt;
&lt;h3&gt;方式二: Dokploy 一键部署&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://dokploy.com/&quot;&gt;Dokploy&lt;/a&gt; 是一个开源的 PaaS 平台,类似于 Vercel/Netlify,但可以自托管。如果你已经在使用 Dokploy,可以通过导入模板的方式一键部署 qBitWebUI。&lt;/p&gt;
&lt;h4&gt;使用模板部署&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注&lt;/strong&gt;: Dokploy 模板目前已提交到官方模板库(&lt;a href=&quot;https://github.com/Dokploy/templates/pull/675&quot;&gt;PR #675&lt;/a&gt;),等待合并后可以直接在模板市场中找到。在此之前,你也可以手动导入模板配置。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260123114327524.avif&quot; alt=&quot;dokply import&quot; /&gt;&lt;/p&gt;
&lt;p&gt;复制下面的导入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ewogICJjb21wb3NlIjogInZlcnNpb246IFwiMy44XCJcblxuc2VydmljZXM6XG4gIHFiaXR3ZWJ1aTpcbiAgICBpbWFnZTogZ2hjci5pby9tYWNpZWpvbm9zL3FiaXR3ZWJ1aTpsYXRlc3RcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGVudmlyb25tZW50OlxuICAgICAgIyBSZXF1aXJlZDogRW5jcnlwdGlvbiBrZXkgZm9yIHN0b3JpbmcgY3JlZGVudGlhbHMgKG1pbiAzMiBjaGFycylcbiAgICAgIC0gRU5DUllQVElPTl9LRVk9JHtFTkNSWVBUSU9OX0tFWX1cbiAgICAgICMgT3B0aW9uYWw6IFNlcnZlciBwb3J0IChkZWZhdWx0OiAzMDAwKVxuICAgICAgLSBQT1JUPSR7UE9SVDotMzAwMH1cbiAgICAgICMgT3B0aW9uYWw6IERhdGFiYXNlIGxvY2F0aW9uIChkZWZhdWx0OiAuL2RhdGEvcWJpdHdlYnVpLmRiKVxuICAgICAgLSBEQVRBQkFTRV9QQVRIPSR7REFUQUJBU0VfUEFUSDotL2RhdGEvcWJpdHdlYnVpLmRifVxuICAgICAgIyBPcHRpb25hbDogU2FsdCBmaWxlIGxvY2F0aW9uIChkZWZhdWx0OiAuL2RhdGEvLnNhbHQpXG4gICAgICAtIFNBTFRfUEFUSD0ke1NBTFRfUEFUSDotL2RhdGEvLnNhbHR9XG4gICAgICAjIE9wdGlvbmFsOiBBbGxvdyBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZXMgZm9yIHFCaXR0b3JyZW50IGluc3RhbmNlcyAoZGVmYXVsdDogZmFsc2UpXG4gICAgICAjIC0gQUxMT1dfU0VMRl9TSUdORURfQ0VSVFM9JHtBTExPV19TRUxGX1NJR05FRF9DRVJUUzotZmFsc2V9XG4gICAgICAjIE9wdGlvbmFsOiBEaXNhYmxlIGF1dGhlbnRpY2F0aW9uL2xvZ2luIChzaW5nbGUtdXNlciBtb2RlKSAoZGVmYXVsdDogZmFsc2UpXG4gICAgICAjIC0gRElTQUJMRV9BVVRIPSR7RElTQUJMRV9BVVRIOi1mYWxzZX1cbiAgICAgICMgT3B0aW9uYWw6IERpc2FibGUgbmV3IHJlZ2lzdHJhdGlvbnMsIGNyZWF0ZXMgZGVmYXVsdCBhZG1pbiBhY2NvdW50IChkZWZhdWx0OiBmYWxzZSlcbiAgICAgICMgLSBESVNBQkxFX1JFR0lTVFJBVElPTj0ke0RJU0FCTEVfUkVHSVNUUkFUSU9OOi1mYWxzZX1cbiAgICAgICMgT3B0aW9uYWw6IEVuYWJsZSBmaWxlIGJyb3dzZXIgYnkgc2V0dGluZyBkb3dubG9hZHMgcGF0aFxuICAgICAgIyAtIERPV05MT0FEU19QQVRIPS9kb3dubG9hZHNcbiAgICB2b2x1bWVzOlxuICAgICAgLSBxYml0d2VidWlfZGF0YTovZGF0YVxuICAgICAgIyBPcHRpb25hbDogTW91bnQgZG93bmxvYWRzIGRpcmVjdG9yeSBmb3IgZmlsZSBicm93c2VyIGZlYXR1cmVcbiAgICAgICMgUmVhZC1vbmx5IG1vdW50IChicm93c2UgJiBkb3dubG9hZCBvbmx5KTpcbiAgICAgICMgLSAvcGF0aC90by95b3VyL2Rvd25sb2FkczovZG93bmxvYWRzOnJvXG4gICAgICAjIE9yIHJlYWQtd3JpdGUgbW91bnQgKGVuYWJsZXMgZGVsZXRlL21vdmUvY29weS9yZW5hbWUpOlxuICAgICAgIyAtIC9wYXRoL3RvL3lvdXIvZG93bmxvYWRzOi9kb3dubG9hZHNcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRFwiLCBcIndnZXRcIiwgXCItLW5vLXZlcmJvc2VcIiwgXCItLXRyaWVzPTFcIiwgXCItLXNwaWRlclwiLCBcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMFwiXVxuICAgICAgaW50ZXJ2YWw6IDMwc1xuICAgICAgdGltZW91dDogNXNcbiAgICAgIHJldHJpZXM6IDNcbiAgICAgIHN0YXJ0X3BlcmlvZDogMTBzXG5cbnZvbHVtZXM6XG4gIHFiaXR3ZWJ1aV9kYXRhOlxuIiwKICAiY29uZmlnIjogIlt2YXJpYWJsZXNdXG5tYWluX2RvbWFpbiA9IFwiJHtkb21haW59XCJcbmVuY3J5cHRpb25fa2V5ID0gXCIke3Bhc3N3b3JkOjMyfVwiXG5cbltjb25maWddXG5bW2NvbmZpZy5kb21haW5zXV1cbnNlcnZpY2VOYW1lID0gXCJxYml0d2VidWlcIlxucG9ydCA9IDMwMDBcbmhvc3QgPSBcIiR7bWFpbl9kb21haW59XCJcbnBhdGggPSBcIi9cIlxuXG5bY29uZmlnLmVudl1cbkVOQ1JZUFRJT05fS0VZID0gXCIke2VuY3J5cHRpb25fa2V5fVwiXG5QT1JUID0gXCIzMDAwXCJcbkRBVEFCQVNFX1BBVEggPSBcIi9kYXRhL3FiaXR3ZWJ1aS5kYlwiXG5TQUxUX1BBVEggPSBcIi9kYXRhLy5zYWx0XCJcbiIKfQ==

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你正在寻找一个更好的 qBittorrent 管理方案,qBitWebUI 绝对值得一试。&lt;/p&gt;
&lt;h2&gt;相关链接&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;项目地址: &lt;a href=&quot;https://github.com/Maciejonos/qbitwebui&quot;&gt;https://github.com/Maciejonos/qbitwebui&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Docker 镜像: &lt;a href=&quot;https://github.com/Maciejonos/qbitwebui/pkgs/container/qbitwebui&quot;&gt;ghcr.io/maciejonos/qbitwebui&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Dokploy 模板 PR: &lt;a href=&quot;https://github.com/Dokploy/templates/pull/675&quot;&gt;https://github.com/Dokploy/templates/pull/675&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;模板预览: &lt;a href=&quot;https://yuri-nagasaki-add-qbitwebui.templates-70k.pages.dev/?q=qBittorrent+Web+UI&quot;&gt;qBitWebUI Template Preview&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>category:自托管</category><category>tag:qBittorrent</category><category>tag:Docker</category><category>tag:Dokploy</category><category>tag:WebUI</category><category>tag:自托管</category><category>tag:BT下载</category></item><item><title>解决三星 990 Pro SSD ext4 文件系统只读问题</title><link>https://catcat.blog/2026/01/samsung-990-pro-ext4-readonly-fix.html</link><guid isPermaLink="true">https://catcat.blog/2026/01/samsung-990-pro-ext4-readonly-fix.html</guid><description>记录三星 990 Pro SSD 在 Linux 系统下出现 ext4 文件系统只读和掉盘问题的排查与解决方案，包括固件更新和内核参数调整</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;问题背景&lt;/h2&gt;
&lt;p&gt;三星 990 Pro SSD 的 Linux 系统上遇到了 ext4 文件系统突然变为只读（read-only）的问题，或者系统日志中出现掉盘现象，但硬件检测工具却没有报告任何错误，那么你可能遇到了三星 SSD 的一个已知问题。&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;系统日志中可能出现 I/O 错误&lt;/li&gt;
&lt;li&gt;使用 &lt;code&gt;smartctl&lt;/code&gt; 等工具检查硬盘健康状态显示正常&lt;/li&gt;
&lt;li&gt;特别是固件版本为 &lt;code&gt;4B2QJXD7&lt;/code&gt; 的三星 990 Pro 更容易出现此问题 或者之前的 版本。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;具体表现为以下图片类似的症状，(重启服务器后症状消失，类似掉盘)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260121102910826.avif&quot; alt=&quot;Ext4 只读问题&quot; /&gt;&lt;/p&gt;
&lt;p&gt;:::warning
在进行任何操作之前，请务必备份重要数据！虽然这个问题通常不会导致数据丢失，但安全起见还是要做好备份。
:::&lt;/p&gt;
&lt;h2&gt;问题排查&lt;/h2&gt;
&lt;h3&gt;1. 检查文件系统状态&lt;/h3&gt;
&lt;p&gt;首先确认文件系统是否真的变为只读：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 查看挂载状态
mount | grep &quot;ro,&quot;

# 尝试创建测试文件
touch /path/to/mountpoint/test.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果看到 &lt;code&gt;Read-only file system&lt;/code&gt; 错误，说明文件系统确实变为只读了。&lt;/p&gt;
&lt;h3&gt;2. 查看系统日志&lt;/h3&gt;
&lt;p&gt;检查系统日志以获取更多信息：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 查看内核日志
dmesg | grep -i &quot;error\|ext4\|nvme&quot;

# 查看系统日志
journalctl -xe | grep -i &quot;error\|ext4\|nvme&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3. 检查 SSD 信息&lt;/h3&gt;
&lt;p&gt;查看 SSD 的型号和固件版本：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 查看 NVMe 设备信息
sudo nvme list

# 查看详细信息
sudo nvme id-ctrl /dev/nvme0

# 使用 smartctl 查看
sudo smartctl -a /dev/nvme0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你的设备是三星 990 Pro，并且固件版本是 &lt;code&gt;4B2QJXD7&lt;/code&gt; 或类似版本，那么很可能是遇到了三星 SSD 的电源管理 bug。&lt;/p&gt;
&lt;h2&gt;解决方案&lt;/h2&gt;
&lt;p&gt;这个问题有两个主要的解决方案，建议先尝试方案二（内核参数修复），因为它更简单且立即生效。如果问题依然存在，再考虑更新固件。&lt;/p&gt;
&lt;h3&gt;方案一：更新 SSD 固件&lt;/h3&gt;
&lt;p&gt;三星为 Windows 用户提供了 Samsung Magician 软件，但 Linux 用户可以使用三星提供的可启动 ISO 镜像来更新固件。&lt;/p&gt;
&lt;h4&gt;步骤 1：下载固件&lt;/h4&gt;
&lt;p&gt;访问三星官方固件下载页面：&lt;/p&gt;
&lt;p&gt;https://semiconductor.samsung.com/consumer-storage/support/tools/&lt;/p&gt;
&lt;p&gt;找到适合你的 SSD 型号的最新固件 ISO 镜像并下载。&lt;/p&gt;
&lt;h4&gt;步骤 2：提取并运行固件更新工具&lt;/h4&gt;
&lt;p&gt;你不需要刻录 CD 或制作启动 U 盘，可以直接在 Linux 系统中提取并运行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 下载 ISO 镜像（替换为实际的下载链接）
curl -OL https://semiconductor.samsung.com/.../firmware.iso

# 提取 initrd
bsdtar -xf firmware.iso initrd

# 提取 root 文件系统
bsdtar -xf initrd root

# 运行固件更新工具
sudo ./root/fumagician/fumagician
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260121103220971.avif&quot; alt=&quot;Upgrade Firmware 1&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260121103258252.avif&quot; alt=&quot;Upgrade Firmware 2&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;步骤 3：重启系统&lt;/h4&gt;
&lt;p&gt;固件更新完成后，需要重启系统使更新生效：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;方案二：内核参数修复（推荐）&lt;/h3&gt;
&lt;p&gt;这是一个更简单且经过验证的永久性解决方案。问题的根源是三星 SSD 的电源管理功能在 Linux 下存在兼容性问题，通过禁用 NVMe 电源状态管理可以彻底解决。&lt;/p&gt;
&lt;p&gt;:::tip
这个方案已经在多个受影响的系统上验证有效，是最推荐的解决方法。
:::&lt;/p&gt;
&lt;h4&gt;步骤 1：编辑 GRUB 配置&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo nano /etc/default/grub
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;找到 &lt;code&gt;GRUB_CMDLINE_LINUX_DEFAULT&lt;/code&gt; 这一行，在引号内添加以下参数：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nvme_core.default_ps_max_latency_us=0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改后的示例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet splash nvme_core.default_ps_max_latency_us=0&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;步骤 2：更新 GRUB 配置&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;# Debian/Ubuntu 系统
sudo update-grub

# RHEL/CentOS/Fedora 系统
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

# Arch Linux 系统
sudo grub-mkconfig -o /boot/grub/grub.cfg
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;步骤 3：重启系统&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;步骤 4：验证参数已生效&lt;/h4&gt;
&lt;p&gt;重启后，验证内核参数是否已经生效：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cat /proc/cmdline | grep nvme_core
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;你应该能看到 &lt;code&gt;nvme_core.default_ps_max_latency_us=0&lt;/code&gt; 出现在输出中。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260121103343396.avif&quot; alt=&quot;image-20260121103343206&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;问题原因&lt;/h2&gt;
&lt;p&gt;这个问题是三星 SSD 在 Linux 系统下的一个老问题的复现。多年来，不同型号的三星 SSD（包括 970 EVO、980 Pro 等）都曾出现过类似的问题。&lt;/p&gt;
&lt;p&gt;根本原因是三星 SSD 的电源状态管理（Power State Management）功能与 Linux 内核的 NVMe 驱动存在兼容性问题。当 SSD 进入某些电源状态时，可能会导致 I/O 超时，进而触发文件系统的保护机制，将文件系统切换为只读模式以防止数据损坏。&lt;/p&gt;
&lt;p&gt;通过设置 &lt;code&gt;nvme_core.default_ps_max_latency_us=0&lt;/code&gt;，我们禁用了 NVMe 设备的自动电源状态切换（APST），强制 SSD 保持在高性能状态，从而避免了这个问题。&lt;/p&gt;
&lt;h2&gt;参考资料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://superuser.com/questions/1829511/how-to-investigate-ext4-filesystem-going-read-only-no-hardware-errors-reported&quot;&gt;SuperUser: How to investigate ext4 filesystem going read-only&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://semiconductor.samsung.com/consumer-storage/support/tools/&quot;&gt;Samsung 官方固件下载页面&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>category:教程</category><category>tag:Linux</category><category>tag:SSD</category><category>tag:三星</category><category>tag:固件更新</category><category>tag:ext4</category><category>tag:故障排查</category></item><item><title>InterServer 新泽西 AMD 7950X3D 192G 独服测试</title><link>https://catcat.blog/2026/01/interserver-new-jersey-amd-7950x3d-benchmark.html</link><guid isPermaLink="true">https://catcat.blog/2026/01/interserver-new-jersey-amd-7950x3d-benchmark.html</guid><description>InterServer 新泽西机房 AMD Ryzen 9 7950X3D 16核独立服务器测试，192GB DDR5 5600MHz 内存，双 4TB NVMe 硬盘，1Gbps 不限流量，月付仅 $89。老牌美国主机商，性价比极高。</description><pubDate>Thu, 15 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;商家介绍&lt;/h2&gt;
&lt;p&gt;InterServer 是一家成立于 1999 年的美国老牌主机服务商，总部位于新泽西州，自建机房运营超过 25 年。这次测试的是他们的黑五闪购款，性价比不错。
但是硬盘是比较糟糕的，他们不像Hetzner之类的，这种健康度允许更换。他们不行，只会让你加钱更换别的硬盘。除非盘炸了他们才会更换。&lt;/p&gt;
&lt;p&gt;:::tip
本人不鼓励溢价炒鸡，请勿跟风溢价，你要相信总会有更好的。
:::&lt;/p&gt;
&lt;h2&gt;配置与价格&lt;/h2&gt;
&lt;h3&gt;基础配置 - $89/月&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;项目&lt;/th&gt;
&lt;th&gt;规格&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;主板&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;B650D4U&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CPU&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AMD Ryzen 9 7950X3D 16核32线程&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;内存&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;192GB DDR5 5600MHz (4 × 48GB)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;硬盘&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2 × Crucial 4TB NVMe&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;RAID&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;软raid&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;系统&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ubuntu 24.04.3 LTS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;网络&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1Gbps 不限流量&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;IP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1 个 Vlan IP (/30)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;控制面板&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;IPMI&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;可选升级&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;带宽升级：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;10Gbps 带宽（330TB 双向流量）：+$20/月&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;硬盘升级选项：&lt;/strong&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;Samsung 990 PRO&lt;/td&gt;
&lt;td&gt;2TB&lt;/td&gt;
&lt;td&gt;$40/月&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Samsung 990 PRO&lt;/td&gt;
&lt;td&gt;4TB&lt;/td&gt;
&lt;td&gt;$60/月&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Samsung 9100 PRO&lt;/td&gt;
&lt;td&gt;2TB&lt;/td&gt;
&lt;td&gt;$60/月&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Samsung 9100 PRO&lt;/td&gt;
&lt;td&gt;4TB&lt;/td&gt;
&lt;td&gt;$85/月&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;测试&lt;/h2&gt;
&lt;h3&gt;硬件检测&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;════════════════════════════════════════════════════════════════════════════════
                       System Hardware Information Report                       
════════════════════════════════════════════════════════════════════════════════

┌─ System Information
├────────────────────
│ Hostname            : catcat.blog
│ Operating System    : Debian GNU/Linux 13 (trixie)
│ Kernel Version      : 6.17.4-2-pve
│ System Uptime       : up 2 hours, 6 minutes
└──────────────────────────────────────────────────
┌─ CPU Information
├─────────────────
│ Model               : AMD Ryzen 9 7950X3D 16-Core Processor
│ Cores               : 16
│ Threads             : 32
│ Frequency           : 2985.835 MHz
│ Cache               : 1024 KB
│ Usage               : 0%
│ CPU Temperature     : +45.5°C
└──────────────────────────────────────────────────
┌─ Memory (RAM) Information
├──────────────────────────
│ Total               : 187.78 GB
│ Used                : 3.0Gi
│ Available           : 184.76 GB
│
│ Memory Modules:
├────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Size     │ Type   │ Frequency    │ Manufacturer │ Serial Number   │ Model                │
├────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ 48 GB    │ DDR5   │ 5600 MT/s    │ Unknown      │ E8523ECE        │ CP48G56C46U5.M16B1   │
│ 48 GB    │ DDR5   │ 5600 MT/s    │ Unknown      │ E83EE4CE        │ CP48G56C46U5.M16B1   │
│ 48 GB    │ DDR5   │ 5600 MT/s    │ Unknown      │ E8523EBA        │ CP48G56C46U5.M16B1   │
│ 48 GB    │ DDR5   │ 5600 MT/s    │ Unknown      │ E83EEAC2        │ CP48G56C46U5.M16B1   │
└────────────────────────────────────────────────────────────────────────────────────────────────────┘
└──────────────────────────────────────────────────
┌─ Disk Drive Information
├────────────────────────
│ /dev/nvme1n1p2  3.6T  4.4G  3.4T   1% /
│ /dev/nvme1n1p1   99M  8.8M   90M   9% /boot/efi
│ /dev/fuse       128M   16K  128M   1% /etc/pve
│
│ ═══════════════════════════════════════════════════
│ Other Disks (NVMe / SATA / SAS)
│ ═══════════════════════════════════════════════════
│
│ ═══ /dev/nvme1n1 ═══
│   Basic Info:  3.6T CT4000P3PSSD8 
│   SMART Status: PASSED
│   Power On Hours: 14746 hours
│   Total Reads: 26.47 TB
│   Total Writes: 513.44 TB
│   Percentage Used: 34%
│   Health Status: 66%
│   Available Spare: 100%
│   Temperature: 38°C
│
│ ═══ /dev/nvme0n1 ═══
│   Basic Info:  3.6T CT4000P3PSSD8 
│   SMART Status: PASSED
│   Power On Hours: 14729 hours
│   Total Reads: 46.69 TB
│   Total Writes: 544.87 TB
│   Percentage Used: 36%
│   Health Status: 64%
│   Available Spare: 100%
│   Temperature: 37°C
└──────────────────────────────────────────────────
┌─ RAID Controller Information
├─────────────────────────────
│ Status              : Not detected
└──────────────────────────────────────────────────
┌─ Network Interface Information
├───────────────────────────────
│
│ ═══ enp4s0 ═══
│   Model: Intel Corporation I210 Gigabit Network Connection (rev 03)
│   Status: UP
│   MAC Address: 9c:6b:00:XX:XX:XX
│   Speed: 1000 Mbps
│   Duplex: full
│   Link Detected: Yes
│   RX: 0 GB
│   TX: 0 GB
│
│ ═══ enp5s0 ═══
│   Model: Intel Corporation I210 Gigabit Network Connection (rev 03)
│   Status: DOWN
│   MAC Address: 9c:6b:00:XX:XX:XX
│   Link Detected: No
│   RX: 0 GB
│   TX: 0 GB
│
│ ═══ enxca8853f5217b ═══
│   Model: cdc_ether (usb-0000:0a:00.0-9.3)
│   Status: DOWN
│   MAC Address: ca:88:53:XX:XX:XX
│   Link Detected: No
│   RX: 0 GB
│   TX: 0 GB
└──────────────────────────────────────────────────
┌─ Graphics Card Information
├───────────────────────────
│
│ Graphics Cards (PCI):
│   07:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 52)
│   0d:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Raphael (rev c9)
│
│ Display Hardware Summary:
│   ===================================================================
│   /0/100/2.1/0/3/0/0      /dev/fb0         display        ASPEED Graphics Family
│   /0/100/8.1/0            /dev/fb0         display        Raphael
└──────────────────────────────────────────────────
┌─ Motherboard Information
├─────────────────────────
│ Vendor              : ASRockRack
│ Model               : B650D4U
│ Version             : To be filled by O.E.M.                                            
│ BIOS Vendor         : American Megatrends International, LLC.
│ BIOS Version        : 20.05
└──────────────────────────────────────────────────
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Yabs&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;Basic System Information:
---------------------------------
Uptime     : 0 days, 2 hours, 23 minutes
Processor  : AMD Ryzen 9 7950X3D 16-Core Processor
CPU cores  : 32 @ 2985.835 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ✔ Enabled
RAM        : 187.8 GiB
Swap       : 0.0 KiB
Disk       : 3.6 TiB
Distro     : Debian GNU/Linux 13 (trixie)
Kernel     : 6.17.4-2-pve
VM Type    : NONE
IPv4/IPv6  : ✔ Online / ❌ Offline

IPv4 Network Information:
---------------------------------
ISP        : Interserver, Inc
ASN        : AS19318 Interserver, Inc
Host       : Host Department NJ, LLC
Location   : Englewood Cliffs, New Jersey (NJ)
Country    : United States

fio Disk Speed Tests (Mixed R/W 50/50) (Partition /dev/nvme1n1p2):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 972.77 MB/s (243.1k) | 246.65 MB/s   (3.8k)
Write      | 975.34 MB/s (243.8k) | 247.95 MB/s   (3.8k)
Total      | 1.94 GB/s   (487.0k) | 494.61 MB/s   (7.7k)
           |                      |                     
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 331.25 MB/s    (646) | 482.19 MB/s    (470)
Write      | 348.86 MB/s    (681) | 514.31 MB/s    (502)
Total      | 680.11 MB/s   (1.3k) | 996.50 MB/s    (972)

iperf3 Network Speed Tests (IPv4):
---------------------------------
Provider        | Location (Link)           | Send Speed      | Recv Speed      | Ping           
-----           | -----                     | ----            | ----            | ----           
Clouvider       | London, UK (10G)          | 890 Mbits/sec   | 889 Mbits/sec   | 70.0 ms        
Eranium         | Amsterdam, NL (100G)      | 894 Mbits/sec   | 849 Mbits/sec   | 81.4 ms        
Uztelecom       | Tashkent, UZ (10G)        | 826 Mbits/sec   | 764 Mbits/sec   | 166 ms         
Leaseweb        | Singapore, SG (10G)       | 564 Mbits/sec   | 671 Mbits/sec   | 249 ms         
Clouvider       | Los Angeles, CA, US (10G) | 902 Mbits/sec   | 903 Mbits/sec   | 55.9 ms        
Leaseweb        | NYC, NY, US (10G)         | 940 Mbits/sec   | 940 Mbits/sec   | 3.27 ms        
Edgoo           | Sao Paulo, BR (1G)        | 852 Mbits/sec   | 844 Mbits/sec   | 113 ms         


Geekbench 5 Benchmark Test:
---------------------------------
Test            | Value                         
                |                               
Single Core     | 2208                          
Multi Core      | 19433                         
Full Test       | https://browser.geekbench.com/v5/cpu/24038564

Geekbench 6 Benchmark Test:
---------------------------------
Test            | Value                         
                |                               
Single Core     | 2920                          
Multi Core      | 16738                         
Full Test       | https://browser.geekbench.com/v6/cpu/16093555

YABS completed in 8 min 0 sec
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;PassMark PerformanceTest Linux&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;AMD Ryzen 9 7950X3D 16-Core Processor           (x86_64)
16 cores @ 5763 MHz  |  187.8 GiB RAM
Number of Processes: 32  |  Test Iterations: 1  |  Test Duration: Medium
--------------------------------------------------------------------------------
CPU Mark:                          57392
  Integer Math                     204894 Million Operations/s
  Floating Point Math              114559 Million Operations/s
  Prime Numbers                    371 Million Primes/s
  Sorting                          85992 Thousand Strings/s
  Encryption                       47249 MB/s
  Compression                      704293 KB/s
  CPU Single Threaded              4127 Million Operations/s
  Physics                          5428 Frames/s
  Extended Instructions (SSE)      43037 Million Matrices/s

Memory Mark:                       3200
  Database Operations              12933 Thousand Operations/s
  Memory Read Cached               39688 MB/s
  Memory Read Uncached             37096 MB/s
  Memory Write                     21442 MB/s
  Available RAM                    189454 Megabytes
  Memory Latency                   65 Nanoseconds
  Memory Threaded                  53862 MB/s
--------------------------------------------------------------------------------
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;网络测试&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;
---------------------------------- nws.sh ---------------------------------
      A simple script to bench network performance using speedtest-cli     
---------------------------------------------------------------------------
 Version            : v2025.11.07
 Global Speedtest   : wget -qO- nws.sh | bash
 Region Speedtest   : wget -qO- nws.sh | bash -s -- -r &amp;lt;region&amp;gt;
 Ping &amp;amp; Routing     : wget -qO- nws.sh | bash -s -- -rt &amp;lt;region&amp;gt;
---------------------------------------------------------------------------
 Basic System Info
---------------------------------------------------------------------------
 CPU Model          : AMD Ryzen 9 7950X3D 16-Core Processor
 CPU Cores          : 32 @ 2985.835 MHz
 CPU Cache          : 1024 KB
 AES-NI             : ✔ Enabled
 VM-x/AMD-V         : ✔ Enabled
 Total Disk         : 3.6 TB (4.3 GB Used)
 Total RAM          : 187.8 GB (3.0 GB Used)
 System uptime      : 0 days, 2 hour 34 min
 Load average       : 4.30, 3.45, 1.52
 OS                 : Debian GNU/Linux 13
 Arch               : x86_64 (64 Bit)
 Kernel             : 6.17.4-2-pve
 Virtualization     : NONE
 TCP Control        : cubic
---------------------------------------------------------------------------
 Basic Network Info
---------------------------------------------------------------------------
 Primary Network    : IPv4
 IPv6 Access        : ❌ Offline
 IPv4 Access        : ✔ Online
 ISP                : Interserver, Inc
 ASN                : AS19318 Interserver, Inc
 Host               : Host Department NJ, LLC
 Location           : Englewood Cliffs, New Jersey-NJ, United States
 Location (IPv4)    : New York City, New York, US
---------------------------------------------------------------------------
 Speedtest.net (Region: GLOBAL)
---------------------------------------------------------------------------
 Location         Latency     Loss    DL Speed       UP Speed       Server      

 ISP: Interserver 

 Nearest          0.72 ms     0.0%    937.69 Mbps    937.33 Mbps    Interserver.Net - Secaucus, NJ 

 Bangalore, IN    217.98 ms   0.0%    958.89 Mbps    395.23 Mbps    Bharti Airtel Ltd - Bangalore 
 Chennai, IN      222.87 ms   0.0%    949.90 Mbps    384.02 Mbps    RailTel Corporation of India Ltd - Chennai 
 Mumbai, IN       199.74 ms   0.0%    905.91 Mbps    423.93 Mbps    Melbicom - Mumbai 

 Seattle, US      80.36 ms    N/A     954.42 Mbps    907.84 Mbps    Comcast - Seattle, WA 
 Los Angeles, US  66.27 ms    0.0%    955.76 Mbps    919.94 Mbps    ReliableSite Hosting - Los Angeles, CA 
 Dallas, US       39.52 ms    0.0%    946.64 Mbps    941.47 Mbps    Hivelocity - Dallas, TX 
 Miami, US        33.71 ms    0.0%    946.43 Mbps    940.73 Mbps    Frontier - Miami, FL 
 New York, US     1.76 ms     0.0%    939.65 Mbps    941.23 Mbps    GSL Networks - New York, NY 
 Toronto, CA      19.56 ms    0.0%    945.22 Mbps    941.07 Mbps    Rogers - Toronto, ON 
 Mexico City, MX  102.21 ms   0.0%    949.87 Mbps    419.93 Mbps    INFINITUM - Ciudad de México 

 London, UK       71.03 ms    0.0%    964.75 Mbps    904.19 Mbps    VeloxServ Communications - London 
 Amsterdam, NL    FAILED                                                        
 Paris, FR        73.65 ms    0.0%    959.77 Mbps    936.20 Mbps    Scaleway - Paris 
 Frankfurt, DE    80.40 ms    0.0%    954.08 Mbps    916.38 Mbps    Clouvider Ltd - Frankfurt am Main 
 Warsaw, PL       98.34 ms    0.0%    949.94 Mbps    847.94 Mbps    Play - Warszawa 
 Bucharest, RO    109.47 ms   0.0%    946.64 Mbps    796.61 Mbps    Digi        
 Moscow, RU       112.90 ms   0.0%    955.58 Mbps    743.76 Mbps    Misaka Network, Inc. - Moscow 

 Jeddah, SA       131.21 ms   0.0%    946.02 Mbps    655.89 Mbps    Saudi Telecom Company 
 Dubai, AE        185.54 ms   N/A     916.94 Mbps    118.25 Mbps    e&amp;amp; UAE - Dubai 
 Istanbul, TR     116.75 ms   0.0%    958.16 Mbps    736.51 Mbps    Turkcell - Istanbul 
 Tehran, IR       FAILED                                                        
 Cairo, EG        140.04 ms   0.0%    952.81 Mbps    621.43 Mbps    Telecom Egypt - Cairo 

 Tokyo, JP        FAILED                                                        
 Shanghai, CU-CN  322.00 ms   N/A     23.89 Mbps     194.30 Mbps    China Unicom 5G - Shanghai 
 Hong Kong, CN    202.61 ms   0.0%    819.95 Mbps    214.50 Mbps    Misaka Network, Inc. - Hong Kong 
 Singapore, SG    216.00 ms   0.0%    963.37 Mbps    412.30 Mbps    ViewQwest - Singapore 
 Jakarta, ID      231.63 ms   0.0%    954.22 Mbps    384.53 Mbps    PT Solnet Indonesia - Jakarta 

 Sydney, AU       263.66 ms   0.0%    96.55 Mbps     181.70 Mbps    Aussie Broadband - Sydney 
---------------------------------------------------------------------------
 Avg DL Speed       : 875.12 Mbps
 Avg UL Speed       : 646.82 Mbps

 Total DL Data      : 32.49 GB
 Total UL Data      : 20.48 GB
 Total Data         : 52.97 GB
---------------------------------------------------------------------------
 Duration           : 12 min 22 sec
 System Time        : 15/01/2026 - 15:08:04 CST
 Total Script Runs  : 516268
---------------------------------------------------------------------------

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;UnixBench&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;------------------------------------------------------------------------
Benchmark Run: Thu Jan 15 2026 15:17:05 - 15:45:24
32 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       83907129.3 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    14554.2 MWIPS (10.0 s, 7 samples)
Execl Throughput                               4710.1 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks       1196710.6 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          308240.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       4129359.1 KBps  (30.0 s, 2 samples)
Pipe Throughput                             2155090.9 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 182683.1 lps   (10.0 s, 7 samples)
Process Creation                               7388.3 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  15437.8 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                  12089.7 lpm   (60.0 s, 2 samples)
System Call Overhead                        2002520.4 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   83907129.3   7190.0
Double-Precision Whetstone                       55.0      14554.2   2646.2
Execl Throughput                                 43.0       4710.1   1095.4
File Copy 1024 bufsize 2000 maxblocks          3960.0    1196710.6   3022.0
File Copy 256 bufsize 500 maxblocks            1655.0     308240.9   1862.5
File Copy 4096 bufsize 8000 maxblocks          5800.0    4129359.1   7119.6
Pipe Throughput                               12440.0    2155090.9   1732.4
Pipe-based Context Switching                   4000.0     182683.1    456.7
Process Creation                                126.0       7388.3    586.4
Shell Scripts (1 concurrent)                     42.4      15437.8   3641.0
Shell Scripts (8 concurrent)                      6.0      12089.7  20149.6
System Call Overhead                          15000.0    2002520.4   1335.0
                                                                   ========
System Benchmarks Index Score                                        2407.7

------------------------------------------------------------------------
Benchmark Run: Thu Jan 15 2026 15:45:24 - 16:13:25
32 CPUs in system; running 32 parallel copies of tests

Dhrystone 2 using register variables     1529550144.4 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                   322662.2 MWIPS (10.2 s, 7 samples)
Execl Throughput                              60526.8 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks      22929781.9 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks         6472347.5 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks      18945800.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                            46109263.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                6487007.9 lps   (10.0 s, 7 samples)
Process Creation                             119254.9 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                 213576.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                  28400.8 lpm   (60.0 s, 2 samples)
System Call Overhead                       44358031.6 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0 1529550144.4 131066.9
Double-Precision Whetstone                       55.0     322662.2  58665.9
Execl Throughput                                 43.0      60526.8  14076.0
File Copy 1024 bufsize 2000 maxblocks          3960.0   22929781.9  57903.5
File Copy 256 bufsize 500 maxblocks            1655.0    6472347.5  39107.8
File Copy 4096 bufsize 8000 maxblocks          5800.0   18945800.5  32665.2
Pipe Throughput                               12440.0   46109263.3  37065.3
Pipe-based Context Switching                   4000.0    6487007.9  16217.5
Process Creation                                126.0     119254.9   9464.7
Shell Scripts (1 concurrent)                     42.4     213576.3  50371.8
Shell Scripts (8 concurrent)                      6.0      28400.8  47334.6
System Call Overhead                          15000.0   44358031.6  29572.0
                                                                   ========
System Benchmarks Index Score                                       34851.9

&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;IP 测试&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260115151347365.avif&quot; alt=&quot;image-20260115151346597&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260115152037324.avif&quot; alt=&quot;image-20260115152036497&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;7950X3D + 192G DDR5 + 8TB NVMe，月付 $89，性价比拉满。&lt;/p&gt;
&lt;p&gt;老牌商家，稳定性有一定保障。国内延迟较高（200ms+）。&lt;/p&gt;
&lt;p&gt;没有任何自动化安装程序，需要手动安装，提供IPMI自助。&lt;/p&gt;
&lt;p&gt;提供一定的抗DDOS能力。&lt;/p&gt;
</content:encoded><category>category:BenchMark</category><category>tag:美国</category></item><item><title>使用 IPMI + netboot.xyz 为独立服务器/裸金属安装系统</title><link>https://catcat.blog/2026/01/ipmi-netboot-xyz-os-installation.html</link><guid isPermaLink="true">https://catcat.blog/2026/01/ipmi-netboot-xyz-os-installation.html</guid><description>通过 IPMI 远程控制台挂载 netboot.xyz ISO，实现独立服务器和裸金属的自由系统安装，无需依赖服务商提供的有限模板</description><pubDate>Thu, 15 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;租用独立服务器或裸金属时，服务商通常只提供有限的系统模板。想装个特定版本的 Debian？想试试 Arch Linux？想用 Proxmox VE？模板里没有就很麻烦。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;netboot.xyz 解决了这个问题&lt;/strong&gt; —— 一个只有几 MB 的 ISO，却能让你通过网络安装几乎任何操作系统。配合 IPMI 远程控制，即使服务器在地球另一端，也能像操作本地机器一样自由安装系统。&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;netbootxyz/netboot.xyz&quot;}&lt;/p&gt;
&lt;h2&gt;什么是 netboot.xyz？&lt;/h2&gt;
&lt;p&gt;netboot.xyz 是一个基于 iPXE 的网络启动工具。它的工作原理很简单：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;服务器从这个小型 ISO 启动&lt;/li&gt;
&lt;li&gt;ISO 中的 iPXE 引导程序连接到 netboot.xyz 服务器&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;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;轻量级&lt;/strong&gt;：ISO 只有几 MB，加载快，对带宽要求低&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;始终最新&lt;/strong&gt;：菜单和安装源都是实时获取的&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;选择丰富&lt;/strong&gt;：支持几乎所有主流 Linux 发行版、BSD、Windows PE、各种工具盘&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;无需本地镜像&lt;/strong&gt;：不用提前下载几 GB 的 ISO 文件&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;什么是 IPMI？&lt;/h2&gt;
&lt;p&gt;IPMI（Intelligent Platform Management Interface）是服务器的带外管理接口，也叫 BMC（Baseboard Management Controller）。不同厂商有不同的品牌名：&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Dell&lt;/td&gt;
&lt;td&gt;iDRAC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HPE&lt;/td&gt;
&lt;td&gt;iLO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Supermicro&lt;/td&gt;
&lt;td&gt;IPMI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lenovo&lt;/td&gt;
&lt;td&gt;XCC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;华为&lt;/td&gt;
&lt;td&gt;iBMC&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;IPMI 能做什么：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;远程开关机、重启&lt;/li&gt;
&lt;li&gt;远程控制台（KVM）—— 就像坐在服务器前操作&lt;/li&gt;
&lt;li&gt;挂载虚拟媒体（ISO/USB 镜像）&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; —— 可以把本地的 ISO 文件&quot;插入&quot;到远程服务器的虚拟光驱中，服务器就能从这个 ISO 启动。&lt;/p&gt;
&lt;h2&gt;准备工作&lt;/h2&gt;
&lt;h3&gt;1. 获取 IPMI 访问权限&lt;/h3&gt;
&lt;p&gt;租用服务器时，服务商通常会提供：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;IPMI IP 地址（通常是独立的管理网段 IP）&lt;/li&gt;
&lt;li&gt;用户名和密码&lt;/li&gt;
&lt;li&gt;Web 控制台地址&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;:::tip
如果服务商没有主动提供 IPMI 权限，可以开工单申请。大部分独服/裸金属服务商都支持。
:::&lt;/p&gt;
&lt;h3&gt;2. 下载 netboot.xyz ISO&lt;/h3&gt;
&lt;p&gt;访问 &lt;a href=&quot;https://netboot.xyz/downloads/&quot;&gt;netboot.xyz 下载页面&lt;/a&gt; 获取 ISO 文件。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;选择正确的版本：&lt;/strong&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netboot.xyz.iso&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;推荐&lt;/strong&gt; - 通用版本，同时支持 Legacy BIOS 和 UEFI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netboot.xyz-efi.iso&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;仅 UEFI 模式&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;netboot.xyz.img&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;USB 启动盘制作&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;大多数情况下，下载 &lt;code&gt;netboot.xyz.iso&lt;/code&gt; 即可。&lt;/p&gt;
&lt;h3&gt;3. 确认网络环境&lt;/h3&gt;
&lt;p&gt;服务器需要能够访问外网，因为 netboot.xyz 需要：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;连接 boot.netboot.xyz 获取菜单&lt;/li&gt;
&lt;li&gt;从各发行版官方镜像站下载安装文件&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;:::important
如果服务器在内网环境或有严格的防火墙限制，netboot.xyz 可能无法正常工作。可以考虑自建 netboot.xyz 服务器。
:::&lt;/p&gt;
&lt;h2&gt;操作步骤&lt;/h2&gt;
&lt;h3&gt;步骤 1：登录 IPMI 控制台&lt;/h3&gt;
&lt;p&gt;在浏览器中访问 IPMI 的 Web 地址，使用提供的用户名密码登录。&lt;/p&gt;
&lt;p&gt;:::note
部分旧款 IPMI 只支持特定浏览器（如 IE）或需要安装 Java 插件。现代 IPMI 通常支持 HTML5 控制台。
:::&lt;/p&gt;
&lt;h3&gt;步骤 2：打开远程控制台（KVM）&lt;/h3&gt;
&lt;p&gt;登录后，找到远程控制台或 KVM 功能。不同厂商的位置略有不同：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dell iDRAC&lt;/strong&gt;：Configuration → Virtual Console&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HPE iLO&lt;/strong&gt;：Remote Console → HTML5 Console&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Supermicro&lt;/strong&gt;：Remote Control → iKVM/HTML5&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260115141118572.avif&quot; alt=&quot;打开KVM控制台&quot; /&gt;&lt;/p&gt;
&lt;p&gt;点击启动后，会打开一个新窗口显示服务器的实时画面。&lt;/p&gt;
&lt;h3&gt;步骤 3：挂载 netboot.xyz ISO&lt;/h3&gt;
&lt;p&gt;在 KVM 控制台或 IPMI 主界面中，找到虚拟媒体（Virtual Media）功能：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;点击 &lt;strong&gt;Virtual Media&lt;/strong&gt; 或 &lt;strong&gt;虚拟媒体&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;选择 &lt;strong&gt;CD/DVD&lt;/strong&gt; 或 &lt;strong&gt;ISO Image&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;浏览并选择下载好的 &lt;code&gt;netboot.xyz.iso&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;Connect&lt;/strong&gt; 或 &lt;strong&gt;Mount&lt;/strong&gt; 挂载&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260115141205765.avif&quot; alt=&quot;挂载 netboot.xyz ISO&quot; /&gt;&lt;/p&gt;
&lt;p&gt;:::caution
ISO 挂载可能需要几秒到几十秒，取决于网络状况。等待
:::&lt;/p&gt;
&lt;h3&gt;步骤 4：设置从虚拟光驱启动&lt;/h3&gt;
&lt;p&gt;有两种方式：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;方式 A：临时更改启动顺序（推荐）&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;重启服务器&lt;/li&gt;
&lt;li&gt;在 POST 画面按相应按键进入启动菜单
&lt;ul&gt;
&lt;li&gt;Dell：F11&lt;/li&gt;
&lt;li&gt;HP：F11&lt;/li&gt;
&lt;li&gt;Supermicro：F11&lt;/li&gt;
&lt;li&gt;通用：Esc 或 F12&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;选择 &lt;strong&gt;Virtual CD/DVD&lt;/strong&gt; 或 &lt;strong&gt;UEFI: Virtual CD&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;方式 B：通过 BIOS 设置&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;重启服务器，按 Del 或 F2 进入 BIOS&lt;/li&gt;
&lt;li&gt;找到 Boot 选项&lt;/li&gt;
&lt;li&gt;将虚拟光驱设为第一启动项&lt;/li&gt;
&lt;li&gt;保存并退出&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260115141305741.avif&quot; alt=&quot;设置启动项&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260115141356179.avif&quot; alt=&quot;启动菜单&quot; /&gt;&lt;/p&gt;
&lt;p&gt;选择第四个选项，进入 netboot.xyz 菜单。&lt;/p&gt;
&lt;h3&gt;步骤 5：进入 netboot.xyz 菜单&lt;/h3&gt;
&lt;p&gt;服务器从 ISO 启动后，会自动尝试 DHCP 获取 IP 地址并连接到 netboot.xyz 服务器。成功后会显示主菜单&lt;/p&gt;
&lt;p&gt;像我这里就没获取到，所以接下来会是手动&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260115141454857.avif&quot; alt=&quot;IP获取&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260115141550025.avif&quot; alt=&quot;输入服务商的IP等信息&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260115141709629.avif&quot; alt=&quot;菜单选项&quot; /&gt;&lt;/p&gt;
&lt;p&gt;选择你需要安装的系统点击进入即可，下面以PVE为例。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260115142015868.avif&quot; alt=&quot;PVE 安装1&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260115142023866.avif&quot; alt=&quot;PVE 安装2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260115142029522.avif&quot; alt=&quot;PVE 安装3&quot; /&gt;&lt;/p&gt;
&lt;p&gt;到这和后面的正常ISO安装就没啥区别了。主要用这个可以省时间，不需要你去下载一个大的iso挂载上传上去，毕竟大陆上传到海外ipmi速度并不好。&lt;/p&gt;
&lt;h2&gt;netboot.xyz 菜单详解&lt;/h2&gt;
&lt;h3&gt;Linux Network Installs&lt;/h3&gt;
&lt;p&gt;这是最常用的选项，支持主流 Linux 发行版的网络安装：&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Debian&lt;/td&gt;
&lt;td&gt;支持 Stable、Testing、Unstable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ubuntu&lt;/td&gt;
&lt;td&gt;Server 和 Desktop 版本&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CentOS / Rocky / Alma&lt;/td&gt;
&lt;td&gt;RHEL 系发行版&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fedora&lt;/td&gt;
&lt;td&gt;Server 和 Workstation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arch Linux&lt;/td&gt;
&lt;td&gt;滚动更新发行版&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;openSUSE&lt;/td&gt;
&lt;td&gt;Leap 和 Tumbleweed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NixOS&lt;/td&gt;
&lt;td&gt;声明式配置的发行版&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;选择发行版后，通常还可以选择具体版本和安装模式（最小安装、桌面环境等）。&lt;/p&gt;
&lt;h3&gt;Live CDs&lt;/h3&gt;
&lt;p&gt;实时系统，直接运行在内存中，不会修改硬盘：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;System Rescue&lt;/strong&gt; - 系统救援工具集&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GParted Live&lt;/strong&gt; - 分区管理&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clonezilla&lt;/strong&gt; - 磁盘克隆和备份&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;各发行版 Live 版本&lt;/strong&gt; - 体验或临时使用&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;:::warning
Live CD 需要将整个系统加载到内存，通常需要 4GB 以上内存。内存不足会导致启动失败。
:::&lt;/p&gt;
&lt;h3&gt;Utilities&lt;/h3&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Memtest86+&lt;/td&gt;
&lt;td&gt;内存测试&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hardware Detection Tool&lt;/td&gt;
&lt;td&gt;硬件检测&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DBAN&lt;/td&gt;
&lt;td&gt;安全擦除硬盘&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Super Grub2 Disk&lt;/td&gt;
&lt;td&gt;引导修复&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content:encoded><category>category:教程</category><category>tag:IPMI</category><category>tag:netboot.xyz</category><category>tag:服务器</category><category>tag:Linux</category><category>tag:裸金属</category></item><item><title>使用 Docker Compose 部署 fontInAss 字幕字体处理服务</title><link>https://catcat.blog/2026/01/deploy-fontinass-emby-subtitle-font.html</link><guid isPermaLink="true">https://catcat.blog/2026/01/deploy-fontinass-emby-subtitle-font.html</guid><description>通过 Docker Compose 部署 fontInAss 字幕字体处理服务，解决 Emby/Jellyfin 特殊字体字幕显示问题，支持 ASS/SRT 格式自动字体嵌入和字体子集化</description><pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;你是否遇到过这样的情况：在 Emby 或 Jellyfin 上播放带有精美 ASS 字幕的动漫或电影时，字幕却显示为系统默认字体，完全失去了原有的视觉效果？这是因为字幕文件使用了设备上不存在的特殊字体（如方正字体、思源字体等），导致播放器只能回退到默认字体显示。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;fontInAss 正是为解决这个问题而生的开源项目，它能够自动将字幕所需的字体嵌入到字幕文件中，确保在任何设备上都能正确显示特殊字体效果。本文将详细介绍如何使用 Docker Compose 部署 fontInAss 服务，并与 Emby/Jellyfin 无缝集成。但是注意，本项目的效果完全取决于你的字体库规模，如果只有很少的字体，那么可能无法正常显示/出现有的有字体有的无的难看情况。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;本服不需要使用，因为大部分都已经我自己处理过字幕子集化。本文仅作学习用。&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;fontInAss 是什么？&lt;/h2&gt;
&lt;p&gt;::github{repo=&quot;RiderLty/fontInAss&quot;}&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;fontInAss 是一个专为 Emby/Jellyfin 设计的字幕字体子集化和嵌入工具&lt;/strong&gt;。它通过拦截播放器的字幕请求，实时提取字幕中使用的字体并嵌入到 ASS 格式字幕中，从而确保特殊字体能够正确显示。&lt;/p&gt;
&lt;h3&gt;对比参照&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260112201307231.avif&quot; alt=&quot;image-20260112201306301&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260112201319714.avif&quot; alt=&quot;image-20260112201318797&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;主要功能&lt;/h3&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;: 仅提取字幕实际使用的字形，大幅减小文件体积（从 10MB 压缩到 50KB）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;双模式字体支持&lt;/strong&gt;: 支持本地字体库 + 在线字体下载（可选）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Web UI 批处理&lt;/strong&gt;: 提供 Web 界面用于批量处理字幕文件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;格式转换&lt;/strong&gt;: 自动将 SRT 字幕转换为 ASS 格式并嵌入字体&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;智能匹配&lt;/strong&gt;: 采用评分算法智能匹配字体名称、粗细、斜体等属性&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;工作原理&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;原始 ASS 字幕（100KB）
├─ 字幕文本: &quot;这是中文字幕&quot;
└─ 字体声明: Font: 思源黑体 CN Bold

         ↓ fontInAss 处理流程

1. 拦截字幕请求
2. 分析字幕使用的所有字符
3. 从字体库提取对应字形
4. 压缩字体（10MB → 50KB）
5. UUEncode 编码并嵌入字幕

         ↓

处理后的 ASS 字幕（150KB）
├─ 字幕文本: &quot;这是中文字幕&quot;
├─ 字体声明: Font: 思源黑体 CN Bold
└─ [Fonts] 段: &amp;lt;嵌入的字体数据&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;架构设计&lt;/h2&gt;
&lt;p&gt;本文采用&lt;strong&gt;双轨模式部署&lt;/strong&gt;，确保不影响现有的 Emby 服务：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;路径 A（原有方式，保持不变）:
客户端 → http://localhost:8096 → Emby 服务器

路径 B（新增的字幕增强方式）:
客户端 → HTTPS (443) → Nginx 反向代理
                   ↓
         内部端口 8011 → fontInAss 容器
                   ↓
         http://localhost:8096 → Emby 服务器
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;优势&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;✅ 原有 Emby 访问方式完全不受影响&lt;/li&gt;
&lt;li&gt;✅ fontInAss 作为可选的增强功能&lt;/li&gt;
&lt;li&gt;✅ 两种访问方式并存，随时切换&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;组件说明&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;组件&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;fontInAss 容器&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;使用 &lt;code&gt;riderlty/fontinass:noproxy&lt;/code&gt; 镜像，监听 8011 端口&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Nginx 反向代理&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;处理 SSL 终止、字幕请求拦截、WebSocket 代理&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;本地字体库&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;存储 TTF/TTC/OTF 字体文件，支持自动监控和扫描&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Emby 服务器&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;现有的 Emby 服务，无需修改任何配置&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;部署准备&lt;/h2&gt;
&lt;h3&gt;系统要求&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Linux 服务器（Debian/Ubuntu 推荐）&lt;/li&gt;
&lt;li&gt;Docker 和 Docker Compose&lt;/li&gt;
&lt;li&gt;Nginx（用于反向代理）&lt;/li&gt;
&lt;li&gt;运行中的 Emby/Jellyfin 服务器&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;推荐配置&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;本地字体库（可选但强烈推荐，避免依赖网络）&lt;/li&gt;
&lt;li&gt;域名和 SSL 证书（生产环境必需）&lt;/li&gt;
&lt;li&gt;至少 2GB 内存和 10GB 磁盘空间&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;[!TIP]
如果你没有字体库，可以先使用在线字体模式部署，稍后再添加本地字体。本文示例使用本地字体库模式。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;部署步骤&lt;/h2&gt;
&lt;h3&gt;1. 创建工作目录&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 创建项目目录
mkdir -p /root/docker_yaml/fontInAss
cd /root/docker_yaml/fontInAss

# 创建必要的子目录
mkdir -p fonts data logs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;目录说明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;fonts/&lt;/code&gt;: 存储本地字体文件（支持子目录）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;data/&lt;/code&gt;: 存储 SQLite 字体数据库&lt;/li&gt;
&lt;li&gt;&lt;code&gt;logs/&lt;/code&gt;: 存储运行日志和字体缺失记录&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. 创建 Docker Compose 配置&lt;/h3&gt;
&lt;p&gt;创建 &lt;code&gt;docker-compose.yml&lt;/code&gt; 文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;version: &apos;3.8&apos;

services:
  fontinass:
    image: riderlty/fontinass:noproxy
    container_name: fontinass
    restart: unless-stopped
    ports:
      - &quot;127.0.0.1:8011:8011&quot;  # 仅监听本地，不暴露到外网
    environment:
      # Emby 服务器地址（容器内访问宿主机）
      EMBY_SERVER_URL: &quot;http://host.docker.internal:8096&quot;
      # Web 端字体渲染支持
      EMBY_WEB_EMBED_FONT: &quot;True&quot;
      # 日志级别
      LOG_LEVEL: &quot;INFO&quot;
      # 禁用在线字体，仅使用本地字体库
      DISABLE_ONLINE_FONTS: &quot;True&quot;
      # 字体缓存配置
      FONT_CACHE_SIZE: &quot;50&quot;
      FONT_CACHE_TTL: &quot;60&quot;
      # 字幕缓存配置
      SUB_CACHE_SIZE: &quot;50&quot;
      SUB_CACHE_TTL: &quot;60&quot;
      SRT_2_ASS_FORMAT: &quot;Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding&quot;
      SRT_2_ASS_STYLE: &quot;Style: Default,楷体,20,&amp;amp;H03FFFFFF,&amp;amp;H00FFFFFF,&amp;amp;H00000000,&amp;amp;H02000000,-1,0,0,0,100,100,0,0,1,2,0,2,10,10,10,1&quot;
    volumes:
      - ./fonts:/fonts           # 字体目录
      - ./data:/data             # 数据库目录
      - ./logs:/logs             # 日志目录
    extra_hosts:
      # 允许容器访问宿主机的 Emby 服务
      - &quot;host.docker.internal:host-gateway&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;[!IMPORTANT]
&lt;code&gt;DISABLE_ONLINE_FONTS: &quot;True&quot;&lt;/code&gt; 配置禁用在线字体下载，完全使用本地字体库。如果你希望在本地字体缺失时自动从网络下载，可以设置为 &lt;code&gt;&quot;False&quot;&lt;/code&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;3. 配置 Nginx 反向代理&lt;/h3&gt;
&lt;p&gt;创建 Nginx 配置文件 &lt;code&gt;/etc/nginx/sites-available/fontinass&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;这是我的nginx，仅供参考。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 上游服务器配置
upstream fontinass_backend {
    server 127.0.0.1:8011;
    keepalive 32;
}

upstream emby_backend {
    server 127.0.0.1:8096;
    keepalive 32;
}

# HTTP 重定向到 HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name your-domain.com;

    # 重定向所有HTTP请求到HTTPS
    return 301 https://$host$request_uri;
}

# HTTPS 主配置
server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;
    server_name your-domain.com;

    # SSL 证书配置
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    # SSL 优化配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers &apos;ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384&apos;;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # 安全头
    add_header Strict-Transport-Security &quot;max-age=31536000; includeSubDomains&quot; always;
    add_header X-Content-Type-Options &quot;nosniff&quot; always;
    add_header X-Frame-Options &quot;SAMEORIGIN&quot; always;

    # 日志
    access_log /var/log/nginx/fontinass.access.log;
    error_log /var/log/nginx/fontinass.error.log;

    # 客户端上传大小限制
    client_max_body_size 100M;

    # WebSocket 支持（直接转发到 Emby）
    location ~ /(socket|embywebsocket) {
        proxy_pass http://emby_backend;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection &quot;upgrade&quot;;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 86400;
    }

    # 字幕文件拦截（转发到 fontInAss 处理）
    location ~* /videos/(.*)/Subtitles/(.*)/(Stream\.ass|Stream\.ssa|Stream\.srt|Stream\.)$ {
        proxy_pass http://fontinass_backend;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 300;
        proxy_connect_timeout 75;

        # Gzip 压缩（针对字幕文件）
        gzip on;
        gzip_comp_level 6;
        gzip_types text/x-ssa text/plain application/x-subrip;
    }

    # 飞牛/Jellyfin 字幕 API（转发到 fontInAss）
    location ~ /v/api/v1/subtitle/dl/(.*) {
        proxy_pass http://fontinass_backend;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # JS 文件修改（Web 端字体渲染支持）
    location ~ /web/modules/htmlvideoplayer/plugin\.js {
        proxy_pass http://fontinass_backend;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_cache_bypass 1;
        add_header Content-Type &quot;application/javascript&quot; always;
    }

    location ~ /web/bower_components/(.*)/subtitles-octopus\.js {
        proxy_pass http://fontinass_backend;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_cache_bypass 1;
        add_header Content-Type &quot;application/javascript&quot; always;
    }

    # fontInAss Web UI 和 API
    location ~ ^/(subset|api|color|fontinass)/ {
        proxy_pass http://fontinass_backend;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # 默认转发到 Emby 服务器
    location / {
        proxy_pass http://emby_backend;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;

        # 缓冲配置
        proxy_buffering off;
        proxy_redirect off;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;启用 Nginx 配置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 创建软链接启用配置
ln -s /etc/nginx/sites-available/fontinass /etc/nginx/sites-enabled/

# 测试配置
nginx -t

# 重载 Nginx
systemctl reload nginx
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;4. 启动 fontInAss 服务&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;cd /root/docker_yaml/fontInAss

# 启动容器
docker compose up -d

# 查看日志确认启动成功
docker compose logs -f fontinass
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;正常启动的日志输出：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;🤖 INFO   本地字体文件夹:/fonts
🤖 INFO   开始检查数据库与目录的一致性...
🤖 INFO   监控中:/fonts
🌏 INFO   Started server process [8]
🌏 INFO   Waiting for application startup.
🌏 INFO   Application startup complete.
🌏 INFO   Uvicorn running on http://0.0.0.0:8011
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260112194835820.avif&quot; alt=&quot;image-20260112194828646&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;字体库配置&lt;/h2&gt;
&lt;h3&gt;添加本地字体&lt;/h3&gt;
&lt;p&gt;fontInAss 支持自动监控 &lt;code&gt;fonts&lt;/code&gt; 目录，添加字体后会自动扫描并添加到数据库。&lt;/p&gt;
&lt;p&gt;字体下载：https://pan.acgrip.com/&lt;/p&gt;
&lt;p&gt;注意：本项目的可用程度完全取决于你的字体库的规模。如果只有很少的字体，那么可能无法正常显示/出现有的有字体有的无的难看情况。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 复制字体文件到字体目录
cp /path/to/your/*.ttf /root/docker_yaml/fontInAss/fonts/

# 或创建子目录分类管理
mkdir -p fonts/中文字体 fonts/日文字体 fonts/英文字体
cp SourceHanSans*.ttf fonts/中文字体/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;支持的字体格式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.ttf&lt;/code&gt; (TrueType Font)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.ttc&lt;/code&gt; (TrueType Collection)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.otf&lt;/code&gt; (OpenType Font)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;字体自动识别流程&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;1. watchdog 实时监控 /fonts 目录
2. 发现新字体 → 提取元信息
   - 字体族名（familyName）
   - 完整名称（fullName）
   - PostScript 名称
   - 粗细（weight）
   - 样式（bold/italic）
3. 添加到 SQLite 数据库
4. 立即可用（无需重启容器）
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看字体统计：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 查看字体文件数量
find /root/docker_yaml/fontInAss/fonts -type f \( -name &quot;*.ttf&quot; -o -name &quot;*.ttc&quot; -o -name &quot;*.otf&quot; \) | wc -l

# 查看字体目录占用空间
du -sh /root/docker_yaml/fontInAss/fonts
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;验证部署&lt;/h2&gt;
&lt;h3&gt;1. 检查容器状态&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 查看容器运行状态
docker compose ps

# 应该显示 fontinass 容器状态为 &quot;Up&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2. 测试本地 API&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 测试 fontInAss API
curl -I http://localhost:8011/subset/

# 应该返回 HTTP/1.1 200 OK

![image-20260112164358436](https://s3.catcat.blog/images/2026/01/20260112164358682.avif)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3. 测试 Nginx 代理&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 测试代理是否工作
curl -I https://your-domain.com/subset/

# 应该返回 200 OK 并显示 fontInAss Web UI

![image-20260112162104129](https://s3.catcat.blog/images/2026/01/20260112162133271.avif)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;客户端配置&lt;/h2&gt;
&lt;h3&gt;双轨访问模式&lt;/h3&gt;
&lt;p&gt;fontInAss 采用&lt;strong&gt;双轨模式&lt;/strong&gt;，不影响现有的 Emby 使用习惯：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;访问方式&lt;/th&gt;
&lt;th&gt;地址&lt;/th&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;方式 A（原有）&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;http://localhost:8096&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;日常观看，不处理字幕&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;方式 B（新增）&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://your-domain.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;字幕字体增强，自动处理特殊字体&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;配置步骤&lt;/h3&gt;
&lt;p&gt;大多数 Emby 客户端支持多服务器配置：&lt;/p&gt;
&lt;ol&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;ul&gt;
&lt;li&gt;打开 Emby 客户端设置&lt;/li&gt;
&lt;li&gt;添加新服务器：&lt;code&gt;https://your-domain.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;使用相同的账号登录&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&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;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Web UI 使用&lt;/h2&gt;
&lt;p&gt;fontInAss 提供了 Web UI 用于批量处理字幕文件。&lt;/p&gt;
&lt;h3&gt;访问地址&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;https://your-domain.com/subset/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260112162133271.avif&quot; alt=&quot;image-20260112162104129&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;使用流程&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;1. 访问 Web UI
2. 上传字幕文件（支持拖拽）
3. 等待处理（通常几秒钟）
4. 下载带字体的字幕文件
5. 替换原字幕使用
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;[!NOTE]
Web UI 适合批量预处理字幕库，或在非 Emby 播放器上使用的字幕文件。日常通过 Emby 观看时，字幕会自动处理，无需手动使用 Web UI。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;常见问题&lt;/h2&gt;
&lt;h3&gt;Q1: 字幕不显示字体效果？&lt;/h3&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;pre&gt;&lt;code&gt;# 查看容器日志，确认缺失的字体
docker compose logs -f fontinass | grep &quot;缺失&quot;

# 添加缺失的字体到 fonts 目录
cp missing-font.ttf /root/docker_yaml/fontInAss/fonts/
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Q2: 如何切换回在线字体模式？&lt;/h3&gt;
&lt;p&gt;如果你发现本地字体库不完整，可以启用在线字体下载作为补充：&lt;/p&gt;
&lt;p&gt;我查了代码，应该是部署存了一份XZ的字体包在123网盘。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260112162515869.avif&quot; alt=&quot;image-20260112162515483&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;environment:
  DISABLE_ONLINE_FONTS: &quot;True&quot;  # 禁用在线字体
  DISABLE_ONLINE_FONTS: &quot;False&quot; # 启用在线字体
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改后重启容器：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker compose down
docker compose up -d
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在线字体会自动下载到 &lt;code&gt;fonts/download/&lt;/code&gt; 目录。&lt;/p&gt;
&lt;h3&gt;Q3: 如何查看字幕处理日志？&lt;/h3&gt;
&lt;p&gt;fontInAss 提供详细的日志记录：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 实时查看容器日志
docker compose logs -f fontinass

# 查看缺失字体记录
cat /root/docker_yaml/fontInAss/logs/miss_logs.txt

# 查看 Nginx 访问日志
tail -f /var/log/nginx/fontinass.access.log
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260112194939553.avif&quot; alt=&quot;image-20260112194939138&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;性能优化&lt;/h2&gt;
&lt;h3&gt;字体缓存配置&lt;/h3&gt;
&lt;p&gt;fontInAss 使用三级缓存策略：内存缓存 → 本地数据库 → 在线数据库。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;environment:
  FONT_CACHE_SIZE: &quot;50&quot;   # 字体缓存数量（可根据内存调整）
  FONT_CACHE_TTL: &quot;60&quot;    # 字体缓存过期时间（分钟）

  SUB_CACHE_SIZE: &quot;50&quot;    # 字幕缓存数量
  SUB_CACHE_TTL: &quot;60&quot;     # 字幕缓存过期时间（分钟）
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;建议配置：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;内存充足（8GB+）：&lt;code&gt;FONT_CACHE_SIZE: &quot;100&quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;内存有限（2-4GB）：&lt;code&gt;FONT_CACHE_SIZE: &quot;30&quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Nginx 优化&lt;/h3&gt;
&lt;p&gt;如果你的用户量较大，可以启用 Nginx 缓存：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 在 http 块中添加
proxy_cache_path /var/cache/nginx/fontinass levels=1:2 keys_zone=fontinass_cache:10m max_size=1g inactive=60m;

# 在 location ~ /videos/.*/Subtitles/ 块中添加
proxy_cache fontinass_cache;
proxy_cache_valid 200 60m;
proxy_cache_key &quot;$scheme$request_method$host$request_uri&quot;;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;维护操作&lt;/h2&gt;
&lt;h3&gt;日常维护&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 查看运行状态
docker compose ps

# 查看日志
docker compose logs --tail=100 fontinass

# 重启服务
docker compose restart fontinass

# 更新镜像
docker compose pull
docker compose up -d
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;备份重要数据&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 备份字体数据库和配置
tar -czf fontinass-backup-$(date +%Y%m%d).tar.gz \
  docker-compose.yml \
  data/ \
  fonts/
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;清理缓存&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 清理 Docker 缓存
docker system prune -a

# 清理 Nginx 缓存（如果启用）
rm -rf /var/cache/nginx/fontinass/*
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;fontInAss 通过智能的字体子集化和嵌入技术，完美解决了 Emby/Jellyfin 特殊字体字幕显示问题。本文介绍的双轨部署模式，既保留了原有服务的稳定性，又提供了字幕字体增强功能，是一个适合懒人的解决方案。&lt;/p&gt;
&lt;h3&gt;适用场景&lt;/h3&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;希望本文能帮助你顺利部署 fontInAss 服务，享受完美的字幕观看体验！&lt;/p&gt;
</content:encoded><category>category:教程</category><category>tag:Docker</category><category>tag:fontInAss</category><category>tag:Emby</category><category>tag:字幕</category><category>tag:自托管</category><category>tag:Nginx</category></item><item><title>DokPloy 部署Garage与登录失败排查</title><link>https://catcat.blog/2026/01/dokploy-garage-s3-deployment-guide.html</link><guid isPermaLink="true">https://catcat.blog/2026/01/dokploy-garage-s3-deployment-guide.html</guid><description>排查 Garage WebUI 在 DokPloy 部署后登录问题，以及升级后显示 Unavailable 的问题</description><pubDate>Thu, 08 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;背景&lt;/h2&gt;
&lt;h3&gt;MinIO 进入维护模式&lt;/h3&gt;
&lt;p&gt;2025年12月3日，MinIO 官方宣布开源项目进入维护模式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;停止接受新功能和 PR&lt;/li&gt;
&lt;li&gt;不再积极处理现有 Issue 和 PR&lt;/li&gt;
&lt;li&gt;仅对严重安全漏洞&quot;视情况而定&quot;修复&lt;/li&gt;
&lt;li&gt;社区支持仅限&quot;尽力而为&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这一举措在开源社区引发强烈反响。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260108175154139.avif&quot; alt=&quot;image-20260108175153529&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;为什么选择 Garage&lt;/h3&gt;
&lt;p&gt;::github{repo=&quot;deuxfleurs-org/garage&quot;}&lt;/p&gt;
&lt;p&gt;Garage 是一个用 Rust 编写的分布式对象存储系统，具有以下特点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;S3 兼容&lt;/strong&gt;：可作为 MinIO 的平替&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;/ul&gt;
&lt;p&gt;配合 Garage WebUI 可以获得可视化管理界面：&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;khairul169/garage-webui&quot;}&lt;/p&gt;
&lt;h3&gt;Dokploy 部署配置&lt;/h3&gt;
&lt;p&gt;在 Dokploy 中部署 Garage + WebUI，需要配置以下环境变量：&lt;/p&gt;
&lt;p&gt;直接选择模板部署&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260108174434801.avif&quot; alt=&quot;image-20260108174433376&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# WebUI 环境变量
API_BASE_URL=http://garage:3903      # Admin API（内部通信，使用服务名）
S3_ENDPOINT_URL=http://garage:3900   # S3 API（内部通信）

# 认证配置（使用 htpasswd 生成）
AUTH_USER_PASS=admin:$2y$10$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;密码生成&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;htpasswd -nbBC 10 &quot;YOUR_USERNAME&quot; &quot;YOUR_PASSWORD&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果没有的htpasswd库的，需要安装 apache2-utils&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Garage 端口说明&lt;/strong&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;3900&lt;/td&gt;
&lt;td&gt;S3 API&lt;/td&gt;
&lt;td&gt;garage.xx.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3901&lt;/td&gt;
&lt;td&gt;RPC (节点通信)&lt;/td&gt;
&lt;td&gt;仅内部&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3902&lt;/td&gt;
&lt;td&gt;Web 静态托管&lt;/td&gt;
&lt;td&gt;可选配置&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3903&lt;/td&gt;
&lt;td&gt;Admin API&lt;/td&gt;
&lt;td&gt;仅内部&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3909&lt;/td&gt;
&lt;td&gt;WebUI&lt;/td&gt;
&lt;td&gt;garage-ui.xx.com&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;:::tip
&lt;code&gt;API_BASE_URL&lt;/code&gt; 和 &lt;code&gt;S3_ENDPOINT_URL&lt;/code&gt; 使用 Docker 服务名 &lt;code&gt;garage&lt;/code&gt; 而非外部域名，因为这是容器间内部通信。
:::&lt;/p&gt;
&lt;h2&gt;问题一：登录失败&lt;/h2&gt;
&lt;h3&gt;现象&lt;/h3&gt;
&lt;p&gt;使用 &lt;code&gt;htpasswd&lt;/code&gt; 生成了正确格式的密码哈希：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;htpasswd -nbBC 10 &quot;admin&quot; &quot;your-password&quot;
# 输出: admin:$2y$10$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;配置到 &lt;code&gt;.env&lt;/code&gt; 文件中：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;AUTH_USER_PASS=admin:$2y$10$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但登录时始终提示账户密码错误。&lt;/p&gt;
&lt;h3&gt;排查过程&lt;/h3&gt;
&lt;p&gt;使用 &lt;code&gt;docker inspect&lt;/code&gt; 查看容器内实际收到的环境变量：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker inspect garage-webui-1 --format &apos;{{range .Config.Env}}{{println .}}{{end}}&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;发现问题：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;AUTH_USER_PASS=admin:$2y$10
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;密码哈希被截断了！期望的完整值是 &lt;code&gt;admin:$2y$10$xxxxxx...&lt;/code&gt;，但实际只有 &lt;code&gt;admin:$2y$10&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;原因分析&lt;/h3&gt;
&lt;p&gt;:::warning
Docker Compose 会将 &lt;code&gt;.env&lt;/code&gt; 文件中的 &lt;code&gt;$&lt;/code&gt; 解释为变量替换符号。
:::&lt;/p&gt;
&lt;p&gt;bcrypt 哈希中包含多个 &lt;code&gt;$&lt;/code&gt; 符号（如 &lt;code&gt;$2y$10$Qtra4...&lt;/code&gt;）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;$2y&lt;/code&gt; 被当作变量 &lt;code&gt;2y&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$10&lt;/code&gt; 被当作变量 &lt;code&gt;10&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$Qtra4...&lt;/code&gt; 被当作变量 &lt;code&gt;Qtra4...&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;由于这些变量不存在，Docker Compose 将它们替换为空字符串，导致哈希被截断。&lt;/p&gt;
&lt;h3&gt;解决方案&lt;/h3&gt;
&lt;p&gt;在 &lt;code&gt;docker-compose.yml&lt;/code&gt; 中直接硬编码环境变量，使用 &lt;code&gt;$$&lt;/code&gt; 转义 &lt;code&gt;$&lt;/code&gt; 符号：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;services:
  garage-webui:
    environment:
      - AUTH_USER_PASS=admin:$$2y$$10$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      - API_BASE_URL=http://garage:3903
      - S3_ENDPOINT_URL=http://garage:3900
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;:::tip
&lt;code&gt;$$&lt;/code&gt; 在 Docker Compose 中会被转义为单个 &lt;code&gt;$&lt;/code&gt;，这样密码哈希就能完整传递给容器了。
:::&lt;/p&gt;
&lt;h2&gt;问题二：升级后状态显示 Unavailable&lt;/h2&gt;
&lt;h3&gt;现象&lt;/h3&gt;
&lt;p&gt;将 Garage 从 v2.0.0 升级到 v2.1.0 后，WebUI 显示连接状态为 &lt;strong&gt;Unavailable&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;排查过程&lt;/h3&gt;
&lt;p&gt;查看 Garage 日志：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker logs garage-1 --tail 30
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;发现大量错误：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;WARN Response: error 500 Internal Server Error, Internal error: Layout not ready
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;检查集群状态：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker exec garage-1 /garage status
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;输出显示节点没有分配角色：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;==== HEALTHY NODES ====
ID                Hostname  Address      Tags  Zone  Capacity          Version
7740e73cc75036ef  67993cf5  [::1]:3901         NO ROLE ASSIGNED        v2.1.0
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;原因分析&lt;/h3&gt;
&lt;p&gt;:::important
升级 Garage 后，需要重新配置集群布局（Cluster Layout）。节点没有分配角色时，无法提供 S3 服务。
:::&lt;/p&gt;
&lt;h3&gt;解决方案&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;分配节点角色&lt;/strong&gt;：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;docker exec garage-1 /garage layout assign -z dc1 -c 1G 7740e73cc75036ef
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;参数说明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-z dc1&lt;/code&gt;：Zone 名称&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-c 1G&lt;/code&gt;：分配的存储容量&lt;/li&gt;
&lt;li&gt;&lt;code&gt;7740e73cc75036ef&lt;/code&gt;：节点 ID（从 status 命令获取）&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;应用布局更改&lt;/strong&gt;：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;docker exec garage-1 /garage layout apply --version 1
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;验证状态&lt;/strong&gt;：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;docker exec garage-1 /garage status
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;现在应该显示：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;==== HEALTHY NODES ====
ID                Hostname  Address      Tags  Zone  Capacity   DataAvail  Version
7740e73cc75036ef  67993cf5  [::1]:3901   []    dc1   1000.0 MB  978.9 GB   v2.1.0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;刷新 WebUI，连接状态应恢复正常。&lt;/p&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;问题&lt;/th&gt;
&lt;th&gt;原因&lt;/th&gt;
&lt;th&gt;解决方案&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;登录失败&lt;/td&gt;
&lt;td&gt;Docker Compose &lt;code&gt;$&lt;/code&gt; 变量替换&lt;/td&gt;
&lt;td&gt;使用 &lt;code&gt;$$&lt;/code&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;Unavailable&lt;/td&gt;
&lt;td&gt;升级后节点无角色&lt;/td&gt;
&lt;td&gt;&lt;code&gt;layout assign&lt;/code&gt; + &lt;code&gt;apply&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;:::note
在 Dokploy 中管理 Docker Compose 项目时，环境变量的特殊字符处理需要特别注意。直接在 &lt;code&gt;docker-compose.yml&lt;/code&gt; 中硬编码可以避免 &lt;code&gt;.env&lt;/code&gt; 文件的变量替换问题。
:::&lt;/p&gt;
&lt;h2&gt;界面预览&lt;/h2&gt;
&lt;p&gt;界面还是挺不错，简洁又好看。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260108174812934.avif&quot; alt=&quot;image-20260108174812353&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260108174831624.avif&quot; alt=&quot;image-20260108174831129&quot; /&gt;&lt;/p&gt;
</content:encoded><category>category:教程</category><category>tag:Garage</category><category>tag:Docker</category><category>tag:Dokploy</category><category>tag:S3</category></item><item><title>Docker 代理设置指南 - 国内环境下的镜像加速与代理配置</title><link>https://catcat.blog/2026/01/docker-proxy-setup.html</link><guid isPermaLink="true">https://catcat.blog/2026/01/docker-proxy-setup.html</guid><description>详解 Docker 在中国大陆的代理设置方法，包括镜像加速、systemd 代理配置、build 时代理、全局代理等多种方案</description><pubDate>Wed, 07 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;由于众所周知的原因，在国内使用 Docker 时，经常会遇到拉取镜像缓慢甚至失败的问题。本文整理了两种主要的解决方案：使用国内镜像加速和配置代理。&lt;/p&gt;
&lt;h2&gt;方案一：国内镜像加速&lt;/h2&gt;
&lt;p&gt;最简单的方式是配置国内镜像源。编辑 &lt;code&gt;/etc/docker/daemon.json&lt;/code&gt; 文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
    &quot;registry-mirrors&quot;: [&quot;https://docker.1ms.run&quot;]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但是这个方法总归是权宜之计，速度并不是很好。而一些部署的国内镜像源是需要付费的，怕麻烦的可以购买付费用这些：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;毫秒镜像：&lt;a href=&quot;https://1ms.run/&quot;&gt;https://1ms.run/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;轩辕镜像：&lt;a href=&quot;https://xuanyuan.cloud/&quot;&gt;https://xuanyuan.cloud/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;配置完成后重启 Docker 服务：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl daemon-reload
sudo systemctl restart docker
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;方案二：使用代理&lt;/h2&gt;
&lt;h3&gt;快速搭建 Linux 代理环境&lt;/h3&gt;
&lt;p&gt;如果你还没有在 Linux 上配置代理，推荐使用 &lt;a href=&quot;https://github.com/nelvko/clash-for-linux-install&quot;&gt;clash-for-linux-install&lt;/a&gt; 项目快速部署。&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;nelvko/clash-for-linux-install&quot;}&lt;/p&gt;
&lt;p&gt;:::note
不要在公网部署这个，尤其面板之类的。务必关掉端口，走私网链接。
:::&lt;/p&gt;
&lt;p&gt;安装命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone --branch master --depth 1 https://gh-proxy.org/https://github.com/nelvko/clash-for-linux-install.git &amp;amp;&amp;amp; cd clash-for-linux-install &amp;amp;&amp;amp; bash install.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;常用命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Usage:
  clashctl COMMAND [OPTIONS]

Commands:
    on                    开启代理
    off                   关闭代理
    status                内核状况
    proxy                 系统代理
    ui                    Web 面板
    secret                Web 密钥
    sub                   订阅管理
    upgrade               升级内核
    tun                   Tun 模式
    mixin                 Mixin 配置

Global Options:
    -h, --help            显示帮助信息
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;理解代理地址的选择&lt;/h3&gt;
&lt;p&gt;在配置 Docker 代理之前，需要先理解你的代理部署在哪里：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;场景一：代理在远程服务器（如通过 Tailscale/WireGuard 访问）&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;┌─────────────────┐      VPN 网络        ┌─────────────────┐
│  代理服务器      │◄──────────────────►│  本机 (Docker)  │
│  100.98.32.42   │                      │                 │
│  :7890          │                      │                 │
└─────────────────┘                      └─────────────────┘
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这种情况下，无论是宿主机还是容器，都直接使用远程代理地址 &lt;code&gt;100.98.32.42:7890&lt;/code&gt;。Docker 容器（即使使用 bridge 网络）的流量会经过宿主机路由，可以正常访问 VPN 网络。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;场景二：代理运行在宿主机本地&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;┌─────────────────────────────────────────┐
│  宿主机                                  │
│  ┌─────────────┐    ┌─────────────────┐ │
│  │ 代理服务    │    │ Docker 容器     │ │
│  │ 127.0.0.1   │◄───│ (bridge 网络)   │ │
│  │ :7890       │    │                 │ │
│  └─────────────┘    └─────────────────┘ │
└─────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这种情况下比较复杂：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;宿主机上的服务可以直接使用 &lt;code&gt;127.0.0.1:7890&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;但容器内的 &lt;code&gt;127.0.0.1&lt;/code&gt; 指向容器自己，不是宿主机&lt;/li&gt;
&lt;li&gt;容器需要使用 &lt;code&gt;172.17.0.1:7890&lt;/code&gt;（docker0 网桥地址）来访问宿主机上的代理&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Docker Pull/Push 代理配置&lt;/h3&gt;
&lt;p&gt;Docker 的 &lt;code&gt;pull&lt;/code&gt; 和 &lt;code&gt;push&lt;/code&gt; 命令由 systemd 管理，需要为 Docker 服务配置代理环境变量。&lt;/p&gt;
&lt;p&gt;创建配置目录和文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo mkdir -p /etc/systemd/system/docker.service.d
sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;写入以下内容（将代理地址替换为你自己的）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Service]
Environment=&quot;HTTP_PROXY=http://100.98.32.42:7890&quot;
Environment=&quot;HTTPS_PROXY=http://100.98.32.42:7890&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;:::note
如果代理运行在宿主机本地，这里可以直接使用 &lt;code&gt;127.0.0.1:7890&lt;/code&gt;，因为 Docker daemon 运行在宿主机上。
:::&lt;/p&gt;
&lt;p&gt;重新加载配置并重启 Docker：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl daemon-reload
sudo systemctl restart docker
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;验证配置是否生效：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl show --property=Environment docker
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;此时 &lt;code&gt;docker pull&lt;/code&gt; 就会通过代理拉取镜像了。&lt;/p&gt;
&lt;h3&gt;Docker Build 时使用代理&lt;/h3&gt;
&lt;p&gt;构建镜像时需要通过 &lt;code&gt;--build-arg&lt;/code&gt; 参数传递代理设置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker build \
    --build-arg http_proxy=http://100.98.32.42:7890 \
    --build-arg https_proxy=http://100.98.32.42:7890 \
    -t image_name .
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;:::note
如果你的代理在远程服务器（通过 VPN 访问），直接使用远程地址即可。容器的网络流量会经过宿主机路由，可以正常访问 VPN 网络中的代理。
:::&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;如果代理在宿主机本地&lt;/strong&gt;，需要使用 docker0 网桥地址：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker build \
    --build-arg http_proxy=http://172.17.0.1:7890 \
    --build-arg https_proxy=http://172.17.0.1:7890 \
    -t image_name .
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;或者使用 &lt;code&gt;--network=host&lt;/code&gt; 让构建过程直接使用宿主机网络：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker build --network=host \
    --build-arg http_proxy=http://127.0.0.1:7890 \
    --build-arg https_proxy=http://127.0.0.1:7890 \
    -t image_name .
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Docker 全局代理配置&lt;/h3&gt;
&lt;p&gt;通过配置 &lt;code&gt;~/.docker/config.json&lt;/code&gt; 可以为所有新创建的容器设置代理：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vim ~/.docker/config.json
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;{
    &quot;proxies&quot;: {
        &quot;default&quot;: {
            &quot;httpProxy&quot;: &quot;http://100.98.32.42:7890&quot;,
            &quot;httpsProxy&quot;: &quot;http://100.98.32.42:7890&quot;,
            &quot;noProxy&quot;: &quot;localhost,127.0.0.1,.local&quot;
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;:::important
这个配置只对 &lt;code&gt;build&lt;/code&gt; 和 &lt;code&gt;run&lt;/code&gt; 创建的新容器生效，&lt;strong&gt;不影响 &lt;code&gt;docker pull&lt;/code&gt;&lt;/strong&gt;。pull 仍需按上文配置 systemd 代理。
:::&lt;/p&gt;
&lt;p&gt;:::caution
容器一旦创建，代理环境变量就会被固化。即使之后修改或删除 &lt;code&gt;config.json&lt;/code&gt;，已有容器仍会使用创建时的代理设置。如需关闭代理，需要在容器内手动清除环境变量：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export http_proxy=
export https_proxy=
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;最终验证&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260107153907860.avif&quot; alt=&quot;image-20260107153901735&quot; /&gt;&lt;/p&gt;
&lt;p&gt;:::&lt;/p&gt;
&lt;h3&gt;容器内使用代理&lt;/h3&gt;
&lt;p&gt;有时需要在运行中的容器内访问外网，以下是几种常用方法。&lt;/p&gt;
&lt;h4&gt;方法一：直接设置环境变量（推荐）&lt;/h4&gt;
&lt;p&gt;在容器内执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export ALL_PROXY=&apos;socks5://100.98.32.42:7890&apos;
# 或者
export http_proxy=&apos;http://100.98.32.42:7890&apos;
export https_proxy=&apos;http://100.98.32.42:7890&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果代理在宿主机本地，使用 docker0 地址：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export ALL_PROXY=&apos;socks5://172.17.0.1:7890&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;方法二：使用 host 网络模式&lt;/h4&gt;
&lt;p&gt;创建容器时使用 &lt;code&gt;--network=host&lt;/code&gt; 参数：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker run --network=host your_image
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;此时容器与宿主机共享网络栈。如果代理在宿主机本地，可以直接使用 &lt;code&gt;127.0.0.1&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export ALL_PROXY=&apos;socks5://127.0.0.1:7890&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;:::note
使用 &lt;code&gt;--network=host&lt;/code&gt; 后，&lt;code&gt;-p&lt;/code&gt; 端口映射参数将失效，容器的所有端口都会直接暴露在宿主机上。
:::&lt;/p&gt;
&lt;h4&gt;方法三：使用 Docker 全局代理配置&lt;/h4&gt;
&lt;p&gt;如上文所述，配置 &lt;code&gt;~/.docker/config.json&lt;/code&gt; 后，新创建的容器会自动继承代理设置。&lt;/p&gt;
&lt;h2&gt;网络问题排查&lt;/h2&gt;
&lt;h3&gt;验证容器能否访问代理&lt;/h3&gt;
&lt;p&gt;在容器内测试代理连通性：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 测试 HTTP 代理
curl -x http://100.98.32.42:7890 https://www.google.com

# 测试 SOCKS5 代理
curl -x socks5://100.98.32.42:7890 https://www.google.com
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;查看 docker0 网桥地址&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;ip addr show docker0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通常是 &lt;code&gt;172.17.0.1&lt;/code&gt;，但可能因配置而异。&lt;/p&gt;
&lt;h3&gt;确认 VPN 网络可达&lt;/h3&gt;
&lt;p&gt;如果代理通过 VPN 访问，先在宿主机上确认能正常连接：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -x http://100.98.32.42:7890 https://www.google.com
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;代理地址速查表&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;场景&lt;/th&gt;
&lt;th&gt;代理在远程服务器&lt;/th&gt;
&lt;th&gt;代理在宿主机本地&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;systemd 配置&lt;/td&gt;
&lt;td&gt;远程地址（如 &lt;code&gt;100.98.32.42:7890&lt;/code&gt;）&lt;/td&gt;
&lt;td&gt;&lt;code&gt;127.0.0.1:7890&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;docker build (bridge)&lt;/td&gt;
&lt;td&gt;远程地址&lt;/td&gt;
&lt;td&gt;&lt;code&gt;172.17.0.1:7890&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;docker build (host)&lt;/td&gt;
&lt;td&gt;远程地址&lt;/td&gt;
&lt;td&gt;&lt;code&gt;127.0.0.1:7890&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;容器内 (bridge)&lt;/td&gt;
&lt;td&gt;远程地址&lt;/td&gt;
&lt;td&gt;&lt;code&gt;172.17.0.1:7890&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;容器内 (host)&lt;/td&gt;
&lt;td&gt;远程地址&lt;/td&gt;
&lt;td&gt;&lt;code&gt;127.0.0.1:7890&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;config.json&lt;/td&gt;
&lt;td&gt;远程地址&lt;/td&gt;
&lt;td&gt;&lt;code&gt;172.17.0.1:7890&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;常见问题&lt;/h2&gt;
&lt;h3&gt;SOCKS5 代理支持&lt;/h3&gt;
&lt;p&gt;Docker 的 &lt;code&gt;config.json&lt;/code&gt; 配置目前只支持 HTTP/HTTPS/FTP 协议，不直接支持 SOCKS5。如果你使用的是 Clash 等支持混合端口的代理，同一端口通常同时支持 HTTP 和 SOCKS5，直接使用 HTTP 方式配置即可。&lt;/p&gt;
&lt;h3&gt;临时禁用代理&lt;/h3&gt;
&lt;p&gt;如果配置了全局代理但临时需要禁用：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;重命名 &lt;code&gt;~/.docker/config.json&lt;/code&gt; 文件&lt;/li&gt;
&lt;li&gt;在容器内清除环境变量：&lt;code&gt;export http_proxy= https_proxy=&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;使用 &lt;code&gt;--build-arg http_proxy= --build-arg https_proxy=&lt;/code&gt; 覆盖&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;需求&lt;/th&gt;
&lt;th&gt;推荐方案&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;加速镜像拉取&lt;/td&gt;
&lt;td&gt;systemd 代理配置&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;构建时访问外网&lt;/td&gt;
&lt;td&gt;&lt;code&gt;--build-arg&lt;/code&gt; 或全局配置&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;容器内临时访问外网&lt;/td&gt;
&lt;td&gt;直接设置 &lt;code&gt;ALL_PROXY&lt;/code&gt; 环境变量&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;所有容器默认使用代理&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/.docker/config.json&lt;/code&gt; 全局配置&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;关键是理解你的代理部署位置：远程代理直接用远程地址，本地代理在容器内需要用 &lt;code&gt;172.17.0.1&lt;/code&gt;。&lt;/p&gt;
</content:encoded><category>category:教程</category><category>tag:Docker</category><category>tag:Proxy</category><category>tag:Linux</category></item><item><title>Icons Gallery - 自托管图标 CDN 加速服务</title><link>https://catcat.blog/2026/01/icons-gallery.html</link><guid isPermaLink="true">https://catcat.blog/2026/01/icons-gallery.html</guid><description>基于 selfh.st/icons 的图标浏览与分发服务，面向中国大陆用户提供高速稳定的 CDN 访问体验</description><pubDate>Tue, 06 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Icons Gallery 是一个基于上游仓库 &lt;a href=&quot;https://github.com/selfhst/icons&quot;&gt;selfh.st/icons&lt;/a&gt; 构建的图标浏览与分发服务，面向中国大陆用户提供高速、稳定的 CDN 访问体验。&lt;/p&gt;
&lt;h2&gt;项目地址&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;在线访问：&lt;a href=&quot;https://ico.bytecook.io&quot;&gt;ico.bytecook.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NPM 包：&lt;a href=&quot;https://www.npmjs.com/package/@bytecook/icons&quot;&gt;@bytecook/icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;上游仓库：&lt;a href=&quot;https://github.com/selfhst/icons&quot;&gt;github.com/selfhst/icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;官方包：&lt;a href=&quot;https://www.jsdelivr.com/package/gh/selfhst/icons&quot;&gt;jsdelivr.com/package/gh/selfhst/icons&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;为什么做这个项目&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://selfh.st/icons&quot;&gt;selfh.st/icons&lt;/a&gt; 是一个质量非常高的自托管应用图标集合，收录了 6000+ 精选图标，覆盖大量常见的自托管服务和应用程序，适用于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Homepage / Homarr / Dashy 等仪表板&lt;/li&gt;
&lt;li&gt;自建 NAS / 服务器应用展示&lt;/li&gt;
&lt;li&gt;文档、博客中的图标引用&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但由于原始资源主要托管在 GitHub，国内用户在实际使用过程中经常遇到以下问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;访问速度缓慢&lt;/li&gt;
&lt;li&gt;图标资源加载失败&lt;/li&gt;
&lt;li&gt;jsDelivr CDN 稳定性不足&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;为了解决上述问题，搭建了该国内 CDN 加速镜像服务。&lt;/p&gt;
&lt;h2&gt;速度对比&lt;/h2&gt;
&lt;h3&gt;jsDelivr&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s2.loli.net/2026/01/05/uJ9XjmEpAvLH7z3.png&quot; alt=&quot;jsDelivr&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Peekabo（Icons Gallery CDN）&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s2.loli.net/2026/01/05/vtGWyK1lMV8DJbd.png&quot; alt=&quot;Peekabo&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;功能特性&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;6000+ 图标，完整同步 selfh.st/icons 仓库&lt;/li&gt;
&lt;li&gt;支持 SVG / PNG / WebP / AVIF / ICO 多种格式&lt;/li&gt;
&lt;li&gt;国内 CDN 加速，访问快速稳定&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;使用方法&lt;/h2&gt;
&lt;h3&gt;在线浏览&lt;/h3&gt;
&lt;p&gt;直接访问 &lt;a href=&quot;https://ico.bytecook.io&quot;&gt;ico.bytecook.io&lt;/a&gt;，支持关键词搜索、分类筛选，点击图标可查看详情并复制链接。&lt;/p&gt;
&lt;h3&gt;CDN 引用方式&lt;/h3&gt;
&lt;p&gt;图标 URL 格式：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://ico.bytecook.io/{格式}/{图标名}.{格式}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;示例：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;https://ico.bytecook.io/svg/docker.svg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;https://ico.bytecook.io/png/nginx.png&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;https://ico.bytecook.io/webp/portainer.webp&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;NPM 包安装&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;npm install @bytecook/icons
# or
pnpm add @bytecook/icons
# or
yarn add @bytecook/icons
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;代码使用&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;import { createIconUrl } from &apos;@bytecook/icons&apos;;

// 默认: SVG 格式, Peekabo CDN (中国加速)
createIconUrl(&apos;nginx&apos;);
// =&amp;gt; https://ico.bytecook.io/svg/nginx.svg

// 指定格式
createIconUrl(&apos;nginx&apos;, { format: &apos;png&apos; });
// =&amp;gt; https://ico.bytecook.io/png/nginx.png

// 暗色/亮色变体
createIconUrl(&apos;nginx&apos;, { format: &apos;png&apos;, variant: &apos;dark&apos; });
// =&amp;gt; https://ico.bytecook.io/png/nginx-dark.png

// 使用 jsDelivr CDN（全球加速）
createIconUrl(&apos;nginx&apos;, { cdn: &apos;jsdelivr&apos; });
// =&amp;gt; https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/nginx.svg
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;工厂模式&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;import { createIconHelper } from &apos;@bytecook/icons&apos;;

const icons = createIconHelper({ format: &apos;webp&apos; });

icons.url(&apos;docker&apos;);           // WebP 格式
icons.svg(&apos;docker&apos;);           // 强制 SVG
icons.png(&apos;docker&apos;, &apos;dark&apos;);   // PNG 暗色变体
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;图标元数据&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;import iconList from &apos;@bytecook/icons/icons.json&apos;;

console.log(iconList.length); // 2360+ 图标

// 每个图标包含:
// { name, reference, category, svg, png, webp, light, dark, tags }
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;CDN 节点&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;CDN&lt;/th&gt;
&lt;th&gt;URL&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Peekabo&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://ico.bytecook.io&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;中国大陆加速（默认）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;jsDelivr&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://cdn.jsdelivr.net/gh/selfhst/icons@main&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;全球 CDN&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;支持的格式&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SVG&lt;/strong&gt; - 可缩放矢量图形（推荐）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PNG&lt;/strong&gt; - 光栅图像&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WebP&lt;/strong&gt; - 现代格式，压缩率好&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AVIF&lt;/strong&gt; - 下一代格式，压缩率最佳&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ICO&lt;/strong&gt; - Windows 图标格式&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;图标变体&lt;/h2&gt;
&lt;p&gt;许多图标支持亮色和暗色变体：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;标准版本：&lt;code&gt;nginx.svg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;亮色变体：&lt;code&gt;nginx-light.svg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;暗色变体：&lt;code&gt;nginx-dark.svg&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;相关链接&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;在线图标库：&lt;a href=&quot;https://ico.bytecook.io&quot;&gt;ico.bytecook.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NPM 包：&lt;a href=&quot;https://www.npmjs.com/package/@bytecook/icons&quot;&gt;@bytecook/icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;官方包：&lt;a href=&quot;https://www.jsdelivr.com/package/gh/selfhst/icons&quot;&gt;jsdelivr.com/package/gh/selfhst/icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;图标来源：&lt;a href=&quot;https://github.com/selfhst/icons&quot;&gt;selfh.st/icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CDN 赞助：&lt;a href=&quot;https://peekabo.io/&quot;&gt;Peekabo CDN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>category:项目</category><category>tag:Icons</category><category>tag:CDN</category><category>tag:selfhosted</category></item><item><title>Pocket ID 在 Dokploy 上的部署教程</title><link>https://catcat.blog/2026/01/pocket-id-dokploy.html</link><guid isPermaLink="true">https://catcat.blog/2026/01/pocket-id-dokploy.html</guid><description>完整指南教你在 Dokploy 上部署 Pocket ID 无密码认证服务,实现基于 Passkey 的 OIDC 单点登录,包含版本修复、环境配置和应用集成。</description><pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在自建服务越来越多的今天,管理众多账号密码成了一大痛点。Pocket ID 提供了一个优雅的解决方案:基于 Passkey 的无密码认证系统,支持标准的 OIDC 协议,可以为你的所有自托管应用提供统一的单点登录(SSO)能力。&lt;/p&gt;
&lt;p&gt;本文将详细介绍如何在 Dokploy 上部署 Pocket ID,并以 Linkding 为例演示如何接入应用。&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;pocket-id/pocket-id&quot;}&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;什么是 Pocket ID?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Pocket ID&lt;/strong&gt; 是一个现代化的 OpenID Connect (OIDC) 身份提供商,专注于使用 Passkey 进行无密码认证。&lt;/p&gt;
&lt;h3&gt;核心特性&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;完全无密码&lt;/strong&gt;: 采用 Passkey 技术(WebAuthn),告别传统密码的安全隐患&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OIDC 标准支持&lt;/strong&gt;: 兼容所有支持 OIDC 的应用,如 Immich、Nextcloud、Grafana 等&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自托管友好&lt;/strong&gt;: 轻量级设计,使用 SQLite 或 PostgreSQL 存储数据&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;硬件密钥支持&lt;/strong&gt;: 支持 YubiKey 等 FIDO2 硬件安全密钥&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;简洁高效&lt;/strong&gt;: 相比 Keycloak、Authelia 等企业级方案更轻量、配置更简单&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;技术栈&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;后端&lt;/strong&gt;: Go (高性能、低资源占用)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;前端&lt;/strong&gt;: Svelte + TypeScript&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据库&lt;/strong&gt;: SQLite(默认)或 PostgreSQL&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;在 Dokploy 上部署&lt;/h2&gt;
&lt;h3&gt;前置要求&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;已安装 Dokploy 的服务器&lt;/li&gt;
&lt;li&gt;一个域名(用于 HTTPS 访问,Passkey 必须在 HTTPS 环境下使用)&lt;/li&gt;
&lt;li&gt;至少 512MB 可用内存&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;创建 Compose 服务&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;登录 Dokploy 管理面板&lt;/li&gt;
&lt;li&gt;选择对应的项目(或新建一个)&lt;/li&gt;
&lt;li&gt;点击 &quot;Create Service&quot; → 选择 &quot;Template&quot;&lt;/li&gt;
&lt;li&gt;搜索 Pocket ID 模板并选择&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260105111216323.avif&quot; alt=&quot;image-20260105111215504&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Docker Compose 配置&lt;/h3&gt;
&lt;p&gt;:::caution
Dokploy 的默认模板可能使用的是 &lt;code&gt;v1&lt;/code&gt; 版本,但该版本已过时。&lt;strong&gt;必须修改镜像为 &lt;code&gt;ghcr.io/pocket-id/pocket-id:v2&lt;/code&gt;&lt;/strong&gt;,否则可能遇到兼容性问题和功能缺失。
:::&lt;/p&gt;
&lt;p&gt;在 Compose 配置中,粘贴以下内容:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;services:
  pocket-id:
    image: ghcr.io/pocket-id/pocket-id:v2  #也就这里要修改，因为模板没更新是v1版本
    restart: unless-stopped
    environment:
      - APP_URL
      - TRUST_PROXY
      - ENCRYPTION_KEY
    volumes:
      - pocket-id-data:/app/data
    healthcheck:
      test: [ &quot;CMD&quot;, &quot;/app/pocket-id&quot;, &quot;healthcheck&quot; ]
      interval: 1m30s
      timeout: 5s
      retries: 2
      start_period: 10s

volumes:
  pocket-id-data:
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260105111350777.avif&quot; alt=&quot;image-20260105111350098&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;环境变量配置&lt;/h2&gt;
&lt;p&gt;在 Dokploy 的 &quot;Environment&quot; 标签页中,添加以下环境变量:&lt;/p&gt;
&lt;h3&gt;APP_URL&lt;/h3&gt;
&lt;p&gt;应用的完整访问地址,&lt;strong&gt;必须使用 HTTPS&lt;/strong&gt;。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;APP_URL=https://pocketid.your.domain
&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;https://pocketid.example.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;使用 Dokploy 自动生成的域名: &lt;code&gt;https://berohost-pocketid-0da961-5-175-220-72.traefik.me&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;:::tip
如果使用 Dokploy 自动生成的域名,可以在 Domains 标签页查看完整的 URL。
:::&lt;/p&gt;
&lt;h3&gt;ENCRYPTION_KEY&lt;/h3&gt;
&lt;p&gt;用于加密敏感数据的密钥,首次部署时设置为 &lt;code&gt;CHANGEME&lt;/code&gt;,系统会自动生成。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ENCRYPTION_KEY=CHANGEME
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;如果需要手动生成密钥&lt;/strong&gt;(可选),可以使用以下命令:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;openssl rand -base64 32
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;TRUST_PROXY&lt;/h3&gt;
&lt;p&gt;启用反向代理支持,Dokploy 默认使用 Traefik 作为反向代理,需设置为 &lt;code&gt;true&lt;/code&gt;。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;TRUST_PROXY=true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260105111448157.avif&quot; alt=&quot;image-20260105111447700&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;部署与初始化&lt;/h2&gt;
&lt;h3&gt;启动服务&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;在 Compose 服务页面,点击 &lt;strong&gt;&quot;Deploy&quot;&lt;/strong&gt; 按钮&lt;/li&gt;
&lt;li&gt;等待镜像拉取和容器启动&lt;/li&gt;
&lt;li&gt;检查 &quot;Logs&quot; 标签页,确认服务正常启动
&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260105111610745.avif&quot; alt=&quot;image-20260105111610271&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;访问 Setup 页面&lt;/h3&gt;
&lt;p&gt;服务启动后,访问:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://pocketid.your.domain/setup
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260105110050077.avif&quot; alt=&quot;image-20260105110038267&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;创建管理员账户&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Username&lt;/strong&gt;: 输入管理员用户名(建议使用邮箱格式,如 &lt;code&gt;admin@example.com&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Display Name&lt;/strong&gt;: 显示名称&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create Passkey&lt;/strong&gt;: 点击后按照浏览器提示创建 Passkey&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;:::note
Passkey 创建方式&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;桌面浏览器&lt;/strong&gt;: 可选择使用系统密码管理器(如 Windows Hello、macOS Touch ID)或硬件密钥&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;移动设备&lt;/strong&gt;: 可使用生物识别(指纹/面容)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;跨设备&lt;/strong&gt;: 使用 1Password、Bitwarden 等密码管理器同步 Passkey
:::&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;完成后,你将自动登录到管理面板。&lt;/p&gt;
&lt;h3&gt;接入通行密钥&lt;/h3&gt;
&lt;p&gt;访问 https://pocketid.your.domain/settings/account&lt;/p&gt;
&lt;p&gt;点击下方的增加通行密钥&lt;/p&gt;
&lt;p&gt;一般建议多选一个，以备不时之需。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260105111937855.avif&quot; alt=&quot;image-20260105111937578&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;分配用户组&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260105114641259.avif&quot; alt=&quot;image-20260105114640534&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;应用集成:以 Linkding 为例&lt;/h2&gt;
&lt;h3&gt;在 Pocket ID 中创建 OIDC 客户端&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;登录 Pocket ID 管理面板&lt;/li&gt;
&lt;li&gt;进入 &lt;strong&gt;&quot;Clients&quot;&lt;/strong&gt; 页面&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;&quot;Create Client&quot;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;填写以下信息:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Client Name: Linkding
Redirect URIs: https://linkding.your.domain/oidc/callback/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;:::tip&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;回调 URL&lt;/strong&gt; 也可以留空,首次登录时会自动填充&lt;/li&gt;
&lt;li&gt;可选上传 Logo 图标,用于登录页面展示
:::&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;创建完成后,&lt;strong&gt;复制并保存&lt;/strong&gt;以下凭证信息:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Client ID&lt;/strong&gt;: 例如 &lt;code&gt;abc123def456&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Client Secret&lt;/strong&gt;: 例如 &lt;code&gt;secret_xyz789&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;在 Linkding 中配置 OIDC&lt;/h3&gt;
&lt;p&gt;假设你使用 Docker Compose 部署 Linkding,在服务的环境变量(&lt;code&gt;.env&lt;/code&gt; 文件或 Dokploy 的 Environment 标签页)中添加:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 启用 OIDC 登录
LD_ENABLE_OIDC=True

# Pocket ID 客户端凭证
OIDC_RP_CLIENT_ID=&amp;lt;从 Pocket ID 复制的 Client ID&amp;gt;
OIDC_RP_CLIENT_SECRET=&amp;lt;从 Pocket ID 复制的 Client Secret&amp;gt;

# OIDC 端点配置
OIDC_OP_AUTHORIZATION_ENDPOINT=https://pocketid.your.domain/authorize
OIDC_OP_TOKEN_ENDPOINT=https://pocketid.your.domain/api/oidc/token
OIDC_OP_USER_ENDPOINT=https://pocketid.your.domain/api/oidc/userinfo
OIDC_OP_JWKS_ENDPOINT=https://pocketid.your.domain/.well-known/jwks.json

# PKCE 支持(根据实际需求调整,默认为 True)
OIDC_USE_PKCE=False

# SSL 证书验证(自签名证书时设为 False)
OIDC_VERIFY_SSL=True

# 可选:自定义用户名字段(默认使用 email)
# OIDC_USERNAME_CLAIM=preferred_username
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;完整参数说明:&lt;/strong&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;&lt;code&gt;LD_ENABLE_OIDC&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;启用 OIDC 登录&lt;/td&gt;
&lt;td&gt;&lt;code&gt;True&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;OIDC_RP_CLIENT_ID&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pocket ID 客户端 ID&lt;/td&gt;
&lt;td&gt;从 Pocket ID 复制&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;OIDC_RP_CLIENT_SECRET&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pocket ID 客户端密钥&lt;/td&gt;
&lt;td&gt;从 Pocket ID 复制&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;OIDC_OP_AUTHORIZATION_ENDPOINT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;授权端点&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://pocketid.your.domain/authorize&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;OIDC_OP_TOKEN_ENDPOINT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Token 端点&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://pocketid.your.domain/api/oidc/token&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;OIDC_OP_USER_ENDPOINT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;用户信息端点&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://pocketid.your.domain/api/oidc/userinfo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;OIDC_OP_JWKS_ENDPOINT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;JWKS 端点&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://pocketid.your.domain/.well-known/jwks.json&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;OIDC_USE_PKCE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;启用 PKCE 验证&lt;/td&gt;
&lt;td&gt;&lt;code&gt;False&lt;/code&gt;(Pocket ID 暂不需要)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;OIDC_VERIFY_SSL&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;验证 SSL 证书&lt;/td&gt;
&lt;td&gt;&lt;code&gt;True&lt;/code&gt;(生产环境推荐)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;OIDC_USERNAME_CLAIM&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;用户名字段(可选)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;email&lt;/code&gt; 或 &lt;code&gt;preferred_username&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;重新部署 Linkding&lt;/h3&gt;
&lt;p&gt;保存环境变量后,在 Dokploy 中点击 &lt;strong&gt;&quot;Redeploy&quot;&lt;/strong&gt; 重新部署 Linkding 服务。&lt;/p&gt;
&lt;p&gt;部署完成后,访问 Linkding 登录页面,你将看到 &lt;strong&gt;&quot;Sign in with OIDC&quot;&lt;/strong&gt; 按钮。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260105114129197.avif&quot; alt=&quot;image-20260105114128831&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260105114153596.avif&quot; alt=&quot;image-20260105114152444&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;通用集成说明&lt;/h3&gt;
&lt;p&gt;对于其他支持 OIDC 的应用,通常需要以下信息:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Issuer / Discovery URL: https://pocketid.your.domain
Authorization Endpoint: https://pocketid.your.domain/authorize
Token Endpoint: https://pocketid.your.domain/api/oidc/token
UserInfo Endpoint: https://pocketid.your.domain/api/oidc/userinfo
JWKS Endpoint: https://pocketid.your.domain/.well-known/jwks.json
Client ID: 从 Pocket ID 获取
Client Secret: 从 Pocket ID 获取
Scopes: openid profile email
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;:::note
大部分 OIDC 应用支持自动发现配置,只需填写 Issuer URL (&lt;code&gt;https://pocketid.your.domain&lt;/code&gt;) 即可。如果需要手动配置,请使用上述完整端点路径。
:::&lt;/p&gt;
&lt;p&gt;:::tip&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Immich&lt;/strong&gt;: 支持 OIDC,配置路径在 Settings → OAuth&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Grafana&lt;/strong&gt;: 配置文件中的 &lt;code&gt;[auth.generic_oauth]&lt;/code&gt; 部分&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nextcloud&lt;/strong&gt;: 安装 &quot;OpenID Connect user backend&quot; 插件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Portainer&lt;/strong&gt;: Business Edition 支持 OIDC
:::&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;更多接入可以见  https://pocket-id.org/docs/client-examples&lt;/h2&gt;
&lt;h2&gt;备份策略&lt;/h2&gt;
&lt;h3&gt;数据持久化&lt;/h3&gt;
&lt;p&gt;Pocket ID 的所有数据保存在 &lt;code&gt;pocket-id-data&lt;/code&gt; 数据卷中,包括:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SQLite 数据库(用户、客户端、Passkey 信息)&lt;/li&gt;
&lt;li&gt;配置文件&lt;/li&gt;
&lt;li&gt;会话数据&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;备份方法&lt;/h3&gt;
&lt;p&gt;** 使用 Dokploy 内置备份**&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;进入服务的 &quot;Backups&quot; 标签页&lt;/li&gt;
&lt;li&gt;配置备份目标(如 S3、本地路径)&lt;/li&gt;
&lt;li&gt;设置备份计划(建议每日备份)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260105115339750.avif&quot; alt=&quot;image-20260105115339189&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2026/01/20260105115403474.avif&quot; alt=&quot;image-20260105115402992&quot; /&gt;&lt;/p&gt;
&lt;p&gt;:::warning&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;备份文件包含加密密钥和用户认证信息,务必妥善保管&lt;/li&gt;
&lt;li&gt;定期测试备份恢复流程,确保数据可用&lt;/li&gt;
&lt;li&gt;如果使用 PostgreSQL,额外备份数据库
:::&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;安全加固建议&lt;/h2&gt;
&lt;h3&gt;1. 强制 HTTPS&lt;/h3&gt;
&lt;p&gt;确保 &lt;code&gt;APP_URL&lt;/code&gt; 使用 HTTPS,Passkey 在非 HTTPS 环境下无法使用。&lt;/p&gt;
&lt;h3&gt;2. 限制管理面板访问&lt;/h3&gt;
&lt;p&gt;如果只有特定 IP 需要访问管理面板,可以在 Traefik 中配置 IP 白名单。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;常见问题&lt;/h2&gt;
&lt;h3&gt;Q: Passkey 创建失败怎么办?&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; 检查以下几点:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;确认访问地址使用 HTTPS&lt;/li&gt;
&lt;li&gt;浏览器是否支持 WebAuthn(Chrome 67+、Firefox 60+、Safari 14+)&lt;/li&gt;
&lt;li&gt;检查浏览器控制台是否有错误信息&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Q: 忘记管理员账户怎么办?&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; 如果无法登录,可以通过数据库重置:&lt;/p&gt;
&lt;p&gt;详情见 https://pocket-id.org/docs/troubleshooting/account-recovery&lt;/p&gt;
&lt;p&gt;:::caution
建议为管理员账户配置多个 Passkey,避免单点故障。
:::&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;Pocket ID 为自托管用户提供了一个轻量级、现代化的身份认证解决方案。&lt;/p&gt;
&lt;p&gt;再也不需要记密码了。&lt;/p&gt;
&lt;p&gt;下一步,你可以:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将更多自托管应用接入 Pocket ID&lt;/li&gt;
&lt;li&gt;配置多因素认证(MFA)增强安全性&lt;/li&gt;
&lt;li&gt;探索 &lt;a href=&quot;https://pocket-id.org/docs/&quot;&gt;Pocket ID 官方文档&lt;/a&gt;了解高级功能&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果在部署过程中遇到问题,可以查阅:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://pocket-id.org/docs/&quot;&gt;官方文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pocket-id/pocket-id/issues&quot;&gt;GitHub Issues&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;祝你使用愉快!&lt;/p&gt;
</content:encoded><category>category:教程</category><category>tag:Pocket ID</category><category>tag:Dokploy</category><category>tag:Docker</category><category>tag:OIDC</category><category>tag:Passkey</category><category>tag:认证</category></item><item><title>部署 Tailscale Derper 自建中继服务器</title><link>https://catcat.blog/2025/12/deploy-tailscale-derper.html</link><guid isPermaLink="true">https://catcat.blog/2025/12/deploy-tailscale-derper.html</guid><description>通过 Docker 或手动编译部署 Tailscale Derper 中继服务器，优化网络延迟，支持客户端验证和自动证书管理</description><pubDate>Tue, 30 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Tailscale 是一个便捷的组网工具，可以将不同网络环境、甚至不同国家地区的设备连接到同一个虚拟局域网中。当 P2P 打洞失败时，流量会通过 Tailscale 的 DERP（Designated Encrypted Relay for Packets）中继节点进行转发。&lt;/p&gt;
&lt;p&gt;由于官方的 DERP 服务器主要分布在国外，在某些网络环境下中转延迟会非常高，严重影响使用体验。通过自建 DERP 服务器，可以显著降低中转延迟，提高访问速度。&lt;/p&gt;
&lt;h2&gt;准备工作&lt;/h2&gt;
&lt;p&gt;在开始部署前，你需要准备：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;服务器&lt;/strong&gt;：一台具有公网 IP 的服务器（建议选择离你的使用地区最近的服务器）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;域名&lt;/strong&gt;：一个解析到服务器的域名（如 &lt;code&gt;derper.example.com&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;防火墙配置&lt;/strong&gt;：开放以下端口
&lt;ul&gt;
&lt;li&gt;TCP 80（HTTP，用于证书验证）&lt;/li&gt;
&lt;li&gt;TCP 443（HTTPS，DERP 服务）&lt;/li&gt;
&lt;li&gt;UDP 3478（STUN 打洞）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;[!CAUTION]
如果使用中国大陆的服务器，域名需要完成 ICP 备案才能使用 80 和 443 端口。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;方法一：Docker 部署（推荐）&lt;/h2&gt;
&lt;p&gt;Docker 部署方式更加简单快捷，适合大多数用户。我们使用 &lt;a href=&quot;https://github.com/fredliang44/derper-docker&quot;&gt;fredliang/derper&lt;/a&gt; 镜像，这是一个已经打包好的 Derper Docker 镜像。&lt;/p&gt;
&lt;h3&gt;安装 Docker&lt;/h3&gt;
&lt;p&gt;如果你的服务器还没有安装 Docker 和 Docker Compose，请先安装：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 安装 Docker（以 Ubuntu 为例）
curl -fsSL https://get.docker.com | bash

# 启动 Docker 服务
sudo systemctl enable docker
sudo systemctl start docker
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;创建 Docker Compose 配置&lt;/h3&gt;
&lt;p&gt;创建一个工作目录并编写 &lt;code&gt;docker-compose.yml&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mkdir -p /opt/derper
cd /opt/derper
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;创建 &lt;code&gt;docker-compose.yml&lt;/code&gt; 文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;version: &apos;3.8&apos;
services:
	derper:
		image: fredliang/derper
		container_name: derper
		restart: always
		environment:
			- DERP_CERT_MODE=manual  # 使用手动证书
			- DERP_ADDR=:443  # DERP 服务端口
			- DERP_HTTP_PORT=80  # HTTP 端口（用于证书验证）
			- DERP_STUN_PORT=3478  # STUN 端口
			- DERP_DOMAIN=derper.example.com  # 替换为你的域名
			- DERP_VERIFY_CLIENTS=true  # 启用客户端验证
		ports:
			- &quot;443:443&quot;
			- &quot;80:80&quot;
			- &quot;3478:3478/udp&quot;
		volumes:
			- /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock
			- ./certs:/app/certs
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;环境变量说明&lt;/h3&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;DERP_DOMAIN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;是&lt;/td&gt;
&lt;td&gt;DERP 服务器的域名&lt;/td&gt;
&lt;td&gt;&lt;code&gt;your-hostname.com&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DERP_CERT_DIR&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;td&gt;证书存放目录&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/app/certs&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DERP_CERT_MODE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;td&gt;证书模式：&lt;code&gt;manual&lt;/code&gt;（手动）或 &lt;code&gt;letsencrypt&lt;/code&gt;（自动申请）&lt;/td&gt;
&lt;td&gt;&lt;code&gt;letsencrypt&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DERP_ADDR&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;td&gt;DERP 服务监听地址&lt;/td&gt;
&lt;td&gt;&lt;code&gt;:443&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DERP_STUN&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;td&gt;是否启用 STUN 服务&lt;/td&gt;
&lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DERP_STUN_PORT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;td&gt;STUN 服务端口&lt;/td&gt;
&lt;td&gt;&lt;code&gt;3478&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DERP_HTTP_PORT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;td&gt;HTTP 服务端口，设置为 &lt;code&gt;-1&lt;/code&gt; 可禁用&lt;/td&gt;
&lt;td&gt;&lt;code&gt;80&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DERP_VERIFY_CLIENTS&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;td&gt;通过本地 Tailscale 客户端验证连接者身份&lt;/td&gt;
&lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;使用自定义端口&lt;/h3&gt;
&lt;p&gt;如果你的服务器 80/443 端口已被占用，可以使用自定义端口：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;version: &apos;3.8&apos;
services:
	derper:
		image: fredliang/derper
		container_name: derper
		restart: always
		environment:
			- DERP_CERT_MODE=manual
			- DERP_ADDR=:13477  # 自定义 DERP 端口
			- DERP_HTTP_PORT=13476  # 自定义 HTTP 端口
			- DERP_STUN_PORT=13478  # 自定义 STUN 端口
			- DERP_DOMAIN=derper.example.com
			- DERP_VERIFY_CLIENTS=true
		ports:
			- &quot;13477:13477&quot;
			- &quot;13476:13476&quot;
			- &quot;13478:13478/udp&quot;
		volumes:
			- /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock
			- ./certs:/app/certs
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;[!NOTE]
使用自定义端口时，后续在 Tailscale ACL 中配置 &lt;code&gt;DERPPort&lt;/code&gt; 和 &lt;code&gt;STUNPort&lt;/code&gt; 需要对应修改。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;方法二：手动编译部署&lt;/h2&gt;
&lt;p&gt;如果你希望更深入地了解 Derper 的运行机制，或者需要定制化编译，可以选择手动编译方式。&lt;/p&gt;
&lt;h3&gt;安装 Golang&lt;/h3&gt;
&lt;p&gt;Derper 是用 Go 语言编写的，需要先安装 Golang（建议 1.21 或更高版本）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 下载 Golang（以 1.22.0 为例）
wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz

# 解压到 /usr/local
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz

# 配置环境变量
echo &apos;export PATH=$PATH:/usr/local/go/bin&apos; &amp;gt;&amp;gt; ~/.bashrc
source ~/.bashrc

# 验证安装
go version
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;编译 Derper&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 克隆 Tailscale 仓库
git clone https://github.com/tailscale/tailscale.git
cd tailscale

# 编译 derper
go build cmd/derper/derper.go

# 移动到系统路径
sudo mv derper /usr/sbin/derper
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;创建 Systemd 服务&lt;/h3&gt;
&lt;p&gt;创建服务文件 &lt;code&gt;/etc/systemd/system/derper.service&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Tailscale Derper
Wants=network-pre.target
After=network-pre.target NetworkManager.service systemd-resolved.service

[Service]
ExecStart=/usr/sbin/derper \
	--hostname=derper.example.com \
	-a :443 \
	-http-port 80 \
	-certmode letsencrypt \
	--certdir /var/lib/derper/certs \
	-verify-clients
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;参数说明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--hostname&lt;/code&gt;：你的域名&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-a&lt;/code&gt;：DERP 服务监听地址&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-http-port&lt;/code&gt;：HTTP 端口，用于 Let&apos;s Encrypt 证书验证&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-certmode&lt;/code&gt;：证书模式，&lt;code&gt;letsencrypt&lt;/code&gt; 为自动申请，&lt;code&gt;manual&lt;/code&gt; 为手动管理&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--certdir&lt;/code&gt;：证书存放目录&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-verify-clients&lt;/code&gt;：启用客户端验证（防止被白嫖）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;启动服务&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 创建证书目录
sudo mkdir -p /var/lib/derper/certs

# 重载 systemd 配置
sudo systemctl daemon-reload

# 启动并设置开机自启
sudo systemctl enable derper
sudo systemctl start derper

# 查看服务状态
sudo systemctl status derper
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;证书管理&lt;/h2&gt;
&lt;h3&gt;自动申请证书（Let&apos;s Encrypt）&lt;/h3&gt;
&lt;p&gt;如果使用标准的 80/443 端口，Derper 可以自动申请和续期 Let&apos;s Encrypt 证书：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Docker 方式：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;environment:
	- DERP_CERT_MODE=letsencrypt
	- DERP_ADDR=:443
	- DERP_HTTP_PORT=80
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;手动编译方式：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ExecStart=/usr/sbin/derper \
	--hostname=derper.example.com \
	-a :443 \
	-http-port 80 \
	-certmode letsencrypt \
	--certdir /var/lib/derper/certs
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;手动管理证书&lt;/h3&gt;
&lt;p&gt;如果使用自定义端口或已有证书，需要手动管理证书。&lt;/p&gt;
&lt;p&gt;证书文件命名规则：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;域名.crt&lt;/code&gt;（完整证书链）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;域名.key&lt;/code&gt;（私钥）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例如：&lt;code&gt;derper.example.com.crt&lt;/code&gt; 和 &lt;code&gt;derper.example.com.key&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;将证书放置在：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Docker：&lt;code&gt;./certs/&lt;/code&gt; 目录（与 docker-compose.yml 同级）&lt;/li&gt;
&lt;li&gt;手动编译：&lt;code&gt;/var/lib/derper/certs/&lt;/code&gt; 目录&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;客户端验证&lt;/h2&gt;
&lt;p&gt;为了防止自建的 Derper 服务器被其他人白嫖，强烈建议启用客户端验证功能。启用后，只有你的 Tailscale 网络中的设备才能使用该 Derper 服务器。&lt;/p&gt;
&lt;h3&gt;安装 Tailscale 客户端&lt;/h3&gt;
&lt;p&gt;在 Derper 服务器上安装 Tailscale 客户端：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 安装 Tailscale
curl -fsSL https://tailscale.com/install.sh | sh

# 启动并加入网络
sudo tailscale up
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;启用验证&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Docker 方式：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;确保 &lt;code&gt;docker-compose.yml&lt;/code&gt; 中包含：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;environment:
	- DERP_VERIFY_CLIENTS=true
volumes:
	- /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;手动编译方式：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在 systemd 服务文件中添加 &lt;code&gt;-verify-clients&lt;/code&gt; 参数：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ExecStart=/usr/sbin/derper \
	--hostname=derper.example.com \
	-a :443 \
	-http-port 80 \
	-certmode letsencrypt \
	--certdir /var/lib/derper/certs \
	-verify-clients
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;重启服务：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl daemon-reload
sudo systemctl restart derper
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;配置 Tailscale&lt;/h2&gt;
&lt;h3&gt;修改 Access Controls&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;访问 &lt;a href=&quot;https://login.tailscale.com/admin/acls/file&quot;&gt;Tailscale Admin Console&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;Access Controls&lt;/code&gt; 中添加自定义 DERP 配置&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在配置文件末尾添加（保留其他配置不变）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
	// ... 其他配置 ...

	&quot;derpMap&quot;: {
		&quot;OmitDefaultRegions&quot;: false,  // 保留官方服务器作为备用
		&quot;Regions&quot;: {
			&quot;900&quot;: {
				&quot;RegionID&quot;: 900,
				&quot;RegionCode&quot;: &quot;myderp&quot;,
				&quot;RegionName&quot;: &quot;My Custom Derper&quot;,
				&quot;Nodes&quot;: [
					{
						&quot;Name&quot;: &quot;1&quot;,
						&quot;RegionID&quot;: 900,
						&quot;HostName&quot;: &quot;derper.example.com&quot;,  // 你的域名
						&quot;DERPPort&quot;: 443,  // 如使用自定义端口，修改此处
						&quot;STUNPort&quot;: 3478,  // 如使用自定义端口，修改此处
						&quot;STUNOnly&quot;: false
					}
				]
			}
		}
	}
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;配置说明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;RegionID&lt;/code&gt;：自定义 ID，建议使用 900+ 避免与官方冲突&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RegionCode&lt;/code&gt;：区域代码，可自定义&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RegionName&lt;/code&gt;：显示名称，可使用中文&lt;/li&gt;
&lt;li&gt;&lt;code&gt;HostName&lt;/code&gt;：Derper 服务器域名&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DERPPort&lt;/code&gt;：DERP 服务端口（默认 443）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;STUNPort&lt;/code&gt;：STUN 服务端口（默认 3478）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OmitDefaultRegions&lt;/code&gt;：是否禁用官方服务器（建议保留作为备用）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;禁用官方 DERP 服务器（可选）&lt;/h3&gt;
&lt;p&gt;如果你希望只使用自建服务器，可以禁用官方 DERP：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
	&quot;derpMap&quot;: {
		&quot;OmitDefaultRegions&quot;: false,
		&quot;Regions&quot;: {
			&quot;900&quot;: {
				// ... 你的自建服务器配置 ...
			},
			// 禁用特定官方服务器
			&quot;1&quot;: null,
			&quot;2&quot;: null,
			&quot;3&quot;: null,
			// ... 其他 ID ...
			// 建议保留一个作为备用
			// &quot;20&quot;: null,  # Hong Kong，作为备选
		}
	}
}
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;[!WARNING]
不建议完全禁用所有官方服务器，以防自建服务器故障时 Tailscale 完全不可用。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;测试验证&lt;/h2&gt;
&lt;p&gt;配置完成后，在任意已连接 Tailscale 的客户端上测试：&lt;/p&gt;
&lt;h3&gt;检查网络状态&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;tailscale netcheck
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;你应该看到类似输出：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Report:
	* UDP: true
	* IPv4: yes, 1.2.3.4:41234
	* IPv6: yes, [2001:db8::1]:41234
	* MappingVariesByDestIP: false
	* PortMapping: UPnP, NAT-PMP
	* CaptivePortal: false
	* Nearest DERP: My Custom Derper
	* DERP latency:
		- myderp:  15ms  (My Custom Derper)
		- tok:     85ms  (Tokyo)
		- hkg:     42ms  (Hong Kong)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;Nearest DERP&lt;/code&gt; 显示为你的自建服务器名称，说明配置成功。&lt;/p&gt;
&lt;h3&gt;测试连接延迟&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;tailscale ping &amp;lt;设备名称或IP&amp;gt;
tailscale netcheck
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;Report:
        * Time: 2025-12-30T02:39:55.29863832Z
        * UDP: true
        * IPv4: yes, ip:port
        * IPv6: no, but OS has support
        * MappingVariesByDestIP: false
        * PortMapping: 
        * CaptivePortal: false
        * Nearest DERP: catcat-derp
        * DERP latency:
                -  sa: 43.2ms  (catcat-derp)
                - lax: 155.9ms (Los Angeles)
                - sea: 165.5ms (Seattle)
                - den: 169.7ms (Denver)
                - sfo: 172.9ms (San Francisco)
                - nue: 173.2ms (Nuremberg)
                - dfw: 177.9ms (Dallas)
                - hel: 182.8ms (Helsinki)
                - hkg: 184.2ms (Hong Kong)
                - hnl: 192.1ms (Honolulu)
                - iad: 194.7ms (Ashburn)
                - tor: 203.8ms (Toronto)
                - ord: 206.5ms (Chicago)
                - nyc: 207.6ms (New York City)
                - mia: 216.1ms (Miami)
                - tok: 216.2ms (Tokyo)
                - par: 220.2ms (Paris)
                - fra: 220.7ms (Frankfurt)
                - lhr: 225.3ms (London)
                - ams: 231.4ms (Amsterdam)
                - waw: 237.6ms (Warsaw)
                - mad: 238.4ms (Madrid)
                - sin: 248.2ms (Singapore)
                - syd: 291.3ms (Sydney)
                - sao: 335.8ms (São Paulo)
                - dbi: 340ms   (Dubai)
                - blr: 344.4ms (Bangalore)
                - nai: 359.3ms (Nairobi)
                - jnb: 385.1ms (Johannesburg)

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;观察 &lt;code&gt;catcat-derp&lt;/code&gt;(取决于你的命名) 字样，表示流量正在通过你的自建 Derper 中转。&lt;/p&gt;
&lt;h3&gt;检查服务器日志&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Docker 方式：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker logs -f derper
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;手动编译方式：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo journalctl -u derper -f
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;成功的连接日志类似：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;derper: accepting connection from 100.64.1.2:41234
derper: serving client 100.64.1.2
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;常见问题&lt;/h2&gt;
&lt;h3&gt;1. 证书验证失败&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：Let&apos;s Encrypt 证书申请失败&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决方法&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;确认域名已正确解析到服务器 IP&lt;/li&gt;
&lt;li&gt;确认防火墙已开放 80 端口&lt;/li&gt;
&lt;li&gt;检查是否有其他服务占用 80 端口&lt;/li&gt;
&lt;li&gt;查看服务日志排查具体错误&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. 客户端无法连接&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：&lt;code&gt;tailscale netcheck&lt;/code&gt; 看不到自建服务器&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决方法&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;确认 Tailscale ACL 配置已保存&lt;/li&gt;
&lt;li&gt;等待几分钟让配置生效&lt;/li&gt;
&lt;li&gt;重启客户端 Tailscale 服务&lt;/li&gt;
&lt;li&gt;检查服务器防火墙是否正确开放端口&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. DERP 验证失败&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：启用 &lt;code&gt;verify-clients&lt;/code&gt; 后无法连接&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解决方法&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;确认服务器上 Tailscale 客户端已启动并加入网络&lt;/li&gt;
&lt;li&gt;检查 &lt;code&gt;/var/run/tailscale/tailscaled.sock&lt;/code&gt; 是否存在&lt;/li&gt;
&lt;li&gt;Docker 方式确认 socket 文件已正确挂载&lt;/li&gt;
&lt;li&gt;查看日志确认验证流程&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4. 使用自定义端口后无法连接&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：修改端口后服务不可用&lt;/p&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;确认 ACL 中 &lt;code&gt;DERPPort&lt;/code&gt; 和 &lt;code&gt;STUNPort&lt;/code&gt; 已对应修改&lt;/li&gt;
&lt;li&gt;使用 &lt;code&gt;telnet&lt;/code&gt; 或 &lt;code&gt;nc&lt;/code&gt; 测试端口连通性&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;通过自建 Tailscale Derper 服务器，可以有效降低中转延迟，提升网络体验。Docker 部署方式简单快捷，适合快速上手；手动编译方式则提供了更多的灵活性和控制。&lt;/p&gt;
&lt;p&gt;建议生产环境中启用客户端验证和自动证书续期，确保服务的安全性和稳定性。同时保留部分官方 DERP 服务器作为备用，避免单点故障导致网络不可用。&lt;/p&gt;
</content:encoded><category>category:教程</category><category>tag:Tailscale</category><category>tag:Derper</category><category>tag:自托管</category><category>tag:网络</category></item><item><title>2025 自托管年度报告</title><link>https://catcat.blog/2025/12/self-hosting-annual-report-2025.html</link><guid isPermaLink="true">https://catcat.blog/2025/12/self-hosting-annual-report-2025.html</guid><description>回顾这一年来搭建和使用的自托管服务，从底层基础设施到各类应用，完整记录我的 Self-Hosting 之旅</description><pubDate>Thu, 25 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;又到年底了，是时候盘点一下这一年(其实不算今年，只是以前没写过总结)来折腾的各种自托管服务。
从底层的 PaaS 平台到各种应用，基本上能自己搭的都自己搭了。这篇文章算是给自己做个记录，也分享给有同样爱好的朋友们参考。&lt;/p&gt;
&lt;h2&gt;底层基础设施&lt;/h2&gt;
&lt;p&gt;底层用的是两个 PaaS 平台来管理容器部署。&lt;/p&gt;
&lt;h3&gt;Dokploy&lt;/h3&gt;
&lt;p&gt;::github{repo=&quot;dokploy/dokploy&quot;}&lt;/p&gt;
&lt;p&gt;开源的 PaaS 平台，用来替代 Vercel/Netlify 那些托管平台。支持 Docker Compose、Git 部署、自动 SSL，基本上能覆盖大部分部署需求。界面简洁，资源占用也不高。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;相关文章：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/dokploy-deploy&quot;&gt;Dokploy 部署和使用教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/dokploy-backups-cloudflare-r2&quot;&gt;使用 Cloudflare R2 配置 Dokploy 备份&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/2025/12/dokploy-security-monitoring-guide&quot;&gt;Dokploy 安全与监控体系完整部署指南&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h3&gt;EasyPanel&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://easypanel.io/&quot;&gt;EasyPanel&lt;/a&gt; 是另一个 PaaS 平台，闭源商业产品。界面更现代化，适合不想折腾的用户。部分功能需要付费。&lt;/p&gt;
&lt;p&gt;后续可能会考虑拆除这个，没啥意义，而且收费还死贵。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251225154159022.avif&quot; alt=&quot;image-20251225154152031&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;CDN&lt;/h2&gt;
&lt;h3&gt;Cloudflare CDN + Zero Trust&lt;/h3&gt;
&lt;p&gt;全站统一使用 Cloudflare CDN，配合 Zero Trust 做内网穿透和安全访问控制。免费额度够用，稳定性也不错。Zero Trust 可以把一些不想公开的服务藏起来，通过邮箱验证才能访问。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;备份&lt;/h2&gt;
&lt;p&gt;数据备份用了两个方案：&lt;/p&gt;
&lt;h3&gt;HostBrr 存储盒&lt;/h3&gt;
&lt;p&gt;便宜大碗的存储盒，用来存放各种备份文件。通过 SFTP/rsync 定时同步。&lt;/p&gt;
&lt;h3&gt;Cloudflare R2&lt;/h3&gt;
&lt;p&gt;对象存储，兼容 S3 API。主要用来存放 Dokploy 的自动备份，对于配置文件备份完全够用。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;相关文章：&lt;a href=&quot;/dokploy-backups-cloudflare-r2&quot;&gt;使用 Cloudflare R2 配置 Dokploy 备份&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2&gt;邮局&lt;/h2&gt;
&lt;h3&gt;NameCrane&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://namecrane.com/&quot;&gt;NameCrane&lt;/a&gt; 提供域名邮箱服务，&lt;strong&gt;20 刀 3 年&lt;/strong&gt;的套餐性价比很高。支持自定义域名收发邮件，告别 Gmail 的各种限制。&lt;/p&gt;
&lt;h2&gt;相当的经济实惠，还支持每小时300封的邮件投递，投递速度比较慢。
&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251225154356632.avif&quot; alt=&quot;image-20251225154355955&quot; /&gt;
&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251225154635161.avif&quot; alt=&quot;image-20251225154633989&quot; /&gt;&lt;/h2&gt;
&lt;h2&gt;短链接&lt;/h2&gt;
&lt;h3&gt;S.EE&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://s.ee/&quot;&gt;S.EE&lt;/a&gt; 兽兽短链接服务，&lt;strong&gt;终身 55 刀&lt;/strong&gt;买断。自己搭短链接服务太麻烦，这个价格买个省心。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251225154709839.avif&quot; alt=&quot;image-20251225154708993&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;安全 WAF 和 Web 服务器&lt;/h2&gt;
&lt;p&gt;安全这块用 CrowdSec + Traefik 组合。&lt;/p&gt;
&lt;h3&gt;CrowdSec&lt;/h3&gt;
&lt;p&gt;::github{repo=&quot;crowdsecurity/crowdsec&quot;}&lt;/p&gt;
&lt;p&gt;协作式安全引擎，类似 Fail2ban 但更强大。社区共享威胁情报，自动封禁恶意 IP。配合 Traefik Bouncer 可以直接在入口层拦截攻击。&lt;/p&gt;
&lt;h3&gt;Traefik&lt;/h3&gt;
&lt;p&gt;::github{repo=&quot;traefik/traefik&quot;}&lt;/p&gt;
&lt;p&gt;云原生反向代理，自动服务发现、自动 SSL 证书。配合 Docker 使用非常丝滑，新增服务只需要加几个 label 就能自动配置路由和证书。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;相关文章：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/traefik2-docker&quot;&gt;Traefik 智能反向代理，解放双手&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/2025/12/dokploy-security-monitoring-guide&quot;&gt;Dokploy 安全与监控体系完整部署指南&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2&gt;监控&lt;/h2&gt;
&lt;p&gt;监控体系是今年花时间最多的部分，搭了一套比较完整的可观测性平台。&lt;/p&gt;
&lt;h3&gt;可视化和日志&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;服务&lt;/th&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://grafana.com/&quot;&gt;Grafana&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;可视化面板，统一展示各类指标和日志&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://grafana.com/oss/loki/&quot;&gt;Loki&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;日志聚合系统，配合 Grafana 查询日志&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://grafana.com/docs/alloy/&quot;&gt;Alloy&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Grafana 新一代采集器，替代 Promtail&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/Lifailon/logporter&quot;&gt;Logporter&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;轻量日志转发工具&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;::github{repo=&quot;grafana/grafana&quot;}&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251222161441694.avif&quot; alt=&quot;image-20251222161441409&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251222161614088.avif&quot; alt=&quot;image-20251222161612086&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251222161659211.avif&quot; alt=&quot;image-20251222161656811&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251222161937056.avif&quot; alt=&quot;image-20251222161936331&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;指标采集&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;服务&lt;/th&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://victoriametrics.com/&quot;&gt;VictoriaMetrics&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;时序数据库，Prometheus 的高性能替代品&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/prometheus/node_exporter&quot;&gt;Node-Exporter&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;主机指标采集&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/prometheus/blackbox_exporter&quot;&gt;BlackBox-Exporter&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;黑盒探测，监控服务可用性&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/prometheus/alertmanager&quot;&gt;AlertManager&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;告警管理和通知&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/prometheus/pushgateway&quot;&gt;Pushgateway&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;短生命周期任务指标推送&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;::github{repo=&quot;VictoriaMetrics/VictoriaMetrics&quot;}&lt;/p&gt;
&lt;h3&gt;轻量监控方案&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;服务&lt;/th&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://beszel.dev/zh/&quot;&gt;Beszel&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;轻量化服务器监控，界面简洁美观&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/zdz/ServerStatus-Rust&quot;&gt;ServerStatus-Rust&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;多服务器状态页面，我的在线演示：&lt;a href=&quot;https://serversentry.catcat.blog/&quot;&gt;serversentry.catcat.blog&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;::github{repo=&quot;henrygd/beszel&quot;}&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;相关文章：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/docker-install-prometheus-grafana&quot;&gt;Docker 部署 Prometheus + Grafana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/smokeping-promethues-grafana&quot;&gt;基于 Smokeping+Prometheus+Grafana 搭建网络质量监控&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/docker-install-beszel&quot;&gt;Docker 部署 Beszel 轻量化监控&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/serverstatus-rust-debian11&quot;&gt;ServerStatus-Rust Debian11 保姆级部署教程&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2&gt;媒体服务&lt;/h2&gt;
&lt;p&gt;媒体服务是自托管的重头戏，从下载到整理到播放全链路自动化。&lt;/p&gt;
&lt;h3&gt;媒体服务器&lt;/h3&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;Emby&lt;/td&gt;
&lt;td&gt;&lt;code&gt;amilys/embyserver:latest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;主力媒体服务器&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plex&lt;/td&gt;
&lt;td&gt;&lt;code&gt;linuxserver/plex&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;私人音乐库&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Komga&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/gotson/komga&quot;&gt;gotson/komga&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;漫画库管理&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;下载和整理&lt;/h3&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;Moviepilot&lt;/td&gt;
&lt;td&gt;&lt;code&gt;jxxghp/moviepilot-v2:latest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;媒体下载整理和刮削，全自动追剧神器&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MDC&lt;/td&gt;
&lt;td&gt;&lt;code&gt;mdcng/mdc:latest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;成人媒体整理和刮削&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Byte-Muse&lt;/td&gt;
&lt;td&gt;&lt;code&gt;envyafish/byte-muse&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;馒头成人视频下载&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ani-Rss&lt;/td&gt;
&lt;td&gt;&lt;code&gt;wushuo894/ani-rss:latest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;动漫新番自动下载&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;qBittorrent&lt;/td&gt;
&lt;td&gt;&lt;code&gt;linuxserver/qbittorrent:5.1.0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;磁链下载器&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;辅助服务&lt;/h3&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;misaka_danmu_server&lt;/td&gt;
&lt;td&gt;&lt;code&gt;l429609201/misaka_danmu_server:latest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;弹幕服务，让 Emby 也能看弹幕&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;jellyfin-library-poster&lt;/td&gt;
&lt;td&gt;&lt;code&gt;evanqu/jellyfin-library-poster:latest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;自动生成媒体库封面&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MetaTube&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/metatube-community/&quot;&gt;metatube-community&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;元数据获取&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251225155023764.avif&quot; alt=&quot;image-20251225155022404&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251225155507271.avif&quot; alt=&quot;image-20251225155505074&quot; /&gt;&lt;/p&gt;
&lt;p&gt;上面是整理的所有内容，哈哈。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;相关文章：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/catcat-emby&quot;&gt;猫猫 Emby 服食用指南&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/emby-server&quot;&gt;Emby 客户端推荐&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/docker-moviepilot&quot;&gt;Docker 部署自动化观影平台 MoviePilot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/docker-install-av-mdcng&quot;&gt;AV 刮削终极解决方案-MDCNG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/docker-ani-rss&quot;&gt;Docker 部署 ani-rss 实现自动追番&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/2025/12/misaka-danmu-server-deploy&quot;&gt;Docker 部署御坂网络弹幕服务&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2&gt;应用&lt;/h2&gt;
&lt;p&gt;杂七杂八的应用，按用途分类一个个介绍。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;信息管理&lt;/h3&gt;
&lt;h4&gt;linkding&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;sissbruecker/linkding&quot;}&lt;/p&gt;
&lt;p&gt;一个极简的书签管理器，专注于书签这一件事。支持标签分类、全文搜索、归档功能，还能通过浏览器扩展一键保存。界面干净，没有多余的功能，启动快、占用低。比起 Raindrop 那些花里胡哨的，这个更适合我。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251225160405863.avif&quot; alt=&quot;image-20251225160405120&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;SearXng&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;searxng/searxng&quot;}&lt;/p&gt;
&lt;p&gt;元搜索引擎，聚合 Google、Bing、DuckDuckGo 等多个搜索引擎的结果。最大的好处是隐私保护，不会被追踪。自己部署一个，搜索体验干净多了，没有广告和个性化推荐的干扰。年初的时候配合openwebui做ai搜索用的。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251225160521163.avif&quot; alt=&quot;image-20251225160520611&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;RSSHub&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;DIYgod/RSSHub&quot;}&lt;/p&gt;
&lt;p&gt;万物皆可 RSS 的神器。很多网站不提供 RSS 订阅，RSSHub 可以把它们转换成 RSS 源。微博、B站、知乎、Twitter... 基本上想订阅什么都能搞定。自己部署一个，配合 RSS 阅读器，信息获取效率大大提升。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;文件和图片&lt;/h3&gt;
&lt;h4&gt;CattoPic&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;Yuri-NagaSaki/CattoPic&quot;}&lt;/p&gt;
&lt;p&gt;个人项目，基于 Cloudflare 的图床方案，利用 R2 存储和 Workers 实现。部署简单，速度快，成本低。支持图片压缩、WebP 转换，还有简洁的管理界面。对于个人博客图床需求来说完全够用。&lt;/p&gt;
&lt;p&gt;提供一个我的动漫随机图API: https://api.catcat.li/api/random?tags=random&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;相关文章：&lt;a href=&quot;/2025/12/cattopic-self-hosted-image-hosting&quot;&gt;CattoPic - 基于 Cloudflare 的自建图床&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;Afilmory&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;Afilmory/afilmory&quot;}&lt;/p&gt;
&lt;p&gt;一个精美的图片相册应用。支持相册分类、地图视图、时间线浏览。界面设计很有质感，适合用来展示摄影作品或者家庭相册。支持多用户，可以分享给家人使用。
但是被我用成了小姐姐展示，啊哈哈哈哈。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251225160835884.avif&quot; alt=&quot;image-20251225160834296&quot; /&gt;&lt;/p&gt;
&lt;p&gt;地址： https://gallery.catcat.blog   工作场合请勿打开啊。&lt;/p&gt;
&lt;h4&gt;Mazanoke&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;civilblur/mazanoke&quot;}&lt;/p&gt;
&lt;p&gt;在线图片压缩工具，支持批量处理。可以调整压缩质量、输出格式，还支持 WebP 和 AVIF。处理完全在浏览器本地进行，不会上传到服务器，隐私有保障。&lt;/p&gt;
&lt;p&gt;我的开放地址：https://mazanoke.sakiko.de&lt;/p&gt;
&lt;h4&gt;Bentopdf&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;alam00000/bentopdf&quot;}&lt;/p&gt;
&lt;p&gt;PDF 处理工具箱，支持合并、拆分、压缩、转换等常用功能。Web 界面操作简单，不需要安装任何软件。处理小文件很方便，大文件建议还是用本地工具。&lt;/p&gt;
&lt;p&gt;我的开放地址：https://pdf.sakiko.de&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251225161011382.avif&quot; alt=&quot;image-20251225161010336&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;FileBrowser Quantum&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;gtsteffaniak/filebrowser&quot;}&lt;/p&gt;
&lt;p&gt;FileBrowser 的增强版本，Web 文件管理器。支持文件上传下载、在线预览、分享链接。界面现代化，性能也有优化。用来管理服务器上的文件很方便，比命令行直观多了。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;相关文章：&lt;a href=&quot;/docker-install-filebrowser-quantum&quot;&gt;Docker 部署 FileBrowser-Quantum 新版&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;Nextcloud&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://nextcloud.com/&quot;&gt;Nextcloud&lt;/a&gt; 是老牌的私有云盘方案，功能全面：文件同步、日历、联系人、笔记、协作办公... 生态丰富，插件众多。缺点是比较重，资源占用不低。适合需要全套办公协作功能的场景。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251225161215812.avif&quot; alt=&quot;image-20251225161214883&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;Openlist&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;OpenListTeam/OpenList&quot;}&lt;/p&gt;
&lt;p&gt;猫猫网盘用的就是这个。Alist 的分支版本，支持挂载各种网盘（阿里云盘、百度网盘、OneDrive 等），统一管理和分享。界面简洁，配合 Meilisearch 可以实现全盘搜索。&lt;/p&gt;
&lt;h4&gt;Meilisearch&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;meilisearch/meilisearch&quot;}&lt;/p&gt;
&lt;p&gt;高性能的全文搜索引擎，用 Rust 写的。配置简单，开箱即用。我用它来给网盘做索引，几十万个文件也能秒搜。比 Elasticsearch 轻量得多，用于我网盘的索引。&lt;/p&gt;
&lt;h4&gt;百度网盘&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;johngong/baidunetdisk:latest&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;我非常讨厌安装百度系的产品，但有的人发资源就喜欢用百度。无奈我只好用docker的形式来跑。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251225161419603.avif&quot; alt=&quot;image-20251225161418970&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;开发和代码&lt;/h3&gt;
&lt;h4&gt;Gitea&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;go-gitea/gitea&quot;}&lt;/p&gt;
&lt;p&gt;轻量级的 Git 托管服务，GitHub/GitLab 的私有替代品。功能够用：代码托管、Issue 跟踪、CI/CD（通过 Actions）。资源占用低，启动快。私人代码放这里，比 GitHub 私有仓库更放心。同时我也用来备份一些github的仓库，生怕突然私有和被关了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251225161522380.avif&quot; alt=&quot;image-20251225161521185&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;Gitea-Mirror&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;RayLabsHQ/gitea-mirror&quot;}&lt;/p&gt;
&lt;p&gt;自动镜像 GitHub 仓库到 Gitea。设置好之后会定期同步，相当于给 GitHub 仓库做个备份。万一 GitHub 挂了或者账号出问题，至少代码还在。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251225161600553.avif&quot; alt=&quot;image-20251225161559879&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;Excalidraw&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;excalidraw/excalidraw&quot;}&lt;/p&gt;
&lt;p&gt;手绘风格的白板工具，画架构图、流程图特别好看。支持实时协作，可以和同事一起画图讨论。自己部署一个，数据不用担心泄露，还能和其他服务集成。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;工具和自动化&lt;/h3&gt;
&lt;h4&gt;IT-Tools&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;CorentinTh/it-tools&quot;}&lt;/p&gt;
&lt;p&gt;开发者工具箱，集合了各种常用小工具：Base64 编解码、JSON 格式化、UUID 生成、Hash 计算 一个页面搞定，不用到处找在线工具。&lt;/p&gt;
&lt;p&gt;地址：https://it-tools.sakiko.de&lt;/p&gt;
&lt;h4&gt;N8n&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;n8n-io/n8n&quot;}&lt;/p&gt;
&lt;p&gt;工作流自动化平台，开源版的 Zapier。可以连接各种服务，实现自动化流程。比如：收到邮件自动转发到 Telegram、GitHub Star 自动同步到 Notion、RSS 更新自动推送通知... 节点式编程，不用写代码也能用。&lt;/p&gt;
&lt;h4&gt;FlareSolverr&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;FlareSolverr/FlareSolverr&quot;}&lt;/p&gt;
&lt;p&gt;绕过 Cloudflare 验证的代理服务。有些网站开了 Cloudflare 保护，爬虫直接请求会被拦截。FlareSolverr 用 Headless Chrome 模拟浏览器访问，绕过验证后返回内容。配合 Prowlarr、Jackett 这些索引器使用。&lt;/p&gt;
&lt;h4&gt;CookieCloud&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;easychen/CookieCloud&quot;}&lt;/p&gt;
&lt;p&gt;Cookie 云同步服务。可以把浏览器的 Cookie 加密同步到自己的服务器，在多个设备间共享登录状态。配合浏览器扩展使用，PT 站、视频站的登录状态都能同步过去。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;网络和远程&lt;/h3&gt;
&lt;h4&gt;RustDesk&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;rustdesk/rustdesk&quot;}&lt;/p&gt;
&lt;p&gt;开源的远程桌面软件，TeamViewer 的替代品。自己搭中继服务器，延迟更低、更安全。客户端支持全平台，功能也足够用。再也不用忍受 TeamViewer 的各种限制了。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;相关文章：&lt;a href=&quot;/docker-install-rustdesk&quot;&gt;Docker 搭建 Rustdesk 自建中继服务器&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;AdGuard Home&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;AdguardTeam/AdGuardHome&quot;}&lt;/p&gt;
&lt;p&gt;DNS 层面的广告拦截器。把它设为家庭网络的 DNS 服务器，所有设备都能享受去广告效果。还支持 DoH、DoT 加密 DNS，保护隐私。配合自定义规则，效果比浏览器插件更彻底。&lt;/p&gt;
&lt;h4&gt;Privtracker&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;meehow/privtracker&quot;}&lt;/p&gt;
&lt;p&gt;私有 BT Tracker 服务。自己搭一个 Tracker，方便在朋友间分享文件。不用担心被公共 Tracker 记录，也不用担心版权问题。适合小圈子内部使用。&lt;/p&gt;
&lt;p&gt;地址：https://privtracker.sakiko.de&lt;/p&gt;
&lt;h4&gt;Neko&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;m1k1o/neko&quot;}&lt;/p&gt;
&lt;p&gt;基于浏览器的虚拟桌面，可以多人共享屏幕。本质上是一个运行在 Docker 里的浏览器，通过 WebRTC 串流画面。适合一起看视频、一起浏览网页，或者给别人演示操作。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;AI 和数据&lt;/h3&gt;
&lt;h4&gt;Open WebUI&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;open-webui/open-webui&quot;}&lt;/p&gt;
&lt;p&gt;AI 聊天界面，可以对接多个 LLM 后端（OpenAI、Ollama、LiteLLM 等）。界面类似 ChatGPT，支持对话历史、Prompt 模板、知识库（RAG）。自己部署一个，统一管理各种 AI 模型，还能保护对话隐私。&lt;/p&gt;
&lt;h4&gt;Convex&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://www.convex.dev&quot;&gt;Convex&lt;/a&gt; 是一个 Reactive 数据库平台。实时同步、自动缓存、TypeScript 支持。适合构建实时应用.&lt;/p&gt;
&lt;h4&gt;Infisical&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;Infisical/infisical&quot;}&lt;/p&gt;
&lt;p&gt;密钥管理平台，用来统一管理各种 API Key、数据库密码、环境变量。支持版本控制、权限管理、自动注入到应用。比把密钥写在 .env 文件里安全多了，团队协作也方便。&lt;/p&gt;
&lt;h4&gt;Postgresus&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;RostislavDugin/postgresus&quot;}&lt;/p&gt;
&lt;p&gt;PostgreSQL 数据库备份工具。支持定时备份、增量备份、压缩存储。可以备份到本地或者 S3 兼容存储。配置简单，比写 cron 脚本省心。&lt;/p&gt;
&lt;h4&gt;Rybbit&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;rybbit-io/rybbit&quot;}&lt;/p&gt;
&lt;p&gt;网站访问分析工具，Google Analytics 的隐私友好替代品。不使用 Cookie，符合 GDPR。界面简洁，关键指标一目了然。适合个人博客、小型网站使用。\&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251225161859096.avif&quot; alt=&quot;image-20251225161858131&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;媒体处理&lt;/h3&gt;
&lt;h4&gt;Vert&lt;/h4&gt;
&lt;p&gt;::github{repo=&quot;VERT-sh/VERT&quot;}&lt;/p&gt;
&lt;p&gt;在线媒体格式转换工具。支持视频、音频、图片格式转换。处理在浏览器本地进行，不需要上传服务器。支持批量处理，常用格式都覆盖了。&lt;/p&gt;
&lt;p&gt;地址：https://vert.sakiko.de&lt;/p&gt;
&lt;hr /&gt;
</content:encoded><category>category:年终总结</category><category>tag:自托管</category><category>tag:DevOps</category><category>tag:Docker</category><category>tag:年终总结</category></item><item><title>Docker 部署御坂网络弹幕服务 Misaka Danmu Server</title><link>https://catcat.blog/2025/12/misaka-danmu-server-deploy.html</link><guid isPermaLink="true">https://catcat.blog/2025/12/misaka-danmu-server-deploy.html</guid><description>完整指南：使用 Docker Compose 部署御坂网络弹幕服务，为你的私人媒体库提供弹幕支持。涵盖 MySQL 配置、Web 管理界面、播放器对接、Webhook 自动化等内容。</description><pubDate>Wed, 24 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;什么是御坂网络弹幕服务&lt;/h1&gt;
&lt;p&gt;御坂网络弹幕服务（Misaka Danmu Server）是一个功能强大的自托管弹幕聚合与管理服务，兼容 dandanplay API 规范。它能够从多个视频平台实时获取弹幕数据，为你的私人媒体库（如 Emby、Jellyfin、Plex）提供弹幕支持。&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;l429609201/misaka_danmu_server&quot;}&lt;/p&gt;
&lt;h2&gt;核心功能&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;智能匹配&lt;/strong&gt;：通过文件名或元数据（TMDB、TVDB 等）自动匹配媒体内容&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Web 管理界面&lt;/strong&gt;：提供直观的 UI 用于搜索/导入弹幕、管理媒体源、创建 API Token、配置搜索优先级&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;弹幕源管理&lt;/strong&gt;：支持从资源仓库安装或上传离线弹幕源包，具备备份/恢复功能&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;元数据整合&lt;/strong&gt;：整合 TMDB、TVDB、Bangumi、豆瓣、IMDb 等多个元数据源&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动化支持&lt;/strong&gt;：支持 Sonarr、Radarr、Emby 的 Webhook 通知，实现弹幕自动导入&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多播放器兼容&lt;/strong&gt;：支持 SenPlayer、Infuse、小幻、yamby、eplayerx 等播放器&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;与 danmu_api 对比&lt;/h2&gt;
&lt;p&gt;如果你只需要轻量级的弹幕服务，可以参考我之前写的 &lt;a href=&quot;https://catcat.blog/deploy-danmu_api.html&quot;&gt;danmu_api 部署教程&lt;/a&gt;。两者的主要区别如下：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;功能&lt;/th&gt;
&lt;th&gt;danmu_api&lt;/th&gt;
&lt;th&gt;misaka_danmu_server&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;dandanplay 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;Web 管理界面&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;✅ TMDB/TVDB/Bangumi/豆瓣/IMDb&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Webhook 自动化&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ Sonarr/Radarr/Emby&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;Token 授权体系&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;中等（需要 MySQL）&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;h1&gt;准备工作&lt;/h1&gt;
&lt;h2&gt;服务器要求&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;内存&lt;/strong&gt;：建议 2GB 以上&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;磁盘&lt;/strong&gt;：建议 20GB 以上&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网络&lt;/strong&gt;：建议使用中国大陆 IP，海外 IP 可能因网络或版权限制导致部分弹幕源不可用&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;安装 Docker&lt;/h2&gt;
&lt;p&gt;如果还没有安装 Docker，执行以下命令：&lt;/p&gt;
&lt;p&gt;如果你使用dokploy，也可以使用官方模版，我已经提交了PR,等待合并。&lt;/p&gt;
&lt;p&gt;https://github.com/Dokploy/templates/pull/624#issuecomment-3686872830&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -fsSL https://get.docker.com | sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Docker Compose 部署&lt;/h1&gt;
&lt;h2&gt;创建项目目录&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;mkdir -p ~/misaka-danmu &amp;amp;&amp;amp; cd ~/misaka-danmu
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;创建 docker-compose.yml&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;vim docker-compose.yml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;粘贴以下配置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;version: &quot;3.8&quot;
services:
  mysql:
    image: mysql:8.1.0-oracle
    container_name: danmu-mysql
    restart: unless-stopped
    environment:
      # !!! 重要：请务必替换为您的强密码 !!!
      MYSQL_ROOT_PASSWORD: &quot;your_strong_root_password&quot;                  #数据库root密码
      MYSQL_DATABASE: &quot;danmuapi&quot;                                        #数据库名称
      MYSQL_USER: &quot;danmuapi&quot;                                            #数据库用户名
      MYSQL_PASSWORD: &quot;your_strong_user_password&quot;                       #数据库密码
      TZ: &quot;Asia/Shanghai&quot;
    volumes:
      - ./db-data:/var/lib/mysql
    command:
      - &apos;--character-set-server=utf8mb4&apos;
      - &apos;--collation-server=utf8mb4_unicode_ci&apos;
      - &apos;--binlog_expire_logs_seconds=259200&apos; # 自动清理超过3天的binlog日志
      - &apos;--default-authentication-plugin=mysql_native_password&apos; # 使用传统密码认证方式
    healthcheck:
      # 使用mysqladmin ping命令进行健康检查，通过环境变量引用密码
      test: [&quot;CMD-SHELL&quot;, &quot;mysqladmin ping -u$${MYSQL_USER} -p$${MYSQL_PASSWORD}&quot;]
      interval: 5s
      timeout: 3s
      retries: 5
      start_period: 30s

    networks:
      - misaka-net

  danmu-app:
    image: l429609201/misaka_danmu_server:latest
    container_name: misaka-danmu-server
    restart: unless-stopped
    depends_on:
      mysql:
        condition: service_healthy
    environment:
      # 设置运行容器的用户和组ID，以匹配您宿主机的用户，避免挂载卷的权限问题。
      - PUID=1000
      - PGID=1000
      - UMASK=0022
      - TZ=Asia/Shanghai
      # --- 数据库连接配置 ---
      - DANMUAPI_DATABASE__TYPE=mysql                         # 数据库类型
      - DANMUAPI_DATABASE__HOST=mysql                         # 使用服务名
      - DANMUAPI_DATABASE__PORT=3306                          # 端口号
      - DANMUAPI_DATABASE__NAME=danmuapi                      # 数据库名称
      # !!! 重要：请使用上面mysql容器相同的用户名和密码 !!!
      - DANMUAPI_DATABASE__USER=danmuapi                      #数据库用户名
      - DANMUAPI_DATABASE__PASSWORD=your_strong_user_password #数据库密码
      # --- 初始管理员配置 ---
      - DANMUAPI_ADMIN__INITIAL_USER=admin
    volumes:
      - ./config:/app/config
    ports:
      - &quot;7768:7768&quot;
    networks:
      - misaka-net

networks:
  misaka-net:
    driver: bridge
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;我使用的是云数据库，我也可以给个参考。&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;version: &quot;3.8&quot;
services:
  danmu-app:
    image: l429609201/misaka_danmu_server:latest
    container_name: misaka-danmu-server
    restart: unless-stopped
    network_mode: &quot;host&quot;  
    environment:
      - PUID=1000
      - PGID=1000
      - UMASK=0022
      - TZ=Asia/Shanghai
      - DANMUAPI_DATABASE__TYPE=mysql
      - DANMUAPI_DATABASE__HOST=10.8.0.118  
      - DANMUAPI_DATABASE__PORT=3306
      - DANMUAPI_DATABASE__NAME=misaka
      - DANMUAPI_DATABASE__USER=misaka
      - DANMUAPI_DATABASE__PASSWORD=PASSWORD
      - DANMUAPI_ADMIN__INITIAL_USER=admin
    volumes:
      - ./config:/app/config

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251224105747926.avif&quot; alt=&quot;image-20251224105747680&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;启动服务&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;docker compose up -d
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看启动日志：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker compose logs -f danmu
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;首次启动会显示初始管理员密码，请记录下来：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[INFO] Initial admin password: xxxxxx
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251224104230290.avif&quot; alt=&quot;image-20251224104228633&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;初始配置&lt;/h1&gt;
&lt;h2&gt;访问 Web 管理界面&lt;/h2&gt;
&lt;p&gt;浏览器访问 &lt;code&gt;http://你的服务器IP:7768&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;使用管理员账户登录：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户名：&lt;code&gt;admin&lt;/code&gt;（或你配置的 &lt;code&gt;DANMUAPI_ADMIN__INITIAL_USER&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;密码：启动日志中显示的初始密码&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;弹幕源配置&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;进入 &lt;strong&gt;系统设置&lt;/strong&gt; &amp;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;li&gt;可以调整源的优先级&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Token 管理&lt;/h2&gt;
&lt;p&gt;为了让播放器访问弹幕 API，你需要创建 Token：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;进入 &lt;strong&gt;系统设置&lt;/strong&gt; &amp;gt; &lt;strong&gt;Token 管理&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;新建 Token&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;填写备注（如 &quot;SenPlayer&quot;）并保存&lt;/li&gt;
&lt;li&gt;复制生成的 Token 用于播放器配置&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;播放器配置&lt;/h1&gt;
&lt;h2&gt;SenPlayer&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;打开 SenPlayer，进入 &lt;strong&gt;设置&lt;/strong&gt; &amp;gt; &lt;strong&gt;弹幕设置&lt;/strong&gt; &amp;gt; &lt;strong&gt;自定义弹幕 API&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;填入 API 地址：&lt;code&gt;http://你的服务器IP:7768/{Token}&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;将 &lt;code&gt;{Token}&lt;/code&gt; 替换为你在管理界面生成的 Token&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;播放视频时，点击 &lt;strong&gt;弹幕按钮&lt;/strong&gt; &amp;gt; &lt;strong&gt;搜索弹幕&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;选择你的弹幕 API，等待搜索完成后选择对应剧集&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Infuse&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;进入 &lt;strong&gt;设置&lt;/strong&gt; &amp;gt; &lt;strong&gt;元数据&lt;/strong&gt; &amp;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;填入 API 地址：&lt;code&gt;http://你的服务器IP:7768/{Token}&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;小幻播放器&lt;/h2&gt;
&lt;p&gt;小幻需要在 API 地址后面加上 &lt;code&gt;/api/v2&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;http://你的服务器IP:7768/{Token}/api/v2
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Yamby (Android)&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;打开 Yamby，进入弹幕设置&lt;/li&gt;
&lt;li&gt;选择自定义弹幕 API&lt;/li&gt;
&lt;li&gt;填入 API 地址：&lt;code&gt;http://你的服务器IP:7768/api/v1/{Token}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;仅支持手动搜索弹幕&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Hills (Android/Windows)&lt;/h2&gt;
&lt;p&gt;功能最全面的播放器之一：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;进入设置 &amp;gt; 弹幕 &amp;gt; 自定义 API&lt;/li&gt;
&lt;li&gt;填入 API 地址：&lt;code&gt;http://你的服务器IP:7768/api/v1/{Token}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;支持自动匹配和手动搜索&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Afusekt (Android/Android TV)&lt;/h2&gt;
&lt;p&gt;支持双平台：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;进入设置 &amp;gt; 弹幕设置&lt;/li&gt;
&lt;li&gt;选择自定义弹幕服务器&lt;/li&gt;
&lt;li&gt;填入 API 地址：&lt;code&gt;http://你的服务器IP:7768/api/v1/{Token}&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;dd-danmaku (浏览器插件)&lt;/h2&gt;
&lt;p&gt;适用于网页播放器：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;安装浏览器插件&lt;/li&gt;
&lt;li&gt;在插件设置中配置 API 地址&lt;/li&gt;
&lt;li&gt;访问视频网站时自动加载弹幕&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;API 路径兼容性&lt;/h2&gt;
&lt;p&gt;服务已对路由进行特殊处理，以下格式都能正确响应：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;http://IP:7768/api/v1/{Token}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http://IP:7768/api/v1/{Token}/api/v2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http://IP:7768/{Token}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;http://IP:7768/{Token}/api/v2&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这确保了与各种播放器的兼容性。&lt;/p&gt;
&lt;h1&gt;高级配置&lt;/h1&gt;
&lt;h2&gt;Webhook 自动化&lt;/h2&gt;
&lt;p&gt;御坂弹幕服务支持通过 Webhook 接收媒体服务器通知，自动获取弹幕。&lt;/p&gt;
&lt;h3&gt;Emby Webhook&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;在 Emby 中安装 Webhook 插件&lt;/li&gt;
&lt;li&gt;配置 Webhook URL：&lt;code&gt;http://你的服务器IP:7768/webhook/emby&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;选择需要触发的事件（如新增媒体）&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Sonarr/Radarr Webhook&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;进入 Sonarr/Radarr 的 &lt;strong&gt;设置&lt;/strong&gt; &amp;gt; &lt;strong&gt;连接&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;添加 &lt;strong&gt;Webhook&lt;/strong&gt; 连接&lt;/li&gt;
&lt;li&gt;URL：&lt;code&gt;http://你的服务器IP:7768/webhook/sonarr&lt;/code&gt; 或 &lt;code&gt;/webhook/radarr&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;选择触发事件（如下载完成）&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Webhook 详细配置&lt;/h2&gt;
&lt;h3&gt;Jellyfin Webhook&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;在 Jellyfin 中安装 &lt;strong&gt;Webhook&lt;/strong&gt; 插件&lt;/li&gt;
&lt;li&gt;进入 &lt;strong&gt;控制台&lt;/strong&gt; &amp;gt; &lt;strong&gt;插件&lt;/strong&gt; &amp;gt; &lt;strong&gt;Webhook&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;添加 &lt;strong&gt;Generic Destination&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;配置 Webhook URL：&lt;code&gt;http://你的服务器IP:7768/api/webhook/jellyfin?api_key=你的API密钥&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;仅勾选 &lt;strong&gt;Item Added&lt;/strong&gt; 事件&lt;/li&gt;
&lt;li&gt;启用 &lt;strong&gt;Send All Properties&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Plex Webhook（通过 Tautulli）&lt;/h3&gt;
&lt;p&gt;Plex 原生 Webhook 需要 Plex Pass 订阅，且无法处理批量导入。推荐使用免费的 Tautulli：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;安装 &lt;a href=&quot;https://tautulli.com/&quot;&gt;Tautulli&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;进入 &lt;strong&gt;设置&lt;/strong&gt; &amp;gt; &lt;strong&gt;通知代理&lt;/strong&gt; &amp;gt; 添加 &lt;strong&gt;Webhook&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;配置 Webhook URL：&lt;code&gt;http://你的服务器IP:7768/api/webhook/plex?api_key=你的API密钥&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;触发器选择 &lt;strong&gt;Recently Added&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;配置 JSON 数据模板（参考官方文档）&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;媒体库获取&lt;/h2&gt;
&lt;p&gt;媒体库获取功能支持从多种来源读取媒体条目信息，用于自动化弹幕导入流程。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251224104804426.avif&quot; alt=&quot;image-20251224104803458&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251224104854908.avif&quot; alt=&quot;image-20251224104853888&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;媒体服务器集成&lt;/h3&gt;
&lt;p&gt;支持从 Emby、Jellyfin、Plex 等媒体服务器读取媒体库：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;进入 &lt;strong&gt;设置&lt;/strong&gt; &amp;gt; &lt;strong&gt;媒体获取&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;选择媒体服务器类型&lt;/li&gt;
&lt;li&gt;填写服务器地址和 API Key&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;测试连接&lt;/strong&gt; 验证配置&lt;/li&gt;
&lt;li&gt;保存后即可从媒体服务器同步条目&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;本地目录扫描&lt;/h3&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;/ol&gt;
&lt;p&gt;&lt;strong&gt;推荐的目录结构：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;媒体库/
├── 电影/
│   ├── 电影名 (2024)/
│   │   └── 电影名 (2024).mkv
│   └── ...
└── 电视剧/
    ├── 剧名/
    │   ├── Season 01/
    │   │   ├── 剧名 S01E01.mkv
    │   │   └── 剧名 S01E02.mkv
    │   └── Season 02/
    │       └── ...
    └── ...
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;本地弹幕文件扫描&lt;/h3&gt;
&lt;p&gt;支持检测并导入现有的 .xml 弹幕文件：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;配置弹幕文件目录&lt;/li&gt;
&lt;li&gt;系统会扫描并识别 dandanplay 格式的 XML 文件&lt;/li&gt;
&lt;li&gt;自动关联到对应的媒体条目&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;弹幕文件命名规范：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;电影：&lt;code&gt;电影名 (年份).xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;剧集：&lt;code&gt;剧名 S01E01.xml&lt;/code&gt; 或 &lt;code&gt;剧名 第1季第1集.xml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;元数据源配置&lt;/h2&gt;
&lt;p&gt;在 &lt;strong&gt;系统设置&lt;/strong&gt; &amp;gt; &lt;strong&gt;元数据配置&lt;/strong&gt; 中可以配置各个元数据源：&lt;/p&gt;
&lt;h3&gt;TMDB（推荐，必选）&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;访问 &lt;a href=&quot;https://www.themoviedb.org/&quot;&gt;TMDB&lt;/a&gt; 注册账号&lt;/li&gt;
&lt;li&gt;进入 &lt;strong&gt;设置&lt;/strong&gt; &amp;gt; &lt;strong&gt;API&lt;/strong&gt; &amp;gt; 申请开发者权限&lt;/li&gt;
&lt;li&gt;获取 API v3 密钥&lt;/li&gt;
&lt;li&gt;在弹幕服务的 &lt;strong&gt;搜索设置&lt;/strong&gt; 中填入 API Key&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;TVDB&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;访问 &lt;a href=&quot;https://thetvdb.com/&quot;&gt;TVDB&lt;/a&gt; 注册账号&lt;/li&gt;
&lt;li&gt;进入 Dashboard 生成 API Key&lt;/li&gt;
&lt;li&gt;在弹幕服务中配置&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Bangumi（动画推荐）&lt;/h3&gt;
&lt;p&gt;支持两种认证方式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Access Token&lt;/strong&gt;：简单方式，适合个人使用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OAuth 认证&lt;/strong&gt;：适合多用户场景&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;豆瓣&lt;/h3&gt;
&lt;p&gt;豆瓣使用网页抓取方式，无需官方 API。可选配置 Cookie 以提高稳定性。&lt;/p&gt;
&lt;h3&gt;IMDb&lt;/h3&gt;
&lt;p&gt;无需认证，支持第三方 API 和 HTML 解析两种方式。&lt;/p&gt;
&lt;h3&gt;优先级建议&lt;/h3&gt;
&lt;p&gt;根据你的媒体库类型调整优先级：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;通用&lt;/strong&gt;：TMDB &amp;gt; TVDB &amp;gt; Bangumi &amp;gt; 豆瓣 &amp;gt; IMDb&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动画为主&lt;/strong&gt;：Bangumi &amp;gt; TMDB &amp;gt; TVDB&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;华语内容&lt;/strong&gt;：豆瓣 &amp;gt; TMDB &amp;gt; IMDb&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;AI 功能配置&lt;/h2&gt;
&lt;p&gt;御坂弹幕服务支持使用 AI 增强匹配能力，包括智能匹配、季度映射、别名验证等功能。&lt;/p&gt;
&lt;h3&gt;支持的 AI 提供商&lt;/h3&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;DeepSeek&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;性价比最高的国产大模型，响应快&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SiliconFlow&lt;/td&gt;
&lt;td&gt;⭐⭐⭐⭐&lt;/td&gt;
&lt;td&gt;支持多种开源模型，国内访问友好&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;⭐⭐⭐&lt;/td&gt;
&lt;td&gt;效果好，但国内需要代理&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Gemini&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;h3&gt;配置步骤&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;进入 &lt;strong&gt;设置&lt;/strong&gt; &amp;gt; &lt;strong&gt;AI 辅助增强&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;选择 AI 提供商&lt;/li&gt;
&lt;li&gt;填写 API Key&lt;/li&gt;
&lt;li&gt;设置 Base URL（通常使用默认值）&lt;/li&gt;
&lt;li&gt;选择模型名称&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;测试连接&lt;/strong&gt; 验证配置&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;费用参考：DeepSeek 输入 ¥1/百万tokens，输出 ¥2/百万tokens。由于每次调用消耗的 tokens 很少，通常每月费用不超过几元。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Telegram 机器人&lt;/h2&gt;
&lt;p&gt;可以通过 Telegram Bot 远程管理弹幕服务，支持搜索导入、库管理、任务监控等功能。&lt;/p&gt;
&lt;p&gt;::github{repo=&quot;balge/misaka-danmuku-bot&quot;}&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;要求&lt;/strong&gt;：弹幕库版本 &amp;gt; v2.0.4&lt;/p&gt;
&lt;p&gt;详细配置请参考项目文档。&lt;/p&gt;
&lt;h2&gt;弹幕源管理&lt;/h2&gt;
&lt;h3&gt;在线仓库安装&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;进入 &lt;strong&gt;系统设置&lt;/strong&gt; &amp;gt; &lt;strong&gt;弹幕源管理&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;配置资源仓库地址（支持 GitHub 或 CDN 加速）&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;https://github.com/l429609201/Misaka-Scraper-Resources
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;点击 &lt;strong&gt;从仓库安装&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;系统会自动备份当前源、下载最新文件、安装并重载&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://s3.catcat.blog/images/2025/12/20251224104721786.avif&quot; alt=&quot;image-20251224104720890&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;离线包安装&lt;/h3&gt;
&lt;p&gt;如果无法访问在线仓库：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;从 &lt;a href=&quot;https://github.com/l429609201/misaka_danmu_server/releases&quot;&gt;Releases 页面&lt;/a&gt; 下载对应平台的离线包&lt;/li&gt;
&lt;li&gt;在 Web UI 中上传离线包&lt;/li&gt;
&lt;li&gt;系统会自动安装并重载&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;备份与恢复&lt;/h3&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;h2&gt;弹幕库管理&lt;/h2&gt;
&lt;h3&gt;条目管理&lt;/h3&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;p&gt;每个条目包含：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;基础信息（标题、年份等）&lt;/li&gt;
&lt;li&gt;别名列表&lt;/li&gt;
&lt;li&gt;多个弹幕来源（B站、爱奇艺等）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;手动创建条目&lt;/h3&gt;
&lt;p&gt;对于不在弹幕源中的作品，可以手动创建条目：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;点击 &lt;strong&gt;新建条目&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;填写作品信息&lt;/li&gt;
&lt;li&gt;可以导入本地 XML 弹幕文件&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;XML 弹幕导入&lt;/h3&gt;
&lt;p&gt;支持导入 dandanplay 格式的弹幕文件：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;单文件导入&lt;/strong&gt;：选择单个 XML 文件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;批量导入&lt;/strong&gt;：选择多个 XML 文件&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;TMDB 自动增强&lt;/h3&gt;
&lt;p&gt;启用后，系统会通过 TMDB 定时任务自动为条目添加别名，提升播放器匹配成功率。&lt;/p&gt;
&lt;h2&gt;弹幕 API 功能配置&lt;/h2&gt;
&lt;h3&gt;Token 高级设置&lt;/h3&gt;
&lt;p&gt;创建 Token 时可以配置：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;有效期&lt;/strong&gt;：Token 的过期时间&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;每日调用限制&lt;/strong&gt;：防止滥用&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;弹幕输出设置&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;采样限制&lt;/strong&gt;：建议设置 3000-5000（桌面端），移动端可以更低&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;h3&gt;存储路径自定义&lt;/h3&gt;
&lt;p&gt;可以使用变量自定义弹幕存储路径：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;${title}&lt;/code&gt; - 作品标题&lt;/li&gt;
&lt;li&gt;&lt;code&gt;${season}&lt;/code&gt; - 季度&lt;/li&gt;
&lt;li&gt;&lt;code&gt;${episode}&lt;/code&gt; - 集数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;${episodeId}&lt;/code&gt; - 集数 ID&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;自动回退选项&lt;/h3&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;strong&gt;预下载&lt;/strong&gt;：后台自动下载下一集弹幕&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;指令系统&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;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;查看可用指令列表&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@QLHC&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;清除缓存&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@SXDM&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;刷新弹幕（多步选择）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@CXLK&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;检查限流状态&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@CXRW&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;查询任务状态&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;过滤配置&lt;/h2&gt;
&lt;h3&gt;条目标题过滤&lt;/h3&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;h3&gt;分集名过滤&lt;/h3&gt;
&lt;p&gt;在条目详情页，可以过滤分集列表：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;S01&lt;/code&gt;、&lt;code&gt;第一季&lt;/code&gt; - 筛选季度&lt;/li&gt;
&lt;li&gt;&lt;code&gt;E05&lt;/code&gt;、&lt;code&gt;第5集&lt;/code&gt; - 筛选集数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;特别篇&lt;/code&gt;、&lt;code&gt;OVA&lt;/code&gt; - 筛选特殊内容&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;更新服务&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;cd ~/misaka-danmu
docker compose pull
docker compose up -d
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;注意事项&lt;/h1&gt;
&lt;h2&gt;网络环境&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;建议使用中国大陆 IP 部署，海外服务器可能因网络限制导致部分弹幕源无法正常工作&lt;/li&gt;
&lt;li&gt;如果使用海外服务器，可能需要配置代理&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;合理使用&lt;/h2&gt;
&lt;p&gt;项目作者在文档中明确指出：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;所有弹幕数据均来自第三方公开 API 或网站，请合理使用，避免滥用导致 IP 被封禁。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;版权声明&lt;/h2&gt;
&lt;p&gt;御坂弹幕服务仅提供弹幕数据的聚合、存储和 API 访问功能，不生产、修改、存储或分发视频内容本身。用户需自行承担使用责任。&lt;/p&gt;
&lt;h1&gt;参考资料&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.misaka10876.top/&quot;&gt;御坂弹幕服务官方文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/l429609201/misaka_danmu_server&quot;&gt;GitHub 仓库&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://catcat.blog/deploy-danmu_api.html&quot;&gt;danmu_api 部署教程&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><category>category:教程</category><category>tag:Docker</category><category>tag:弹幕</category><category>tag:自托管</category><category>tag:Emby</category></item></channel></rss>