iON 一代神鸡陨落:年付 20.19 美元变月付 40 美元,顺便盘点我手上的服务器

<img src="https://blog.laoda.de/plugins/feed/assets/telemetry.gif?title=iON%20%E4%B8%80%E4%BB%A3%E7%A5%9E%E9%B8%A1%E9%99%A8%E8%90%BD%EF%BC%9A%E5%B9%B4%E4%BB%98%2020.19%20%E7%BE%8E%E5%85%83%E5%8F%98%E6%9C%88%E4%BB%98%2040%20%E7%BE%8E%E5%85%83%EF%BC%8C%E9%A1%BA%E4%BE%BF%E7%9B%98%E7%82%B9%E6%88%91%E6%89%8B%E4%B8%8A%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8&amp;url=/archives/ion-20-19-yearly-to-40-monthly-vps-review-2026" width="1" height="1" alt="" style="opacity:0;"> <p>非常久没有和大家更新了,因为最近家里和公司事情比较多。</p> <p>今天趁着难得的闲暇赶紧和大家更新一波。</p> <p>我手上的这台 iON VPS,原来的续费价格是 <strong>20.19 美元/年</strong>。</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110515-1.jpeg&amp;size=m" alt="d5cbc628018f09f63f59a5d7bbd999af.png"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110509-1.jpeg&amp;size=m" alt="64e08217989948d1fcdea5ce0791e2b1.png"></p> <p>不知不觉已经7年时间了。</p> <p>最近收到 iON 的通知:从 <strong>2026 年 8 月 1 日</strong>起,这台机器将被调整为 <strong>40 美元/月</strong>的 iON Pro 1 套餐。</p> <p>不升级套餐的话,8月5号正式停机。(说实话有点流氓了,至少等合约结束吧,而且才给了5天的时间迁移数据)</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110506-1.jpeg&amp;size=m" alt="d183e1b35542e1c6fe1668cff74f46ed.png"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110503-1.jpeg&amp;size=m" alt="b75933b511699847aaaefc0a92173567.png"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110502-1.jpeg&amp;size=m" alt="8839ba57f534f903b08abe32830ca754.png"></p> <p>也就是说,原来一年只要 20.19 美元,以后一年要 480 美元,续费成本接近原来的 24 倍!</p> <p>所以,是时候和它告别了……</p> <p>11.11 美元年付套餐已经有用户反馈收到类似通知;我自己的 20.19 美元年付套餐已经确认收到。至于 22.22 美元年付套餐是否会统一调整,我猜大概率也会,包括之前还有68刀/年的,估计也会被清退。(可以看出公司经营状况确实不咋地了)</p> <p>至此,一代神鸡iON,就此消失!</p> <p>借着这个机会,除了回顾这台用了六七年的 iON,我也想着打开探针,把自己还在持有的 VPS 和独立服务器重新盘点一遍。</p> <p>本期视频链接:<a href="https://youtu.be/B7fEraJypls">https://youtu.be/B7fEraJypls</a></p> <h2 id="年付-20-19-美元-变成月付-40-美元">年付 20.19 美元,变成月付 40 美元</h2> <p>这是我收到的通知截图,</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110458-1.jpeg&amp;size=m" alt="iON 套餐价格调整通知"></p> <p>我这个账户对应的调整如下:</p> <table> <thead> <tr> <th>项目</th> <th>原套餐</th> <th>调整后的套餐</th> </tr> </thead> <tbody> <tr> <td>套餐</td> <td>iON-L09</td> <td>iON Pro 1</td> </tr> <tr> <td>计费</td> <td>20.19 美元/年</td> <td>40 美元/月,即 480 美元/年</td> </tr> <tr> <td>CPU</td> <td>1 vCPU</td> <td>4 vCPU</td> </tr> <tr> <td>内存</td> <td>2 GB</td> <td>8 GB</td> </tr> <tr> <td>硬盘</td> <td>40 GB SSD</td> <td>160 GB</td> </tr> <tr> <td>流量</td> <td>1 TB/月,出站单向计费</td> <td>5 TB/月</td> </tr> <tr> <td>生效日期</td> <td>—</td> <td>2026 年 8 月 1 日</td> </tr> </tbody> </table> <p>新套餐的配置确实高了不少,但我过去留着它的原因就是便宜、三网联通优化和单向1T流量。价格变成 40 美元/月之后,他的替代品可太多了,实在是没有继续保留的必要。</p> <h2 id="曾经的-神鸡-">曾经的“神鸡”</h2> <p>我第一次知道这个套餐,是在 HostLoc 上看到有人讨论。后来我花了三四百元溢价收来,从 2019 年开始续费,一直用到现在。</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F173921-1.webp&amp;size=m" alt="iON 20.19 美元年付套餐后台"></p> <p>它的配置放到今天其实在这个价位依旧能打:1 核、2 GB 内存、40 GB SSD、1 Gbps 带宽。但它每月有 1 TB <strong>出站单向计费</strong>流量,过去还长期有 AS4837 联通优化回程。对于反向代理和日常小服务来说,一个字,香!</p> <p>我最早拿它做反向代理,后来又把它当过一段时间的你懂的的主力机器。六七年下来,即使算上当初的二手溢价,它也早就回本了。单看价格、线路和使用年限,这仍然是我买过最划算的服务器之一。</p> <p>iON 这些年也不是一直顺风顺水。线路经历过多次调整;2023 年 5 月,洛杉矶机房还曾因烟雾报警停电,等待消防人员排查,我这台机器大约 20 天后才恢复。后来线路恢复过 AS4837,但稳定性和服务状态都有过反复。</p> <p>完整的历史更新可以看我之前的文章:<a href="https://blog.laoda.de/archives/vps-ion-cloud">iON VPS 使用记录</a>。</p> <h2 id="顺便盘点一下我手上的服务器">顺便盘点一下我手上的服务器</h2> <p>借着这次 iON 退场,我又打开了自己的 <a href="https://status.laoda.de/">探针</a>。</p> <p>打算回顾一下手头上的小鸡们。</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174014-1.webp&amp;size=m" alt="我手上的服务器云监控"></p> <p>下面这些价格和配置,都是我在 <strong>2026 年 8 月 2 日录制视频时</strong>,自己账户里显示的套餐与续费信息,很多都是活动套餐,确实已经“绝版”了,不过能顶多久,没人知道。</p> <p>只能说不在乎天长地久,只在乎曾经拥有吧。</p> <h3 id="BuyVM-便宜的存储块和不限流量">BuyVM:便宜的存储块和不限流量</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174007-1.webp&amp;size=m" alt="BuyVM"></p> <p>我的 BuyVM 最早在卢森堡,后来迁到了瑞士。现在账户里显示 VPS 续费 54 美元/年,折算下来每月 4.5 美元;另外还挂了一块 256 GB 的存储块,续费只要 15 美元/年。单看容量和流量,它到现在依然很有特色。</p> <p>我当初买它,主要就是看中不限流量和便宜的存储块,拿来刷 PT 很舒服。后来不怎么玩 PT 了,这台机器也就逐渐进入吃灰状态。录视频时我重新登录后台看了一眼,本轮在线时间只有 23 天,平时基本没跑什么重要服务。</p> <p>所以 BuyVM 对我来说其实用途已经消失了。机器本身和存储块都不贵,但如果继续放着吃灰,好像也是一笔支出,后面看自己经济情况是否继续续费。</p> <p>还记得盯着监控抢卢森堡的存储块的日子……</p> <p>往期回顾:<a href="https://blog.laoda.de/archives/vps-buyvm">【VPS选购分享】BuyVM——下载神器!无限流量,无视版权投诉,经常缺货DMCA版权投诉/适合BT/PT下载/Netflix解锁</a></p> <h3 id="CloudCone-便宜-性价比不错">CloudCone:便宜,性价比不错</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110449-1.jpeg&amp;size=m" alt="fc8da7d2e35988725a1caae73ebfb7bd.png"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110447-1.jpeg&amp;size=m" alt="790d200729c2f397e5372104651589a7.png"></p> <p>我的 CloudCone 是活动时抢到的套餐,1 核、2 GB 内存、60 GB 硬盘,续费只要 10.44 美元/年。这个价位确实便宜,配置也够跑一些轻量应用,所以我一直留着。</p> <p>不过最近确实遇到一个小插曲,截止写文章的时候,它因为迁移机房已经离线不止两周,控制面板里一直显示 Offline,尝试 Reboot 也没有恢复。原来有一个简单应用和 Telegram 群机器人跑在上面,停机之后我只能把机器人迁到别的服务器。</p> <p>一年十美元出头的机器,买来折腾或做非关键服务没有问题。但这次长时间停机也再次提醒我:阿三真的很不靠谱……</p> <p>往期回顾:<a href="https://blog.laoda.de/archives/cheap-vps-cloudcone">【国外便宜高性价比的VPS 推荐】——CloudCone</a></p> <h3 id="DMIT-接替-iON-的主力机器">DMIT:接替 iON 的主力机器</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110445-1.jpeg&amp;size=m" alt="cbe0ac93b2f0e2dbc7628eae23bd1516.png"></p> <p>我有两台 DMIT,一台是 EB CORONA,一台是 PRO WEE,都是活动时抢到的,续费分别是 49.9 美元和 36.9 美元。CORONA 有 2 TB 流量,线路也有优化,但目前基本处于吃灰状态。</p> <p>真正派上用场的是 PRO WEE。它后来接替 iON,成为我的主力机器,线路表现不错,价格也还能接受。不过它每月只有 550 GB 流量,而且是双向计费;和 iON 的 1 TB 出站单向流量相比,日常使用不能那么随意了。</p> <h3 id="Hetzner-博客主机-稳定省心-欧洲阿里云">Hetzner:博客主机,稳定省心,欧洲阿里云</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174001-1.webp&amp;size=m" alt="Hetzner"></p> <p>我目前主要使用三台 Hetzner,博客也部署在这里。它的服务器镜像、快照、备份和防火墙功能都比较完整,控制面板成熟,价格和性能也比较均衡,属于不需要经常操心的类型。</p> <p>录视频时,博客这台机器本轮已经连续在线 320 天。之前博客偶尔无法访问,并不是 Hetzner 服务器本身不稳定,而是遇到过流量攻击,加上博客程序存在内存泄漏问题。后来在Halo项目负责人仙总的帮助下,成功迁移数据库并处理掉内存问题,最近这段时间一直比较稳,所以博客还会继续放在这里。</p> <p>省心!</p> <p>注册账号之前需要身份证,现在不知道怎么样了,有新注册的小伙伴也欢迎评论区留言。</p> <p>往期回顾:<a href="https://blog.laoda.de/archives/vps-hetzner">【VPS选购分享】Hetzner——欧洲阿里云!性能小钢炮!非常适合跑业务,还有适合刷PT的神鸡!</a></p> <h3 id="HostHatch-3-年-65-美元的大盘鸡">HostHatch:3 年 65 美元的大盘鸡</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110442-1.jpeg&amp;size=m" alt="535e826fca4cc65ee7beaee6db157d72.png"></p> <p>HostHatch 的特色就是大盘鸡,这台配置:1 GB 内存、1 TB 硬盘、10 TB 流量,续费 3 年 65 美元。最初买它主要也是刷 PT,也打算拿来备份体积较大的内容。录视频时,它本轮已经稳定在线 400 多天,单看价格、容量和在线表现都很划算。</p> <p>它的问题也很明确。1 TB 硬盘虽然够大,但只有 1 GB 内存,刷 PT 时内存和CPU 偶尔会顶满,只能控制任务和速度;另外新机开通和工单回复都偏慢。现在我很少再管它,容量优势没有真正用起来,后面可能出掉,也可能到期不续费。</p> <p>往期回顾:<a href="https://blog.laoda.de/archives/vps-hosthatch">【VPS选购分享】HostHatch——目前看过的最高性价比大盘鸡!40刀/年 2T硬盘!】</a></p> <h3 id="Naranja-Tech-18-欧元年付的荷兰小钢炮">Naranja Tech:18 欧元年付的荷兰小钢炮</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110440-1.jpeg&amp;size=m" alt="f7b7572ca5e9988d661d46f51902b574.png"></p> <p>这台 Naranja Tech 是黑五买到的荷兰套餐,2 GB 内存、50 GB 硬盘、5 TB 流量,年付 18 欧元。欧洲机器给的流量比较足,这个配置拿来跑轻量项目也不会太局促。</p> <p>我有一个小项目长期部署在上面,实际使用下来很稳。录视频前不久我手动重启过一次,所以监控只显示在线 55 天;重启之前,它已经连续运行了 400 多天。它没有特别花哨的控制面板和附加功能,但价格、性能和稳定性比较平衡。</p> <h3 id="netcup-性能高-但要留意合约取消时间">netcup:性能高,但要留意合约取消时间</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110437-1.jpeg&amp;size=m" alt="c0302cfb81abcd78db675c967bb207ea.png"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110435-1.jpeg&amp;size=m" alt="1b0c884f46805362c843602e5de8419f.png"></p> <p>我以前用的是 netcup 很有名的 RS 2000。它更像一台半独立服务器,CPU 资源是独享的,性能比普通 VPS 更稳定;每月流量超过 20 TB 后才会限速到 500 Mbps,过去很多人买它就是为了刷 PT。</p> <p>后来因为预算和实际需求,我用不到这么重的配置,就换成了月付 4.74 欧元的 VPS 500:4 核、4 GB 内存、128 GB SSD。这个套餐在 24 小时内流量超过 2 TB 后会限速到 200 Mbps,对我来说仍然接近够用,性能和价格也比较平衡。</p> <p>netcup 真正需要注意的是合约规则。确定不续费时,要在 Cancellation 页面提前取消,最好预留一到两个月;错过窗口后仍可能继续出账单,拖着不处理还会进入催缴流程(律师函警告!)。账号里长期没有任何服务,也可能被清理。机器本身没什么问题,但德国公司的合同管理比较严格,不能按照普通月付 VPS 的习惯随用随停。</p> <h3 id="OVH-硬盘-开奖-成功的独服">OVH:硬盘“开奖”成功的独服</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174105-1.webp&amp;size=m" alt="OVH"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110432-1.jpeg&amp;size=m" alt="0516f6243661d88427b9df0a71cc498e.png"></p> <p>OVH 以前经常放出一批带有“开奖”性质的独立服务器:标称配置不变,但实际开通后,硬盘数量或带宽偶尔会高于页面规格。我当时也买了一台,标称是 2×960 GB SSD,实际开出来却是 4×960 GB,算是硬盘开奖成功。</p> <p>这台机器使用 Intel Xeon E3-1231 v3、32 GB 内存,月付 16.99 欧元。我把大约一半硬盘作为实际可用空间,另一部分拿来做 RAID。对于需要较大容量、又希望有冗余的服务来说,这个价格还是不错的。</p> <p>OVH 的另外两个特点是自带 DDoS 防护和不限流量,适合放容量或流量需求较大的服务。它的官网和账户体系不算好用,空账户长期没有服务也可能被清理,但这台机器本身已经稳定使用了很久,我暂时没有淘汰它的打算。</p> <p>往期回顾:<a href="https://blog.laoda.de/archives/ovh-sys-2-sat-32-waw">【VPS选购经验分享】OVH——欧洲最大、世界第三的托管服务提供商,抗DDOS(独立服务器测评及取消RAID、挂载硬盘分享)</a></p> <h3 id="RackNerd-适合新手折腾的低价-VPS">RackNerd:适合新手折腾的低价 VPS</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110429-1.jpeg&amp;size=m" alt="ea81d71dc66e40935615e45f6e078fcc.png"></p> <p>我的 RackNerd 年付大约 14.18 美元,512 MB 内存、10 GB 硬盘,属于很典型的入门低价 VPS。它和 CloudCone 类似,配置不高,但一年只要几十元人民币,非常适合拿来熟悉 Linux、练习部署环境或跑极轻量的服务的新手小伙伴。</p> <p>这台机器买来之后我一直正常续费,实际上很少操作,基本也是吃灰状态。</p> <p>它最重要的特色就是试错成本低,非常适合新手第一次接触 VPS。</p> <p>之前整理的便宜的套餐在这边,有兴趣的小伙伴可以看看能不能捡漏:<a href="https://blog.laoda.de/vps">https://blog.laoda.de/vps</a></p> <p>往期回顾:<a href="https://blog.laoda.de/archives/cheap-vps-racknerd">【国外便宜高性价比的VPS 推荐】——RackNerd</a></p> <h3 id="SpartanHost-主力反代鸡">SpartanHost:主力反代鸡</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110423-1.jpeg&amp;size=m" alt="de2ba86aa1e47fee6ae402dc18e276b6.png"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F08%2F05%2F110418-1.jpeg&amp;size=m" alt="8944e1a0b6bee33bf77e5044058f88c3.png"></p> <p>我的 SpartanHost 是 2021 年黑五抢到的 AMD 半价套餐,最初价格是 31.68 美元/年。后来第二年黑五我让官方把配置和价格一起翻倍,升级到 2 GB 内存、50 GB 硬盘,套餐本身续费约 63.63 美元/年;再加上额外的 DDoS 防护,目前总续费约 101.76 美元/年。</p> <p>它曾经长期承担博客反向代理,洛杉矶线路对联通比较友好。后来博客持续遭到 DDoS 攻击,一个月要花好多钱买额外流量,定不值了我才把反代迁走,后来我加了DDoS 防护包,承担我其他几个网站的反代任务。</p> <p>SpartanHost 的稳定性和工单体验一直不错,回复速度很快(老板亲自指挥,亲自回复),没想到不知不觉我都已经用了接近五年了……</p> <p>比较遗憾的是,它这两年黑五似乎没有再做当年那种力度的活动,讨论热度也低了不少。</p> <p>往期回顾:<a href="https://blog.laoda.de/archives/spartanhost">【VPS测评】斯巴达 AMD 黑五31刀测评</a></p> <h3 id="BandwagonHost-我手上数量最多-也最稳定的一组">BandwagonHost:我手上数量最多,也最稳定的一组</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174019-1.webp&amp;size=m" alt="BandwagonHost 搬瓦工"></p> <p>我现在持有最多的还是搬瓦工,主要有四台。它们的纸面参数配置一般,但稳定性已经经历了考验:录视频时,其中一台已经连续在线 998 天,49 美元那台更是连续在线 1043 天,没有重启也没有掉线。</p> <ul> <li><strong>CN2 GIA 限量版</strong>:实付 46.59 美元/年,512 MB 内存、10 GB 硬盘、500 GB 流量。配置很小,但能切换 CN2 GIA、CN2 GIA-E 和日本软银等多个机房,我平时放在日本机房,作为备用机器使用;</li> <li><strong>MEGABOX PRO</strong>:NodeSeek 联名款,45.68 美元/年,2 GB 内存、40 GB SSD、2 TB 流量。电信、联通、移动都有不同程度的线路优化,但不能切换机房;我当时有点跟风购买,现在基本吃灰;</li> <li><strong>The Plan V2</strong>:110 美元/年,2 GB 内存、40 GB 硬盘、2 TB 流量,是目前的博客反向代理。本轮已经在线 541 天,可以切换迪拜、香港 CMI、日本软银等更多机房,价格最高;</li> <li><strong>2018 双十一套餐</strong>:29.88 美元/年,2 GB 内存、40 GB 硬盘、1 TB 流量,是我二手收来的老套餐。我把不少基础应用放在上面,硬盘已经接近用满;它只能切换部分机房,线路是 CN2 GT,晚高峰可能拥堵,但这个续费价很划算。</li> </ul> <p>我一直喜欢搬瓦工,一个重要原因是 KiwiVM 控制面板成熟。它有独立账号、密码和两步验证,需要把机器借给别人或单独管理时,不用交出主账户。切换机房后,服务器配置和数据都保持不变,通常只需要改一下新的 IP 就能丝滑恢复业务;自动快照和备份也比较方便。</p> <p>搬瓦工的常规套餐并不便宜,真正有吸引力的往往是少量活动款。</p> <p>搬瓦工的套餐整理在这里:<a href="https://bwg.laoda.de/">BandwagonHost 套餐合集</a>。</p> <p>往期回顾:<a href="https://blog.laoda.de/archives/vps-bandwagonhost">【VPS选购分享】Bandwagonhost(搬瓦工)——曾经的王者,三网G口GIA,贵族VPS</a></p> <h2 id="写在最后">写在最后</h2> <p>iON 这台 20.19 美元年付 VPS,我用了六七年,已经足够值回当初付出的价格。它的退场当然有点可惜,但也再次提醒我们:<strong>没有永远的低价套餐,也没有真正可以传家的 VPS。</strong></p> <p>大家最好不要为“绝版”支付高于机器本身好几倍的溢价,也不要把重要数据的安全寄托在任何一家服务器厂商身上。日常做好备份,让自己始终保留迁移的能力,比守着一台所谓的传家宝机器更重要。</p> <p>关于服务器备份,我之前整理过一篇总览:<a href="https://blog.laoda.de/archives/backup-server-series">服务器备份方案合集</a></p>

2026/8/5
阅读更多

【好玩儿的 Docker 项目】十分钟搭建一个 Obsidian 私有同步服务——Fast Note Sync,多端实时同步笔记和附件

<img src="https://blog.laoda.de/plugins/feed/assets/telemetry.gif?title=%E3%80%90%E5%A5%BD%E7%8E%A9%E5%84%BF%E7%9A%84%20Docker%20%E9%A1%B9%E7%9B%AE%E3%80%91%E5%8D%81%E5%88%86%E9%92%9F%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%20Obsidian%20%E7%A7%81%E6%9C%89%E5%90%8C%E6%AD%A5%E6%9C%8D%E5%8A%A1%E2%80%94%E2%80%94Fast%20Note%20Sync%EF%BC%8C%E5%A4%9A%E7%AB%AF%E5%AE%9E%E6%97%B6%E5%90%8C%E6%AD%A5%E7%AC%94%E8%AE%B0%E5%92%8C%E9%99%84%E4%BB%B6&amp;url=/archives/docker-compose-install-fast-note-sync" width="1" height="1" alt="" style="opacity:0;"> <h2 id="1--唠嗑">1. 唠嗑</h2> <blockquote> <p>拖更好久了,今天来更新一下。(顺便吐槽今天德国踢的太臭了)</p> </blockquote> <p>如果你平时用 Obsidian,应该多少都纠结过同步的问题。</p> <p>先简单介绍一下 Obsidian。</p> <p>Obsidian 是一个本地优先的 Markdown 笔记软件,所有笔记本质上都是一个个 <code>.md</code> 文件,放在自己的电脑或手机里。你可以用它写日记、做读书笔记、整理项目资料,也可以把它当成自己的「第二大脑」或者个人知识库。</p> <p>它和普通云笔记最大的区别是:数据不被某个平台锁死。哪天不用 Obsidian 了,这些 Markdown 文件依然可以直接打开、迁移、备份。</p> <p>这两年大模型火起来之后,Obsidian 的玩法也更有意思了。你可以把自己的笔记库整理成长期知识库,再配合 ChatGPT、Claude、Cursor、Cherry Studio,甚至 MCP 这类工具,让 AI 在你授权的范围内读取、总结、检索、改写自己的资料。</p> <p>比如:</p> <ul> <li>让 AI 帮你总结过去写过的文章</li> <li>从自己的笔记里找某个项目的资料</li> <li>把零散记录整理成博客、周报、方案</li> <li>基于自己的知识库问答,而不是每次都从零开始问 AI</li> </ul> <p>但前提是,你的笔记要能稳定同步、备份,并且在多台设备上都能访问。不然电脑上写了一半,手机上看不到;手机拍的图片附件,电脑上又没同步过来,体验就很割裂,很难顶。</p> <p>今天咕咕给大家分享一个可以私有化部署的 Obsidian 同步服务:<strong>Fast Note Sync Service</strong>。</p> <p>它搭配 Obsidian 插件 <strong>Fast Note Sync</strong> 使用,可以把自己的 Obsidian 笔记库同步到自己的服务器上,支持多端实时同步、附件同步、历史版本、回收站、分享链接,甚至还支持 REST API 和 MCP。</p> <p>简单来说,就是:</p> <blockquote> <p>自己搭一个 Obsidian 私有同步服务器,让不同系统的电脑、手机、平板之间的笔记可以实时同步。</p> </blockquote> <p>笔记软件</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094637-1.jpeg&amp;size=m" alt="b9a5ac47d9711c175dfa4ea39df75315.png"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094636-1.jpeg&amp;size=m" alt="3eaa359d571e4da8a7f43f693f44cd48.png"></p> <h2 id="2--Fast-Note-Sync-简介">2. Fast Note Sync 简介</h2> <p>Fast Note Sync 分成两部分:</p> <ul> <li><strong>Fast Note Sync Service</strong>:服务端,部署在自己的 VPS 上</li> <li><strong>Fast Note Sync for Obsidian</strong>:Obsidian 插件,安装在自己的 Obsidian 里</li> </ul> <p>它具体都能干什么?</p> <ul> <li>Obsidian 笔记多端实时同步</li> <li>支持图片、音频、视频等附件同步</li> <li>支持 <code>.obsidian</code> 配置同步</li> <li>支持笔记历史版本</li> <li>支持回收站恢复</li> <li>支持离线编辑后自动合并</li> <li>支持通过网页后台管理笔记库</li> <li>支持分享笔记链接</li> <li>支持 REST API / MCP,方便后续接入 AI 工具</li> </ul> <p>适合的场景包括:</p> <ul> <li>不想订阅 Obsidian Sync,但又想多设备同步</li> <li>想把笔记数据放在自己的服务器上</li> <li>想在手机、电脑、平板之间同步同一个 Vault</li> <li>想给自己的知识库留一个 Web 管理后台</li> <li>想后续把 Obsidian 笔记接入 AI / MCP 工具</li> </ul> <blockquote> <p>注意:目前官方 Roadmap 里端到端加密还在计划中,我们都是特别注意隐私的,所以强烈建议只部署在自己信任的服务器上,不要放到来路不明的机器上。</p> </blockquote> <h2 id="2-1-和-iCloud---Obsidian-Sync-怎么选-">2.1 和 iCloud / Obsidian Sync 怎么选?</h2> <p>看到这里,可能有小伙伴可能会问:</p> <blockquote> <p>我直接用 iCloud 不就好了?或者买官方 Obsidian Sync 不就好了?为啥还要自己折腾这个?</p> </blockquote> <p>这个问题要分情况看。</p> <p>如果你所有设备都是 Apple 生态,比如 Mac + iPhone + iPad,而且笔记不多、附件不大,那 iCloud 确实是最省事的选择。系统自带,不需要额外部署,也不用折腾服务器。</p> <p>但是 iCloud 本质上是「文件夹同步」,不是专门为 Obsidian 做的同步服务。它没有 Obsidian 专用的网页后台、同步日志、Vault 管理、REST API、MCP、Git 自动化这些东西。如果你还想在 Windows、Android、Linux 上一起用,体验就没那么统一了。</p> <p>官方 Obsidian Sync 是最省心、最稳妥的方案。官方页面写得很清楚,它支持端到端加密、版本历史、跨平台同步、离线编辑后再合并,还能细粒度控制同步哪些配置和文件。</p> <p>价格方面,截至 2026 年 6 月 30 日,Obsidian Sync Standard 年付是 4 美元/月,月付是 5 美元/月,包含 1 个同步库、1GB 总存储、单文件 5MB 限制、1 个月版本历史;Sync Plus 年付是 8 美元/月,月付是 10 美元/月,包含 10 个同步库、10GB 总存储、单文件 200MB 限制、12 个月版本历史,还可以升级到 100GB 存储。</p> <p>Fast Note Sync 是给这些人准备的:</p> <ul> <li>已经有自己的 VPS 或家里服务器</li> <li>想把 Obsidian 同步服务放在自己手里</li> <li>不想按月订阅,但愿意自己维护服务</li> <li>附件比较多,想用自己的磁盘空间</li> <li>想要 Web 管理后台,可以在线查看笔记、附件和同步日志</li> <li>想把 Obsidian 接入 REST API / MCP,让 AI 工具读写自己的知识库</li> <li>想折腾 Git 自动化、远程备份、对象存储、WebDAV 等扩展玩法</li> </ul> <p>简单对比一下:</p> <table> <thead> <tr> <th>方案</th> <th>适合谁</th> <th>优点</th> <th>不足</th> </tr> </thead> <tbody> <tr> <td>iCloud</td> <td>Apple 全家桶用户</td> <td>系统自带,最省事</td> <td>跨平台一般,本质是文件夹同步</td> </tr> <tr> <td>Obsidian Sync</td> <td>想省心、重视稳定和隐私的人</td> <td>官方维护,端到端加密,体验完整</td> <td>需要订阅,有存储和单文件大小限制</td> </tr> <tr> <td>Fast Note Sync</td> <td>有 VPS、喜欢自托管的人</td> <td>私有部署、空间自己定、支持后台/API/MCP</td> <td>需要自己维护,目前端到端加密还在 Roadmap</td> </tr> </tbody> </table> <p>所以咕咕的建议是:</p> <p>如果你只是 Mac + iPhone 轻度同步,继续用 iCloud 就行。</p> <p>如果你想要最稳、最省心,而且不差钱,官方 Obsidian Sync 依然是首选。</p> <p>但如果你本来就有 VPS,又想把 Obsidian 变成一个真正属于自己的私有知识库,甚至后面还想接 AI / MCP / 自动化,那 Fast Note Sync 就很值得折腾一下。</p> <p>不过还是要提醒一句:目前 Fast Note Sync 的端到端加密还在 Roadmap 里,服务端是可以处理你的笔记内容的。所以不要部署在不信任的服务器上,也不要把后台裸奔公网。重要笔记库第一次同步前,建议先做好本地备份。</p> <h2 id="3--相关地址">3. 相关地址</h2> <p>官方 GitHub 地址:</p> <p>服务端:<a href="https://github.com/haierkeys/fast-note-sync-service">https://github.com/haierkeys/fast-note-sync-service</a></p> <p>Obsidian 插件:<a href="https://github.com/haierkeys/obsidian-fast-note-sync">https://github.com/haierkeys/obsidian-fast-note-sync</a></p> <p>Obsidian Sync 官方页面:<a href="https://obsidian.md/sync">https://obsidian.md/sync</a></p> <p>截至 2026 年 6 月 30 日,服务端大概 1.7k 个 star,插件大概 2.5k 个 star,感兴趣的小伙伴可以去给项目点个星星。</p> <p>当然如果你想自己用 Docker 搭建一个,那我们就继续往下!</p> <h2 id="4--搭建环境">4. 搭建环境</h2> <ul> <li>服务器:咕咕这边建议用 1G 内存以上的 VPS,比如<a href="http://gao.ee/lca">莱卡云服务器</a>,当然你也可以选择其他<a href="https://blog.laoda.de/vps">高性价比的服务器</a>。重点看磁盘空间,因为后面笔记附件也会存到服务器上。</li> <li>系统:Debian 11 / Debian 12 / Ubuntu 都可以。</li> <li>安装好 Docker、Docker-compose(<a href="https://blog.laoda.de/archives/hello-docker/">相关脚本</a>)</li> <li>【必需】域名一枚,并做好解析到服务器上(<a href="https://blog.laoda.de/archives/namesilo/">域名购买、域名解析</a>)</li> <li>【非必需】提前安装好宝塔面板海外版本 aapanel,并安装好 Nginx(<a href="https://forum.aapanel.com/d/9-aapanel-linux-panel-6812-installation-tutorial">安装地址</a>)</li> <li>【非必需本教程选用】安装好 Nginx Proxy Manager(<a href="https://blog.laoda.de/archives/nginxproxymanager/">相关教程</a>)</li> </ul> <h2 id="5--搭建视频-等有空了补充-----">5. 搭建视频(等有空了补充 = =)</h2> <h3 id="5-1-YouTube">5.1 YouTube</h3> <p>视频地址:</p> <h3 id="5-2-哔哩哔哩">5.2 哔哩哔哩</h3> <p>哔哩哔哩:</p> <h2 id="6--搭建方式">6. 搭建方式</h2> <h3 id="6-1-安装-Docker-与-Nginx-Proxy-Manager">6.1 安装 Docker 与 Nginx Proxy Manager</h3> <p>可以直接参考这篇内容:</p> <p><a href="https://blog.laoda.de/archives/nginxproxymanager/">https://blog.laoda.de/archives/nginxproxymanager/</a></p> <h3 id="6-2-创建安装目录">6.2 创建安装目录</h3> <p>创建一下安装目录:</p> <pre><code class="language-bash">sudo -i mkdir -p /root/data/docker_data/fast-note-sync cd /root/data/docker_data/fast-note-sync </code></pre> <p>接着我们来编辑 <code>docker-compose.yml</code>:</p> <pre><code class="language-bash">vim docker-compose.yml </code></pre> <p>贴入下面内容:</p> <pre><code class="language-yaml">services: fast-note-sync-service: image: haierkeys/fast-note-sync-service:latest container_name: fast-note-sync-service restart: unless-stopped ports: - "9000:9000" volumes: - ./storage:/fast-note-sync/storage - ./config:/fast-note-sync/config </code></pre> <p>其中左边的 <code>9000</code> 可以改成服务器上没有用过的端口,比如 <code>9010</code>。</p> <p>修改完成之后,英文输入法下按 <code>i</code> 修改,完成之后按 <code>esc</code>,然后输入 <code>:wq</code> 保存退出。</p> <h3 id="6-3-下载默认配置文件">6.3 下载默认配置文件</h3> <p>官方默认配置比较长,我们直接拉一份下来:</p> <pre><code class="language-bash">cd /root/data/docker_data/fast-note-sync mkdir -p config storage wget -O config/config.yaml https://raw.githubusercontent.com/haierkeys/fast-note-sync-service/master/config/config.yaml </code></pre> <p>如果 GitHub 拉取比较慢,可以用作者提供的 CNB 镜像:</p> <pre><code class="language-bash">wget -O config/config.yaml https://cnb.cool/haierkeys/fast-note-sync-service/-/git/raw/master/config/config.yaml </code></pre> <p>然后编辑配置文件:</p> <pre><code class="language-bash">vim config/config.yaml </code></pre> <p>先改这几个地方:</p> <pre><code class="language-yaml">server: ext-api-url: "https://note.example.com" #改成你自己之后用的域名链接 security: auth-token-key: "换成一串足够长的随机字符串" share-token-key: "再换成另一串足够长的随机字符串" user: register-is-enable: true </code></pre> <p><code>ext-api-url</code> 改成你自己的域名。</p> <p><code>auth-token-key</code> 和 <code>share-token-key</code> 不要用默认值,随便找个密码生成器生成两串长一点的随机字符串即可。</p> <p>这里先保持:</p> <pre><code class="language-yaml">register-is-enable: true </code></pre> <p>因为我们第一次进去还要注册账号。等注册完第一个账号之后,后面再关掉注册。</p> <h3 id="6-4-查看端口是否被占用">6.4 查看端口是否被占用</h3> <p>查看端口是否被占用,以 <code>9000</code> 为例:</p> <pre><code class="language-bash">lsof -i:9000 </code></pre> <p>如果啥也没出现,表示端口未被占用,可以继续。</p> <p>如果出现:</p> <pre><code class="language-bash">-bash: lsof: command not found </code></pre> <p>运行:</p> <pre><code class="language-bash">apt install lsof </code></pre> <p>如果端口被占用了,就把 <code>docker-compose.yml</code> 里的左边端口改一下,比如:</p> <pre><code class="language-yaml">ports: - "9010:9000" </code></pre> <p>后面反向代理的时候也记得填新的端口。</p> <h3 id="6-5-启动-Fast-Note-Sync-Service">6.5 启动 Fast Note Sync Service</h3> <pre><code class="language-bash">cd /root/data/docker_data/fast-note-sync docker compose up -d </code></pre> <p>查看日志:</p> <pre><code class="language-bash">docker compose logs -f </code></pre> <p>没报错的话,理论上访问:</p> <pre><code class="language-text">http://服务器IP:9000 </code></pre> <p>就能看到后台页面。</p> <p>不过这个服务是拿来同步笔记的,不建议直接裸奔公网,咕咕建议一定要配置 HTTPS 反向代理。</p> <h2 id="7--反向代理">7. 反向代理</h2> <h3 id="7-1-利用-Nginx-Proxy-Manager">7.1 利用 Nginx Proxy Manager</h3> <p>在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:</p> <p>域名购买、域名解析:<a href="https://blog.laoda.de/archives/namesilo/">https://blog.laoda.de/archives/namesilo/</a></p> <p>之后登录 Nginx Proxy Manager,添加一个新的 Proxy Host。</p> <p>按下面这样填:</p> <ul> <li>Domain Names:<code>note.example.com</code></li> <li>Scheme:<code>http</code></li> <li>Forward Hostname / IP:服务器内网 IP 或 Docker 网桥 IP</li> <li>Forward Port:<code>9000</code></li> <li>Websockets Support:打开</li> <li>Block Common Exploits:打开</li> </ul> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094626-1.jpeg&amp;size=m" alt="fa6fcaa7fab1ff23dd16e99360b1ff79.png" style="zoom:50%;"> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094621-1.jpeg&amp;size=m" alt="3c2616e8c9f49e159a52da02abec0cef.png" style="zoom:50%;"> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094617-1.jpeg&amp;size=m" alt="601f0d3b4b9bf40cdc7515a1f91a1532.png" style="zoom:50%;"> <p>SSL 那边:</p> <ul> <li>勾选 <code>Request a new SSL Certificate</code></li> <li>勾选 <code>Force SSL</code></li> <li>填邮箱</li> <li>同意协议</li> <li>保存</li> </ul> <p>Fast Note Sync 会用到 WebSocket,同步服务要实时通信,所以 NPM 里 <strong>Websockets Support</strong> 记得打开。</p> <p>配置好之后,访问你自己的域名,比如:</p> <pre><code class="language-text">https://note.example.com </code></pre> <p>就能进入后台。</p> <h3 id="7-2-利用-Caddy-反向代理">7.2 利用 Caddy 反向代理</h3> <p>如果你用的是 Caddy,也可以这样写:</p> <pre><code class="language-caddyfile">note.example.com { reverse_proxy 127.0.0.1:9000 } </code></pre> <p>Caddy 会自动申请和续期 SSL 证书,适合不想点面板的小伙伴。</p> <h2 id="8--初始化账号与关闭注册">8. 初始化账号与关闭注册</h2> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094612-1.jpeg&amp;size=m" alt="bbb21f6dffecbc855623e8ac3cb71729.png"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094609-1.jpeg&amp;size=m" alt="451803df8066fdd2add52f22a11f57ac.png"></p> <p>设置管理员</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094605-1.jpeg&amp;size=m" alt="9c37c17b0823f305a04c8d64a46c77a1.png"></p> <p>第一次打开网页后台,会让你注册账号。</p> <p>注册完成并登录之后,我们建议马上关闭注册,避免别人也跑来注册。</p> <p>回到服务器:</p> <pre><code class="language-bash">cd /root/data/docker_data/fast-note-sync vim config/config.yaml </code></pre> <p>找到:</p> <pre><code class="language-yaml">user: register-is-enable: true </code></pre> <p>改成:</p> <pre><code class="language-yaml">user: register-is-enable: false </code></pre> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094603-1.jpeg&amp;size=m" alt="3f8a4198d80c787e7746541a02e950dc.png"></p> <p>然后重启:</p> <pre><code class="language-bash">docker compose restart </code></pre> <p>这样后面就不会开放注册了。</p> <h2 id="9--Obsidian-插件配置">9. Obsidian 插件配置</h2> <h3 id="9-1-安装插件">9.1 安装插件</h3> <p>打开 Obsidian:</p> <pre><code class="language-text">设置 -&gt; 第三方插件 -&gt; 浏览 </code></pre> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094600-1.jpeg&amp;size=m" alt="ec924172842b514749fbb4f53b859892.png"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094558-1.jpeg&amp;size=m" alt="92dc5c381a18507c537c5f7fff549f98.png"></p> <p>搜索:</p> <pre><code class="language-text">Fast Note Sync </code></pre> <p>如果插件市场里能搜到,直接安装启用即可。</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094555-1.jpeg&amp;size=m" alt="fbc67648accd7ad15f36a82187ec9f80.png"></p> <p>如果搜不到,可以去 GitHub Releases 手动下载:</p> <p><a href="https://github.com/haierkeys/obsidian-fast-note-sync/releases">https://github.com/haierkeys/obsidian-fast-note-sync/releases</a></p> <p>下载这几个文件:</p> <pre><code class="language-text">main.js styles.css manifest.json </code></pre> <p>然后放到你的 Obsidian 库目录:</p> <pre><code class="language-text">你的库/.obsidian/plugins/fast-note-sync/ </code></pre> <p>重启 Obsidian 后启用插件。</p> <h3 id="9-2-授权连接服务端">9.2 授权连接服务端</h3> <p>回到 Fast Note Sync Service 的网页后台,访问你自己的域名:</p> <pre><code class="language-text">https://note.example.com </code></pre> <p>右上角可以更改语言:</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094553-1.jpeg&amp;size=m" alt="edc4406039f1bb8a4ed42af30306360e.png" style="zoom:50%;"> <p>左侧进入:</p> <pre><code class="language-text">Note Vaults </code></pre> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094547-1.jpeg&amp;size=m" alt="2ac873496c2c94d03449821736ae8c5c.png" style="zoom:50%;"> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094541-1.jpeg&amp;size=m" alt="bddbe7ee87ecda288eb5c607f5fcf898.png"></p> <p>可以看到官方提供了两种方式:</p> <ul> <li>One-click Authorization for Obsidian</li> <li>Copy API Config</li> </ul> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094539-1.jpeg&amp;size=m" alt="e47330d1e694b7ff3e90c16d241c01d8.png"></p> <p>如果你的电脑能正常唤起 Obsidian,可以直接点 <strong>One-click Authorization for Obsidian</strong>。</p> <p>如果不行,就点 <strong>Copy API Config</strong>,然后手动粘贴到 Obsidian 插件设置里。</p> <p>配置完成之后,Obsidian 就会开始和服务端同步。</p> <p>电脑上我试了下没问题。</p> <p>iPhone上我遇到无法粘贴复制的内容的问题,</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F06%2F30%2F094531-1.jpeg&amp;size=m" alt="f2602fb157a2134a518b05bdf082e16b.png" style="zoom:33%;"> <p>只能在手机浏览器里登录网页,然后用一键授权的方式来配置了 = =</p> <h2 id="10--使用体验">10. 使用体验</h2> <p>部署好之后,大概就是这样:</p> <ul> <li>电脑上新建一篇笔记</li> <li>手机 Obsidian 打开同一个 Vault</li> <li>修改会同步到服务端</li> <li>其他设备在线后自动拉取变化</li> <li>图片、附件也可以一起同步</li> <li>网页后台可以查看 Vault、笔记、附件和同步日志</li> </ul> <p>如果你平时 Obsidian 里有很多图片,建议服务器磁盘稍微大一点,不然附件多了之后很快就会占空间。</p> <p>另外,如果你准备把 <code>.obsidian</code> 配置也同步,建议先拿一个测试库试一下,确认插件、主题、配置都没问题之后,再同步主力库。</p> <h2 id="11--更新与卸载">11. 更新与卸载</h2> <h3 id="更新">更新</h3> <pre><code class="language-bash">cd /root/data/docker_data/fast-note-sync docker compose pull docker compose up -d </code></pre> <h3 id="停止">停止</h3> <pre><code class="language-bash">docker compose down </code></pre> <h3 id="卸载">卸载</h3> <pre><code class="language-bash">cd /root/data/docker_data/fast-note-sync docker compose down cd /root/data/docker_data rm -rf fast-note-sync </code></pre> <p>删除前记得先备份:</p> <pre><code class="language-text">/root/data/docker_data/fast-note-sync/storage /root/data/docker_data/fast-note-sync/config </code></pre> <p>你的笔记数据和配置都在这里。</p> <h2 id="12--注意事项">12. 注意事项</h2> <ol> <li>这个项目目前还没有端到端加密,官方 Roadmap 里写了后续计划支持,所以不要部署在不信任的服务器上。</li> <li>第一次注册完账号之后,记得关闭注册。</li> <li><code>auth-token-key</code> 和 <code>share-token-key</code> 不要用默认值。</li> <li>建议只通过 HTTPS 域名访问,不要直接把 <code>9000</code> 端口裸露给公网。</li> <li>Nginx Proxy Manager 里记得打开 WebSocket 支持。</li> <li>重要笔记库第一次同步前,建议先备份一份本地 Vault。</li> <li>如果你的笔记库里有很多大附件,第一次同步可能会比较慢,耐心等一下。</li> </ol> <h2 id="13--最后">13. 最后</h2> <p>Fast Note Sync Service 这个项目还是挺有意思的,它不是简单的 WebDAV 同步,而是专门给 Obsidian 做的一套私有同步服务。</p> <p>相比 WebDAV,它多了网页后台、历史版本、回收站、附件管理、分享、REST API、MCP 这些能力;相比官方 Obsidian Sync,它的优势就是可以自己部署,数据放在自己的服务器上,空间也由自己的硬盘决定。</p> <p>当然,目前端到端加密还没完成,所以更适合放在自己的 VPS 或家里服务器上自用。</p> <p>如果你本来就是 Obsidian 重度用户,又刚好有自己的 VPS,可以折腾一下。</p>

2026/6/30
阅读更多

关键时刻不能掉链子!一年235元开机即用!大陆漫游上网备用方案:3HK 大湾区 eSIM 储值卡购买激活全流程分享(2026)

<img src="https://blog.laoda.de/plugins/feed/assets/telemetry.gif?title=%E5%85%B3%E9%94%AE%E6%97%B6%E5%88%BB%E4%B8%8D%E8%83%BD%E6%8E%89%E9%93%BE%E5%AD%90%EF%BC%81%E4%B8%80%E5%B9%B4235%E5%85%83%E5%BC%80%E6%9C%BA%E5%8D%B3%E7%94%A8%EF%BC%81%E5%A4%A7%E9%99%86%E6%BC%AB%E6%B8%B8%E4%B8%8A%E7%BD%91%E5%A4%87%E7%94%A8%E6%96%B9%E6%A1%88%EF%BC%9A3HK%20%E5%A4%A7%E6%B9%BE%E5%8C%BA%20eSIM%20%E5%82%A8%E5%80%BC%E5%8D%A1%E8%B4%AD%E4%B9%B0%E6%BF%80%E6%B4%BB%E5%85%A8%E6%B5%81%E7%A8%8B%E5%88%86%E4%BA%AB%EF%BC%882026%EF%BC%89&amp;url=/archives/3hk-diy-esim-guide" width="1" height="1" alt="" style="opacity:0;"> <p>作为一个需要正常访问国际互联网的人士,为了关键时刻不掉链子(尤其是最近,有的小伙伴应该有体会)我觉得有必要给自己增加一个备选方案。</p> <p>我之前去德国正好<a href="https://blog.laoda.de/archives/germany-iphone-tax-refund-guide" title="买了一部德版的iPhone">买了一部德版的iPhone</a>,支持eSIM,月底又要去珠海出差,顺便去澳门一趟,就想着要不索性换个思路:直接用一张境外 SIM 卡在大陆漫游,原生 IP,开机即用,全程不需要任何额外姿势。</p> <p>我先前去香港买过一个hahasim的卡,保号1年10元,接接验证码还不错,不过没流量(或者说流量非常贵)。</p> <p>对比了 CMHK、CTM 快卡、澳门蓝卡几家之后,最终选了 3HK 大湾区 DIY 储值卡:HK$268 一年 45GB 流量(折人民币约 235 元,5 元/GB),支持 eSIM 远程购买、邮箱收码扫码即用;大陆漫游可在移动/联通/电信三网之间切换(一般是联通);开热点之后电脑、iPad 也可以共享香港 IP。性价比、便捷度、稳定性三个维度综合下来,我个人认为是目前能找到的最优解,于是有了这篇折腾记录。</p> <p>以下内容需要你有一部支持海外eSIM的手机(比如港版iPhone,国产的iPhone Air我估计不行)</p> <p>首先登录官网购买,选择365日组合——大湾区(内地、香港、澳门)</p> <p>官网地址:<a href="https://www.three.com.hk/prepaid/DIY/tc/offer/travel">https://www.three.com.hk/prepaid/DIY/tc/offer/travel</a></p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F15%2F145150-1.webp&amp;size=m" alt="ee0492f96babfa97bd3cdc5f7ffb8e55.png" style="zoom:50%;"> <p>外游数据这个,自己选择,实测好像即使选暂不使用也会开始套餐计费时间,</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F15%2F145148-1.webp&amp;size=m" alt="173f40b13290a28e675e3769d5f1e147.png" style="zoom:50%;"> <p>在大陆的话直接选择eSIM,实体卡只能寄到香港地址,(注意国产的iPhone 17 Air好像只支持大陆的eSIM,这个可能用不了)</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F15%2F145146-1.webp&amp;size=m" alt="fe591b7e76e073d9e574db5446370b2f.png" style="zoom:50%;"> <p>确认套餐没问题,40G+5G</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F15%2F145144-1.webp&amp;size=m" alt="b6e6b9c152af400bedc0bce6b5c5b542.png" style="zoom:50%;"> <p>输入一个邮箱,会帮你创建账号,</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F15%2F145143-1.webp&amp;size=m" alt="59750e9c6f46da4b09a750872f5ed8c8.png" style="zoom:50%;"> <p>收到验证码,登录,建立账户,</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F15%2F145142-1.webp&amp;size=m" alt="fea04446fea9b1e054d75e94d5bfc364.png" style="zoom:50%;"> <p>选择付款方式,支付宝微信都可以,我这边用了汇丰的Red信用卡,有4%的返现。</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F15%2F145140-1.webp&amp;size=m" alt="953d131992e1ab459275db49e5be821b.png" style="zoom:50%;"> <p>成功!</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F15%2F145138-1.webp&amp;size=m" alt="d85454d526fd2e361686bd57b593b961.png" style="zoom:50%;"> <p>邮件会收到一个二维码,</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F15%2F145136-1.webp&amp;size=m" alt="3ddaa0f47b681764027bb4316b6ed9ce.png" style="zoom:50%;"> <p>打开手机的蜂窝网络,添加eSIM,</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F15%2F145134-1.webp&amp;size=m" alt="截屏 2026-05-15 14.08.43.png" style="zoom:50%;"> <p>很快就能加上,记得打开数据漫游,</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F15%2F145132-1.webp&amp;size=m" alt="722774f61207f758d0b16ed993e387b9.png" style="zoom:50%;"> <p>下载官方APP——My3</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F15%2F145130-1.webp&amp;size=m" alt="ee4cb942d543c84f697576cbae055074.png" style="zoom: 50%;"> <p>用手机号码加验证码登录,然后记得打开这个开关</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F15%2F145127-1.webp&amp;size=m" alt="8c858f7ed38144c35df48bfa6eaa36e4.png" style="zoom:33%;"> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F15%2F145125-1.webp&amp;size=m" alt="79ba6291a9d87e983a975e9ea1e181f0.png" style="zoom:33%;"> <p>蜂窝数据切换到3HK的卡就能上网了!不需要任何额外姿势。</p> <p>如果要在香港使用通话和短信功能,需要在app里实名一下。</p> <p>非香港人士选港澳通行证就可以了。</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F15%2F145121-1.webp&amp;size=m" alt="截屏 2026-05-15 14.40.05.png" style="zoom:50%;"> <p>注意:</p> <p>这张卡是"流量套餐 + 通话短信按量扣费"模式。年套餐 268 港币里只包含 45GB 数据流量,不含任何通话或短信额度。需要打电话/发短信,得在 My3 App 里单独充值余额,按下面这个标准扣费——</p> <ul> <li>接验证码(大陆+香港):免费 ✅ 用来注册海外平台超香</li> <li>大陆漫游接打电话:HK$6-8/分钟 偏贵,建议走微信语音</li> <li>大陆发短信:HK$3.5/条 贵,能用微信就别用 SMS</li> <li>香港本地通话:可单独买 HK$20/10000 分钟包,几乎白送</li> </ul> <p>总结一句:当数据卡用最划算,通话短信都用其他方式替代。</p> <p>大家有别的更好用的卡也欢迎评论区分享!</p>

2026/5/15
阅读更多

【好玩儿的Docker项目】十分钟搭建一个「极简私人网盘」——hacdias/webdav,让你可以像逛本地文件夹一样逛 VPS

<img src="https://blog.laoda.de/plugins/feed/assets/telemetry.gif?title=%E3%80%90%E5%A5%BD%E7%8E%A9%E5%84%BF%E7%9A%84Docker%E9%A1%B9%E7%9B%AE%E3%80%91%E5%8D%81%E5%88%86%E9%92%9F%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E3%80%8C%E6%9E%81%E7%AE%80%E7%A7%81%E4%BA%BA%E7%BD%91%E7%9B%98%E3%80%8D%E2%80%94%E2%80%94hacdias%2Fwebdav%EF%BC%8C%E8%AE%A9%E4%BD%A0%E5%8F%AF%E4%BB%A5%E5%83%8F%E9%80%9B%E6%9C%AC%E5%9C%B0%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%80%E6%A0%B7%E9%80%9B%20VPS&amp;url=/archives/docker-compose-install-hacdias-webdav" width="1" height="1" alt="" style="opacity:0;"> <h2 id="1--唠嗑">1. 唠嗑</h2> <p>聊到「私人网盘」,大部分人第一反应都是 Nextcloud、Seafile 这种「全家桶」——文件、日历、联系人、笔记、视频会议,功能丰富,大而全,但是比较吃机器的配置,VPS 性能差点儿的(比如 1G 内存的),像 Nextcloud 可能都跑不动。</p> <p>很多时候我们的需求其实非常朴素:</p> <blockquote> <p>「我能不能在 Mac 的 Finder 里直接打开 VPS 上的某个目录,像本地文件夹一样拖拖拽拽?」</p> </blockquote> <p>答案是可以,而且根本不用上 Nextcloud,一个轻量级的 WebDAV 服务就够了。</p> <h2 id="2--hacdias-webdav-简介">2. hacdias/webdav 简介</h2> <p>今天咕咕给大家介绍的 <a href="https://github.com/hacdias/webdav">hacdias/webdav</a> 就是这种「需求小但精准」的代表作——Go 写的独立 WebDAV 服务器,整个程序就一个二进制文件,配置文件用 YAML,跑起来内存占用几十兆。</p> <p>这个作者也是之前和大家介绍的 File Browser 项目的作者。</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F07%2F114404-1.webp&amp;size=m" alt="671776cf97b39dc312016575eb5d85d2.png" style="zoom:50%;"> <blockquote> <p>旧文回顾:<a href="https://blog.laoda.de/archives/aria2-rclone-filebrowser">手把手教你搭建私人离线下载神器 Aria2,搭配 Rclone+Filebrowser 自动上传至网盘</a></p> </blockquote> <p>它能干什么?</p> <ul> <li>把 VPS 上的某个目录通过 WebDAV 协议暴露出来</li> <li>支持多用户、多目录、多权限(CRUD 自由组合)</li> <li>支持 bcrypt 哈希密码(不用让明文密码裸奔)</li> <li>反代友好(配合 Nginx Proxy Manager 体验非常丝滑)</li> <li>没有 Web 界面、没有数据库、没有花里胡哨的功能</li> </ul> <p>适合的场景包括:</p> <ul> <li>Obsidian / Joplin / Logseq 这类笔记软件的云端同步</li> <li>KeePass / KeePassXC 数据库远程同步</li> <li>手机相册备份目标盘</li> <li>多设备共享一个工作目录</li> <li>摆脱 iCloud / OneDrive / Dropbox 的容量焦虑</li> </ul> <p>部署完之后,Mac、Windows、iPhone、Android,以及 Obsidian、Joplin、KeePassXC 这种支持 WebDAV 的应用都能直接挂上来用。</p> <p>可以让你告别云盘焦虑!</p> <h2 id="3--相关地址">3. 相关地址</h2> <p>官方 GitHub 地址:<a href="https://github.com/hacdias/webdav">https://github.com/hacdias/webdav</a> (目前 5.5k 个 star,欢迎大家去给项目点星星!)</p> <p>当然如果你想自己用 docker 搭建一个,那我们就继续往下!</p> <h2 id="4--搭建环境">4. 搭建环境</h2> <ul> <li>服务器:咕咕这边用的香港的 <a href="http://gao.ee/lca">莱卡云服务器</a>,虽然 1 核 512M 都够用,重点看磁盘大小和带宽,但是因为用的 docker 搭建,还是建议服务器内存 1G 以上,当然你也可以选择其他 <a href="https://blog.laoda.de/vps">高性价比的服务器</a>。</li> <li>系统:Debian 11 (<a href="https://blog.laoda.de/archives/useful-script/">DD 脚本</a> 非必需 DD,用原来的系统也 OK,之后教程都是用 Debian 或者 Ubuntu 搭建~)</li> <li>安装好 Docker、Docker-compose(<a href="https://blog.laoda.de/archives/hello-docker/">相关脚本</a>)</li> <li>【必需】域名一枚,并做好解析到服务器上(<a href="https://blog.laoda.de/archives/namesilo/">域名购买、域名解析</a> <a href="https://www.bilibili.com/video/BV1Sy4y1k7kZ/">视频教程</a>)</li> <li>【非必需】提前安装好宝塔面板海外版本 aapanel,并安装好 Nginx(<a href="https://forum.aapanel.com/d/9-aapanel-linux-panel-6812-installation-tutorial">安装地址</a>)</li> <li>【非必需本教程选用】安装好 Nginx Proxy Manager(<a href="https://blog.laoda.de/archives/nginxproxymanager/">相关教程</a>)</li> </ul> <h2 id="5--搭建视频-过俩周补充-----">5. 搭建视频(过俩周补充 = =)</h2> <h3 id="5-1-YouTube">5.1 YouTube</h3> <p>视频地址:</p> <h3 id="5-2-哔哩哔哩">5.2 哔哩哔哩</h3> <p>哔哩哔哩:</p> <h2 id="6--搭建方式">6. 搭建方式</h2> <h3 id="6-1-安装-Docker-与-Nginx-Proxy-Manager">6.1 安装 Docker 与 Nginx Proxy Manager</h3> <p>可以直接参考这篇内容:</p> <p><a href="https://blog.laoda.de/archives/nginxproxymanager/">https://blog.laoda.de/archives/nginxproxymanager/</a></p> <h3 id="6-2-创建安装目录">6.2 创建安装目录</h3> <p>创建一下安装的目录:</p> <pre><code class="language-bash">sudo -i mkdir -p /root/data/docker_data/webdav cd /root/data/docker_data/webdav </code></pre> <p>接着我们来编辑下<code>docker-compose.yml</code></p> <pre><code class="language-bash">vim docker-compose.yml </code></pre> <pre><code class="language-yaml">services: webdav: image: hacdias/webdav:latest container_name: webdav restart: unless-stopped ports: - "6065:6065" # 左边的端口可以换成 vps 上没有用过的端口 volumes: - ./config.yml:/config.yml:ro - ./data:/data </code></pre> <p>其中的左边的<code>6065</code>可以改成服务器上没有用过的端口。</p> <p>修改完成之后,可以在英文输入法下,按 <code>i</code> 修改,完成之后,按一下 <code>esc</code>,然后 <code>:wq</code> 保存退出。</p> <h4 id="生成-bcrypt-密码">生成 bcrypt 密码</h4> <p>为了不让明文密码裸奔在配置文件里,我们用 bcrypt 哈希一下密码。Debian / Ubuntu 上一行命令搞定:</p> <pre><code class="language-bash">apt install -y apache2-utils htpasswd -nbBC 12 "" '你想用的密码' | tr -d ':' | sed 's/\$2y/\$2a/' </code></pre> <p>会输出一串长这样的玩意儿:</p> <pre><code>$2a$12$8gsX8AKtD3EMdmksoqSDLAIEMEMMrSbKx/q0GG </code></pre> <p>把它整段复制下来,待会儿要塞到 <code>config.yml</code> 里。</p> <blockquote> <p>如果你嫌麻烦,明文密码也是合法配置——把 <code>config.yml</code> 设成 <code>chmod 600</code> 也能挡住一般场景。但既然多花一行命令的事儿,咕咕还是建议哈希一下。</p> </blockquote> <h3 id="写-config-yml">写 config.yml</h3> <pre><code class="language-bash">vim config.yml </code></pre> <p>贴入:</p> <pre><code class="language-yaml">address: 0.0.0.0 port: 6065 prefix: / # 反代后面一定要打开,让 webdav 信任 X-Forwarded-* 头 behindProxy: true # 全局默认权限(被下方 users 覆盖) permissions: none directory: /data users: - username: gugu password: "{bcrypt}$2a$12$你刚才生成的那一长串" directory: /data/gugu permissions: CRUD # 想再加一个只读访客?解开注释即可 # - username: guest # password: "{bcrypt}$2a$12$xxx" # directory: /data/public # permissions: R </code></pre> <blockquote> <p>关于 <code>permissions</code> 这一栏:<strong>C</strong> = Create(创建)、<strong>R</strong> = Read(读取)、<strong>U</strong> = Update(更新)、<strong>D</strong> = Delete(删除)。给自己用就 <code>CRUD</code> 全开,分享给朋友的访客号建议只给 <code>R</code>。</p> </blockquote> <p>保存退出,给配置文件上锁:</p> <pre><code class="language-bash">chmod 600 config.yml mkdir -p data </code></pre> <h3 id="6-3-查看端口是否被占用">6.3 查看端口是否被占用</h3> <p>查看端口是否被占用(以 <code>6065</code> 为例),输入:</p> <pre><code class="language-bash">lsof -i:6065 #查看 6065 端口是否被占用,如果被占用,重新自定义一个端口 </code></pre> <p>如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~</p> <p>如果出现:</p> <pre><code class="language-bash">-bash: lsof: command not found </code></pre> <p>运行:</p> <pre><code class="language-bash">apt install lsof #安装 lsof </code></pre> <p>如果端口没有被占用(被占用了就修改一下端口,比如改成 <code>8381</code>,注意 docker 命令行里和防火墙都要改)</p> <h3 id="6-4-启动-webdav">6.4 启动 webdav</h3> <pre><code>cd /root/data/docker_data/webdav docker compose up -d # 注意,老版本用户用 docker-compose up -d docker compose logs -f </code></pre> <p>镜像非常小,等待拉取好镜像,出现 <code>Created</code>的字样之后,</p> <p>如果日志里看到类似:</p> <pre><code>Listening on 0.0.0.0:6065 </code></pre> <p>并且没有报错,那就说明跑起来了。<code>Ctrl+C</code> 退出日志查看,容器还在后台老老实实工作。</p> <p>这时候你已经可以在浏览器里访问 <code>http://你的 VPS-IP:6065</code> 试试,输入用户名密码会看到一个空空荡荡的目录列表,说明服务正常。</p> <p>但是我们部署在公网一定要考虑使用反向代理工具配置 SSL!</p> <blockquote> <p>不用域名直接 IP 访问也不是不行,但 Mac 的 Finder 在 HTTP 下挂 WebDAV 会自动降级成只读,套上 HTTPS 才能愉快地读写。所以域名 + HTTPS 是强烈推荐的。</p> </blockquote> <p>做反向代理前,你需要一个域名!</p> <p><a href="https://loll.cc/ns">namesilo</a> 上面 xyz 后缀的域名一年就 7 块钱,可以年抛。(冷知识,namesilo 上 6 位数字的 xyz 续费永远都是 0.99 美元 = =)</p> <p>如果想要长期使用,还是建议买 com 后缀的域名,更加正规一些,可以输入 <code>laodade</code> 来获得 1 美元的优惠(不知道现在还有没有)</p> <p><a href="https://loll.cc/ns">namesilo</a> 自带隐私保护,咕咕一直在用这家,价格也是这些注册商里面比较低的,关键是他家不像其他家域名注册商,没有七七八八的套路!(就是后台界面有些 <del>丑</del> 古老 = =)</p> <p><a href="https://blog.laoda.de/archives/namesilo/">【域名购买】Namesilo 优惠码和域名解析教程(附带服务器购买推荐和注意事项)</a></p> <p>我们接着往下看!</p> <h2 id="7--反向代理">7. 反向代理</h2> <h3 id="7-1-利用-Nginx-Proxy-Manager">7.1 利用 Nginx Proxy Manager</h3> <p>在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:<strong>域名一枚,并做好解析到服务器上</strong>(<a href="https://blog.laoda.de/archives/namesilo/">域名购买、域名解析</a> <a href="https://www.bilibili.com/video/BV1Sy4y1k7kZ/">视频教程</a>) (名称改成你自己想要的域名前缀即可)</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F07%2F114401-1.webp&amp;size=m" alt="68bfcaff11811fa6f3e6b24e6cfc09ce.png"></p> <p>之后,登陆 Nginx Proxy Manager(不会的看这个:<strong>安装 Nginx Proxy Manager</strong>(<a href="https://blog.laoda.de/archives/nginxproxymanager/">相关教程</a>))</p> <blockquote> <p><strong>注意:</strong></p> <p>Nginx Proxy Manager(以下简称 NPM)会用到 <code>80</code>、<code>443</code> 端口,所以本机不能占用(比如原来就有 Nginx)</p> </blockquote> <p>打开你的 NPM 后台,新建一个 <strong>Proxy Host</strong>:</p> <p><strong>Details 标签页:</strong></p> <ul> <li><strong>Domain Names</strong>:填你的域名,比如 <code>webdav.example.com</code></li> <li><strong>Scheme</strong>:<code>http</code></li> <li><strong>Forward Hostname / IP</strong>:填你 VPS 的内网 IP,或者直接 <code>宿主机 IP</code></li> <li><strong>Forward Port</strong>:<code>6065</code></li> <li><strong>Cache Assets</strong>:关</li> <li><strong>Block Common Exploits</strong>:⚠️ <strong>一定要关!</strong> NPM 这个开关会拦掉一些 WebDAV 的 HTTP 方法(比如 <code>PROPFIND</code>、<code>MKCOL</code>、<code>PROPPATCH</code>),不关你客户端会一直 405 报错,搞得你怀疑人生</li> <li><strong>Websockets Support</strong>:打开</li> </ul> <blockquote> <p>注意填写对应的 <code>域名</code>、<code>IP</code> 和 <code>端口</code>,按文章来的话,应该是 <code>6065</code></p> </blockquote> <p><strong>IP 填写:</strong></p> <p>如果 Nginx Proxy Manager 和 webdav 在同一台服务器上,可以在终端输入:</p> <pre><code class="language-bash">ip addr show docker0 </code></pre> <p>查看对应的 Docker 容器内部 IP。</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2024%2F12%2F12%2F153819-1.webp&amp;size=m" style="zoom:50%;"> <p>否则直接填 webdav 所在的服务器 IP 就行。</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F07%2F114357-1.webp&amp;size=m" alt="c3aecaf3e776af727e4f835a2eb9ac3e.png" style="zoom:33%;"> <p><strong>SSL 标签页:</strong></p> <ul> <li><strong>SSL Certificate</strong>:选 <code>Request a new SSL Certificate</code>,签个 Let's Encrypt</li> <li><strong>Force SSL</strong>:打开</li> <li><strong>HTTP/2 Support</strong>:打开</li> <li><strong>HSTS Enabled</strong>:可选</li> </ul> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F07%2F114354-1.webp&amp;size=m" alt="14e4edadd58f306888abf7c346ae47b4.png" style="zoom:33%;"> <p><strong>Advanced 标签页:</strong></p> <p>加上这段 nginx 配置(<strong>这段非常关键,没它传大文件会断开</strong>):</p> <pre><code class="language-nginx">client_max_body_size 0; proxy_request_buffering off; proxy_read_timeout 3600s; proxy_send_timeout 3600s; </code></pre> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F07%2F114352-1.webp&amp;size=m" alt="42cec3c76a3939e01e14aa6b390f363a.png" style="zoom:33%;"> <p>保存。</p> <p>然后访问域名就可以访问了!</p> <h3 id="7-2-利用宝塔面板-应该类似-没具体尝试-">7.2 利用宝塔面板(应该类似,没具体尝试)</h3> <p>发现还是有不少小伙伴习惯用宝塔面板,这边也贴一个宝塔面板的反代配置:</p> <p>直接新建一个站点,不要数据库,不要 php,纯静态即可。</p> <p>然后打开下面的配置,修改 Nginx 的配置。</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2024%2F12%2F12%2F153816-1.webp&amp;size=m" alt="image-20220819150345725" style="zoom: 33%;"> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2024%2F12%2F12%2F153814-1.webp&amp;size=m" alt="image-20220819150542867" style="zoom: 33%;"> <p>代码如下:</p> <pre><code class="language-nginx">location / { proxy_pass http://127.0.0.1:6065/; # 注意改成你实际使用的端口 rewrite ^/(.*)$ /$1 break; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade-Insecure-Requests 1; proxy_set_header X-Forwarded-Proto https; } </code></pre> <p>此方法对 90% 的反向代理都能生效,然后就可以用域名来安装访问了。</p> <p>有同学可能会问,为什么不直接用宝塔自带的反向代理功能。</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2024%2F12%2F12%2F153804-1.webp&amp;size=m" alt="image-20220819150730128" style="zoom: 33%;"> <p>也可以,不过咕咕自己之前遇到过当有多个网站需要反代的时候,在这边设置会报错的情况 = =</p> <p>所以后来就不用了,直接用上面的方法来操作了。</p> <h2 id="8--使用教程">8. 使用教程</h2> <h2 id="在-Mac-上挂载">在 Mac 上挂载</h2> <p>打开 Finder,按 <code>⌘K</code>(或者菜单栏 → 前往 → 连接服务器),输入:</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F07%2F114347-1.webp&amp;size=m" alt="3e5d1bd55bb2b633169ec5221a86e5e3.png" style="zoom:50%;"> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F07%2F114344-1.webp&amp;size=m" alt="d75accde7480572ed2e8f91b92ab9ca9.png" style="zoom:50%;"> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F07%2F114343-1.webp&amp;size=m" alt="35d5d96cb1dbf545631b5ca36dd11d2b.png" style="zoom:50%;"> <pre><code>https://webdav.example.com </code></pre> <p>回车,会弹出登录框,填你在 <code>config.yml</code> 里设置的用户名 + <strong>原始密码</strong>(注意不是 bcrypt 哈希!)。点连接,VPS 上的目录就会以网络盘的形式出现在 Finder 侧边栏。</p> <p>到这里你就可以拖拖拽拽了——复制、改名、双击打开、新建文件夹,全都和本地操作没差。</p> <p>不过你本地到服务器的连接速度也很重要,像我测试的时候用的是美国的机器,反代用的香港,本地在上海操作,就会没有那么的丝滑。</p> <p>如果用美国线路优化的 VPS,就会丝滑很多。</p> <p>我还测试了上海的服务器,就和本地操作没差别了。</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F07%2F114341-1.webp&amp;size=m" alt="53c457e49583dce57c236dafc41689fd.png"></p> <h3 id="8-1-更新-webdav">8.1 更新 webdav</h3> <p>这个项目后续会持续有更新,所以提供一个更新的方式。</p> <pre><code class="language-yaml">cd /root/data/docker_data/webdav docker compose pull docker compose up -d # 请不要使用 docker compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。 docker image prune # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像 </code></pre> <p>提示:</p> <pre><code class="language-bash">WARNING! This will remove all dangling images. Are you sure you want to continue? [y/N] </code></pre> <p>输入 <code>y</code></p> <p>利用 Docker 搭建的应用,更新非常容易~</p> <h3 id="8-2-卸载-webdav">8.2 卸载 webdav</h3> <p>同样进入安装页面,先停止所有容器。</p> <pre><code class="language-bash">cd /root/data/docker_data/webdav docker compose down cd .. rm -rf /root/data/docker_data/webdav # 完全删除 </code></pre> <p>可以卸载得很干净。</p> <h2 id="9--使用问题">9. 使用问题</h2> <h3 id="一个不得不吐槽的问题">一个不得不吐槽的问题</h3> <p>Mac 自带的 Finder WebDAV 客户端……怎么说呢,<strong>残废</strong>。具体表现:</p> <ul> <li>传大文件容易卡死或者超时</li> <li>偶尔莫名其妙断连,得重新挂载</li> <li>会自动生成一堆 <code>.DS_Store</code>、<code>._xxx</code> 这类隐藏文件污染目录</li> <li>写入速度比读取慢得多</li> <li>偶尔会把刚创建的文件「藏起来」让你看不到,刷新一下又出来了</li> </ul> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F05%2F07%2F114327-1.webp&amp;size=m" alt="3fe696e38a9355115c4bc04af0fa76ae.png"></p> <p>如果你只是偶尔传几个文档应付一下没问题。但想当主力网盘用,我搜索了一下,网络上推荐了几个第三方客户端:</p> <ul> <li><strong>Mountain Duck</strong>(付费,约 $39 一次性)—— 真正把 WebDAV 挂成本地盘符,Finder 里和访问 iCloud Drive 几乎没差,支持离线缓存、上传队列、智能同步</li> <li><strong>Cyberduck</strong>(免费)—— Mountain Duck 同公司出品,但只能「打开」不能「挂载」,操作起来更像 FTP 客户端</li> <li><strong>rclone mount</strong>(免费,命令行)—— 不嫌折腾的话稳定性和性能都很好,还能加 VFS 缓存提速</li> </ul> <p>大家有用到好用的客户端也欢迎在评论区分享交流!</p> <h2 id="安全小贴士">安全小贴士</h2> <p>WebDAV 暴露在公网上,几条小建议:</p> <ol> <li><strong><code>config.yml</code> 一定 <code>chmod 600</code></strong>,避免被同机器的其他用户读到你的哈希</li> <li><strong>NPM 里给这个 host 加 IP 白名单</strong>,或者套一层 Cloudflare Access、Authelia 之类的二次认证,公网裸奔风险还是不小的</li> <li><strong>fail2ban 也可以装一下</strong>,防止有人暴力试密码</li> <li><strong>重要数据用 rclone 同步一份到 Backblaze B2 或 Cloudflare R2</strong> —— hacdias/webdav 本身没有版本管理,删了就真的删了。B2 的 5GB 免费额度对小型笔记同步绰绰有余</li> <li><strong>VPS 快照定期开起来</strong>,多花不了几块钱,关键时刻能救命</li> </ol> <p>大家使用上还有什么心得或者问题,欢迎评论区交流~</p> <h2 id="10--结尾">10. 结尾</h2> <p>祝大家用得开心,有问题可以去 GitHub 提 <a href="https://github.com/hacdias/webdav/issues">Issues</a>,也可以在评论区互相交流探讨。</p> <p>同时,有能力给项目做贡献的同学,也欢迎积极加入到 <a href="https://github.com/hacdias/webdav">项目</a> 中来,贡献自己的一份力量!</p> <p>最后,感谢作者 <a href="https://github.com/hacdias">@Henrique Dias</a> 的辛苦付出,让我们能用到这么优秀的项目!欢迎大家都去给这个项目点个 star。</p> <h2 id="参考资料">参考资料</h2> <p>官方 GitHub:<a href="https://github.com/hacdias/webdav">https://github.com/hacdias/webdav</a></p>

2026/5/7
阅读更多

从「不会 Swift」到 App Store 过审:我用 Claude Code 又写了个 iOS App

<img src="https://blog.laoda.de/plugins/feed/assets/telemetry.gif?title=%E4%BB%8E%E3%80%8C%E4%B8%8D%E4%BC%9A%20Swift%E3%80%8D%E5%88%B0%20App%20Store%20%E8%BF%87%E5%AE%A1%EF%BC%9A%E6%88%91%E7%94%A8%20Claude%20Code%20%E5%8F%88%E5%86%99%E4%BA%86%E4%B8%AA%20iOS%20App&amp;url=/archives/claude-code-ios-app" width="1" height="1" alt="" style="opacity:0;"> <h2 id="起点----上一篇挖的坑-这一篇填了">起点 —— 上一篇挖的坑,这一篇填了</h2> <blockquote> <p>2026年5月1日更新:国区Apple Store也上架了,中文名字:续然,欢迎大家使用和反馈意见!</p> </blockquote> <p><a href="https://blog.laoda.de/archives/claude-code-halo-theme">上一篇</a> 写完 Claude Code 魔改 Halo 主题,文末我顺手挖了个坑——说下一步想试试用 Claude 做个 iOS App。当时吹牛成分 60%、好奇成分 40%,没想到这话放出去不到一周,App 真就写完提审了。</p> <p>动手之前我给自己定了两个目标。</p> <p><strong>一是摸一下 Claude 的能力边界</strong>。Halo 主题那种活,网页端改改 CSS,对 Claude 来说是舒适区。iOS 开发就不一样——SwiftUI、SwiftData、真机调试、证书签名、App Store 审核,每一环都是新坑,我想看看咕咕坐副驾这事能跑多远。</p> <p><strong>二是真有这个需求</strong>。不是为了写博客硬编的场景——我自己就囤着一堆 VPS、域名、邮箱、SaaS 订阅,哪天哪个扣费、哪天哪个到期,全靠Notion记录肉眼盯。(好吧我承认起因其实是怕自己的<a href="https://blog.laoda.de/archives/vps-bandwagonhost">搬瓦工</a>、<a href="https://blog.laoda.de/archives/vps-ion-cloud">iON</a> 等等传家宝 VPS 忘记续费 = =)。</p> <p>上一篇的评论区,有朋友推荐了 <a href="https://github.com/ellite/Wallos">Wallos</a>——一个自托管的订阅管理工具。我确实很早之前 Docker 部署了一份(<a href="https://blog.laoda.de/archives/docker-compose-install-wallos">也出过教程</a>),跑在自己 VPS 上。但 Wallos 的提醒路径是<strong>邮件</strong>——我经常忘记开邮箱…… 而且我的邮箱太多了……</p> <p>手机这东西一天看 50 次。如果有一个 App 把提醒直接推到锁屏——肯定不会错过。</p> <p>动机清晰了。</p> <p>2026 年 4 月 21 日晚上 7 点 28 分,我在一个空文件夹里打开 Claude Code,告诉它:</p> <p>「做一个 iOS App,追踪订阅和域名到期时间,本地存储,不要账号,不要云」——就这么开始。</p> <h2 id="图标----一只带铃铛的鸽子">图标 —— 一只带铃铛的鸽子</h2> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F24%2F201346-1.webp&amp;size=m" alt="AppIcon-1024.png" style="zoom:33%;"> <p>整个项目里,<strong>唯一一个从一开始我就想清楚、没让 Claude 瞎发挥的东西</strong>,就是这只鸽子。</p> <ul> <li>🕊️ <strong>鸽子 = 信使</strong>——按时把消息捎到</li> <li>🔔 <strong>铃铛 = 通知</strong>——到点了响一声</li> <li>🧡 <strong>粉橙渐变</strong>——压住"催债感"和"焦虑感",DueSub 做的是温柔的提醒,不是红底白字的「还有 3 天扣费!」</li> </ul> <p>图标里的一图二喻,其实就是这个 App 的产品哲学——<strong>非打扰式、按时到达、不制造焦虑</strong>。</p> <p>功能是"续费提醒",视觉符号是"捎着铃铛的信鸽"——我只用一句话把这个意向说给 Claude 听,基本上两版就过了。这也是这次协作里我觉得最神奇的地方——<strong>你脑子里模糊的画面,只要你能用一句话说清楚它的内核,Claude 基本能把它落到像素上</strong>。</p> <p>当然也适配黑暗模式:</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F24%2F201515-1.webp&amp;size=m" alt="AppIcon-1024-Dark.png" style="zoom:33%;"> <h2 id="成品长这样">成品长这样</h2> <p>话不多说,直接上图。</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F24%2F201452-1.webp&amp;size=m" alt="01-list.png" style="zoom:33%;"> <p><strong>主列表</strong>:支出和收入同屏对照,月付、季付、年付、一次性,所有周期一个列表里理清。顶部那个粉橙色的卡片显示「30 天内还有几笔」,是我自己每天打开 App 最想第一眼看到的信息。</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F24%2F201417-1.webp&amp;size=m" alt="05-homewidget.png" style="zoom:33%;"> <p><strong>主屏小组件</strong>:桌面上直接看 30 天内即将到期的 N 项,不用点进 App。对我来说这就是这个 App 存在的意义——<strong>你手机锁屏那一眼就能看到的东西,你不会忘记</strong>。</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F24%2F201403-1.webp&amp;size=m" alt="04-lockscreen.png" style="zoom: 33%;"> <p><strong>锁屏小组件</strong>:只显示下一笔——不用解锁、不用打开 App、锁屏状态下直接看到名字和剩余天数。这个我真的挺喜欢。</p> <p>整个视觉语言贯穿的还是那个「<strong>非打扰式</strong>」的产品哲学——数字不标红、不用感叹号、不搞「紧急!」这种暴力美学,就是温柔地提醒你一句。</p> <h2 id="4-天-18-个-commit">4 天 18 个 commit</h2> <p>我之前没写过 Swift,一行都没有。</p> <p>Xcode也没装过。</p> <p>SwiftUI、SwiftData、WidgetKit(分别是苹果用来做 iOS 界面、存本地数据、做桌面/锁屏小组件的三套框架)是啥,全是边做边查。但不妨碍我 4 天写完、上架、提审。</p> <table> <thead> <tr> <th>日期</th> <th>Commits</th> <th>主要内容</th> </tr> </thead> <tbody> <tr> <td>04-21(周二)</td> <td>7</td> <td>初版 + 改名 + 图标 + 隐私声明 + 截图策略</td> </tr> <tr> <td>04-22(周三)</td> <td>4</td> <td>通知 P0 三连击 + 真机验证 + 修复上线</td> </tr> <tr> <td>04-23(周四)</td> <td>3</td> <td>多币种实时汇率(opt-in)</td> </tr> <tr> <td>04-24(周五)</td> <td>4</td> <td>Bundle ID 改名 + ASC 元数据 + 提交审核</td> </tr> </tbody> </table> <p>我大部分时间在干嘛?<strong>打字、截图、点按钮</strong>。写需求、看效果、给 Claude 反馈「这里不对、那里要改、审美再收一点」。真正「坐键盘前敲 Swift 语法」的时间——几乎没有。</p> <p>但这不是说 Claude Code 是魔法。它不是。它会在一个看起来简单的地方疯狂跑偏,能爽到停不下来,也能气到想砸键盘。</p> <p>下面是翻车现场合集。</p> <h2 id="翻车现场-1-改名三连跳-放了自己一鸽子-">翻车现场 1:改名三连跳(放了自己一鸽子)</h2> <p>App 一开始没专门起名字,我自用编译好之后,手机里最早就显示叫「续费提醒」。土是土了点,但直白。</p> <p>第二天我觉得这名字太像 90 年代共享软件,改叫 <strong>Renewly</strong>。英文名、现代感、听起来像个 SaaS。</p> <p><strong>然后我犯了一个很愚蠢的错误——没有第一时间去 App Store 查重名</strong>。名字定了、图标调了、本地化文件改了、隐私政策的 title 也换了——一直到我准备提交审核之前,才突然想起来去搜一下。<strong>被人占了</strong>。有一个已经在跑的订阅工具 app 也叫 Renewly,功能还不完全重叠——这种重名是 Apple 审核环节大概率会让你改的那种。</p> <p>这个锅就是没经验导致的。作为一个日常就在 App Store 搜 app、自己也跑一堆自托管工具的人,「<strong>发布前先查名字</strong>」这种事不用别人教。我偏偏就忘了——<strong>咕咕本咕,放了自己一鸽子</strong>。</p> <p>只能第三次改名。这次更彻底:英文叫 <strong>DueSub</strong>(Due + Subscription 的缝合),中文叫 <strong>续然</strong>(续是续费,然是自然、果然)。</p> <p>踩完坑的经验——<strong>名字想好之后第一件事:去 App Store 和 Google Play 都搜一遍</strong>,再去 Namecheap 看看 .com 在不在(最好但不是必须),都空着再去设计图标、改代码、改本地化。我这次反过来做,付了 3 次改名的工时。</p> <h2 id="翻车现场-2-通知的三个坑-同一天翻了三次-">翻车现场 2:通知的三个坑(同一天翻了三次)</h2> <p>这个 App 最核心的功能是<strong>到期提醒</strong>——你订的 VPS 明天扣费,我提前 7 天、3 天、1 天推送,当天上午 9 点再补一刀。这个功能不对,整个 App 就是一个「带搜索框的表格」。</p> <p>结果 04-22 那天我翻了三次车,一天修了三个 BUG。</p> <p><strong>坑一:九点以后打开 App,当天的提醒丢了。</strong> <br> 调度逻辑是每天早上 9 点对「当天到期的项」推送一次。自测 OK。结果某天下午我打开 App,发现<strong>明明有一项今天到期,却没推送</strong>。根因是 App 长时间没启动,调度队列里根本没这条通知,系统自然不会补发。修法是 App 启动时 fallback 检查一次——当天有到期项、现在已经过 9 点、用户今天还没收到,就立刻补推。</p> <p><strong>坑二:自动续费的文案跟代码对不上。</strong> <br> 设置页之前有个「自动续费项默认不提醒」的开关,文案写「你已经设置自动扣款了,不需要再提醒」。听起来很合理——<strong>但代码不是这么做的</strong>。代码里自动续费项依然推 7/3/1 天的提醒,只有当天 9 点不推。这种「你说的是 A,代码做的是 B」最阴——不 crash、不报错、但就是跟用户说好的不一样。改了文案——提前几天提一下不是坏事,是自动扣那一刻再来一下才烦。</p> <p><strong>坑三:App 开着的时候,通知横幅被系统吞了。</strong> <br> iOS 的默认行为——App 在前台时,系统不弹横幅。理由是 App 自己处理。这对聊天软件合理,对一个<strong>到期提醒 App</strong> 就是「你盯着屏幕的时候我就不提醒你」——有点傻缺。我真机上复现:早上 9 点 App 开着,该推的一声没响。我当时盯着屏幕看了 10 分钟,以为自己又写炸了。修法其实很简单——一行代码的事,让 App 主动告诉系统「前台也请弹」。</p> <p>三个坑修完、真机回归测过,这一天我感受到了**「软件这事儿怎么每个角落都能翻车」**的经典真理。Claude 写代码很快,但它不会替你想清楚「用户下午 3 点才打开 App 会发生什么」——你得自己变成产品经理兼测试,一个个角落去踩。</p> <h2 id="翻车现场-3-Bundle-ID-的最后一公里">翻车现场 3:Bundle ID 的最后一公里</h2> <p>全程最让我心里一凉的一次。</p> <p>Apple 的 Bundle ID(可以理解成 App 的全球唯一身份证号)一旦在 App Store Connect 注册并提交过 build(也就是打包上传过一次安装文件),<strong>就不能改了</strong>——要改只能注册新 App ID、开新 App 记录,之前填的元数据、截图、审核资料<strong>全部作废从头来</strong>。</p> <p>我最早的 Bundle ID 前缀用了我日常 handle,但开发者账号实名信息是另一个名字。两边对不上,Apple 校验过不去。</p> <p>只能改 Bundle ID。改它意味着:</p> <ul> <li>Xcode 里所有 target 的 Bundle ID</li> <li>主 App 和小组件共享数据用的 <strong>App Group</strong></li> <li>证书和描述文件要重签</li> <li>测试机上装过的旧版全部失效,要重装</li> </ul> <p>最阴的是 App Group(让主 App 和桌面小组件共享数据的一个"命名空间",Apple 规定这个名字全球唯一)。我旧的 group 名改新的时候报冲突,<strong>说这个名字有人用过</strong>(其实是我自己,几分钟前注册的、没删)。加了个 <code>.shared</code> 后缀绕过——<strong>这个本来不应该存在的后缀永远留在我代码里了</strong>,作为一个「我和 Apple 的命名空间规则打过架」的纪念。</p> <p>修完、重签、重装、回归——折腾好一会儿才终于走到 App Store Connect 那一步。</p> <h2 id="翻车现场-4-App-Store-Connect-是一个-checkbox-地狱">翻车现场 4:App Store Connect 是一个 checkbox 地狱</h2> <p>到这一步我才意识到:<strong>写 App 只是上架这件事的冰山一角</strong>。真正的灾难在 ASC。</p> <p>让我列一下这次填过的表(不完整,凭记忆):</p> <ul> <li>App 名称 / 副标题 / 推广文本 / 描述 / 关键词(<strong>英文中文两套</strong>)</li> <li>主类别 / 副类别 / 年龄评级(一份 20 多题的问卷,问我「本 App 是否包含恐怖元素」——我做的是订阅提醒)</li> <li>版本号 / 构建号 / 上架日期</li> <li>隐私政策 URL(<strong>每种语言一份</strong>,英文一个、中文一个)</li> <li>Marketing URL / Support URL</li> <li><strong>12 张截图</strong>(6.9" iPhone,iPad 跳过只做 iPhone)</li> <li>App Icon 1024×1024</li> <li><strong>App 隐私标签</strong>(和代码里的 <code>PrivacyInfo.xcprivacy</code> 是两份<strong>独立的表</strong>,要自己保证内容一致)</li> <li>内容版权声明(不是 App 的版权,是 App 里用没用别人的素材)</li> <li>出口合规性(加密算法使用)</li> <li>IDFA 使用声明</li> <li><strong>DSA 欧盟合规声明</strong>(新增的,个人开发者选 Non-Trader 才不会公开家庭住址)</li> <li>App 审核联系方式 + 演示账户 + 审核备注</li> <li>定价 + 可用国家地区</li> <li>Mac / Vision Pro 兼容性(默认勾,记得关)</li> <li>发布方式(自动 / 手动)</li> </ul> <p>整理这份清单用了一下午。一个勾一个勾过,途中踩的坑:</p> <ul> <li>勾了「所有国家」才发现默认包括中国大陆——国区要备案我没备,赶紧去掉</li> <li>英文的隐私政策 URL 填完以为就行——ASC 跳出红 banner:<strong>简体中文 - 隐私政策网址 - 此栏为必填项</strong>。每种语言要独立一个 URL</li> <li>以为提交时会弹「出口合规 / IDFA / 内容版权」三连问——这次居然没弹。后来才知道如果你在 Info.plist / xcprivacy / App 信息页都提前答过了,ASC 不再来烦你</li> <li>备注里写了 Settings 里有个 "Seed Sample Data" 按钮——结果代码里英文按钮实际叫 "Fill sample data"。<strong>自己的 App,按钮名都记错</strong>。这给 Apple reviewer 看到,他大概会觉得我连自己 app 都没摸熟</li> </ul> <p>最后所有字段绿勾、红 banner 消失、「提交以供审核」按钮可点。深呼吸,点下去。</p> <p>然后画面一片祥和。<strong>没有弹窗、没有「你确定吗」、没有任何仪式感</strong>——左侧栏那个黄色小点变成「正在等待审核」,就这样。</p> <h2 id="吐槽一下-上架-App-这个流程-真的太复杂了">吐槽一下:上架 App 这个流程,真的太复杂了</h2> <p>我要认真吐一下槽。</p> <p>Apple 的 App Store 是 iOS 生态的核心支柱,<strong>用户体验</strong>堪称行业标杆。但它对<strong>开发者</strong>的体验,是另一个世界。</p> <p>作为一个独立开发者、副业开发者、个人开发者,你要面对:</p> <ol> <li><strong>¥688 / 年的开发者费</strong>($99)。App 一分钱不赚,每年也得续。这个我认——毕竟用了整套工具链和分发网络。但作为一个常年买小鸡的人,每年还是要叹一声——<strong>这笔钱够我买一台好的服务器了</strong>。</li> <li><strong>证书体系</strong>。App ID / Bundle ID / Provisioning Profile / Distribution Certificate / Push Certificate……随便一个过期,线上炸。</li> <li><strong>ASC 的 30 多个字段 + 一堆合规声明</strong>。DSA、隐私标签、xcprivacy、内容版权、出口合规、IDFA、年龄问卷、类别、定价、可用区。</li> <li><strong>审核的黑盒</strong>。什么时候过、为什么过、拒了怎么改,全靠邮件 + Resolution Center。</li> <li><strong>多语言隔离填写</strong>。每个 locale 要独立填描述、关键词、URL——漏一个返工重来。</li> </ol> <p>这套流程对成熟团队(有专门的 release manager 和 compliance)是日常,对一个摸着石头过河的独立开发者——<strong>「完成率劝退」比代码本身高 10 倍</strong>。我完全理解为什么那么多做了一半的 iOS App 最后没上架——不是代码没写完,是<strong>上架的活儿没人愿意干</strong>。</p> <p>我这次能走完,95%的功劳给 Claude——不是它写代码快,是它陪我<strong>把这 30 多个 checkbox 一个一个过完</strong>。如果让我自己看 Apple 文档去填,我多半中途就放弃了。</p> <h2 id="顺便说一下国区-其实我想上的-">顺便说一下国区(其实我想上的)</h2> <p>这次上架,我<strong>主动跳过了中国大陆区</strong>——但这不是我本意。</p> <p>我本来是想上国区的。不是说看重国区下载量,就是觉得一个中文作者做的中文工具,中文应用商店里没它,多少有点别扭。</p> <p>备案这事我是知道的。早几年折腾服务器域名的时候,我就顺手买了一个十年的 <code>.cn</code> 域名挂在腾讯云、老老实实走完了 ICP 备案;当时配套也买过一台大陆服务器——但国内服务器的体验真的让人一言难尽,<strong>带宽小得可怜还卖得贵</strong>,到期我就没续费了。反正我要跑的服务都在境外,非要在大陆放一台机器没必要。</p> <p>这次准备上架国区,我盘算了一下以为挺简单——<code>.cn</code> 域名还在、备案号还在、腾讯云账号还在、实名信息跟 Apple 开发者账号对得上。填个备案号就完事了吧?</p> <p><strong>结果一查流程才发现:光域名备案不够,备案得绑定在一台「正在使用中」的境内服务器上</strong>。我那台大陆机子早停了,备案跟着就失效了——要恢复,<strong>得再租一台国内服务器</strong>。</p> <p>这就有意思了——<strong>我这个 App 完全离线、不联网、不部署任何东西</strong>。我不需要服务器,没有任何后端服务要跑,也没有任何 API 要托管。仅仅因为「要在国区上架」这个理由,我被强制要求去租一台<strong>我完全用不上的大陆服务器</strong>。</p> <p><strong>这一点我是真的不太理解</strong>。规则的本意大概是想给在国区上架的 App 留一个可追溯的境内主体,但对一个纯离线工具来说,服务器这条要求完全是空转——我没有后端、没有数据回传、没有任何需要境内托管的东西,却要为此每年多掏一份云厂商的钱。</p> <p>算一下数:国内一台够用的轻量应用服务器(能用于备案的最低配起),<strong>一年 400 块起步</strong>;加上 Apple 开发者 ¥688;加上偶尔维护备案的小成本——对一个<strong>不收费的免费 App</strong>,<strong>每年多花 1000 多块为爱发电,实在不太合理</strong>。</p> <p>所以这次我选了 <code>All Countries except China mainland</code>——174 个区全部开放,国区先空着。等哪天要做付费功能,有盈利模型能把这 1000 多块年成本覆盖掉,再回头补上国区不迟。</p> <p>如果你也是个人开发者、做的是免费离线工具——<strong>国区这件事可以先放一放</strong>。把其他 174 个区跑通、把用户反馈收起来、把付费模型验证出来,再回头说国内的事。</p> <h2 id="Claude-Code-作为-iOS-IDE-的体验">Claude Code 作为 iOS IDE 的体验</h2> <p>回到这次最初的目标之一——「<strong>摸一下能力边界</strong>」。</p> <p>我不懂 Swift,不会 SwiftUI 的声明式语法,SwiftData 的 <code>@Model</code> 到现在也讲不清原理。但一点都不慌——因为<strong>我不需要懂,我只需要知道我要什么</strong>。</p> <ul> <li>「加一个设置项,让用户切换显示货币」——Claude 去加</li> <li>「这个列表行高再紧一点」——Claude 去改</li> <li>「真机跑一下,别只编译通过」——Claude 真的会去 build、装真机、抓日志</li> <li>「这个通知为啥没弹,你查一下」——Claude 读上下文、看 delegate、写假设、去验证</li> </ul> <p>我的角色从「写代码」变成了「<strong>定需求 + 审效果 + 做判断</strong>」。前者要懂语法,后者要懂用户。</p> <p>爽的地方:<strong>你不再因为「不会 Swift」而放弃 iOS App 这个想法</strong>。</p> <p>不爽的地方:<strong>它跑偏的时候你得看得出来</strong>——代码能力不是凭空被替代的,你能让 Claude 写代码,但你必须能看出它写的是不是你要的。</p> <p>这次 4 天我踩到的<strong>能力边界</strong>大致在:</p> <ul> <li><strong>需要你当产品经理</strong>。Claude 不会主动想「用户下午 3 点打开会怎样」这种边界 case</li> <li><strong>需要你当测试</strong>。它说「已修复」不等于修了,必须你跑一遍真机复现</li> <li><strong>证书 / 签名 / 打包</strong>的坑它不一定记得住,要你盯着它去查 Apple 最新文档</li> <li><strong>ASC 的字段含义</strong>它有时候会猜错,你得自己去对官方说明</li> </ul> <p>其他的——写代码、读 API、调 debug、查栈、写测试——它比我快得多得多。</p> <h2 id="成本账">成本账</h2> <p>粗略算一下这个 App 到目前为止的总投入:</p> <table> <thead> <tr> <th>项</th> <th>成本</th> </tr> </thead> <tbody> <tr> <td>Apple 开发者账号</td> <td>¥688 / 年</td> </tr> <tr> <td>Claude Code 订阅</td> <td>已订的 Max 档,这次没多花</td> </tr> <tr> <td>域名 + 托管</td> <td>¥0(Landing 和隐私政策挂 GitHub Pages)</td> </tr> <tr> <td>服务器</td> <td>¥0(没备案,不需要)</td> </tr> <tr> <td>图标</td> <td>¥0(Claude + SF Symbols + 手调)</td> </tr> <tr> <td>截图</td> <td>¥0(模拟器截图 + 简单标题文字)</td> </tr> <tr> <td><strong>总计</strong></td> <td><strong>¥688</strong></td> </tr> </tbody> </table> <p>跳过国区之后,全部成本就剩一张 Apple 开发者年费。对一个本来一行 Swift 都没写过的人——<strong>这个投入产出比,放在 Claude Code 出现之前是完全不可想象的</strong>。</p> <h2 id="写在最后">写在最后</h2> <p>这不是一篇「你也能 4 天做 iOS App」的鸡血文。你不能,我也不能——如果换一个更复杂的 App(联网、账号、支付、音视频、AI 推理),这个周期会翻好几倍。</p> <p>但有一件事值得说——<strong>「我不会写代码」,不再是做东西的理由了</strong>。</p> <p>过去十年,「有想法但不会写代码」是劝退无数人的天花板。想做的东西卡在「找不到技术合伙人 / 招不起开发」这一步上。今天这个天花板被 Claude Code 这类工具<strong>狠狠砸了一个洞</strong>。</p> <p>不是洞下面一切都容易,iOS 上架流程该复杂还是复杂,国区备案的门槛该离谱还是离谱。但<strong>写代码本身</strong>这件事,从「不可能」,变成了「<strong>要不要动手</strong>」。</p> <h3 id="当开发成本降到接近于零-真正稀缺的是什么">当开发成本降到接近于零,真正稀缺的是什么</h3> <p>这次最让我想明白的一件事——<strong>开发成本的下降,反过来把产品问题推到了台前</strong>。</p> <p>过去「找到真实需求 + 招到靠谱开发 + 写出能用的代码」三件事捆在一起,能搞定其中任何一个都算稀罕。现在 Claude Code 把第二、第三件事的门槛降到了个人能承受的范围——那第一件事——<strong>你到底在解决一个真问题,还是在自嗨</strong>——就变成了唯一卡住你的那个门槛。</p> <p>我这个 App 是我自己的小真实痛点。规模不大,也不打算做成生意。但在做的过程里我越来越相信——<strong>在今天,独立开发者是真的能吃上饭的</strong>。这两年海外 indie dev 圈里,赚到钱的人一抓一大把,有年收入几十万美金的,也有做个 $10/月小工具把生活费搞出来的。核心都不是他们代码写得多牛——而是<strong>他们找到了一小群真实付费用户的真实需求</strong>。</p> <p>代码这条护城河正在被填掉,<strong>用户洞察</strong>成了新的护城河。对不少想副业糊口、或者想看能不能全职独立的人,这可能是十年难遇的一个窗口期——代码能力第一次不再是硬卡点,但同时,<strong>你对用户的理解</strong>的重要性被放大到前所未有。</p> <h3 id="下一个坑">下一个坑</h3> <p>这次 DueSub 是免费 App,没盈利模型——它本来就是给我自己用的,顺手做成了产品。下一个我想挖的坑,是<strong>做一个带付费功能的 App</strong>:走一遍订阅 / 一次性内购的完整流程,去碰 StoreKit、走税务合规、看看 Apple 30% 抽水到底怎么切、体验一下从 0 到第一个付费用户的全过程。</p> <p>具体做啥还没定——<strong>先把用户洞察这一步想清楚再动手</strong>。这次改名三连已经告诉我了,想清楚再动手,比手快多跑一版省事得多。</p> <h3 id="最后">最后</h3> <p>回到博客侧边栏那四个字——<strong>learn or earn</strong>。</p> <p>这回 learn 到了 iOS 一整套流程、Claude 能力边界、App Store 审核的全部坑;earn 谈不上,免费 App 没盈利模型。但<strong>摸清一条从 0 到 1 的路径</strong>本身,就是这次最大的 earn——下一次就知道怎么走第二步了。</p> <p>App 叫 <strong>DueSub / 续然</strong>,现在在审核队列里,预计 24–48 小时后上架<strong>非国区</strong> App Store。免费、离线、不要账号——如果你也跟我一样囤着一堆 VPS 和域名、又老忘开邮箱——装一个试试。</p> <p>国区的事儿,以后再说吧。</p> <p>咕咕下一篇接着挖坑。</p> <h2 id="后记---发博客之前-App-先过审了">后记 · 发博客之前 App 先过审了</h2> <p>正文写到上面那段「在审核队列里,预计 24-48 小时」的时候,App 确实还在审核。结果博客还没来得及排版发出,苹果那边先完事了。</p> <p>这篇博客发出来的时候,App 就已经在<strong>除中国大陆外</strong>的各区 App Store 可搜可下了:</p> <p><strong><a href="https://apps.apple.com/app/duesub-subscription-tracker/id6763448383">DueSub: Subscription Tracker</a></strong> —— 免费、离线、无需登录。</p>

2026/4/24
阅读更多

3 天, 61 个版本|非程序员的我用 Claude Code 接棒维护了自己的博客主题

<img src="https://blog.laoda.de/plugins/feed/assets/telemetry.gif?title=3%20%E5%A4%A9%2C%2061%20%E4%B8%AA%E7%89%88%E6%9C%AC%EF%BD%9C%E9%9D%9E%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E6%88%91%E7%94%A8%20Claude%20Code%20%E6%8E%A5%E6%A3%92%E7%BB%B4%E6%8A%A4%E4%BA%86%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8D%9A%E5%AE%A2%E4%B8%BB%E9%A2%98&amp;url=/archives/claude-code-halo-theme" width="1" height="1" alt="" style="opacity:0;"> <p>前几天一个周末,我把自己博客用的主题 fork 了一份,花了 3 天时间,发了 61 个版本,解决了一堆多年来一直想改但没改的小问题,顺便踩了 N 个大坑。</p> <p>这篇就把这段 "非程序员 × Claude Code" 的 vibe coding 实录和大家分享一下。也顺便聊聊用下来对几家 AI 订阅的真实看法,还有一点关于 "软件门槛" 和 "肉身能力" 的胡思乱想。</p> <p>内容会有点长,但都是真金白银踩出来的体感。</p> <h2 id="起点--博客主题好久没更新了">起点——博客主题好久没更新了</h2> <p>咕咕这个博客用的是 <a href="https://www.halo.run/">Halo</a> 平台 + <a href="https://github.com/Jiewenhuang/halo-theme-joe3">Joe3</a> 主题,作者是 <a href="https://github.com/Jiewenhuang">Jiewenhuang</a>。这个主题其实非常好用,做得也很漂亮,我前前后后用了好几年,一直挺满意的。</p> <p>但最近一两年,作者因为工作原因更新慢了下来。这完全可以理解——开源主题作者本来就是用爱发电,有自己的主业和生活,能一直维护已经很难得。但对用户来说就是:</p> <ul> <li>有几个小 bug 长期挂着没修</li> <li>有几个想要的小功能提了 issue,但一直排队</li> <li>深色模式有些细节抠得不够到位</li> <li>性能上有些可以优化但还没做</li> </ul> <p>这些东西我其实都想自己动手改,但之前一直有个拦路虎——<strong>我不是程序员</strong>,平时也就是会点 VPS 折腾、写写 Docker 命令,真要去啃主题源码,心里还是怯的。</p> <p>那为啥现在突然敢动手了?因为一个东西:<strong>Claude Code</strong>。</p> <h2 id="从伸手党到自己动手--为什么决定-fork">从伸手党到自己动手——为什么决定 fork</h2> <p>我在openclaw出来不久的时候,一开始订阅了kimi的coding plan,后来觉得不够好用,听网上一堆人说GPT和Claude好用,就尝试订阅了 Claude Pro(每月 20 美元那种),偶尔用来问问问题、写写文案,确实不错。但一直没用它写代码——总觉得太复杂了。</p> <p>直到有一次,我随口让 Claude 帮忙看了下主题里一段 CSS,想改个小边距。它不光改对了,还顺带解释了为什么这么改,甚至告诉我 "你这个改动会影响移动端,建议加个 media query"。</p> <p>那一瞬间我突然意识到:<strong>原来这事儿是可以自己干的。</strong></p> <p>不是说我一夜之间学会了前端,而是——有 Claude 在,你只要能描述清楚你要什么、看得懂 git diff、会复制报错,剩下的它都能兜住。这个门槛突然低到一个非程序员也能跨过去的程度。</p> <p>然后想法就顺理成章了:</p> <ul> <li>要等主题原作者更新?大概率很难</li> <li>要发 PR?很多功能其实只有我自己需要(比如一些自定义侧边栏、适配自己阅读习惯的字号行高),发上去作者不一定合,也不应该合</li> <li><strong>那 fork 一份自己维护就好了</strong></li> </ul> <p>打定主意,Max 套餐开了(后面会细聊为啥咬牙从 Pro 升 Max),本地 Halo 环境跑了起来,VS Code + Claude Code 都准备好了。</p> <p>然后故事就开始了。</p> <h2 id="3-天-61-个版本--一发不可收拾-根本停不下来">3 天 61 个版本——一发不可收拾,根本停不下来</h2> <p>一开始我没想到会搞这么快。本来预期是"一周弄个能用的版本",结果 Claude Code 的节奏推着我往前走,一发不可收拾,根本停不下来。</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F22%2F170913-1.webp&amp;size=m" alt="2e0532b448b0787187335d641374daac.png"></p> <p>这是真实的 git log 统计:</p> <table> <thead> <tr> <th>日期</th> <th>星期</th> <th>发了多少版</th> <th>主要做了啥</th> </tr> </thead> <tbody> <tr> <td>2026-04-19</td> <td>周日</td> <td>5 版</td> <td>热身 · SEO / 初版性能优化</td> </tr> <tr> <td>2026-04-20</td> <td>周一</td> <td><strong>44 版</strong></td> <td>暴风骤雨日 · 翻车最多的一天</td> </tr> <tr> <td>2026-04-21</td> <td>周二</td> <td>12 版</td> <td>安全补丁 hotfix 系列收官</td> </tr> </tbody> </table> <p><strong>3 天, 61 个 tag。</strong> 作为对比,原作者过去两年发了大概 30 个版本——Claude Code 这个节奏,直接比原作者快 <strong>15 倍</strong>(当然其实很多小改动完全可以合并起来一次发版,不知道是Claude还是我给的skill的原因,这边图快就直接一个改动一个 tag 推了,虚胖成分有一些)。</p> <p>当然这不是在炫耀速度。这个速度之所以能跑起来,是因为:</p> <ul> <li>小需求说清楚 → Claude 几分钟就能改完 + 解释</li> <li>本地跑一下 → 有问题直接贴报错给它</li> <li>没问题 → git commit + tag + push</li> <li>GitHub Actions 自动打 release zip → Halo Console 一键升级</li> </ul> <p>整个反馈循环被压缩到 <strong>10 分钟以内</strong>。人只要负责 "想清楚要啥 + 看一眼做对了没"。</p> <p>仓库在这里,感兴趣的同学可以看下完整的 commit history:</p> <p>👉 <a href="https://github.com/Lau0x/halo-theme-joe-next">github.com/Lau0x/halo-theme-joe-next</a></p> <h2 id="翻车现场合集--61-版里至少一半是在修前一版">翻车现场合集——61 版里至少一半是在修前一版</h2> <p>光说 "3 天 61 版" 好像挺厉害,但真相是:<strong>其中至少一半,都是在修前一个版本的坑</strong>。</p> <p>下面这几个翻车故事,是这 3 天里最有代表性的。不展开技术细节,就聊故事感——让大家感受下 AI 写代码到底是啥体验。</p> <h3 id="翻车现场-1---3---1---31--的谜题">翻车现场 1——"3 + 1 = 31" 的谜题</h3> <p>想加一个 "相关推荐" 小卡片,在每篇文章末尾展示 3 篇同分类的文章。</p> <p>Claude 几分钟写完,跑起来一看——<strong>页面上出现了 30 张卡</strong>。多了整整 27 张。</p> <p>让它修,它改了一版,还是 30 张。再改一版,还是 30 张。<strong>连续 10 个候选版本 (rc.01 → rc.10) 都没修对。</strong></p> <p>最后逼它把变量打出来看,才发现是个非常隐蔽的类型问题:后台的 "3" 不是数字 3,是字符串 "3"。字符串 "3" + 1 在某些语言里等于 "31",然后程序就真的去拉了 31 条文章。</p> <p>一个让人哭笑不得的 bug。但也正因为它这么反直觉,Claude 自己怎么改都绕着走。</p> <p><strong>教训</strong>:AI 连续两三版修不对同一个问题的时候,<strong>不要再让它瞎猜了</strong>,直接让它打印真实的变量值。否则就是纯纯在 token 上烧钱。</p> <h3 id="翻车现场-2--给-jQuery-加了个小优化--整站炸了">翻车现场 2——给 jQuery 加了个小优化, 整站炸了</h3> <p>Claude 看了下主题代码,说 "jQuery 这样加载影响性能,给它加个属性可以异步加载,更快"。</p> <p>听着有道理,就让它改了。</p> <p><strong>改完推上去,整个博客都打不开了。</strong></p> <p>翻车原因说起来也合理:jQuery 延迟加载之后,页面里好几十处其他脚本依赖它的地方跑得太早,找不到 jQuery,整站一片红。</p> <p>最后直接把改动撤了,恢复原状。这个 "优化" 看上去简单,但真要做对,得把主题里几十处相关脚本一起调整,不是一下午能搞完的活。</p> <p><strong>教训</strong>:<strong>性能优化类的改动,生产验证前别打 tag</strong>。开个浏览器点一遍主要功能再发版。省事儿的 10 分钟,能省下一晚上查事故。</p> <h3 id="翻车现场-3--四版-UI-改造--全被自己否了">翻车现场 3——四版 UI 改造, 全被自己否了</h3> <p>这个可能是最戏剧性的一段。</p> <p>我某天看动态页觉得不够好看,跟 Claude 说 "美化一下,搞得稍微有设计感一些"。</p> <p>Claude 很兴致地给了个方案,发了 rc.01。我一看:<strong>不好看,页面上这个蓝色小圈圈是干啥的</strong>。</p> <p>Claude:好的,我马上收紧!发 rc.02,删了一些元素。</p> <p>我:<strong>完全不想要这套了</strong>。</p> <p>Claude:那换个设计语言!现代社交网络风格!rc.03。</p> <p>我:<strong>……这是好看了,但布局塌了,左边一列文字挤得一个字一行</strong>。</p> <p>Claude:我修!rc.04,布局修对了。</p> <p>我:<strong>还是没有原来的好看。算了,咱们回原版吧。</strong></p> <p><strong>四个版本全废,一键 <code>git revert</code> 回到上一个 stable。</strong></p> <p>这段翻车事后反思,根因不是 Claude 审美差——而是我一开始就没把"想要什么样"说清楚。它在自己的审美空间里闭环了四版,每版都是"它认为的美化",但和我脑子里那个隐约的画面完全对不上。</p> <p>所以后来我给自己加了条规矩:<strong>以后让 AI 做视觉类改动,开工前必须给它一个参考站 URL,或者几个情绪板关键词</strong>。不然就是四版起步的翻车。</p> <h3 id="翻车现场-4--修了个隐私漏洞--结果所有内容都不显示了">翻车现场 4——修了个隐私漏洞, 结果所有内容都不显示了</h3> <p>这个翻车比较严重。</p> <p>起因是一个真实的安全问题:后台某条动态设为 "私有" 之后,但<strong>管理员登录访问博客前台</strong>,私有动态居然还能看到内容。</p> <p>典型的主题层漏了一道过滤。</p> <p>我让 Claude 加过滤,它加了一行判断,推上去。</p> <p>我一看:<strong>所有动态都不显示了</strong>,包括本该显示的公开动态。</p> <p>再查才发现 Claude 用错了比较方式——字段的实际类型和它以为的不一样,导致判断永远失败,全部被过滤掉了。</p> <p>再改一版,修对了。再改一版,清理掉调试代码,收官。<strong>就为了修这一个 bug,一口气发了三个补丁版本。</strong></p> <p><strong>教训</strong>:AI 的判断看起来都挺合理,但<strong>一定要跑真实数据验证</strong>。不然它拍胸脯说"这下肯定对了",上生产之后可能就是另一个故事。</p> <h3 id="翻车现场-5--CSS-里的神秘竖条">翻车现场 5——CSS 里的神秘竖条</h3> <p>这个就是翻车 3 里那个 rc.03。上完新设计,打开一看——<strong>两列内容里,左边一列宽大约 100 像素, 右边一列 800 像素</strong>。左边那列里的文字被压得一个字一行竖着排,像被揉过一样。</p> <p>Claude 以为是自己写错了参数,改了好几次边距和间距,都没用。</p> <p>后来查出来是 CSS 里的一个经典陷阱——简单说就是 "平均分配宽度" 这个写法遇到了 "不能换行的超长内容",两边就不平均了。</p> <p>这个坑是前端圈公认的经典老坑,但如果不踩一次,你根本不知道会有这种问题。</p> <p><strong>这就是 vibe coding 的真实面貌——你不是在写代码, 你是在和各种古怪的坑玩。</strong></p> <h2 id="一个月付了--168-AI-订阅费--为啥最后都用-Claude">一个月付了 $168 AI 订阅费, 为啥最后都用 Claude</h2> <p>聊完翻车,顺带聊一下订阅选择。因为这一波下来,我对 "哪家 AI 最值得付费" 有了点新认识。</p> <h3 id="从-Pro-咬牙升到-Max">从 Pro 咬牙升到 Max</h3> <p>我一开始用的是 Claude Pro(每月 $20),觉得挺够用的,日常搞点东西没啥压力。</p> <p>但真要让 Claude Code 做 vibe coding 这种 "一天 20+ 版本" 的节奏,Pro 套餐<strong>很快就触顶</strong>——几个小时就把当日额度用完,然后就只能干等着刷新。</p> <p>咬着牙升了 Max(每月 $100)。升级那一刻说实话是有点肉疼的。</p> <p>但用了两天就想通了:</p> <blockquote> <p><strong>100 美元每月, 当学费其实很便宜。</strong></p> </blockquote> <p>你想想——如果我去找个独立开发者,把这 3 天干的活外包出去,主题 fork + 新 feature + 安全补丁 + SEO 优化 + 性能优化 + 几个 bug fix,怎么也得 <strong>500-1000 美元</strong>起步。Max 这 $100,算当月 "学费 + 外包费",比外包便宜,比自学快,最后东西还完全属于我自己。</p> <p>除此之外,我还可以用它来辅助我的工作(excel里也可以用Claude了)。</p> <p>顺便放张 Max 使用面板截图给大家感受一下强度:</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F22%2F170904-1.webp&amp;size=m" alt="340e03b65e8744760fe7d2f6e8edd13b.png"> <br> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F22%2F170854-1.webp&amp;size=m" alt="6ad4b8472387bc1f7b97e2af7a656856.png"></p> <p>一周用到 77%(All models),Current session 也跑了 17%。真用爆了。</p> <h3 id="月付--168-的-AI-订阅全家桶">月付 $168 的 AI 订阅全家桶</h3> <p>为了写这篇,我盘了下自己每月的 AI 订阅费:</p> <table> <thead> <tr> <th>工具</th> <th>月费</th> <th>主要用途</th> <th>实测体感</th> </tr> </thead> <tbody> <tr> <td><strong>Claude Max</strong></td> <td><strong>$100</strong></td> <td>Claude Code / 主力 vibe coding / 长对话</td> <td>⭐⭐⭐⭐⭐ 最稳最聪明,开发主力</td> </tr> <tr> <td>ChatGPT Plus</td> <td>$20</td> <td>OpenClaw / 日常问答 / GPT 5.4</td> <td>⭐⭐⭐⭐ 最近升级的 GPT 5.4 确实聪明了不少</td> </tr> <tr> <td>Gemini Pro</td> <td>$20</td> <td>偶尔对比答案,长文本场景</td> <td>⭐⭐⭐ 特定场景还行</td> </tr> <tr> <td>Kimi</td> <td>¥199 (≈$28)</td> <td>中文长文,OpenClaw 备用</td> <td>⭐⭐ 体感明显弱一个档次</td> </tr> </tbody> </table> <p><strong>合计:约 $168 / 月。</strong></p> <p>这个钱多不多?不少。但我就当学习AI交的学费了,之后看看能不能取消掉1-2个不常用的。</p> <h3 id="一条选型经验--选你能力范围内最好的模型">一条选型经验——选你能力范围内最好的模型</h3> <p>过去这段时间同一套 OpenClaw 工具链,我分别用 Kimi 2.5、GPT 5.4 试了一遍:</p> <ul> <li><strong>Kimi 2.5</strong>:总感觉差点意思,回答经常跑偏,得反复 prompt 才能拉回来</li> <li><strong>GPT 5.4</strong>:明显聪明,大部分需求一次过</li> </ul> <p>同一个任务,两家结果差异非常大。</p> <p>我得出的一条经验是:</p> <blockquote> <p><strong>选模型,在自己能力范围内选最好的,会用得更爽。</strong></p> </blockquote> <p>便宜 20% 但差 50%,算总账其实亏。因为<strong>差的模型浪费的不是钱, 是你自己的时间和耐心,甚至你还会怀疑这个东西真的好用吗?</strong>。就和你刚学琴买了一把300块的吉他,F和弦怎么也按不出来,你会怀疑自己我是不是真的学不会吉他。</p> <p>最后吐个槽。GPT 的 Codex(OpenAI 自己的命令行工具)我也试了,结果最大的体验是——老是弹这个:</p> <pre><code>⚠️ Agent failed before reply: OAuth token refresh failed for openai-codex: Failed to refresh OAuth token for openai-codex. Please try again or re-authenticate. </code></pre> <p>每几天就让你重新登录一次。体感很差。</p> <h2 id="最大的收获是-掌控感-">最大的收获是"掌控感"</h2> <p>聊完钱,聊聊情绪。</p> <p>回头看这 3 天、61 个版本、5 个典型翻车、一堆踩坑笔记,最大的收获<strong>不是技术层面的</strong>,而是——<strong>掌控感</strong>。</p> <h3 id="自己的博客--自己说了算">自己的博客, 自己说了算</h3> <p>这种感觉很难形容。</p> <p>以前看到博客某个样式不喜欢,只能<strong>忍</strong>。 <br> 想加个小功能,只能<strong>发 issue 等</strong>。 <br> 字号大小、行高、颜色有几个小细节不爽,只能<strong>告诉自己习惯就好</strong>。</p> <p><strong>现在?</strong></p> <p>想改就改。想删就删。想加啥加啥。不喜欢这个主题了——<strong>甚至可以让 Claude 帮我从头写一个</strong>。</p> <p>这种 "一切都在自己手里" 的感觉太爽了!</p> <h3 id="从博客到小工具--软件的门槛在降低">从博客到小工具, 软件的门槛在降低</h3> <p>而且这事不只是博客。</p> <p>我最近还在琢磨几个小想法——想做一个 iOS 小 APP,专门用来提醒自己 VPS 和各种订阅服务到期续费,免得哪天 "传家宝 VPS" 突然就没了(其实现在已经做差不多了);也想搞个 Chrome 插件,还没想好具体做啥,但感觉总能用上。</p> <p>这些以前想都不敢想。Swift 学起来多难啊,Xcode 折腾一整天,可能只出一个崩溃。</p> <p>但现在,描述清楚需求,Claude 自己写、自己跑、自己调、自己解释。<strong>一个非程序员,3 天能发 61 版博客主题,那做个小 APP 呢?可能也就是一个周末。</strong></p> <p>软件的门槛,正在以肉眼可见的速度降低。</p> <p>不是说程序员没用了——<strong>真正的工程问题还是需要专业的人</strong>。但对于 "我想给自己做个小东西" 这个诉求,门槛已经被 AI 摊平了。这是肉眼可见的变化。</p> <h2 id="写在最后--软件门槛降低了--下一道墙在哪-">写在最后——软件门槛降低了, 下一道墙在哪?</h2> <p>聊到这儿,我想说点更胡思乱想的东西。</p> <p><strong>如果软件门槛真的降低了, 那下一道墙在哪?</strong></p> <p>我最近一直在琢磨这个问题。想法不成熟,但大致是这样。</p> <p><strong>第一道墙:硬件。</strong></p> <p>代码可以让 AI 写,但服务器会坏、光纤会断、电池会衰减、螺丝会生锈。未来 3 年 5 年,能动手改硬件、能拆能焊、能找到小众元器件、能修能造的人,可能反而稀缺。毕竟 AI 目前还没长手。</p> <p><strong>当然,机器人也在路上。</strong></p> <p>特斯拉的 Optimus、波士顿动力的 Atlas、还有国内各种人形机器人——再过几年,它们大概率能帮你做一部分 "需要手" 的事:拧螺丝、搬东西、简单清洁、甚至可能插插线修修电路。</p> <p>但即便如此,我觉得还是有些事它们短期干不了:</p> <ul> <li><strong>判断当下最该做什么</strong>(机器人执行能力强,但"决定干啥"这事儿,还是人擅长)</li> <li><strong>精细手艺和经验</strong>(修老机器、拆解古董电子产品、手工打磨——这些靠的是感觉和长年积累的手感)</li> <li><strong>和人打交道的事</strong>(带朋友打麻将、哄孩子睡觉、陪父母聊天——这些不是机器人来"代做"就有意义的)</li> </ul> <p>所以硬件这道墙,会被机器人慢慢矮化,但不会马上塌。</p> <p><strong>第二道墙, 可能更有意思——肉身能力。</strong></p> <p>我越来越觉得,<strong>那些必须花时间训练才能掌握的能力——英语、西班牙语、游泳、骑车、做饭、长跑——反而变得越来越重要</strong>。</p> <p>为啥?因为软件可以让 AI 写,文案可以让 AI 编,图片可以让 AI 画,视频可以让 AI 生成。硬件未来让机器人干。</p> <p><strong>但你的身体不能让 AI 代练,也不能让机器人代练。</strong></p> <p>机器人再强,也没法替你去学一门新语言的肌肉记忆、没法替你游 1000 米感受水的阻力、没法替你骑车穿过一整座城市感受风。这些东西必须是你自己的时间、汗水、年轻换来的。</p> <p>当所有人都有 AI 之后,大家的 "软件产出" 会被拉到差不多的水平。再过几年当所有人都有机器人之后,生活里 "需要动手做的事" 也会被拉到差不多。</p> <p>那时候,真正拉开差距的,反而是那些<strong>最原始、最肉身、最不能外包</strong>的能力。</p> <p>所以如果你问我,现在手头有点闲时间,该干啥?</p> <p><strong>去学一门新语言。去游个泳。去学骑公路车。去学做红烧肉。</strong></p> <p>因为那些东西,将来可能比写代码还值钱。</p> <hr> <p>主题的仓库在这里:<a href="https://github.com/Lau0x/halo-theme-joe-next">github.com/Lau0x/halo-theme-joe-next</a>。</p> <p>如果你也用 Joe3 主题,欢迎去下载最新版 zip 试试看,也欢迎提 issue。我维护得动,就一直维护下去,维护不动了,至少留一份 fork 给后来人。</p> <p>OK,那差不多今天就聊这些,不知道有没有勾起大家 vibe coding 的兴趣,也欢迎大家评论区留下你的 AI 订阅搭配和踩坑经历~</p>

2026/4/22
阅读更多

回顾一下我买过的服务器们|VPS 收藏夹大盘点

<img src="https://blog.laoda.de/plugins/feed/assets/telemetry.gif?title=%E5%9B%9E%E9%A1%BE%E4%B8%80%E4%B8%8B%E6%88%91%E4%B9%B0%E8%BF%87%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BB%AC%EF%BD%9CVPS%20%E6%94%B6%E8%97%8F%E5%A4%B9%E5%A4%A7%E7%9B%98%E7%82%B9&amp;url=/archives/vps-review-2026" width="1" height="1" alt="" style="opacity:0;"> <p>大家好,好久没有和大家更新了。</p> <p>最近好像也没找到特别有意思的 Docker 项目,随着 Claude Code 和 OpenClaw 的火爆,其实玩 Docker 也变得容易了很多,感觉是不是都没啥必要出教程啥的了,直接让它们搞定。</p> <p>前俩天看到国内最早的云服务新浪云终止服务了。</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174016-1.webp&amp;size=m" alt="82e8a5eba1874b6094bb053a8e7dc30e.png" style="zoom:50%;"> <p>今天就来做个回顾吧,回顾一下我买过的服务器们。</p> <h2 id="展示页面">展示页面</h2> <p>这个是目前咕咕持有的服务器的情况(不完全,有些比如新的VMRACK、还有腾讯云香港轻量的34元/月的没挂上去),很多都是老伙计了,可能现在买不太到。</p> <p>地址:<a href="https://status.laoda.de/">https://status.laoda.de/</a></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174014-1.webp&amp;size=m" alt="bc2343d72516b285d6d2ff2f96aeb487.png"></p> <p>不知道大家看到这个页面的第一反应是什么,应该第一时间是看到了两台红色的已经阵亡的机器。(当然还有其他的阵亡的机器可能被我删了 = =)</p> <p>第一台是 <strong>Olink</strong>,Olink 当年最出名的是没记错的话是德国的 AS9929,36 刀/年的,还有一个是 GRE 隧道,给线路不好的服务器用的。</p> <p>老板运营一直很佛系,机器很稳,用的很省心。咕咕收过一台二手的,续费 36 刀/年的,后来自己又原价买了一台。</p> <p>去年好像迁移过一次机房到圣何塞,今年没想到就运营困难了,官宣了停止运营。挺可惜的(对了推广收益好像还没结算给我 = =)</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174011-1.webp&amp;size=m" alt="bb7ae30fc1311648a75355f709009524.png"></p> <blockquote> <p><a href="https://blog.laoda.de/archives/olink">【VPS 测评】Olink 法兰克福三网 9929 测评</a></p> </blockquote> <p>第二个是搬瓦工的 <strong>The Chicken</strong>,这个其实是咕咕忘记续费了,导致阵亡。性价比其实还可以,但是和我其他的搬瓦工比起来不够高(否则我也不会忘记续费了哈哈)</p> <p>然后咕咕自己看到的是<strong>在线天数</strong>。</p> <p>毫无疑问,这个代表了稳定性。</p> <p>买 VPS,可能一开始是为了折腾,但是时间久了之后,尤其是跑了一些项目或者部署了一些网站之后,最在乎的,肯定是稳定性。</p> <p>虽然之前和大家反复强调不要相信任何一个服务器厂商,对于自己在意的数据一定要多备份。但是三天两头宕机的厂商,即使再便宜,我们也会被搞的很难受。</p> <h2 id="搬瓦工-Bandwagonhost--稳定省心">搬瓦工 Bandwagonhost——稳定省心</h2> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174019-1.webp&amp;size=m" alt="1401f311d592c7d1f6af2d982d5db5d7.png"></p> <p>而搬瓦工在咕咕看来,就是稳定的代表。</p> <p>我刚接触 VPS 的时候,就已经早闻大名,搬瓦工到现在至少有 10 年历史了吧。我目前的博客用的反向代理就是 <strong>The Plan V2</strong> 的套餐,一年 100 多刀,可以切换十多个机房(不过我基本没切过,一直用的 DC09),这两三年时间下来,很稳定。</p> <p>还有其他的几台,也基本买了之后配置完就没怎么登录过。</p> <p><strong>双十一套餐</strong>的,一年才 29 刀,我跑了几个基础服务在上面,包括现在这个服务器网站就是跑这个上面的。</p> <p><strong>49 刀的套餐</strong>,曾经很多 mjj 溢价想要购买,咕咕这台是后面一次放货的时候抢的,500G 流量,和 The Plan V2 一样可以切换十多个机房,CN2 GIA 最便宜的套餐了,目前咕咕畅游互联网全靠它,转眼都快 3 年了。</p> <p>所以如果要推荐一个稳定好用的机器,咕咕第一选择也会考虑推荐搬瓦工,前俩天还用 Claude Code 辅助做了一个简单的 HTML,上面是瓦工的产品合集:<a href="https://bwg.laoda.de/">https://bwg.laoda.de/</a></p> <blockquote> <p><a href="https://blog.laoda.de/archives/vps-bandwagonhost">【VPS 选购分享】Bandwagonhost(搬瓦工)——曾经的王者,三网 G 口 GIA,贵族 VPS</a></p> </blockquote> <h2 id="斯巴达-Spartanhost--稳如老狗">斯巴达 Spartanhost——稳如老狗</h2> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174012-1.webp&amp;size=m" alt="74d9ce604482798d7254542fa76527e6.png"></p> <p>另外值得一提的是斯巴达。</p> <p>这台也是黑五抢的,当时是 31 刀/年,AMD 处理器,第二年黑五的时候升级了配置,变成 62 刀/年,然后之前老被 DDoS,刷流量(咕咕曾经一个月买了 5T 的额外流量 = =),后来我狠心加钱买了升级防御包和年付流量包,目前好像也是 100 多刀/年,我主要搭了 NPM,用做反向代理。非常稳。</p> <p>老板就是客服,回复非常快,之前黑五 3、4 点熬夜抢鸡的场景历历在目,只是这俩年好像老板也佛系了,没怎么搞黑五活动。</p> <blockquote> <p><a href="https://blog.laoda.de/archives/spartanhost">【VPS 测评】斯巴达 AMD 黑五 31 刀测评</a></p> </blockquote> <h2 id="BuyVM--PT-党最爱">BuyVM——PT 党最爱</h2> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174007-1.webp&amp;size=m" alt="2cd58a0a40a86f6007a41f6b5bbf0c57.png"></p> <p>BuyVM 之前最大的优势就是无限流量,而且便宜,VPS 只要 3 刀/月好像,加上你可以买存储块,256G、512G、1T 的都可以,所以是 PT 党们的最爱,尤其是卢森堡无视 DMCA。</p> <p>咕咕这个就是卢森堡 + 256G 的最丐版配置,不过前段时间好像换老板了,卢森堡的机器也迁移到了瑞士。咕咕 PT 退烧了,偶尔用家宽下点影视作品,这个机器已经好久没登录过了。</p> <blockquote> <p><a href="https://blog.laoda.de/archives/vps-buyvm">【VPS选购分享】BuyVM——下载神器!无限流量,无视版权投诉,经常缺货DMCA版权投诉/适合BT/PT下载/Netflix解锁</a></p> </blockquote> <h2 id="CloudCone--黑五神机">CloudCone——黑五神机</h2> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174004-1.webp&amp;size=m" alt="f5e74dad419239b9d59728945742fedc.png"></p> <p>CloudCone 这台是黑五抢的机器,看看已经是 3 年前的了~</p> <p>1 核 2G 内存 60G 硬盘,重点是续费只要 <strong>10.44 刀/年</strong>,放着挂着看看就很香。(之前还有一个 7 刀的,出掉了,那台价格更便宜,但是配置不如这台)</p> <blockquote> <p><a href="https://blog.laoda.de/archives/vps-cloudcone">【VPS选购分享】Cloudcone—— 高性价比, 自研面板,客服退款干脆利落 廉价VPS</a></p> </blockquote> <h2 id="DMIT--瓦工上游">DMIT——瓦工上游</h2> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174002-1.webp&amp;size=m" alt="bb1d53cc766ff9be65ac012321b78a20.png"></p> <p>DMIT 的两台,头脑发热跟风抢的,虽然说 DMIT 是搬瓦工的上游,但是我怎么觉得没搬瓦工稳呢。</p> <p>线路不错,他家的一个特色是默认是用密钥登录服务器的,第一次买的小伙伴可能有点晕晕的,不知道怎么连接服务器,我应该出过小白教程,安全性确实会高一些。</p> <h2 id="Hetzner--欧洲小钢炮">Hetzner——欧洲小钢炮</h2> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174001-1.webp&amp;size=m" alt="bc3c7ec52ec6baa6a527e009fd5020f4.png"></p> <p>机器性能强,价格低,性价比非常高,而且很稳。咕咕目前的博客就部署在它们家美西的机器上,支持备份快照,防火墙也很好用,非常省心。</p> <p>他家的竞拍的独立服务器也非常受 PT 党的欢迎,曾经拥有过两台,后面因为价格和自己用不上那么高的性能而没有继续续费。</p> <p>竞拍地址:<a href="https://www.hetzner.com/sb">https://www.hetzner.com/sb</a></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F173958-1.webp&amp;size=m" alt="bfab4e4ff2192f46cd67f2311993eb6b.png"></p> <p>唯一遗憾是之前咕咕写的这篇文章 <a href="https://blog.laoda.de/archives/vps-hetzner">【VPS 选购分享】Hetzner——欧洲阿里云!性能小钢炮!非常适合跑业务,还有适合刷 PT 的神鸡!</a>,被一个热心的 PT 网友转载了,然后他是给大家介绍用来类似薅羊毛刷 PT 的(新用户可以用邀请链接注册可以获得 20 欧的试用金),他那篇文章火了,然后他也是好心好像用了他和我的邀请链接,最后导致咕咕的账户的链接推广功能被官方禁止了(认为通过我链接注册账户的都是低价值客户 = =)</p> <p>之前其实 Hetzner 注册挺难的,现在不知道会不会容易一些了。</p> <h2 id="HostHatch--大盘鸡">HostHatch——大盘鸡</h2> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F173957-1.webp&amp;size=m" alt="773d743f83833bbb366f3b1ae67ef19e.png"></p> <p>关键词:<strong>大盘鸡</strong>。</p> <p>咕咕这个是 3 年 65 刀的,1T 的硬盘,不多说,它家的机器基本也是 PT 党用来刷 PT 用的,我这台是 3 年付的黑五版本,他家稳定性一般,不过对 PT 来说还好,我也很久没登录过了。</p> <blockquote> <p><a href="https://blog.laoda.de/archives/vps-hosthatch">【VPS 选购分享】HostHatch——目前看过的最高性价比大盘鸡!40 刀/年 2T 硬盘!</a></p> </blockquote> <h2 id="Naranja-Tech--荷兰小钢炮">Naranja Tech——荷兰小钢炮</h2> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F173954-1.webp&amp;size=m" alt="fd0a9c9f466867dd03036457c62e044f.png"></p> <p>荷兰小钢炮,黑五买的,他家黑五基本都有活动,这台好像 18 欧/年,2G 够用,目前搭了几个简单的小服务,也是稳的一批~</p> <h2 id="Netcup--性价比高">Netcup——性价比高</h2> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F173948-1.webp&amp;size=m" alt="295957760bb8fb167ee7e191e6118f4d.png"></p> <p>和 Hetzner 一样,性价比非常高的商家,之前一直持有他家的 RS2000,基本是一个小杜甫的状态,无限流量,性能还牛逼,一个月十多欧,非常好用,目前由于经济原因,换了一台 VPS,很好用的机器。</p> <p>唯一需要提醒的是他家是有<strong>合约制</strong>的,不续费要提前告知,否则一样给你续费,不交钱给你寄律师函!</p> <h2 id="OVH--抗-DDoS">OVH——抗 DDoS</h2> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174105-1.webp&amp;size=m" alt="ce4ec68eb66f462ab2a916a69af5de7b"></p> <p>法国的,最出名的是抗 DDoS,独立服务器比较有名,经常会有抽奖(买到的实际配置比官方标注的高,比如 2T 硬盘变成 4T,200M 带宽变成 1G 的),咕咕现在持有一台,每个月付费 16.99 欧,2×960 GB SSD SATA(抽奖开出来是 4×960 GB SSD SATA)的 KS-LE-2。</p> <p>他家基本不给大陆的小伙伴注册,咕咕当时还不是很严格,找的代理帮忙注册的账号。</p> <p>然后 OVH 和 Netcup 似乎你账号上没有订购东西,一段时间之后会删除账号,OVH 的话可以买个 OVH 后缀的域名挂着,一年就几欧。</p> <blockquote> <p><a href="https://blog.laoda.de/archives/ovh-sys-2-sat-32-waw">【VPS 选购经验分享】OVH——欧洲最大、世界第三的托管服务提供商,抗 DDOS(独立服务器测评及取消 RAID、挂载硬盘分享)</a></p> </blockquote> <h2 id="RackNerd--性价比之王">RackNerd——性价比之王</h2> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F174047-1.webp&amp;size=m" alt="ad0c716f46764589962a111db512ce15"></p> <p>性价比之王,最适合新人入坑的鸡,很多一年就 10 刀左右。够折腾,高配一些的价格也便宜。</p> <p>之前有整理过列表,看看能不能捡漏~</p> <p>地址:https://blog.laoda.de/vps</p> <blockquote> <p><a href="https://blog.laoda.de/archives/vps-racknerd">【VPS 选购分享】Racknerd——曾经的"四大金刚",如今的性价比之王</a></p> </blockquote> <h2 id="iON--曾经的神鸡">iON——曾经的神鸡</h2> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F15%2F173921-1.webp&amp;size=m" alt="3027a80f4a19e427c04505370cc36fad.png"></p> <p>咕咕这台是 2019 年的,续费 20.19 刀的款,联通优化线路,1T 的流量,还是<strong>单向流量</strong>!非常高性价比的鸡。</p> <p>当然最有性价比的是双十一的,同配置但是续费 11.11 刀的。咕咕曾经也有过,后来转手了。</p> <p>iON 现在老板似乎也换过人了,机器也稍微偏贵一些,但是品质可以。</p> <blockquote> <p><a href="https://blog.laoda.de/archives/vps-ion-cloud">【VPS 选购分享】iON —— 咕咕的神鸡!Krypt 旗下,专为国人优化的 VPS,适合电信用户!7×24 小时全天候人工服务,还是单向流量!</a></p> </blockquote> <h2 id="写在最后">写在最后</h2> <p>好了,差不多了。</p> <p>现在一个一个看过来,满满都是当年玩鸡的回忆。</p> <p>可惜现在工作生活琐事太多,玩鸡的时间越来越少了。</p> <p>列表上的这些鸡,除非是厂商跑路了或者是咕咕实在是入不敷出了,大概率会继续续费下去,也算是对过去日子的一些回忆。</p> <p>OK,那差不多今天就聊这些,不知道有没有勾起老玩家的回忆,也欢迎大家评论区留下你印象最深的机器~</p> <p><em>参考链接:</em></p> <ul> <li>搬瓦工产品合集:<a href="https://bwg.laoda.de/">https://bwg.laoda.de/</a></li> <li>VPS 推荐列表:<a href="https://blog.laoda.de/vps">https://blog.laoda.de/vps</a></li> <li>Hetzner 竞拍独服:<a href="https://www.hetzner.com/sb">https://www.hetzner.com/sb</a></li> </ul>

2026/4/15
阅读更多

聊聊目前手头的服务器近况 + VMRACK 三网优化线路 VPS 测试

<img src="https://blog.laoda.de/plugins/feed/assets/telemetry.gif?title=%E8%81%8A%E8%81%8A%E7%9B%AE%E5%89%8D%E6%89%8B%E5%A4%B4%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%91%E5%86%B5%20%2B%20VMRACK%20%E4%B8%89%E7%BD%91%E4%BC%98%E5%8C%96%E7%BA%BF%E8%B7%AF%20VPS%20%E6%B5%8B%E8%AF%95&amp;url=/archives/vmrack-test" width="1" height="1" alt="" style="opacity:0;"> <h2 id="2026-07-20-更新">2026-07-20 更新</h2> <p>VMRack 洛杉矶自建机房部分服务器上线补货了。</p> <p>提供洛杉矶了 VPS、裸金属服务器、CDN、对象存储及云转码等服务。</p> <p>VPS 支持多种线路选择:</p> <p>• 三网精品:CN2 GIA / AS9929 / CMIN2 <br> • 三网优化:163 / 10099 / CMI <br> • 美国原生:Cogent / Arelion <br> • 支持附加 IPv4 及内网 IP</p> <p>适合建站、海外业务、流媒体以及对大陆连接质量有要求的用户。不同地区和运营商体验可能不同,可以根据自己的网络环境测试。</p> <p>官网及套餐:<a href="https://www.vmrack.net?ref_code=5jz9MPhfBVH">https://www.vmrack.net?ref_code=5jz9MPhfBVH</a></p> <p>本群合作推广,具体配置、价格及库存以官网为准。</p> <p>举例:</p> <p>VMRack - L3.VPS.DC2.2C2G.Base</p> <p>• CPU:2 核 <br> • 内存:2 GB <br> • 硬盘:20 GB <br> • 带宽:500 Mbps <br> • 流量:1 TB <br> • 线路:三网精品 (CN2/9929/CMIN2)</p> <p>💰 价格:$9.99/月</p> <p>🛍 购买地址:<a href="https://www.vmrack.net/zh-CN/deploy-new-instance/vps-activation-deals?id=2052274755754471424&amp;ref_code=5jz9MPhfBVH">点击直达</a>#AFF</p> <p>VMRack - L1.VPS.2C4G.Base</p> <p>• CPU:2 核 <br> • 内存:4 GB <br> • 硬盘:60 GB <br> • 带宽:5000 Mbps <br> • 流量:4 TB <br> • 线路:美国原生 (Cogent/Arelion)</p> <p>💰 价格:$5.66/月</p> <p>🛍 购买地址:<a href="https://www.vmrack.net/zh-CN/deploy-new-instance/vps-activation-deals?id=2026933037031030784&amp;ref_code=5jz9MPhfBVH">点击直达</a>#AFF</p> <h2 id="唠嗑">唠嗑</h2> <p>好久没折腾服务器了,今天趁着下雨在家,把手头目前已有的服务器都登录了一遍,收拾一下,也顺便给大家更新一下咕咕服务器的最新近况~</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F170201-1.webp&amp;size=m" alt="服务器近况截图"></p> <p>地址:<a href="https://status.laoda.de/">https://status.laoda.de/</a></p> <p>目前持有的机器很多都是老古董了,买不到了。</p> <p>Olink 实在是可惜,由于资金问题,加上老板本来就佛系运营,已经官宣停止运营了。</p> <p>搬瓦工还是稳如老狗,咕咕的几台机器都已经要超过 1000 天在线了(The Chicken忘记续费被取消了 = =),之前黑五买的 Naranja Tech 也累计运行 886 天。</p> <p>对搬瓦工有感兴趣的小伙伴可以在这边选购:</p> <blockquote> <p>CN2 GIA 高速优化线路 VPS 选购:<a href="https://bwg.laoda.de">https://bwg.laoda.de</a></p> </blockquote> <p>好久没买新的机器了,今天来测一下 VMRACK 这家宣传做了三网优化的精品线路的机器,看看到底怎么样。</p> <h2 id="1--VMRACK-简介">1. VMRACK 简介</h2> <p>官网地址:<a href="https://www.vmrack.net?ref_code=5jz9MPhfBVH">https://www.vmrack.net</a></p> <p>VMRACK 主打三网优化线路,电信走 CN2 GIA,联通走 9929,移动走 CMIN2,看宣传还是挺有吸引力的。</p> <p>先说结论,实测下来,线路确实非常稳。</p> <h2 id="2--机器信息">2. 机器信息</h2> <p>咕咕手头的这台是 <strong>2 核 2G 内存,40G 硬盘,1.5T 流量/月,500Mbps 带宽</strong>,三网精品线路(电信走 CN2 GIA,联通走 9929,移动走 CMIN2)。</p> <blockquote> <p>注意商家把三网优化线路和三网精品线路做了区分,三网精品线路更高一级</p> </blockquote> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F13%2F133704-1.webp&amp;size=m" alt="4c7187eed6517e43257a324c97cc4daf.png"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F170131-1.webp&amp;size=m" alt="机器信息"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F170127-1.webp&amp;size=m" alt="机器信息2"></p> <p>续费价格:</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F170152-1.webp&amp;size=m" alt="ca6c1db04a144da2b816d17864e198bf"></p> <p>不过现在官方有特惠活动,</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F13%2F133717-1.webp&amp;size=m" alt="a9ce72e3f2c62aaed1464273fceda507.png"></p> <p>相同线路,最高性价比的35刀/年的售罄了,49刀/年的也售罄了,99刀/年的还有,还是比我这个常规款便宜不少 = = 地址:<a href="https://www.vmrack.net?ref_code=5jz9MPhfBVH">https://www.vmrack.net</a></p> <h2 id="3--开始测试">3. 开始测试</h2> <p>这边咕咕用的是融合怪测试脚本,一键跑完各项测试~</p> <pre><code class="language-bash">curl -L https://gitlab.com/spiritysdx/za/-/raw/main/ecs.sh -o ecs.sh &amp;&amp; chmod +x ecs.sh &amp;&amp; bash ecs.sh </code></pre> <blockquote> <p>GitHub 地址:https://github.com/spiritLHLS/ecs</p> </blockquote> <h3 id="3-1-CPU-情况">3.1 CPU 情况</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F170111-1.webp&amp;size=m" alt="CPU测试结果"></p> <p>CPU 型号:AMD EPYC-Rome Processor</p> <p>单核跑分 <strong>1581</strong>,多核跑分 <strong>3178</strong>,表现还是不错的~</p> <h3 id="3-2-内存---硬盘">3.2 内存 &amp; 硬盘</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F170103-1.webp&amp;size=m" alt="内存硬盘测试"></p> <p>内存读写速度正常,日常使用(跑 Docker 服务)没问题,fio 的 19.5k IOPS 足够撑住大多数应用场景。但 dd 测试暴露出读取性能偏弱,如果跑读密集型的业务(比如大量随机读取的数据库查询),可能会感受到瓶颈。</p> <h3 id="3-3-流媒体解锁">3.3 流媒体解锁</h3> <p>解锁情况还是比较理想的,直接丢几张图:</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F170055-1.webp&amp;size=m" alt="流媒体解锁1"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F170050-1.webp&amp;size=m" alt="流媒体解锁2"></p> <p>Netflix、Disney+、ChatGPT、YouTube 这些主流平台基本都解锁了,日常使用完全够用~</p> <h3 id="3-4-IP-质量">3.4 IP 质量</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F170011-1.webp&amp;size=m" alt="IP质量1"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F170039-1.webp&amp;size=m" alt="5531258c47c64b6f960004c866ba1679"></p> <p>IP 为原生 IP,信任得分 100,整体质量不错。</p> <h3 id="3-5-邮件端口">3.5 邮件端口</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F165953-1.webp&amp;size=m" alt="邮件端口检测"></p> <p>主流邮箱的 SMTP 端口基本都是开放的,有自建邮件服务需求的小伙伴可以参考~</p> <h3 id="3-6-三网回程情况">3.6 三网回程情况</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F165945-1.webp&amp;size=m" alt="三网回程"></p> <p>这个是重点了!确实是三网优化:</p> <ul> <li><strong>电信回程</strong>:走 CN2 GIA</li> <li><strong>联通回程</strong>:走 AS9929</li> <li><strong>移动回程</strong>:走 CMIN2</li> </ul> <p>三网都走了优化线路。</p> <h3 id="3-7-回程路由">3.7 回程路由</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F171549.webp&amp;size=m" alt="回程路由1"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F165921-1.webp&amp;size=m" alt="a969428a69e140ecac3d48ce6afe739f"></p> <p>从路由追踪可以看到,电信确实走了 CN2 GIA 到香港再回国,联通走的 9929,移动走的 CMIN2,和宣传一致。</p> <h3 id="3-8-PING-情况">3.8 PING 情况</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F165721-1.webp&amp;size=m" alt="PING测试"></p> <p>150ms 左右,属于美西正常 ping 值。</p> <h3 id="3-9-测速情况">3.9 测速情况</h3> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F165703-1.webp&amp;size=m" alt="测速1"></p> <p>上下行基本都能跑满 500Mbps 的带宽,表现相当不错。</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F12%2F165652-1.webp&amp;size=m" alt="测速2" style="zoom:50%;"> <p>另外,VMRACK 支持 <strong>1 美元更换 IP</strong>,对于有换 IP 需求的小伙伴来说还是比较友好的。</p> <h2 id="4--总结">4. 总结</h2> <p>VPS 性能不错,具体的参数大家可以看上面的测评结果。</p> <p>简单总结一下亮点:</p> <ul> <li><strong>IP 为原生 IP</strong>,解锁能力优秀</li> <li><strong>三网精品线路</strong>:电信 CN2 GIA + 联通 9929 + 移动 CMIN2</li> <li><strong>1 美元更换 IP</strong> 的服务</li> </ul> <p>有感兴趣的小伙伴可以去官网看看:<a href="https://www.vmrack.net?ref_code=5jz9MPhfBVH">https://www.vmrack.net</a></p> <hr> <h2 id="附-完整测试数据">附:完整测试数据</h2> <details> <summary>点击展开完整测试报告</summary> <pre><code class="language-txt">测评频道: https://t.me/+UHVoo2U4VyA5NTQ1 VPS融合怪版本:2026.02.28 Shell项目地址:https://github.com/spiritLHLS/ecs Go项目地址 [推荐]:https://github.com/oneclickvirt/ecs ---------------------基础信息查询--感谢所有开源项目---------------------- CPU 型号 : AMD EPYC-Rome Processor CPU 核心数 : 2 CPU 频率 : 2595.124 MHz CPU 缓存 : L1: 64.00 KB / L2: 1.00 MB / L3: 32.00 MB AES-NI指令集 : ✔ Enabled VM-x/AMD-V支持 : ❌ Disabled 内存 : 208.23 MiB / 1.92 GiB Swap : [ no swap partition or swap file detected ] 硬盘空间 : 1.67 GiB / 39.17 GiB 启动盘路径 : /dev/vda1 系统在线时间 : 1 days, 1 hour 27 min 负载 : 0.54, 0.16, 0.05 系统 : Debian GNU/Linux 12 (bookworm) (x86_64) 架构 : x86_64 (64 Bit) 内核 : 6.1.0-33-amd64 TCP加速方式 : bbr 虚拟化架构 : KVM NAT类型 : Full Cone IPV4 ASN : AS46783 EASY LINK LLC IPV4 位置 : Los Angeles / California / US ------------------------CPU测试--通过sysbench测试------------------------- -&gt; CPU 测试中 (Fast Mode, 1-Pass @ 5sec) 1 线程测试(单核)得分: 1581 Scores 2 线程测试(多核)得分: 3178 Scores --------------------内存测试--感谢lemonbench开源---------------------------- -&gt; 内存测试 Test (Fast Mode, 1-Pass @ 5sec) 单线程读测试: 41550.52 MB/s 单线程写测试: 19125.71 MB/s --------------------磁盘dd读写测试--感谢lemonbench开源-------------------- -&gt; 磁盘IO测试中 (4K Block/1M Block, Direct Mode) 测试操作 写速度 读速度 100MB-4K Block 34.7 MB/s (8465 IOPS, 3.02s) 5.6 MB/s (1357 IOPS, 18.86s) 1GB-1M Block 554 MB/s (528 IOPS, 1.89s) 122 MB/s (115 IOPS, 8.62s) ----------------------磁盘fio读写测试--感谢yabs开源----------------------- Block Size | 4k (IOPS) | 64k (IOPS) ------ | --- ---- | ---- ---- Read | 78.10 MB/s (19.5k) | 1.02 GB/s (16.0k) Write | 78.31 MB/s (19.5k) | 1.03 GB/s (16.1k) Total | 156.41 MB/s (39.1k) | 2.06 GB/s (32.2k) | | Block Size | 512k (IOPS) | 1m (IOPS) ------ | --- ---- | ---- ---- Read | 612.37 MB/s (1.1k) | 528.12 MB/s (515) Write | 644.91 MB/s (1.2k) | 563.29 MB/s (550) Total | 1.25 GB/s (2.4k) | 1.09 GB/s (1.0k) ---------------流媒体解锁--感谢oneclickvirt/UnlockTests测试---------------- Can not detect IPv6 Address 测试时间: 2026-04-11 08:37:32 IPV4: ============[ 跨国平台 ]============ Apple YES (Region: USA) BingSearch YES (Region: US) Claude YES Dazn YES (Region: US) Disney+ YES (Region: US) Gemini YES (Region: US) GoogleSearch YES Google Play Store YES (Region: US) IQiYi YES (Region: US) Instagram Licensed Audio YES KOCOWA YES MetaAI YES Netflix YES (Region: US) Netflix CDN US OneTrust YES (Region: US CALIFORNIA) ChatGPT YES (Region: US) Paramount+ YES Amazon Prime Video YES (Region: US) Reddit YES SonyLiv YES (Region: IN) Sora YES (Region: US) Spotify Registration NO Steam Store YES (Community Available) (Region: US) TVBAnywhere+ YES (Region: US) TikTok YES (Region: US) Viu.com YES Wikipedia Editability YES YouTube Region YES YouTube CDN LAX ---------------------TikTok解锁--感谢lmc999的源脚本--------------------- Tiktok Region: 【US】 -------------IP质量检测--基于oneclickvirt/securityCheck使用-------------- 数据仅作参考,不代表100%准确,如果和实际情况不一致请手动查询多个数据库比对 以下为各数据库编号,输出结果后将自带数据库来源对应的编号 ipinfo数据库 [0] | scamalytics数据库 [1] | virustotal数据库 [2] | abuseipdb数据库 [3] | ip2location数据库 [4] ip-api数据库 [5] | ipwhois数据库 [6] | ipregistry数据库 [7] | ipdata数据库 [8] | db-ip数据库 [9] ipapiis数据库 [A] | ipapicom数据库 [B] | bigdatacloud数据库 [C] | dkly数据库 [D] | ipqualityscore数据库 [E] ipintel数据库 [F] | ipfighter数据库 [G] | fraudlogix数据库 [H] | cloudflare数据库 [I] | IPV4: 安全得分: 信任得分(越高越好): 100 [8] VPN得分(越低越好): 0 [8] 代理得分(越低越好): 0 [8] 社区投票-无害: 0 [2] 社区投票-恶意: 0 [2] 威胁得分(越低越好): 1 [8] 欺诈得分(越低越好): 65 [E] 滥用得分(越低越好): 0 [3] ASN滥用得分(越低越好): 0.0152 (Elevated) [A] 公司滥用得分(越低越好): 0.0009 (Low) [A] 威胁级别: low [B] 流量占比: 真人(越高越好)47% [I] 机器人(越低越好)52% [I] 黑名单记录统计:(有多少黑名单网站有记录): 无害记录数: 0 [2] 恶意记录数: 0 [2] 可疑记录数: 0 [2] 无记录数: 94 [2] 安全信息: 使用类型: unknown [8] hosting [0 3 7 C] business [A] 公司类型: hosting [A] isp [0 7] 浏览器类型: 主流82% 其他17% [I] 设备类型: 桌面77% 移动22% 其他0% [I] 操作系统类型: 主流94% 其他5% [I] 是否云提供商: Yes [7] 是否数据中心: No [5 8 A G] Yes [0 C] 是否移动设备: No [5 A C G] Yes [E] 是否代理: No [0 4 5 7 8 A B C] Yes [E G] 是否VPN: Yes [E] No [0 7 A C G] 是否Tor: No [0 3 7 8 A B C E] 是否Tor出口: No [7] 是否网络爬虫: No [A B E] 是否匿名: No [7 8] 是否攻击者: No [7 8] 是否滥用者: No [7 8 A C E] 是否威胁: No [7 8 C] 是否中继: No [0 7 8 C] 是否Bogon: No [7 8 A C] 是否机器人: No [E] DNS-黑名单: 304(Total_Check) 0(Clean) 10(Blacklisted) 17(Other) Google搜索可行性:NO ------------邮件端口检测--基于oneclickvirt/portchecker开源------------ Platform SMTP SMTPS POP3 POP3S IMAP IMAPS LocalPort ✔ ✔ ✔ ✔ ✔ ✔ QQ ✔ ✔ ✔ ✘ ✔ ✘ 163 ✔ ✔ ✔ ✘ ✔ ✘ Sohu ✔ ✔ ✔ ✘ ✔ ✘ Yandex ✔ ✔ ✔ ✘ ✔ ✘ Gmail ✔ ✔ ✘ ✘ ✘ ✘ Outlook ✔ ✘ ✔ ✘ ✔ ✘ Office365 ✔ ✘ ✔ ✘ ✔ ✘ Yahoo ✔ ✔ ✘ ✘ ✘ ✘ MailCOM ✔ ✔ ✔ ✘ ✔ ✘ MailRU ✔ ✔ ✘ ✘ ✔ ✘ AOL ✔ ✔ ✘ ✘ ✘ ✘ GMX ✔ ✔ ✔ ✘ ✔ ✘ Sina ✔ ✘ ✔ ✘ ✔ ✘ Apple ✘ ✔ ✘ ✘ ✘ ✘ FastMail ✘ ✔ ✘ ✘ ✘ ✘ ProtonMail✘ ✘ ✘ ✘ ✘ ✘ MXRoute ✔ ✘ ✔ ✘ ✔ ✘ Namecrane ✔ ✘ ✔ ✘ ✔ ✘ XYAMail ✘ ✘ ✘ ✘ ✘ ✘ ZohoMail ✘ ✔ ✘ ✘ ✘ ✘ Inbox_eu ✔ ✔ ✔ ✘ ✘ ✘ Free_fr ✘ ✔ ✔ ✘ ✔ ✘ -------------上游及三网回程--基于oneclickvirt/backtrace开源-------------- 国家: US 城市: Los Angeles 服务商: AS46783 EASY LINK LLC 北京电信v4 219.141.140.10 电信CN2GIA [精品线路] 北京联通v4 202.106.195.68 联通9929 [优质线路] 北京移动v4 221.179.155.161 移动CMI [普通线路] 移动CMIN2 [精品线路] 上海电信v4 202.96.209.133 检测不到回程路由节点的IPV4地址 上海联通v4 210.22.97.1 联通9929 [优质线路] 联通4837 [普通线路] 上海移动v4 211.136.112.200 移动CMI [普通线路] 移动CMIN2 [精品线路] 广州电信v4 58.60.188.222 电信CN2GIA [精品线路] 广州联通v4 210.21.196.6 联通9929 [优质线路] 广州移动v4 120.196.165.24 移动CMI [普通线路] 移动CMIN2 [精品线路] 成都电信v4 61.139.2.69 电信CN2GIA [精品线路] 成都联通v4 119.6.6.6 联通9929 [优质线路] 联通4837 [普通线路] 成都移动v4 211.137.96.205 移动CMI [普通线路] 移动CMIN2 [精品线路] 准确线路自行查看详细路由,本测试结果仅作参考 同一目标地址多个线路时,检测可能已越过汇聚层,除第一个线路外,后续信息可能无效 ----------------------回程路由--基于nexttrace开源----------------------- 依次测试电信/联通/移动经过的地区及线路,核心程序来自nexttrace,请知悉! 广州电信 58.60.188.222 0.52 ms * RFC1918 1.24 ms AS4134 [CHINANET-US] 美国 加利福尼亚 洛杉矶 chinatelecom.com.cn 电信 149.67 ms * [CN2-Global] 中国 香港 chinatelecom.cn 电信 150.87 ms * [CN2-BackBone] 中国 广东 广州 chinatelecom.cn 电信 157.66 ms * [CN2-BackBone] 中国 广东 广州 chinatelecom.cn 电信 151.97 ms AS4134 [CHINANET-BB] 中国 广东 广州 chinatelecom.com.cn 电信 159.56 ms AS4134 [APNIC-AP] 中国 广东 深圳 chinatelecom.com.cn 电信 广州联通 210.21.196.6 1.12 ms * RFC1918 1.31 ms AS10099 中国 香港 chinaunicomglobal.com 165.78 ms AS10099 [CUG-BACKBONE] 中国 香港 chinaunicomglobal.com 联通 172.08 ms AS9929 [CNC-BACKBONE] 中国 上海 chinaunicom.cn 联通 CUII 149.18 ms AS9929 [CNC-BACKBONE] 中国 广东 广州 chinaunicom.cn 联通 CUII 160.21 ms * [CNC-BACKBONE] 中国 广东 广州 190.30 ms AS17623 [APNIC-AP] 中国 广东 深圳 chinaunicom.cn 联通 193.60 ms AS17623 中国 广东 深圳 宝安区 chinaunicom.cn 联通 广州移动 120.196.165.24 0.68 ms * RFC1918 1.12 ms AS58807 [CMIN2-NET] 中国 cmi.chinamobile.com 移动 129.02 ms AS58807 [CMIN2-NET] 美国 加利福尼亚 洛杉矶 cmi.chinamobile.com 移动 126.54 ms AS58807 [CMIN2-NET] 中国 上海 洛杉矶-上海 cmi.chinamobile.com 移动 129.41 ms AS9808 [CMNET] 中国 上海 X-I chinamobileltd.com 移动 128.32 ms AS9808 [CMNET] 中国 上海 I-C chinamobileltd.com 移动 129.03 ms AS9808 [CMNET] 中国 上海 chinamobileltd.com 153.36 ms AS9808 [CMNET] 中国 北京 chinamobileltd.com 移动 151.70 ms AS9808 [CMNET] 中国 北京 chinamobileltd.com 移动 154.29 ms AS9808 [CMNET] 中国 北京 chinamobileltd.com 移动 153.31 ms AS56040 [APNIC-AP] 中国 广东 深圳 gd.10086.cn 移动 ---------------------自动更新测速节点列表--本脚本原创---------------------- 位置 上传速度 下载速度 延迟 丢包率 Speedtest.net 511.98 Mbps 494.12 Mbps 1.04 0.0% 检测到错误:Aborted或core dumped,终止测速 执行出现错误,如果有必要请使用 https://github.com/oneclickvirt/ecs 进行测试,避免环境依赖出现问题 联通上海5G 535.07 Mbps 546.82 Mbps 173.12 NULL 检测到错误:Aborted或core dumped,终止测速 执行出现错误,如果有必要请使用 https://github.com/oneclickvirt/ecs 进行测试,避免环境依赖出现问题 电信Suzhou5G 513.73 Mbps 553.80 Mbps 138.52 NULL 电信Zhenjiang5G 557.11 Mbps 548.61 Mbps 137.32 NULL 移动Suzhou 372.13 Mbps 0.39 Mbps 137.64 0.0% ------------------------------------------------------------------------ 总共花费 : 6 分 1 秒 时间 : Sat Apr 11 08:41:13 UTC 2026 ------------------------------------------------------------------------ </code></pre> </details>

2026/4/13
阅读更多

德国买iPhone退税全流程实测:19%消费税能退多少?踩坑+避坑全记录

<img src="https://blog.laoda.de/plugins/feed/assets/telemetry.gif?title=%E5%BE%B7%E5%9B%BD%E4%B9%B0iPhone%E9%80%80%E7%A8%8E%E5%85%A8%E6%B5%81%E7%A8%8B%E5%AE%9E%E6%B5%8B%EF%BC%9A19%25%E6%B6%88%E8%B4%B9%E7%A8%8E%E8%83%BD%E9%80%80%E5%A4%9A%E5%B0%91%EF%BC%9F%E8%B8%A9%E5%9D%91%2B%E9%81%BF%E5%9D%91%E5%85%A8%E8%AE%B0%E5%BD%95&amp;url=/archives/germany-iphone-tax-refund-guide" width="1" height="1" alt="" style="opacity:0;"> <p>好久没和大家更新博客了,这段时间真的事情巨多(家里的事情+公司出差+回来之后研究小龙虾和Claude Code),一直想着有时间就要更新一下,但是每次回到家忙完事情已经挺晚了,也感觉累了,就迟迟没有动手写博客。</p> <p>今天趁着闲暇时间,赶紧和大家更新一波。</p> <h2 id="购机篇">购机篇</h2> <p>我在3月份的时候出差去了趟德国,工作结束之后,我突然心血来潮说要不要整一部国际版的iPhone。</p> <p>熟悉咕咕的小伙伴知道,其实我目前有一台美版的iPhone SE3在服役中(支持实体SIM+eSIM),手感非常好,续航问题我也通过背夹电池的方法解决了(官方方案的升级版,后续和大家分享,可以重度使用一天),但问题就是屏幕确实有点小了,打字也容易按错。</p> <p>"这次出差算是比较成功的,下次带队不知道是啥时候了,买台iPhone 17 Pro Max奖励一下自己,也顺便给大家实测一下在德国购买iPhone的流程和后续的退税流程。"</p> <p>嗯,我是这么说服我自己的。虽然我知道港版功能一样,而且更便宜……</p> <p>德国这边对换手机这件事情好像他们不怎么在意,地铁公交上很多都用的旧手机。因为我第二天就要出发返回国内,我先看了下小红书攻略,说最好提前预约,然后门店提货,会更稳一点,于是我就用我的SE3 在苹果的德国官网上下单了一台蓝色 512G的iPhone 17 Pro Max,用的Apple Pay选的Chase的信用卡付款的,选择线下提货的地点是慕尼黑玛丽亚广场的苹果官方旗舰店。</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F02%2F145346-1.webp&amp;size=m" alt="c8a62bede31c33f7ae35f6174e36d34e.png"></p> <p>早起过去,人果然很多。</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F02%2F145344-1.webp&amp;size=m" alt="IMG20260316114848.jpg"></p> <p>和工作人员说明来取货,出示了订单和二维码,</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F02%2F145340-1.webp&amp;size=m" alt="b55f6bf87662b37b6983b935ce873670.png"></p> <p>很快小姐姐就给我拿来了手机。</p> <p>图片 小姐姐</p> <p>然后我表示我需要退税,小姐姐似乎不太懂,询问了身边的同事,叽里咕噜的,德语我们也听不懂,然后小姐姐去拿来了一张单子,长这样:</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F02%2F145337-1.webp&amp;size=m" alt="微信图片_20260402135927_278_361.jpg"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F03%2F101000-1.webp&amp;size=m" alt="DJI_20260316093501_0052_D-0004.png"></p> <p>你敢相信,在德国给外国人的退税的单子居然是德语的,而且小姐姐很抱歉地说没有英语的版本,可能需要我们自己借助翻译填写一下……</p> <p>而且由于我们是线上下单的,店里并没有给我们发票。(我查询了一下发现退税需要有退税单和发票还有实物的)</p> <h2 id="退税踩坑">退税踩坑</h2> <p>我虽然表示震惊,但也接受了,凭借我多年官网购买iPhone的经验,苹果官方肯定会给我邮件发一个发票的,而且看起来这个表是苹果官方的退税,没有中间商赚差价,可以退全额,你知道德国的电子产品消费税是多少吗?19% !</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F02%2F145335-1.webp&amp;size=m" alt="c52a32d17627facb4ba29e9596383aca.png"></p> <p>怪不得感觉大家都换新手机不感冒……</p> <p>然而新的问题出现了……</p> <p>我下午翻看邮件,一直没有等到苹果给我发的发票,没有发票就意味着海关不可能给我退税,我又查了下,发现在官网购买的手机,电子发票可能是在24-48小时内送达到邮箱!我的机票是第二天早上的,时间上来不及了。</p> <p>于是我和同事又感受了大概四十分钟的地铁,从慕尼黑机场的希尔顿返回到玛丽亚广场。我找了个理由和店员说支付的时候卡弄错了,想要把这台网上订的、上午刚提的iPhone退了,然后换一张卡在店里直接买一台。</p> <p>这次接待的是一个小哥,小哥欣然同意表示没问题,简单检查了手机之后,直接给我退了款,然后我换了一张招行的卡支付,他还是把这台手机给了我,并熟练地给我global blue的单子,告诉我可以退大概10%的税,而且在玛丽亚广场不远的地方有global blue的柜台。(同事略懂日语,还和小哥谈起了他手臂上的纹身 = =)</p> <p>我们过去之后工作人员给盖了章,然后工作人员让我出示了信用卡(因为我打算退到信用卡里),最后告诉了我慕尼黑机场的海关的位置,以及告诉我敲完海关的章需要把信封交给机场的global blue的柜台,整体体验非常丝滑。</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F02%2F145331-1.webp&amp;size=m" alt="IMG20260316202639.jpg"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F02%2F145340-1_1.webp&amp;size=m" alt="IMG_20260402_144825.jpg"></p> <h2 id="退税篇">退税篇</h2> <p>手机总算告一段落,但是还有一个问题出现了……</p> <p>本来我打算直接拆封使用的,但是我还是做了一下功课——购买的产品不能使用,一旦使用了之后海关不给退税!</p> <p>所以还是只能老老实实装在包里,等第二天退完税之后使用。</p> <p>我这次是慕尼黑 T1 航站楼出发,海关在 B 区,Global Blue 就在对面,流程还算比较清楚。</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F02%2F145328-1.webp&amp;size=m" alt="IMG20260316144455.jpg"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F02%2F145339-1.webp&amp;size=m" alt="4913918cdc827cf000974b0dbb414e39.png"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F02%2F145332-1.webp&amp;size=m" alt="bcd887f1b03eb755000264551cdf02e9.png"></p> <p>如果你买的东西是走 Global Blue 退税的,而且放在托运行李箱里,值机的时候一定要先跟工作人员说:</p> <blockquote> <p>箱子里有 tax free items</p> </blockquote> <p>工作人员会先给你的行李箱贴标签,然后你拿着箱子去海关那边盖章,盖完之后海关会直接帮你把行李托运走,因为前面已经贴好标签了,所以不用担心箱子乱跑。</p> <p>之后你再去对面的 Global Blue 柜台办后续就可以。</p> <p>如果退税物品是在随身行李里,正常来说是要过完安检以后,再去里面的海关检查盖章。</p> <p>不过我这次也直接拿给外面的海关看了,结果他也给我盖章了,所以我这次就一起退掉了,但这个我感觉不一定每次都行,可能还是看现场工作人员。</p> <p><strong>几个小经验:</strong></p> <ul> <li>小额的东西一般不太查</li> <li>大额的基本都会查</li> <li>买的东西千万别拆封</li> </ul> <p>这次买的手机,海关那边检查了非常久,反复用手指抠,问我是不是拆过。所以像 iPhone 这种高价值商品,千万别提前拆,不然很容易影响退税。</p> <p>顺便说一下,这次除了手机,我在 dm 也顺手买了一些东西。dm 的退税流程和 Global Blue 不太一样,麻烦不少——要么你下次回店里,拿海关盖章的小票再去退;要么走国内的易退税邮寄处理。两种我个人觉得都不算方便,有机会还是直接去店里退更省事。不过这次 dm 的东西,海关是完全没检查。</p> <h2 id="最终到手价格">最终到手价格</h2> <p>最后,看看这部手机退税下来一共花了多少钱:</p> <p>手机原价 13525.96 - 汇率优惠 13.53 - Global Blue 退税 1340.78 - 招行1%返现 131.46 = <strong>12040.19 元</strong></p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F02%2F145313-1.webp&amp;size=m" alt="截屏 2026-04-02 14.19.48.png" style="zoom:50%;"> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F02%2F145306-1.webp&amp;size=m" alt="微信图片_20260402142038_1463_68.jpg" style="zoom:50%;"> <p>招行那个1%的返现好像实际到账不足1%?</p> <p>比起国内还是贵了不少的。</p> <h2 id="关于德国版-iPhone">关于德国版 iPhone</h2> <p>最后,给大家看一下德国版本的iPhone有啥不一样的地方:</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F04%2F03%2F100929-1.webp&amp;size=m" alt="微信图片_20260403080935_283_361.jpg" style="zoom:50%;"> <p>其实除了这个CE标识,其他的和港版应该是一样的,日常eSIM需求的更推荐港版,我这个就当纪念了 = =</p>

2026/4/3
阅读更多

10 分钟搭建一个支持超过 1000 种不同格式的在线文件转换器——ConvertX|好玩儿的 Docker 项目

<img src="https://blog.laoda.de/plugins/feed/assets/telemetry.gif?title=10%20%E5%88%86%E9%92%9F%E6%90%AD%E5%BB%BA%E4%B8%80%E4%B8%AA%E6%94%AF%E6%8C%81%E8%B6%85%E8%BF%87%201000%20%E7%A7%8D%E4%B8%8D%E5%90%8C%E6%A0%BC%E5%BC%8F%E7%9A%84%E5%9C%A8%E7%BA%BF%E6%96%87%E4%BB%B6%E8%BD%AC%E6%8D%A2%E5%99%A8%E2%80%94%E2%80%94ConvertX%EF%BD%9C%E5%A5%BD%E7%8E%A9%E5%84%BF%E7%9A%84%20Docker%20%E9%A1%B9%E7%9B%AE&amp;url=/archives/docker-compose-install-convertx" width="1" height="1" alt="" style="opacity:0;"> <h2 id="1--唠嗑">1. 唠嗑</h2> <p>好久没更新了,这周来和大家分享一个自托管的在线文件转换器。支持超过一千种不同格式。使用 TypeScript、Bun 和 Elysia 编写。</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F01%2F20%2F150219-1.webp&amp;size=m" alt="e3a1dbdc76a602c085010e7ba78c6e40.png"></p> <h2 id="2--ConvertX-简介">2. ConvertX 简介</h2> <p><strong>功能特性</strong></p> <ul> <li>将文件转换为不同格式</li> <li>一次处理多个文件</li> <li>密码保护</li> <li>多个账户</li> </ul> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F01%2F20%2F150217-1.webp&amp;size=m" alt="5da3095bb57e3702117dda7268c82b2d.png"></p> <p>支持转换的类型</p> <table> <thead> <tr> <th>Converter</th> <th>Use case</th> <th>Converts from</th> <th>Converts to</th> </tr> </thead> <tbody> <tr> <td><a href="https://inkscape.org/">Inkscape</a></td> <td>Vector images</td> <td>7</td> <td>17</td> </tr> <tr> <td><a href="https://github.com/libjxl/libjxl">libjxl</a></td> <td>JPEG XL</td> <td>11</td> <td>11</td> </tr> <tr> <td><a href="https://github.com/RazrFalcon/resvg">resvg</a></td> <td>SVG</td> <td>1</td> <td>1</td> </tr> <tr> <td><a href="https://github.com/libvips/libvips">Vips</a></td> <td>Images</td> <td>45</td> <td>23</td> </tr> <tr> <td><a href="https://github.com/strukturag/libheif">libheif</a></td> <td>HEIF</td> <td>2</td> <td>4</td> </tr> <tr> <td><a href="https://tug.org/xetex/">XeLaTeX</a></td> <td>LaTeX</td> <td>1</td> <td>1</td> </tr> <tr> <td><a href="https://calibre-ebook.com/">Calibre</a></td> <td>E-books</td> <td>26</td> <td>19</td> </tr> <tr> <td><a href="https://www.libreoffice.org/">LibreOffice</a></td> <td>Documents</td> <td>41</td> <td>22</td> </tr> <tr> <td><a href="https://github.com/TomWright/dasel">Dasel</a></td> <td>Data Files</td> <td>5</td> <td>4</td> </tr> <tr> <td><a href="https://pandoc.org/">Pandoc</a></td> <td>Documents</td> <td>43</td> <td>65</td> </tr> <tr> <td><a href="https://github.com/mvz/email-outlook-message-perl">msgconvert</a></td> <td>Outlook</td> <td>1</td> <td>1</td> </tr> <tr> <td>VCF to CSV</td> <td>Contacts</td> <td>1</td> <td>1</td> </tr> <tr> <td><a href="https://dvisvgm.de/">dvisvgm</a></td> <td>Vector images</td> <td>4</td> <td>2</td> </tr> <tr> <td><a href="https://imagemagick.org/">ImageMagick</a></td> <td>Images</td> <td>245</td> <td>183</td> </tr> <tr> <td><a href="http://www.graphicsmagick.org/">GraphicsMagick</a></td> <td>Images</td> <td>167</td> <td>130</td> </tr> <tr> <td><a href="https://github.com/assimp/assimp">Assimp</a></td> <td>3D Assets</td> <td>77</td> <td>23</td> </tr> <tr> <td><a href="https://ffmpeg.org/">FFmpeg</a></td> <td>Video</td> <td>~472</td> <td>~199</td> </tr> <tr> <td><a href="https://potrace.sourceforge.net/">Potrace</a></td> <td>Raster to vector</td> <td>4</td> <td>11</td> </tr> <tr> <td><a href="https://github.com/visioncortex/vtracer">VTracer</a></td> <td>Raster to vector</td> <td>8</td> <td>1</td> </tr> <tr> <td><a href="https://github.com/microsoft/markitdown">Markitdown</a></td> <td>Documents</td> <td>6</td> <td>1</td> </tr> </tbody> </table> <h2 id="3--相关地址">3. 相关地址</h2> <p>官方 GitHub 地址:<a href="https://github.com/C4illin/ConvertX">https://github.com/C4illin/ConvertX</a> (目前 15.3k 个 star,欢迎大家去给项目点星星!)</p> <p>当然如果你想自己用 docker 搭建一个,那我们就继续往下!</p> <h2 id="4--搭建环境">4. 搭建环境</h2> <ul> <li>服务器:咕咕这边用的香港的 <a href="http://gao.ee/lca">莱卡云服务器</a>,建议服务器内存 1G 以上,当然你也可以选择其他 <a href="https://blog.laoda.de/vps">高性价比的服务器</a>。</li> <li>系统:Debian 11 (<a href="https://blog.laoda.de/archives/useful-script/">DD 脚本</a> 非必需 DD,用原来的系统也 OK,之后教程都是用 Debian 或者 Ubuntu 搭建~)</li> <li>安装好 Docker、Docker-compose(<a href="https://blog.laoda.de/archives/hello-docker/">相关脚本</a>)</li> <li>【必需】域名一枚,并做好解析到服务器上(<a href="https://blog.laoda.de/archives/namesilo/">域名购买、域名解析</a> <a href="https://www.bilibili.com/video/BV1Sy4y1k7kZ/">视频教程</a>)</li> <li>【非必需】提前安装好宝塔面板海外版本 aapanel,并安装好 Nginx(<a href="https://forum.aapanel.com/d/9-aapanel-linux-panel-6812-installation-tutorial">安装地址</a>)</li> <li>【非必需本教程选用】安装好 Nginx Proxy Manager(<a href="https://blog.laoda.de/archives/nginxproxymanager/">相关教程</a>)</li> </ul> <h2 id="5--搭建视频-过俩周补充-----">5. 搭建视频(过俩周补充 = =)</h2> <h3 id="5-1-YouTube">5.1 YouTube</h3> <p>视频地址:</p> <h3 id="5-2-哔哩哔哩">5.2 哔哩哔哩</h3> <p>哔哩哔哩:</p> <h2 id="6--搭建方式">6. 搭建方式</h2> <h3 id="6-1-安装-Docker-与-Nginx-Proxy-Manager">6.1 安装 Docker 与 Nginx Proxy Manager</h3> <p>可以直接参考这篇内容:</p> <p><a href="https://blog.laoda.de/archives/nginxproxymanager/">https://blog.laoda.de/archives/nginxproxymanager/</a></p> <h3 id="6-2-创建安装目录">6.2 创建安装目录</h3> <p>创建一下安装的目录:</p> <pre><code class="language-bash">sudo -i mkdir -p /root/data/docker_data/convertx cd /root/data/docker_data/convertx </code></pre> <p>接着我们来编辑下<code>docker-compose.yml</code></p> <pre><code class="language-bash">vim docker-compose.yml </code></pre> <pre><code class="language-yaml">services: convertx: image: ghcr.io/c4illin/convertx container_name: convertx restart: unless-stopped ports: - "3001:3000" environment: - JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken123412 # will use randomUUID() if unset # - HTTP_ALLOWED=true # uncomment this if accessing it over a non-https connection 如果通过 http 访问的话取消这行注释 - LANGUAGE=zh volumes: - ./data:/app/data </code></pre> <p>其中的左边的<code>3001</code>可以改成服务器上没有用过的端口。</p> <p>修改完成之后,可以在英文输入法下,按 <code>i</code> 修改,完成之后,按一下 <code>esc</code>,然后 <code>:wq</code> 保存退出。</p> <h4 id="环境变量">环境变量</h4> <p>所有都是可选的,但建议设置 <code>JWT_SECRET</code>。</p> <table> <thead> <tr> <th>Name</th> <th>Default</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td>JWT_SECRET</td> <td>when unset it will use the value from randomUUID()</td> <td>用于签署 JSON Web Token 的一串密钥字符串</td> </tr> <tr> <td>ACCOUNT_REGISTRATION</td> <td>false</td> <td>允许用户注册账户</td> </tr> <tr> <td>HTTP_ALLOWED</td> <td>false</td> <td>允许 HTTP 连接,仅在本地部署的时候将它设置为 true</td> </tr> <tr> <td>ALLOW_UNAUTHENTICATED</td> <td>false</td> <td>允许未认证用户使用该服务,仅在本地部署的时候将它设置为 true。</td> </tr> <tr> <td>AUTO_DELETE_EVERY_N_HOURS</td> <td>24</td> <td>每 n 小时检查一次,删除超过 n 小时的文件,设置为 0 表示禁用。</td> </tr> <tr> <td>WEBROOT</td> <td></td> <td>将根路径设置为 "/convert" 的地址将在 "example.com/convert/" 上提供网站。</td> </tr> <tr> <td>FFMPEG_ARGS</td> <td></td> <td>传递给 ffmpeg 输入文件的参数,例如 <code>-hwaccel vaapi</code>。有关硬件加速的更多信息,请参见 <a href="https://github.com/C4illin/ConvertX/issues/190">#190</a>。</td> </tr> <tr> <td>FFMPEG_OUTPUT_ARGS</td> <td></td> <td>传递给 ffmpeg 输出的参数,例如 <code>-preset veryfast</code></td> </tr> <tr> <td>HIDE_HISTORY</td> <td>false</td> <td>隐藏历史页面</td> </tr> <tr> <td>LANGUAGE</td> <td>en</td> <td>用于格式化日期字符串的语言,指定为 <a href="https://en.wikipedia.org/wiki/IETF_language_tag">BCP 47 language tag</a></td> </tr> <tr> <td>UNAUTHENTICATED_USER_SHARING</td> <td>false</td> <td>所有未经身份验证用户共享转换历史记录</td> </tr> <tr> <td>MAX_CONVERT_PROCESS</td> <td>0</td> <td>允许的最大并发转换进程数量。设置为 0 表示无限制。</td> </tr> </tbody> </table> <p>按需添加修改,修改完成之后,可以在英文输入法下,按 <code>i</code> 修改,完成之后,按一下 <code>esc</code>,然后 <code>:wq</code> 保存退出。</p> <h3 id="6-3-查看端口是否被占用">6.3 查看端口是否被占用</h3> <p>查看端口是否被占用(以 <code>3001</code> 为例),输入:</p> <pre><code class="language-bash">lsof -i:3001 #查看 3001 端口是否被占用,如果被占用,重新自定义一个端口 </code></pre> <p>如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~</p> <p>如果出现:</p> <pre><code class="language-bash">-bash: lsof: command not found </code></pre> <p>运行:</p> <pre><code class="language-bash">apt install lsof #安装 lsof </code></pre> <p>如果端口没有被占用(被占用了就修改一下端口,比如改成 <code>8381</code>,注意 docker 命令行里和防火墙都要改)</p> <h3 id="6-4-启动-convertx">6.4 启动 convertx</h3> <pre><code>cd /root/data/docker_data/convertx docker compose up -d # 注意,老版本用户用 docker-compose up -d </code></pre> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F01%2F20%2F150655-1.webp&amp;size=m" alt="662decf436731fa2acf7a276e4af9caf.png"></p> <p>镜像还是比较大的……</p> <p>耐心等待拉取好镜像,出现 <code>Created</code>的字样之后,</p> <p>理论上我们就可以输入 <code>http://ip:3001</code> 访问了。</p> <p>但是我们部署在公网一定要考虑使用反向代理工具配置 SSL!</p> <p>做反向代理前,你需要一个域名!</p> <p><a href="https://loll.cc/ns">namesilo</a> 上面 xyz 后缀的域名一年就 7 块钱,可以年抛。(冷知识,namesilo 上 6 位数字的 xyz 续费永远都是 0.99 美元 = =)</p> <p>如果想要长期使用,还是建议买 com 后缀的域名,更加正规一些,可以输入 <code>laodade</code> 来获得 1 美元的优惠(不知道现在还有没有)</p> <p><a href="https://loll.cc/ns">namesilo</a> 自带隐私保护,咕咕一直在用这家,价格也是这些注册商里面比较低的,关键是他家不像其他家域名注册商,没有七七八八的套路!(就是后台界面有些 <del>丑</del> 古老 = =)</p> <p><a href="https://blog.laoda.de/archives/namesilo/">【域名购买】Namesilo 优惠码和域名解析教程(附带服务器购买推荐和注意事项)</a></p> <p>我们接着往下看!</p> <h2 id="7--反向代理">7. 反向代理</h2> <h3 id="7-1-利用-Nginx-Proxy-Manager">7.1 利用 Nginx Proxy Manager</h3> <p>在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:<strong>域名一枚,并做好解析到服务器上</strong>(<a href="https://blog.laoda.de/archives/namesilo/">域名购买、域名解析</a> <a href="https://www.bilibili.com/video/BV1Sy4y1k7kZ/">视频教程</a>) (名称改成你自己想要的域名前缀即可)</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F01%2F20%2F150210-1.webp&amp;size=m" alt="0a6c012bb847558679e499f447dd4958.png"></p> <p>之后,登陆 Nginx Proxy Manager(不会的看这个:<strong>安装 Nginx Proxy Manager</strong>(<a href="https://blog.laoda.de/archives/nginxproxymanager/">相关教程</a>))</p> <blockquote> <p><strong>注意:</strong></p> <p>Nginx Proxy Manager(以下简称 NPM)会用到 <code>80</code>、<code>443</code> 端口,所以本机不能占用(比如原来就有 Nginx)</p> </blockquote> <p>直接丢几张图:</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F01%2F20%2F150207-1.webp&amp;size=m" alt="61a4b0f2f2c6bb56b3bf540e00deb8a5.png" style="zoom:50%;"> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F01%2F20%2F150204-1.webp&amp;size=m" alt="ceb23ce98beed6ac28add2b03d4e53e8.png" style="zoom:50%;"> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F01%2F20%2F150203-1.webp&amp;size=m" alt="894dac73d5b90a9032806b61cdf22540.png" style="zoom:50%;"> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F01%2F20%2F150200-1.webp&amp;size=m" alt="67b28075187f39a44dce4b23b9228abb.png" style="zoom:50%;"> <blockquote> <p>注意填写对应的 <code>域名</code>、<code>IP</code> 和 <code>端口</code>,按文章来的话,应该是 <code>3001</code></p> </blockquote> <p><strong>IP 填写:</strong></p> <p>如果 Nginx Proxy Manager 和 convertx 在同一台服务器上,可以在终端输入:</p> <pre><code class="language-bash">ip addr show docker0 </code></pre> <p>查看对应的 Docker 容器内部 IP。</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2024%2F12%2F12%2F153819-1.webp&amp;size=m" style="zoom:50%;"> <p>否则直接填 convertx 所在的服务器 IP 就行。</p> <p>然后访问域名就可以访问了!</p> <h3 id="7-2-利用宝塔面板">7.2 利用宝塔面板</h3> <p>发现还是有不少小伙伴习惯用宝塔面板,这边也贴一个宝塔面板的反代配置:</p> <p>直接新建一个站点,不要数据库,不要 php,纯静态即可。</p> <p>然后打开下面的配置,修改 Nginx 的配置。</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2024%2F12%2F12%2F153816-1.webp&amp;size=m" alt="image-20220819150345725" style="zoom: 33%;"> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2024%2F12%2F12%2F153814-1.webp&amp;size=m" alt="image-20220819150542867" style="zoom: 33%;"> <p>代码如下:</p> <pre><code class="language-nginx">location / { proxy_pass http://127.0.0.1:3001/; # 注意改成你实际使用的端口 rewrite ^/(.*)$ /$1 break; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade-Insecure-Requests 1; proxy_set_header X-Forwarded-Proto https; } </code></pre> <p>此方法对 90% 的反向代理都能生效,然后就可以用域名来安装访问了。</p> <p>有同学可能会问,为什么不直接用宝塔自带的反向代理功能。</p> <img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2024%2F12%2F12%2F153804-1.webp&amp;size=m" alt="image-20220819150730128" style="zoom: 33%;"> <p>也可以,不过咕咕自己之前遇到过当有多个网站需要反代的时候,在这边设置会报错的情况 = =</p> <p>所以后来就不用了,直接用上面的方法来操作了。</p> <h2 id="8--使用教程">8. 使用教程</h2> <p>非常简单,所见即所得。</p> <p>先注册账号:</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F01%2F20%2F150155-1.webp&amp;size=m" alt="45e7bc9343633faae0922c3f9a788670.png"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F01%2F20%2F150153-1.webp&amp;size=m" alt="f1a7c788c803a41e6aa3ccb88607c5fd.png"></p> <p>JPG 转换成 webp</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F01%2F20%2F150151-1.webp&amp;size=m" alt="8475bb89d272567691366dd6c838f86b.png"></p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F01%2F20%2F150148-1.webp&amp;size=m" alt="f65aa6b232020dc70071d0cea24f442c.png"></p> <p>MP4 转 AVI</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F01%2F20%2F150146-1.webp&amp;size=m" alt="2e655386026439a4f31bad8221504d7f.png"></p> <p>正常转换。</p> <p>转换历史:</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F01%2F20%2F150143-1.webp&amp;size=m" alt="11626ac66e09b45b5d7efe77b02e8d10.png"></p> <p>服务器里还是能看到文件的,</p> <p><img src="https://blog.laoda.de/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fimg.laoda.de%2Fi%2F2026%2F01%2F20%2F150132-1.webp&amp;size=m" alt="97c9f37455cfbabc34e0049b079356ef.png"></p> <h3 id="8-1-更新-convertx">8.1 更新 convertx</h3> <p>这个项目后续会持续有更新,所以提供一个更新的方式。</p> <pre><code class="language-yaml">cd /root/data/docker_data/convertx docker compose pull docker compose up -d # 请不要使用 docker compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。 docker image prune # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像 </code></pre> <p>提示:</p> <pre><code class="language-bash">WARNING! This will remove all dangling images. Are you sure you want to continue? [y/N] </code></pre> <p>输入 <code>y</code></p> <p>利用 Docker 搭建的应用,更新非常容易~</p> <h3 id="8-2-卸载-convertx">8.2 卸载 convertx</h3> <p>同样进入安装页面,先停止所有容器。</p> <pre><code class="language-bash">cd /root/data/docker_data/convertx docker compose down cd .. rm -rf /root/data/docker_data/convertx # 完全删除 </code></pre> <p>可以卸载得很干净。</p> <h2 id="9--使用问题">9. 使用问题</h2> <p>大家使用上有什么心得或者问题,欢迎评论区交流~</p> <h2 id="10--结尾">10. 结尾</h2> <p>祝大家用得开心,有问题可以去 GitHub 提 <a href="https://github.com/C4illin/ConvertX/issues">Issues</a>,也可以在评论区互相交流探讨。</p> <p>同时,有能力给项目做贡献的同学,也欢迎积极加入到 <a href="https://github.com/C4illin/ConvertX">项目</a> 中来,贡献自己的一份力量!</p> <p>最后,感谢作者 <a href="https://github.com/C4illin">@C4illin</a> 的辛苦付出,让我们能用到这么优秀的项目!欢迎大家都去给这个项目点个 star。</p> <h2 id="参考资料">参考资料</h2> <p>官方 GitHub:<a href="https://github.com/C4illin/ConvertX">https://github.com/C4illin/ConvertX</a></p>

2026/1/20
阅读更多

推荐订阅

Chen's Blog,分享安全领域的所思、所想、所学。

空鸣深语

无论你是游戏死忠,还是轻度的休闲玩家,在这里都能找到感兴趣的东西。