<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>自托管 &#8211; mylogs.cn</title>
	<atom:link href="https://mylogs.cn/tag/%e8%87%aa%e6%89%98%e7%ae%a1/feed/" rel="self" type="application/rss+xml" />
	<link>https://mylogs.cn</link>
	<description>发现、记录、分享</description>
	<lastBuildDate>Fri, 14 Aug 2026 22:08:31 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>4 款冷门开源应用，专治生活里的小麻烦</title>
		<link>https://mylogs.cn/four-open-source-apps-life-hacks/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 22:07:03 +0000</pubDate>
				<category><![CDATA[科技]]></category>
		<category><![CDATA[Espanso]]></category>
		<category><![CDATA[HomeBox]]></category>
		<category><![CDATA[KitchenOwl]]></category>
		<category><![CDATA[ntfy]]></category>
		<category><![CDATA[开源软件]]></category>
		<category><![CDATA[效率工具]]></category>
		<category><![CDATA[自托管]]></category>
		<guid isPermaLink="false">https://mylogs.cn/four-open-source-apps-life-hacks/</guid>

					<description><![CDATA[开源软件常被记住的，是那些「大块头」的替代方案——比如取代某款云盘或密码管理器。但真正让人眼前一亮的，往往是一 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">开源软件常被记住的，是那些「大块头」的替代方案——比如取代某款云盘或密码管理器。但真正让人眼前一亮的，往往是一些解决细小麻烦的小工具：它们不显眼，却恰好填补了某类需求。下面这四款均免费开源，多数还能自行部署在自家设备上。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89ef8607b9b&quot;}" data-wp-interactive="core/image" data-wp-key="6a89ef8607b9b" class="wp-block-image size-large aligncenter wp-lightbox-container"><img fetchpriority="high" decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/4b3c8e35c82eda885d98fed88208787b_header-1.webp" alt="4 款冷门开源应用，专治生活里的小麻烦" class="wp-image-4892" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/4b3c8e35c82eda885d98fed88208787b_header-1.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/4b3c8e35c82eda885d98fed88208787b_header-1-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/4b3c8e35c82eda885d98fed88208787b_header-1-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/4b3c8e35c82eda885d98fed88208787b_header-1-768x432.webp 768w" sizes="(max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：How-To Geek／Lucas Gouveia</figcaption></figure>





<h2 class="wp-block-heading">HomeBox：把家里的杂物管起来</h2>



<p class="wp-block-paragraph">HomeBox 是一款面向普通家庭的资产清点与收纳系统，通过 Docker 一键部署。用户先按房间、货架建立位置，再逐项登记物品，并附上照片、购买日期与序列号，之后的查找就交给搜索完成。一个贴心之处是支持用二维码快速检索。</p>



<p class="wp-block-paragraph">它用 Go 语言编写，资源占用很低，官方给出的闲置内存不到 50MB，因此跑在一台闲置的 NAS 或老旧的备用电脑上也不会吃力。数据起步可用 SQLite，等物品数量变大再迁移到 Postgres 即可。</p>



<h2 class="wp-block-heading">KitchenOwl：终结重复买菜的尴尬</h2>



<p class="wp-block-paragraph">共享清单的痛点，几乎每个家庭都遇到过：明明家里有人买过，结果另一人又买了一遍。KitchenOwl 用一份实时同步的共享清单解决这个问题，并会自动对添加的商品分类。</p>



<p class="wp-block-paragraph">除了购物清单，它还能管理菜谱：把支持站点的链接粘贴进去，配料会被直接抓取进清单。不过作者实测发现，不少热门网站暂不支持。此外，它还带有膳食规划日历与简单的开支记录，适合想要逐步摆脱某大型科技公司生态的用户作为切入点。</p>



<h2 class="wp-block-heading">ntfy：让任意脚本都能给你发通知</h2>



<p class="wp-block-paragraph">ntfy 是一个可以自行部署的发布—订阅式通知服务，用法简单到只需向某个主题发送一条 HTTP 请求，所有订阅该主题的设备就会收到推送。它甚至可以替代某些聊天工具的通知机器人。</p>



<p class="wp-block-paragraph">这种极简特性，使它特别适合嵌入各种家庭自动化。备份脚本跑完想让手机震一下？磁盘空间不足要提醒？门铃传感器被触发？一条 POST 请求就能搞定。它是个能轻松接进其他项目的小零件。</p>



<h2 class="wp-block-heading">Espanso：终结复制粘贴的循环</h2>



<p class="wp-block-paragraph">Espanso 是一款文本展开工具。初看似乎过于简单，直到真正用起来才发现省事：输入一个简短触发词，例如「:addr」，它就会瞬间展开成完整邮寄地址、一段常用邮件回复，或是每天要粘贴十遍的代码块。</p>



<p class="wp-block-paragraph">它在底层用 Rust 编写、通过 YAML 文件配置，因此运行快且完全本地化，没有云同步、也没有账号，片段不会离开本机（除非用户自行备份）。它还能调用 Python、Node 等脚本，化身轻量自动化工具。macOS 与 Linux 均可使用，在 Windows 记事本上作者遇到过一些小问题。</p>



<h2 class="wp-block-heading">小工具也有大价值</h2>



<p class="wp-block-paragraph">这四款应用都不花哨，也替代不了媒体服务器或一站式大软件。它们做的是解决那些人们早已习惯忍受的小麻烦——这恰恰是垂直开源软件的魅力所在。</p>



<p class="has-small-font-size wp-block-paragraph">来源：How-To Geek（作者 Zunaid Ali）</p>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>四个开源神器，专治那些想不到能靠软件解决的麻烦</title>
		<link>https://mylogs.cn/%e5%9b%9b%e4%b8%aa%e5%bc%80%e6%ba%90%e7%a5%9e%e5%99%a8%ef%bc%8c%e4%b8%93%e6%b2%bb%e9%82%a3%e4%ba%9b%e6%83%b3%e4%b8%8d%e5%88%b0%e8%83%bd%e9%9d%a0%e8%bd%af%e4%bb%b6%e8%a7%a3%e5%86%b3%e7%9a%84%e9%ba%bb/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 20:37:16 +0000</pubDate>
				<category><![CDATA[经验与技巧]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[开源软件]]></category>
		<category><![CDATA[效率工具]]></category>
		<category><![CDATA[自托管]]></category>
		<guid isPermaLink="false">https://mylogs.cn/%e5%9b%9b%e4%b8%aa%e5%bc%80%e6%ba%90%e7%a5%9e%e5%99%a8%ef%bc%8c%e4%b8%93%e6%b2%bb%e9%82%a3%e4%ba%9b%e6%83%b3%e4%b8%8d%e5%88%b0%e8%83%bd%e9%9d%a0%e8%bd%af%e4%bb%b6%e8%a7%a3%e5%86%b3%e7%9a%84%e9%ba%bb/</guid>

					<description><![CDATA[大家熟悉的开源软件，多是替代云盘、密码管理器这类「大活」。可生活里不少小麻烦——家里东西随手放、找不到；一家人 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">大家熟悉的开源软件，多是替代云盘、密码管理器这类「大活」。可生活里不少小麻烦——家里东西随手放、找不到；一家人各买各的、重复采购；脚本跑完了没人通知；同一段地址天天复制粘贴——其实也有轻量开源工具能解决，而且大多能自托管、完全免费。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89ef8608bdb&quot;}" data-wp-interactive="core/image" data-wp-key="6a89ef8608bdb" class="wp-block-image size-large aligncenter wp-lightbox-container"><img decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/4b3c8e35c82eda885d98fed88208787b_header.webp" alt="四个开源神器，专治那些想不到能靠软件解决的麻烦" class="wp-image-4884" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/4b3c8e35c82eda885d98fed88208787b_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/4b3c8e35c82eda885d98fed88208787b_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/4b3c8e35c82eda885d98fed88208787b_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/4b3c8e35c82eda885d98fed88208787b_header-768x432.webp 768w" sizes="(max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：How-To Geek</figcaption></figure>





<h2 class="wp-block-heading">一、HomeBox：给家里建一份资产清单</h2>



<p class="wp-block-paragraph">解决：搬家翻箱倒柜、想不起备用 HDMI 线放哪。</p>



<p class="wp-block-paragraph">用法：用 Docker 一条命令拉起；按房间、货架建位置，录入物品时加上照片、购买日期和序列号，还能生成二维码方便检索。作者实测空闲内存占用不到 50MB，跑在旧电脑或 NAS 上毫无压力；数据少先用 SQLite，以后量大可换 Postgres。</p>



<h2 class="wp-block-heading">二、KitchenOwl：一家人共享购物清单</h2>



<p class="wp-block-paragraph">解决：你买的，家里人又买一遍。</p>



<p class="wp-block-paragraph">用法：建一个家庭共享清单，成员手机实时同步；添加物品会自动归类。它还能管食谱——粘贴支持的食谱链接，自动把食材拉进清单；另有饮食计划和简单记账。</p>



<h2 class="wp-block-heading">三、ntfy：让任意脚本给你发通知</h2>



<p class="wp-block-paragraph">解决：备份跑完、硬盘快满、门铃触发，你却后知后觉。</p>



<p class="wp-block-paragraph">用法：自托管 ntfy 后，任意脚本用一条 HTTP POST 就能往你手机推消息；一个主题（topic）被订阅，相关设备全收到，能替掉 Discord 通知。</p>



<h2 class="wp-block-heading">四、Espanso：把常用短语一键展开</h2>



<p class="wp-block-paragraph">解决：收货地址、邮件模板、常用代码，天天复制粘贴。</p>



<p class="wp-block-paragraph">用法：设个短触发词，比如输入 :addr 就展开成完整收货地址；桌面端装好 Espanso，手机上也能用类似文本快捷键，重复输入从此交给工具。</p>



<p class="wp-block-paragraph">注意：这几款大多需要自托管（HomeBox、ntfy 用 Docker，KitchenOwl、Espanso 有客户端或服务端），动手前先补一点 Docker 基础更顺手。它们轻量、可私有部署，正适合想逐步离开大厂生态的人。</p>



<p class="wp-block-paragraph">来源：How-To Geek</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>想自己掌控密码库？三款可自托管密码管理器</title>
		<link>https://mylogs.cn/%e6%83%b3%e8%87%aa%e5%b7%b1%e6%8e%8c%e6%8e%a7%e5%af%86%e7%a0%81%e5%ba%93%ef%bc%9f%e4%b8%89%e6%ac%be%e5%8f%af%e8%87%aa%e6%89%98%e7%ae%a1%e5%af%86%e7%a0%81%e7%ae%a1%e7%90%86%e5%99%a8/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Thu, 13 Aug 2026 16:52:27 +0000</pubDate>
				<category><![CDATA[科技]]></category>
		<category><![CDATA[AliasVault]]></category>
		<category><![CDATA[KeePassXC]]></category>
		<category><![CDATA[Vaultwarden]]></category>
		<category><![CDATA[密码管理]]></category>
		<category><![CDATA[自托管]]></category>
		<category><![CDATA[隐私安全]]></category>
		<guid isPermaLink="false">https://mylogs.cn/%e6%83%b3%e8%87%aa%e5%b7%b1%e6%8e%8c%e6%8e%a7%e5%af%86%e7%a0%81%e5%ba%93%ef%bc%9f%e4%b8%89%e6%ac%be%e5%8f%af%e8%87%aa%e6%89%98%e7%ae%a1%e5%af%86%e7%a0%81%e7%ae%a1%e7%90%86%e5%99%a8/</guid>

					<description><![CDATA[把账号密码交给商业云服务，是多数人的默认选择。但数据泄露事件频发，加上部分服务商调整收费策略，让不少人开始担心 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">把账号密码交给商业云服务，是多数人的默认选择。但数据泄露事件频发，加上部分服务商调整收费策略，让不少人开始担心：自己最常用的登录凭证，是不是等于攥在别人手里。对于已经拥有一台家用服务器、或愿意动手折腾的用户来说，把密码库搬回自己掌控的服务器，既能保留成熟的客户端体验，又不必把最敏感的数据交出去。How-To Geek 撰稿人 Goran Damnjanovic 近期盘点了 2026 年值得关注的三款自托管密码管理器。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89ef8609c6e&quot;}" data-wp-interactive="core/image" data-wp-key="6a89ef8609c6e" class="wp-block-image size-large aligncenter wp-lightbox-container"><img decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/0a350584cd5d6a7888bbaf56654d1179_header.webp" alt="想自己掌控密码库？三款可自托管密码管理器" class="wp-image-4729" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/0a350584cd5d6a7888bbaf56654d1179_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/0a350584cd5d6a7888bbaf56654d1179_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/0a350584cd5d6a7888bbaf56654d1179_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/0a350584cd5d6a7888bbaf56654d1179_header-768x432.webp 768w" sizes="(max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：How-To Geek</figcaption></figure>





<h2 class="wp-block-heading">一、Vaultwarden：Bitwarden 用户的平替服务端</h2>



<p class="wp-block-paragraph">如果本来就使用 Bitwarden，Vaultwarden 是最顺滑的迁移路线。它是一款完全开源的社区版服务端，兼容官方 Bitwarden 各平台客户端，只需用 Vaultwarden 的账号登录即可。</p>



<ol class="wp-block-list"><li>准备一台能常驻运行的设备，官方推荐树莓派即可，资源占用极低。</li><li>用 Docker 部署：编写 docker-compose.yml，填入域名与 TLS 证书路径，启动 Vaultwarden 服务。</li><li>浏览器访问部署好的 Web 保险库，按引导创建账号，设置主密码（强度会被实时评级，建议设为「强」）。</li><li>在手机、电脑的 Bitwarden 客户端里，把服务器地址改成自己的域名，即可照常同步。</li></ol>



<p class="wp-block-paragraph">它保留了 Bitwarden 几乎全部功能，包括原本需要付费订阅的 TOTP 验证器、管理后台、硬件密钥二次验证和保险库健康报告，且同样使用 AES-256 加密。</p>



<h2 class="wp-block-heading">二、KeePassXC：纯本地、跨平台</h2>



<p class="wp-block-paragraph">KeePassXC 是老牌 KeePass 的开源分支，在 Windows、macOS、Linux 上体验一致，移动端可通过 KeePassDX、KeePass2Android（安卓）或 Strongbox、KeePassium（iPhone）打开同一份文件。</p>



<ol class="wp-block-list"><li>在电脑上安装 KeePassXC，新建一个 .kdbx 保险库文件，设好主密码。</li><li>不想自建云存储，直接把 .kdbx 文件在设备间手动拷贝即可。</li><li>想多端同步，可把文件放到自建的 Nextcloud，或用 Syncthing 这类点对点同步工具自动同步；追求省事也能丢进网盘，只是会削弱隐私初衷。</li></ol>



<h2 class="wp-block-heading">三、AliasVault：自带邮件别名的新玩家</h2>



<p class="wp-block-paragraph">AliasVault 仍处在公开测试阶段，但功能已经相当完整，同样用 Docker 部署，官方提供详尽的安装文档。</p>



<ol class="wp-block-list"><li>通过 Docker 拉起 AliasVault 服务，按官方文档完成初始化。</li><li>除密码与通行密钥外，它内置 2FA 验证器和真正的离线编辑能力，断网改完、联网即同步。</li><li>它的独特卖点是内置邮件服务器，可生成带姓名、生日等信息的专属邮件别名，注册网站时不再暴露真实邮箱。</li><li>支持指纹、面容等生物识别，可往保险库里存加密附件，并提供网页端、Chrome/Firefox/Edge/Safari 插件及 iOS、安卓原生 App。</li></ol>



<p class="wp-block-paragraph">注意事项：自托管意味着要自己负责备份、更新与暴露面安全，建议配合定期离线备份，并把服务放在内网或加一层反向代理与强密码保护。</p>



<p class="wp-block-paragraph">来源：How-To Geek</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>远程控制别再交月费，一台服务器自己管</title>
		<link>https://mylogs.cn/%e8%bf%9c%e7%a8%8b%e6%8e%a7%e5%88%b6%e5%88%ab%e5%86%8d%e4%ba%a4%e6%9c%88%e8%b4%b9%ef%bc%8c%e4%b8%80%e5%8f%b0%e6%9c%8d%e5%8a%a1%e5%99%a8%e8%87%aa%e5%b7%b1%e7%ae%a1/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Thu, 13 Aug 2026 04:29:49 +0000</pubDate>
				<category><![CDATA[经验与技巧]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[RustDesk]]></category>
		<category><![CDATA[开源软件]]></category>
		<category><![CDATA[自托管]]></category>
		<category><![CDATA[远程桌面]]></category>
		<guid isPermaLink="false">https://mylogs.cn/%e8%bf%9c%e7%a8%8b%e6%8e%a7%e5%88%b6%e5%88%ab%e5%86%8d%e4%ba%a4%e6%9c%88%e8%b4%b9%ef%bc%8c%e4%b8%80%e5%8f%b0%e6%9c%8d%e5%8a%a1%e5%99%a8%e8%87%aa%e5%b7%b1%e7%ae%a1/</guid>

					<description><![CDATA[迷你主机塞在电视柜后面，家庭服务器摆在阳台角落。想重启一个 Docker 容器、传个文件、装次更新，总不能每次 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">迷你主机塞在电视柜后面，家庭服务器摆在阳台角落。想重启一个 Docker 容器、传个文件、装次更新，总不能每次都拖出显示器和键盘。远程控制软件因此成了刚需，但免费额度越收越紧，包月订阅又为一台自用机器付得肉疼。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89ef860ade9&quot;}" data-wp-interactive="core/image" data-wp-key="6a89ef860ade9" class="wp-block-image size-large aligncenter wp-lightbox-container"><img loading="lazy" decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/eb13d4fbccce9a563647d39d38900ce6_header.webp" alt="远程控制别再交月费，一台服务器自己管" class="wp-image-4660" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/eb13d4fbccce9a563647d39d38900ce6_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/eb13d4fbccce9a563647d39d38900ce6_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/eb13d4fbccce9a563647d39d38900ce6_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/eb13d4fbccce9a563647d39d38900ce6_header-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：XDA Developers</figcaption></figure>





<p class="wp-block-paragraph">XDA 撰稿人分享了自己的替换过程：过去一直靠 TeamViewer 管理迷你主机，稳定好用，但随着家里自建服务越来越多，付费方案里那些面向企业运维的高级功能几乎用不上——需求无非是连上自己的几台设备而已。最终换成了开源的 RustDesk，并把中转服务器也搬到了自己的机器上。</p>



<p class="wp-block-paragraph">RustDesk 是一款免费开源的远程桌面工具，支持无人值守连接、文件传输、剪贴板共享和多显示器，客户端覆盖 Windows、Linux、macOS、Android 和 iPhone。它最大的区别在于：既可以用官方公共服务器，也能自己搭一套中转服务，让连接不经过别人的服务器。</p>



<h2 class="wp-block-heading">一、先跑起来：Docker 部署服务端</h2>



<p class="wp-block-paragraph">服务端由两个组件构成，<code>hbbs</code> 负责 ID 注册与打洞，<code>hbbr</code> 负责中继转发，两个都要跑。在装好 Docker 的 Linux 机器上执行三条命令：</p>



<pre class="wp-block-code"><code>sudo docker image pull rustdesk/rustdesk-server
sudo docker run --name hbbs -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbs
sudo docker run --name hbbr -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbr</code></pre>



<p class="wp-block-paragraph">几点要留意：<code>--net=host</code> 只在 Linux 上有效，作用是让服务看到真实来访 IP 而不是容器内网地址；Windows 上要去掉 <code>sudo</code> 和 <code>--net=host</code>。如果连接有问题，先把 <code>--net=host</code> 去掉试试。<code>-v ./data:/root</code> 一定要挂上，升级或重建容器时数据才不会丢。看不到日志可以用 <code>docker logs hbbs</code> 查看。</p>



<h2 class="wp-block-heading">二、放行端口</h2>



<p class="wp-block-paragraph">在防火墙和路由器上开放这几个端口，缺一个都可能连不上：</p>



<ol class="wp-block-list"><li><code>21115</code>（TCP）：NAT 类型检测。</li><li><code>21116</code>（TCP 和 UDP 都要开）：UDP 用于 ID 注册和心跳，TCP 用于打洞与连接。</li><li><code>21117</code>（TCP）：中继服务。</li><li><code>21114</code>（TCP）：网页控制台，仅专业版可用，开源版不需要。</li><li><code>21118</code>、<code>21119</code>（TCP）：网页客户端专用。不用网页端就保持关闭——官方明确提示，直接暴露这两个端口存在伪造来访 IP 的风险。</li></ol>



<h2 class="wp-block-heading">三、取出公钥</h2>



<p class="wp-block-paragraph">首次运行 <code>hbbs</code> 时会自动生成一对密钥。到挂载出来的 <code>data</code> 目录里找到 <code>id_ed25519.pub</code> 文件，把里面的字符串复制出来备用。这是用于加密连接的公钥，和商业版的许可证密钥是两回事。</p>



<h2 class="wp-block-heading">四、客户端指向自己的服务器</h2>



<p class="wp-block-paragraph">被控端和主控端都要设置一遍：</p>



<ol class="wp-block-list"><li>打开 RustDesk 客户端，点 ID 旁边的三点菜单 [ ⋮ ]，选择&#8221;网络&#8221;。</li><li>点解锁按钮，按提示提升权限。</li><li>在&#8221;ID 服务器&#8221;填服务器地址，例如 <code>hbbs.example.com</code> 或 <code>hbbs.example.com:21116</code>。</li><li>在&#8221;密钥&#8221;栏粘贴上一步取到的公钥内容。</li><li>中继服务器和 API 服务器留空即可，RustDesk 会自动推导，中继默认指向 21117 端口。</li></ol>



<p class="wp-block-paragraph">设备多的时候不必逐台手填：在配好的那台机器上进&#8221;设置 → 网络&#8221;，解锁后点&#8221;导出服务器配置&#8221;，复制得到的字符串；换到新设备同样进&#8221;设置 → 网络&#8221;，解锁后点&#8221;导入服务器配置&#8221;，设置会自动填好，最后点&#8221;应用&#8221;。</p>



<h2 class="wp-block-heading">注意事项</h2>



<p class="wp-block-paragraph">如果所在网络打洞成功率低，可以在 docker-compose 的 hbbs 环境变量里加上 <code>ALWAYS_USE_RELAY=Y</code>，强制走中继，稳定性换带宽。服务器建议放在有公网 IP 的机器上，否则外网设备找不到它。</p>



<p class="wp-block-paragraph">来源：XDA Developers</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>家庭服务器弃用 Unraid 转投 Ubuntu，Docker 反而更顺手</title>
		<link>https://mylogs.cn/unraid-to-ubuntu-homelab-docker/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Wed, 12 Aug 2026 00:24:39 +0000</pubDate>
				<category><![CDATA[科技]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Homelab]]></category>
		<category><![CDATA[NAS]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unraid]]></category>
		<category><![CDATA[家庭服务器]]></category>
		<category><![CDATA[自托管]]></category>
		<guid isPermaLink="false">https://mylogs.cn/unraid-to-ubuntu-homelab-docker/</guid>

					<description><![CDATA[家庭服务器系统怎么选，是很多自托管玩家反复纠结的问题。一位长期使用 Unraid 的用户在折腾了近五年后，于  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">家庭服务器系统怎么选，是很多自托管玩家反复纠结的问题。一位长期使用 Unraid 的用户在折腾了近五年后，于 2025 年初把 Docker 负载从 Unraid 迁移到了 Ubuntu Server，结论是：存储仍交给 Unraid，容器编排交给 Ubuntu，整套家庭服务器反而跑得更顺。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89ef860c187&quot;}" data-wp-interactive="core/image" data-wp-key="6a89ef860c187" class="wp-block-image size-large aligncenter wp-lightbox-container"><img loading="lazy" decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/513e9358bbdae6b50a531fc3c5400acb_header.webp" alt="家庭服务器弃用 Unraid 转投 Ubuntu，Docker 反而更顺手" class="wp-image-4513" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/513e9358bbdae6b50a531fc3c5400acb_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/513e9358bbdae6b50a531fc3c5400acb_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/513e9358bbdae6b50a531fc3c5400acb_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/513e9358bbdae6b50a531fc3c5400acb_header-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：How-To Geek</figcaption></figure>





<p class="wp-block-paragraph">这位作者的家庭服务器最早围绕一台联想 RD440 机架式服务器搭建，Unraid 一肩挑起存储、虚拟机与 Docker 三件事。在 2021 年那个时间点，TrueNAS 的稳定版还没有今天这样完善的 Docker 支持，原有的 jail 机制也远不如 Unraid 上的 Docker 好用，于是 Unraid 成了「什么都让一套系统搞定」的自然选择。</p>



<h2 class="wp-block-heading">Unraid 曾是全能选手</h2>



<p class="wp-block-paragraph">客观地说，Unraid 作为存储平台表现相当出色，把存储、Docker 和虚拟机整合在一起，对刚接触容器的新手也很友好。作者坦言，正是在 Unraid 的图形界面里第一次用上了 Docker，比直接扑进 Docker Compose 或命令行要平缓得多。</p>



<p class="wp-block-paragraph">但「能做某事」不代表「适合做每件事」。随着使用深入，作者想要的容器功能越来越多，Unraid 在不少地方把简单任务变得不必要地麻烦，尤其是当需求超出它预设的模板时。</p>



<h2 class="wp-block-heading">卡在「应用模板」上</h2>



<p class="wp-block-paragraph">Unraid 的「应用模板」需要由社区或容器维护者手动提交，并非自动生成。作者开始遇到想用的容器却没有对应模板，只能手工凑配置，过程相当痛苦。模板本身虽好用，但修改起来往往比帮忙更添堵。</p>



<p class="wp-block-paragraph">更烦人的是查找成本：在社区仓库里搜一个容器，可能冒出十几个看似相同的模板，有时标「官方」有时又不标，挑出最合适的一个成了日常消耗。相比之下，直接从维护者的 GitHub 仓库拿官方的 Compose 文件或镜像，定位反而清晰得多。</p>



<h2 class="wp-block-heading">换回 Ubuntu 后打开了门</h2>



<p class="wp-block-paragraph">作者使用 Ubuntu Server 已超过十五年，命令行环境最为熟悉，迁移到 Ubuntu 跑 Docker 是顺理成章的决定。Ubuntu 原生支持 Docker，几乎每个主流容器都自带 Compose 文件，没有就用手写或 Portainer 补全，不必再受模板有无的制约。</p>



<p class="wp-block-paragraph">迁移带来的直接好处是「几乎任何容器都能跑」，而且运行更稳定。对需要精细控制网络、存储卷和依赖关系的服务来说，直接用维护者提供的清单部署，比在模板系统里反复试错省心得多。</p>



<h2 class="wp-block-heading">把家庭服务器拆开管</h2>



<p class="wp-block-paragraph">这篇文章给出的核心经验，是把家庭服务器按职责拆开：存储这件 Unraid 擅长的事继续交给它，Docker 编排这件 Ubuntu 擅长的事交给 Ubuntu。作者表示，正是因为 2025 年初把 Docker 从 Unraid 迁到 Ubuntu Server，家庭服务器才真正「起飞」，这是他为整套系统做过最对的一个决定。</p>



<p class="wp-block-paragraph">对正在权衡家庭服务器架构的玩家，这未必是「Unraid 不如 Ubuntu」的结论，而是一次关于职责分离的提醒：当一套全能系统开始拖慢特定需求时，把最吃力的那块拆出去，往往比硬扛更划算。</p>



<p class="has-small-font-size wp-block-paragraph">来源：How-To Geek，作者 Patrick Campanale</p>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Penpot 还是 Canva？做图工具这样选</title>
		<link>https://mylogs.cn/penpot-%e8%bf%98%e6%98%af-canva%ef%bc%9f%e5%81%9a%e5%9b%be%e5%b7%a5%e5%85%b7%e8%bf%99%e6%a0%b7%e9%80%89/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Tue, 11 Aug 2026 18:43:20 +0000</pubDate>
				<category><![CDATA[经验与技巧]]></category>
		<category><![CDATA[Canva]]></category>
		<category><![CDATA[Penpot]]></category>
		<category><![CDATA[开源软件]]></category>
		<category><![CDATA[自托管]]></category>
		<category><![CDATA[设计工具]]></category>
		<guid isPermaLink="false">https://mylogs.cn/penpot-%e8%bf%98%e6%98%af-canva%ef%bc%9f%e5%81%9a%e5%9b%be%e5%b7%a5%e5%85%b7%e8%bf%99%e6%a0%b7%e9%80%89/</guid>

					<description><![CDATA[很多人想快速做一张海报、视频缩略图或社媒配图，打开 Canva 发现顺手又好用，可一旦想去掉水印、用 AI 功 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">很多人想快速做一张海报、视频缩略图或社媒配图，打开 Canva 发现顺手又好用，可一旦想去掉水印、用 AI 功能，就被挡在付费墙后面；想要把数据握在自己手里、彻底不订阅，又找不到办法。其实还有一条路：开源、可自托管的 Penpot。两者定位不同，按需求挑才不会白花钱。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89ef860d6aa&quot;}" data-wp-interactive="core/image" data-wp-key="6a89ef860d6aa" class="wp-block-image size-large aligncenter wp-lightbox-container"><img loading="lazy" decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/3181b1758e20_header.webp" alt="Penpot 还是 Canva？做图工具这样选" class="wp-image-4484" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/3181b1758e20_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/3181b1758e20_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/3181b1758e20_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/3181b1758e20_header-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：How-To Geek</figcaption></figure>





<h2 class="wp-block-heading">一、先看清两者的本质区别</h2>



<ol class="wp-block-list"><li>Canva 于 2013 年上线，是成熟的 SaaS（软件即服务）在线设计工具，界面直观，几分钟就能做出像样的图；但它属于云端服务，<strong>无法自托管</strong>，大量 AI 功能（如 AI 生图、智能编辑）锁在付费订阅里。</li><li>Penpot 是开源项目，可免费使用，专业版按官网注册页同样免费；最关键的是它能<strong>自托管</strong>——原作者用 Docker 几分钟就跑了起了来。代价是上手门槛比 Canva 略高。</li></ol>



<h2 class="wp-block-heading">二、想要完全掌控数据，来自建 Penpot</h2>



<p class="wp-block-paragraph">如果介意把设计稿存在别人服务器，或不愿再开一个订阅，可以按下面步骤自己搭一个：</p>



<ol class="wp-block-list"><li>准备一台常开的电脑或小型服务器，先装好 Docker。</li><li>用 <code>wget</code> 下载官方提供的 docker-compose 配置文件（YAML 格式）。</li><li>把服务端口改成 <code>9001</code>（也可自定义），在文件所在目录执行 <code>docker compose up -d</code>。</li><li>浏览器打开对应地址即可使用。左侧常驻「图层 / 素材 / 变量」面板，中间是画布，右侧放设计元素；熟练后快捷键比 Canva 更顺手，例如按数字键 <code>2</code>、<code>9</code> 直接调透明度。</li></ol>



<h2 class="wp-block-heading">三、只想快出图，Canva 更省事</h2>



<ol class="wp-block-list"><li>临时做图、手机上随手改，Canva 的移动端体验明显更好，SaaS 模式意味着随处能登录。</li><li>多层图片、透明度调节同样好用，裁剪、缩放等常用功能都在菜单里一目了然。</li></ol>



<h2 class="wp-block-heading">四、AI 功能别抱太高期待</h2>



<p class="wp-block-paragraph">两家都集成了 AI，但实际体验都一般：Canva 的 AI 生图常被吐槽反应慢、不按指令；Penpot 的 AI 插件多用于快速打样，且需要自备带 API 的付费大模型密钥。对多数人来说，自己动手改图反而更可控。</p>



<p class="wp-block-paragraph">注意事项：Penpot 自托管需要一台长期运行的主机，纯新手建议先用官方免费云端版试水；Canva 免费版已能满足大部分轻量需求，是否升级取决于是否需要去水印和高级 AI。</p>



<p class="wp-block-paragraph">来源：How-To Geek</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>碎屏旧笔记本别扔，改台家庭服务器很香</title>
		<link>https://mylogs.cn/%e7%a2%8e%e5%b1%8f%e6%97%a7%e7%ac%94%e8%ae%b0%e6%9c%ac%e5%88%ab%e6%89%94%ef%bc%8c%e6%94%b9%e5%8f%b0%e5%ae%b6%e5%ba%ad%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%be%88%e9%a6%99/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Tue, 11 Aug 2026 06:06:00 +0000</pubDate>
				<category><![CDATA[经验与技巧]]></category>
		<category><![CDATA[二手硬件]]></category>
		<category><![CDATA[家庭服务器]]></category>
		<category><![CDATA[无头服务器]]></category>
		<category><![CDATA[旧笔记本]]></category>
		<category><![CDATA[自托管]]></category>
		<guid isPermaLink="false">https://mylogs.cn/%e7%a2%8e%e5%b1%8f%e6%97%a7%e7%ac%94%e8%ae%b0%e6%9c%ac%e5%88%ab%e6%89%94%ef%bc%8c%e6%94%b9%e5%8f%b0%e5%ae%b6%e5%ba%ad%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%be%88%e9%a6%99/</guid>

					<description><![CDATA[想搭一台家庭服务器跑私有网盘、影音库或自建服务，迷你主机常被当成入门首选，可稍像样的型号也要上千元。其实家里那 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">想搭一台家庭服务器跑私有网盘、影音库或自建服务，迷你主机常被当成入门首选，可稍像样的型号也要上千元。其实家里那台屏幕摔碎、被塞进柜子吃灰的旧笔记本，本身就是一台现成的无头服务器——屏幕坏了不影响主板、CPU、内存和硬盘，还能白捡一块断电续命的电池。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89ef860e9ff&quot;}" data-wp-interactive="core/image" data-wp-key="6a89ef860e9ff" class="wp-block-image size-large aligncenter wp-lightbox-container"><img loading="lazy" decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/b46ab8db8b47670d36a65eea92e60ff2_header.webp" alt="碎屏旧笔记本别扔，改台家庭服务器很香" class="wp-image-4415" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/b46ab8db8b47670d36a65eea92e60ff2_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/b46ab8db8b47670d36a65eea92e60ff2_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/b46ab8db8b47670d36a65eea92e60ff2_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/b46ab8db8b47670d36a65eea92e60ff2_header-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：How-To Geek</figcaption></figure>





<h2 class="wp-block-heading">一、为什么碎屏笔记本是宝藏</h2>



<p class="wp-block-paragraph">屏幕是笔记本最贵的部件之一，一旦碎裂，维修费往往两三百元起，很多人干脆换新机，旧机器就按「废品」价处理。但里面的 CPU、内存、固态盘都完好，加上自带电池，断电或电压波动时它能像 UPS 一样扛一小会儿。除了第一次装系统，平时完全用不着屏幕，从另一台电脑远程管理即可。</p>



<h2 class="wp-block-heading">二、去哪淘、怎么避坑</h2>



<p class="wp-block-paragraph">闲鱼、转转等二手平台，以及本地手机电脑维修店，常能见到碎屏笔记本。原本几千元的机器，因为屏碎可能两三百元就能拿下。但要注意三点：一是问清 SSD、内存、主板是否还在，有的卖家会把值钱零件拆走，只剩空壳；二是确认随机带原装充电器（没有电池也能插电用，影响不大）；三是先在平台问清楚具体型号，查一下该机能否升级存储和内存。</p>



<h2 class="wp-block-heading">三、把它跑起来的步骤</h2>



<ol class="wp-block-list"><li>用 HDMI 或 DisplayPort 接一台外接显示器（或客厅电视）；没有对应接口就加一个 USB-C 转 HDMI 转接器，缺网口可补 USB 转网口适配器。</li><li>接上外显后，像普通电脑一样装上你喜欢的 Linux 服务器发行版。若连外显都不方便，可把固态盘拆下，在别的机器上装好系统再装回。</li><li>装好 SSH 或远程桌面，拔掉外显，让它「无头」运行，以后只在另一台电脑上远程操作。</li></ol>



<h2 class="wp-block-heading">四、和迷你主机的取舍</h2>



<p class="wp-block-paragraph">迷你主机的优势是扩展：常有多余 M.2 插槽、2.5 英寸硬盘位、可换内存，散热和网口（多见 2.5GbE）也更宽裕。笔记本则胜在便宜、自带电池、省电。预算紧或只想先练手，碎屏笔记本是极低成本的一台服务器；等真玩出需求，再升级迷你主机也不迟。</p>



<p class="wp-block-paragraph">来源：How-To Geek</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>旧手机别扔：用 Termux 把它变成家庭服务器</title>
		<link>https://mylogs.cn/old-phone-termux-home-server/</link>
					<comments>https://mylogs.cn/old-phone-termux-home-server/#respond</comments>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Sun, 09 Aug 2026 07:24:43 +0000</pubDate>
				<category><![CDATA[科技]]></category>
		<category><![CDATA[chroot]]></category>
		<category><![CDATA[Tailscale]]></category>
		<category><![CDATA[Termux]]></category>
		<category><![CDATA[安卓]]></category>
		<category><![CDATA[家庭服务器]]></category>
		<category><![CDATA[旧手机]]></category>
		<category><![CDATA[自托管]]></category>
		<guid isPermaLink="false">https://mylogs.cn/old-phone-termux-home-server/</guid>

					<description><![CDATA[付着月费的小型云服务器，总让人觉得有点亏。一名开发者此前把个人服务跑在德国 Hetzner 的一台虚拟主机上， [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">付着月费的小型云服务器，总让人觉得有点亏。一名开发者此前把个人服务跑在德国 Hetzner 的一台虚拟主机上，里面装着几个 Web 应用、一个叫 Surf 的远程浏览器、反向代理 Caddy 等。问题出在 Surf 上：最便宜的共享机型还能应付日常，一旦 Chrome 真正开始干活就捉襟见肘，换带独享 CPU 的机型，月费又高得让一个私人浏览器显得不划算。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89ef8610ab9&quot;}" data-wp-interactive="core/image" data-wp-key="6a89ef8610ab9" class="wp-block-image size-large aligncenter wp-lightbox-container"><img loading="lazy" decoding="async" width="1200" height="970" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/f1d9fe002f85_header.webp" alt="旧手机别扔：用 Termux 把它变成家庭服务器" class="wp-image-4170" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/f1d9fe002f85_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/f1d9fe002f85_header-300x243.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/f1d9fe002f85_header-1024x828.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/f1d9fe002f85_header-768x621.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：seg6.space</figcaption></figure>





<p class="wp-block-paragraph">买新机器也划不来。内存价格高得离谱，组装一台内存宽裕的小主机时机糟糕。就在他翻看二手迷你主机时，想起了那台吃灰的 CMF Phone 1：八颗 ARM 核、8GB 内存、128GB 闪存、Wi-Fi 6、5G 调制解调器，还自带电池。硬件明显被闲置，而且钱早就付过了。</p>



<p class="wp-block-paragraph">这台手机如今跑着 Surf 及其托管的 Chrome 实例、个人记账工具、屏幕共享服务，外加几个小应用。它们能扛住重启、从 Git 部署，手机在不同网络间移动时依旧可达——也就是说，它真正替代了那台虚拟主机。</p>



<h2 class="wp-block-heading">第一次走弯路：想刷掉安卓</h2>



<p class="wp-block-paragraph">最直接的思路是刷入常规 Linux 发行版。CMF Phone 1 确实有 postmarketOS 设备移植，能启动，设备页上够多的绿勾让人冲动。这位开发者成了那个冲动的人。</p>



<p class="wp-block-paragraph">他没太在意那些标红的「已损坏」项：Wi-Fi、蓝牙、硬件加速，以及让这部手机胜任小服务器的几乎一切。结果只看到 postmarketOS 的开机画面和一块黑屏——既不是服务器，也不是手机了。</p>



<p class="wp-block-paragraph">把原厂 Nothing OS 刷回来又成了另一桩苦差：刷机工具依赖 Windows，他得先在 QEMU 里装 Windows，和 USB 透传、联发科驱动搏斗，看工具卡死，最后挪到真机才恢复出厂镜像。中间一度软砖，只有黑屏，他真以为把一台好端端的设备变成了砖头。</p>



<p class="wp-block-paragraph">手机救回来了，教训也清楚：安卓已经为这块硬件写好了能用的驱动，Wi-Fi、电源管理、电池、GPU、调制解调器，连同所有古怪的厂商细节都正常工作。为了一个更常规的用户态而全盘抛弃，是笔亏本买卖。</p>



<h2 class="wp-block-heading">Termux 才是主机</h2>



<p class="wp-block-paragraph">第二次尝试保留原厂安卓，把 Termux 当作宿主环境。它提供了 OpenSSH、runit、Caddy、Cloudflared、包管理，以及足够像样的 Unix 工具；Termux:Boot 在重启后拉起监控进程与 SSH；Tailscale 给手机一个稳定的私网地址，于是从 tailnet 里的任意机器只要敲一句 <code>ssh cmf</code> 就能连上。</p>



<p class="wp-block-paragraph">Termux 不是虚拟机，它的进程仍跑在安卓的 Linux 内核上，只是它那套基于 Bionic 的用户态和标准 Debian 差别足够大，现成的 Linux 应用镜像没法直接丢进去。这个分裂反而有用：Termux 当小巧的宿主控制面，每个应用自带它期望的 Linux 文件系统。</p>



<p class="wp-block-paragraph">实际服务由 runit 监管。安卓的省电机制对一台假装服务器的设备极不友好，于是他用 Ansible 给安卓施加一套主机配置：常驻唤醒锁、关闭浅层与深层待机、把 Termux 与 Tailscale 移出后台限制、阻止 Wi-Fi 挂起，并把 Tailscale 设为常驻 VPN。</p>



<p class="wp-block-paragraph">恢复链路比任何单项设置都重要：</p>



<pre class="wp-block-code"><code>Android 启动
→ Tailscale 常驻 VPN
→ Termux:Boot
→ runit
→ 常驻服务
→ 本地与公网健康检查</code></pre>



<h2 class="wp-block-heading">从 PRoot 到真正的 chroot</h2>



<p class="wp-block-paragraph">他的应用大多以 Linux ARM64 的 OCI 镜像分发，proot-distro 能在 Debian 下轻松跑起来而不改动应用本身。PRoot 在用户态拦截文件系统和进程操作，让普通 Termux 进程以为自己身处 Debian 根文件系统里。它不是容器边界，仍与安卓共享内核、网络命名空间和 Termux 的用户身份，但作为兼容层极其好用——既不需要 root，也不需要特殊内核。</p>



<p class="wp-block-paragraph">普通 Web 服务起初这么跑毫无问题。例外是 Surf 这种对延迟敏感的浏览器负载：启动进程、加载库、读取浏览器配置、搬运截屏数据，全都要穿过 PRoot 的用户态翻译层。CPU 明明有富余，Chrome 却够不着。于是他把手机 root 了——不是为了替换安卓，而是为了把同一个 Debian 文件系统正确挂载，用真正的 <code>chroot</code> 进去。runit 依旧掌管生命周期，应用数据仍留在 Termux 存储里；负载只是改用原生系统调用而非 PRoot 抵达安卓内核。提升幅度相当明显。</p>



<p class="wp-block-paragraph">等这条路走稳，把剩下几个小服务也迁了过去。他的工作站把每个 ARM64 镜像解析到精确的摘要，导出文件系统，Ansible 在手机上校验并安装；一个小的 root 辅助程序建立私有挂载命名空间、以 chroot 进入、降权并启动原镜像的入口。手机上既不需要 Docker，也不需要编译器。这些仍是兼容环境而非安全边界，私有挂载命名空间主要让挂载与清理可预期。</p>



<h2 class="wp-block-heading">整机变成可复现的状态</h2>



<p class="wp-block-paragraph">到这一步手机什么都能跑，但他不想养一只靠一周后就会忘的命令行历史拼出来的宠物服务器。他把整个宿主搬进 Ansible 管理的状态：版本、服务定义、路由、电源设置、密钥、健康检查，全在同一个私有仓库里。</p>



<pre class="wp-block-code"><code>发布版 / OCI 镜像
→ 在 Git 中固定摘要（digest）
→ 通过 SSH 执行 Ansible
→ 手机上写入带版本号的目录
→ 原子 current 软链接
→ runit 服务
→ 本地与公网健康检查</code></pre>



<p class="wp-block-paragraph">发布版按摘要固定，装进带版本号的目录，背后是一个原子的 <code>current</code> 软链接；校验和或健康检查不通过就停下部署，回滚只需改回固定版本再应用一遍。应用数据独立于发布版存放。密钥不落在手机上，Ansible Vault 的密文放在基础设施仓库，部署时只把每个服务所需的运行时值渲染进 Termux 的私有存储。</p>



<h2 class="wp-block-heading">让手机从家用宽带接进流量</h2>



<p class="wp-block-paragraph">下一个要处理的是入口。家用宽带没有虚拟主机那样的静态地址，他也不想通过路由器把 SSH 或随机端口暴露出去，同时仍希望手机拔掉电源、带到别处、连上网络，服务器还在。</p>



<p class="wp-block-paragraph">HTTP 应用走 Cloudflare Tunnel。cloudflared 从手机发起一条出站连接，Cloudflare 把每个主机名经这条隧道送来，Caddy 再路由到对应的本地回环服务：</p>



<pre class="wp-block-code"><code>互联网
→ Cloudflare Tunnel
→ 127.0.0.1 上的 Caddy
→ 127.0.0.1 上的应用</code></pre>



<p class="wp-block-paragraph">这些服务没有任何入站路由器规则。cloudflared 只需要一条出站连接，所以手机换到别的网络，隧道会自动重连，主机名也跟着走。Tailscale 在管理面上做同样的事。</p>



<p class="wp-block-paragraph">Surf 远程浏览器的后端对延迟敏感、自己终结 TLS，而连它的旧 iPad 锁定了服务器身份，普通 Cloudflare Tunnel 在 Cloudflare 一侧终结 TLS 正好踩中它不想要的。解法是把整条 Surf TLS 流裹进一个普通的 WebSocket 里：Cloudflare 转发的是 WebSocket，真正的 Surf 连接仍在其中端到端加密，代价只是多一两个网络来回（iPad 初次测试约 60 毫秒），却能在一条只需出站连接的隧道里跑通。</p>



<h2 class="wp-block-heading">到底跑了什么</h2>



<p class="wp-block-paragraph">这台机器分两层。安卓与 Termux 掌管硬件、网络、入口与监管；Linux 常驻环境拿到自己期望的文件系统，其余时间不挡宿主的路。</p>



<ul class="wp-block-list"><li>安卓 / Termux 宿主：负责硬件、网络、入口、监管，组件含 runit、Tailscale、Caddy、Cloudflared、DDNS、运维仪表盘</li><li>root 后的 Linux 常驻环境：负责应用兼容与负载，运行 Surf 与 Chrome、记账工具、屏幕共享等</li></ul>



<p class="wp-block-paragraph">最吃力的负载是 Surf，它把现代 Chromium 带到老款 iPhone 和 iPad 上。手机在 Debian 运行时里跑桌面版 Chrome（较新的 arm64 版本）和 Surf 后端，iPad mini 收下 H.264 视频与音频，回传触摸、键盘、标签页和导航指令。另一个常驻项是个人记账工具，记录周期性收支、一次性交易、月度支出上限并逐日推算余额，它的 SQLite 数据库有自动化的离机备份和验证过的恢复流程。最新添的可观测性服务收集八核 CPU、内存、电池、温度与可达性，在 <code>https://dash.cmf</code> 提供一个只能局域网或 tailnet 内访问的界面。</p>



<h2 class="wp-block-heading">你该照做吗</h2>



<p class="wp-block-paragraph">如果你手边正有一台还算现代、可 root 的 ARM64 手机在吃灰，这事远没有听起来那么荒唐。你得到安静的硬件、低功耗、闪存、Wi-Fi、一块用于救急的内置屏幕，以及一块行为像微型不间断电源的电池。原厂安卓已经支持这块硬件，而 Termux 加一个 root 后的 chroot，足够跑起多得惊人的常规 Linux 软件。</p>



<p class="wp-block-paragraph">他不会把无可替代的数据放上去而不做自动化离机备份，也不会把 chroot 当成敌意负载的隔离边界。root 扩大了信任边界，安卓仍是个不寻常的服务器宿主，软件渲染的桌面版 Chrome 也打不过带 GPU 的专用工作站。但对手头那几个私人服务，尤其是当替代方案是无限期为一台要么慢、要么贵得离谱的虚拟主机付费时，它是个真正有用的选项，而不只是一个噱头。</p>



<p class="has-small-font-size wp-block-paragraph">来源：Hacker News / seg6.space</p>

]]></content:encoded>
					
					<wfw:commentRss>https://mylogs.cn/old-phone-termux-home-server/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>收藏的网页说没就没？自己搭个存档站</title>
		<link>https://mylogs.cn/%e6%94%b6%e8%97%8f%e7%9a%84%e7%bd%91%e9%a1%b5%e8%af%b4%e6%b2%a1%e5%b0%b1%e6%b2%a1%ef%bc%9f%e8%87%aa%e5%b7%b1%e6%90%ad%e4%b8%aa%e5%ad%98%e6%a1%a3%e7%ab%99/</link>
					<comments>https://mylogs.cn/%e6%94%b6%e8%97%8f%e7%9a%84%e7%bd%91%e9%a1%b5%e8%af%b4%e6%b2%a1%e5%b0%b1%e6%b2%a1%ef%bc%9f%e8%87%aa%e5%b7%b1%e6%90%ad%e4%b8%aa%e5%ad%98%e6%a1%a3%e7%ab%99/#respond</comments>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Sun, 09 Aug 2026 02:46:10 +0000</pubDate>
				<category><![CDATA[经验与技巧]]></category>
		<category><![CDATA[ArchiveBox]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[开源工具]]></category>
		<category><![CDATA[网页存档]]></category>
		<category><![CDATA[自托管]]></category>
		<guid isPermaLink="false">https://mylogs.cn/%e6%94%b6%e8%97%8f%e7%9a%84%e7%bd%91%e9%a1%b5%e8%af%b4%e6%b2%a1%e5%b0%b1%e6%b2%a1%ef%bc%9f%e8%87%aa%e5%b7%b1%e6%90%ad%e4%b8%aa%e5%ad%98%e6%a1%a3%e7%ab%99/</guid>

					<description><![CDATA[收藏夹看着靠谱，实际只存了一串网址。原站改版、下架或者干脆关停，点开就是一个 404。技术文档、研究资料、多年 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">收藏夹看着靠谱，实际只存了一串网址。原站改版、下架或者干脆关停，点开就是一个 404。技术文档、研究资料、多年前在论坛里翻到的那条冷门解法，丢了往往就再也搜不回来。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89ef8612a31&quot;}" data-wp-interactive="core/image" data-wp-key="6a89ef8612a31" class="wp-block-image size-large aligncenter wp-lightbox-container"><img loading="lazy" decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/b2f37556270e0ee24988f8ab518eb814_header.webp" alt="收藏的网页说没就没？自己搭个存档站" class="wp-image-4136" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/b2f37556270e0ee24988f8ab518eb814_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/b2f37556270e0ee24988f8ab518eb814_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/b2f37556270e0ee24988f8ab518eb814_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/b2f37556270e0ee24988f8ab518eb814_header-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：MakeUseOf</figcaption></figure>





<p class="wp-block-paragraph">MakeUseOf 撰稿人分享了一套自建方案：用开源工具 ArchiveBox 把整页内容留在自己的硬盘上，并做了一次严格验证——先存档，再把原页面彻底下线，看还能不能还原。</p>



<h2 class="wp-block-heading">一、部署</h2>



<ol class="wp-block-list"><li>准备一台 Ubuntu 26.04 虚拟机，4GB 内存，通过 Docker 安装 ArchiveBox。</li><li>版本选稳定的 0.7.4，而不是仍在改版中的 0.9 开发分支，可以少踩不少坑。</li><li>官方 Compose 文件有 278 行，捆了搜索、计划任务、Nginx 等一堆用不上的组件。实际只需要一个服务：镜像 <code>archivebox/archivebox:0.7.4</code>，启动命令 <code>server --quick-init 0.0.0.0:8000</code>，映射 8000 端口，把 <code>./data</code> 挂载到容器内 <code>/data</code>，环境变量把 ALLOWED_HOSTS 设为 <code>*</code>、PUBLIC_INDEX 和 PUBLIC_SNAPSHOTS 都设为 <code>False</code>。</li><li>依次执行三条命令完成初始化、创建管理员并启动面板：</li></ol>



<pre class="wp-block-code"><code>docker compose run --rm archivebox init
   docker compose run --rm archivebox manage createsuperuser
   docker compose up -d</code></pre>



<ol class="wp-block-list"><li>关掉向 Archive.org 回传的开关，保证一切留在本地：<code>docker compose run --rm archivebox config --set SAVE_ARCHIVE_DOT_ORG=False</code>。</li></ol>



<h2 class="wp-block-heading">二、一次快照留下七份副本</h2>



<p class="wp-block-paragraph">抓取完成后，ArchiveBox 保留原地址，同时生成带时间戳的快照，里面包含 Wget 抓下的 HTML 副本、SingleFile 单文件页面、PDF、截图、渲染后的 DOM、正文提取版和 WARC 文件。SingleFile 最接近原貌且可正常浏览，正文提取版只留文字，PDF 和截图作为兜底——结果页看起来更像一份恢复菜单，而不是书签列表。</p>



<h2 class="wp-block-heading">三、把原页面关掉之后</h2>



<p class="wp-block-paragraph">该撰稿人自建了一个含图片、说明文字和一个可下载配置文件的小页面，跑在同一台服务器的 8081 端口，页面里硬编码了标记 COPPER-FINCH-8247 便于核对。以深度 1 抓取快照后，他停掉服务并把源目录整个移走。</p>



<p class="wp-block-paragraph">刷新浏览器，原地址报连接错误，而 8000 端口的存档照常打开：SingleFile 和 Wget 版本保留了排版与图片，PDF、截图、DOM、正文提取里都能搜到那个标记。存档前后用 <code>sha256sum</code> 对那个配置文件做校验，哈希值完全一致。</p>



<h2 class="wp-block-heading">四、配上浏览器扩展才真正好用</h2>



<ol class="wp-block-list"><li>安装 ArchiveBox 官方的 Firefox 扩展。</li><li>在扩展设置里填写本地实例地址，例如 <code>http://192.168.91.136:8000</code>。</li><li>浏览器里若已登录 ArchiveBox，扩展会直接复用该会话，此后一键就能存下当前页面。</li></ol>



<p class="wp-block-paragraph">实测存一篇带多张图片、脚本和广告的长文章，SingleFile、Wget、PDF、截图、DOM 和正文提取全部成功，只有 Original 格式因为目标站不允许被嵌入而报了警告。</p>



<h2 class="wp-block-heading">注意事项</h2>



<p class="wp-block-paragraph">存档掌握在自己手里，责任也一样。虚拟机一旦损坏，没备份 data 目录就前功尽弃。ArchiveBox 也无法保证完美复现需要登录的页面、视频播放器和重度 JavaScript 界面。空间方面：example.com 只占 384KB、17 个文件，加上那个自建测试页涨到 1.5MB、52 个文件，再加一篇长文章就到了 34MB、158 个文件。书签只存网址，存档要存 HTML、图片、PDF、截图、WARC 和元数据，量一大就会明显吃盘，因此值得只留文档、研究资料这类真正需要引用的内容。</p>



<p class="wp-block-paragraph">来源：MakeUseOf</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mylogs.cn/%e6%94%b6%e8%97%8f%e7%9a%84%e7%bd%91%e9%a1%b5%e8%af%b4%e6%b2%a1%e5%b0%b1%e6%b2%a1%ef%bc%9f%e8%87%aa%e5%b7%b1%e6%90%ad%e4%b8%aa%e5%ad%98%e6%a1%a3%e7%ab%99/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>家庭服务器别再端口转发，改用 mesh VPN 更稳</title>
		<link>https://mylogs.cn/home-server-mesh-vpn-tailscale/</link>
		
		<dc:creator><![CDATA[steve, zhang]]></dc:creator>
		<pubDate>Sat, 08 Aug 2026 14:42:53 +0000</pubDate>
				<category><![CDATA[科技]]></category>
		<category><![CDATA[mesh VPN]]></category>
		<category><![CDATA[Tailscale]]></category>
		<category><![CDATA[内网穿透]]></category>
		<category><![CDATA[家庭服务器]]></category>
		<category><![CDATA[端口转发]]></category>
		<category><![CDATA[网络安全]]></category>
		<category><![CDATA[自托管]]></category>
		<guid isPermaLink="false">https://mylogs.cn/home-server-mesh-vpn-tailscale/</guid>

					<description><![CDATA[家里跑着 NAS、Home Assistant 或者 Jellyfin，想在外面也能访问，最省事的办法就是端口 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">家里跑着 NAS、Home Assistant 或者 Jellyfin，想在外面也能访问，最省事的办法就是端口转发。但科技媒体 How-To Geek 于 2026 年 8 月 8 日刊文提醒：这条“最省事”的路，恰恰是把服务器敞开给整个互联网的入口。</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6a89ef8613af3&quot;}" data-wp-interactive="core/image" data-wp-key="6a89ef8613af3" class="wp-block-image size-large aligncenter wp-lightbox-container"><img loading="lazy" decoding="async" width="1200" height="675" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://mylogs.cn/wp-content/uploads/2026/08/b51b333c8f05f403b206c4604222ac13_header.webp" alt="家庭服务器别再端口转发，改用 mesh VPN 更稳" class="wp-image-4122" style="max-width:100%;height:auto;" srcset="https://mylogs.cn/wp-content/uploads/2026/08/b51b333c8f05f403b206c4604222ac13_header.webp 1200w, https://mylogs.cn/wp-content/uploads/2026/08/b51b333c8f05f403b206c4604222ac13_header-300x169.webp 300w, https://mylogs.cn/wp-content/uploads/2026/08/b51b333c8f05f403b206c4604222ac13_header-1024x576.webp 1024w, https://mylogs.cn/wp-content/uploads/2026/08/b51b333c8f05f403b206c4604222ac13_header-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">图片来源：How-To Geek</figcaption></figure>





<p class="wp-block-paragraph">端口转发的逻辑很简单：在路由器上把某个外部端口指向服务器的内网地址，外面的人连你的公网 IP 加这个端口，请求就直达内部服务。问题也正出在这里——路由器分不清来的是你、你的朋友、自动扫描器，还是正寻找破绽的攻击者，它一律放行。于是挡住攻击的重担全压在应用本身身上，一个弱密码就可能让大门洞开。换用冷门外部端口能挡掉一部分明显的扫描，但全网的扫描器会自动探测海量地址和端口，一旦被盯上，就会反复回来。</p>



<p class="wp-block-paragraph">更稳妥的做法是用网状 VPN（mesh VPN）。以 Tailscale 为例，它在服务器和你批准的手机、笔记本之间建立一条私有网络（tailnet），两端直连、端到端加密，全程不需要端口转发，也不用自己搭传统 VPN 服务器。装上之后，Tailscale 会给服务器分配一个稳定的私有地址，配合 MagicDNS 还能用一个好记的设备名访问，比如在浏览器里输 homeserver:8096 就能打开 Jellyfin。同类工具还有 ZeroTier、NetBird，以及普通的 WireGuard。</p>



<p class="wp-block-paragraph">迁移时有个关键顺序：先装好 Tailscale 并用手机流量（而非家里 Wi-Fi）确认能连上服务器，再回头登录路由器删掉端口转发规则，连同 UPnP 自动生成的规则一起清掉；最后两头各测一遍——走 Tailscale 地址应当照常可用，走公网 IP 加旧端口则应连不通。</p>



<p class="wp-block-paragraph">Tailscale 挡住了外网，但不代表对内网设备可以完全信任。文章建议用访问控制限定哪些用户、哪些设备能碰服务器，并且只给它们真正需要的服务：手机也许只需要 Jellyfin，不需要 SSH，也不该打开管理后台。子网路由（subnet routing）尤其要小心，把整张局域网都暴露给 Tailscale，会重新造出当初想逃离的那种“扁平、过度信任”的网络。至于网站、游戏服这类本就该公开的服务，作为例外保留在外网即可。</p>



<p class="has-small-font-size wp-block-paragraph">来源：How-To Geek</p>

]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
