<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>技术 on Yancey's Blog</title><link>https://yecnay.net/tags/%E6%8A%80%E6%9C%AF/</link><description>Recent content in 技术 on Yancey's Blog</description><generator>Hugo -- 0.164.0</generator><language>zh-cn</language><lastBuildDate>Tue, 19 May 2026 15:46:00 +0800</lastBuildDate><atom:link href="https://yecnay.net/tags/%E6%8A%80%E6%9C%AF/index.xml" rel="self" type="application/rss+xml"/><item><title>1panel 部署nextcloud 并设置反向代理访问</title><link>https://yecnay.net/posts/tech/1panel-%E9%83%A8%E7%BD%B2nextcloud-%E5%B9%B6%E8%AE%BE%E7%BD%AE%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E8%AE%BF%E9%97%AE/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/1panel-%E9%83%A8%E7%BD%B2nextcloud-%E5%B9%B6%E8%AE%BE%E7%BD%AE%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E8%AE%BF%E9%97%AE/</guid><description>&lt;p&gt;要在 1Panel 中通过特定端口 &lt;code&gt;https://a.com:20888&lt;/code&gt; 访问 Nextcloud，除了常规的反向代理设置，关键在于处理 非标准端口 的跳转识别。&lt;/p&gt;
&lt;h2 id="1-部署-nextcloud-容器"&gt;1. 部署 Nextcloud 容器&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;在 应用商店 安装 Nextcloud。&lt;/li&gt;
&lt;li&gt;外部访问端口：设置一个内部端口（例如 &lt;code&gt;8080&lt;/code&gt;），此端口仅供 1Panel 内部反代使用，无需在防火墙放行。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="2-创建反向代理网站"&gt;2. 创建反向代理网站&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;新建网站：选择“反向代理”，域名填写 &lt;code&gt;a.com&lt;/code&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;设置 HTTPS：在网站设置中申请/配置 SSL 证书。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;修改主站端口：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在网站的“设置” -&amp;gt; “基本信息”中，将监听端口改为 &lt;code&gt;20888&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;确保在 1Panel 的 防火墙 菜单中放行 &lt;code&gt;20888&lt;/code&gt; 端口。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;代理配置：代理地址指向 &lt;code&gt;http://127.0.0.1:8080&lt;/code&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="3-修改-nextcloud-核心配置-解决重定向问题"&gt;3. 修改 Nextcloud 核心配置 (解决重定向问题)&lt;/h2&gt;
&lt;p&gt;由于使用了非标准端口 &lt;code&gt;20888&lt;/code&gt;，必须手动修改 &lt;code&gt;config.php&lt;/code&gt;，否则 Nextcloud 会自动跳转回不带端口的默认地址。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;进入 文件，打开：&lt;code&gt;/opt/1panel/apps/nextcloud/nextcloud/data/config/config.php&lt;/code&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;修改/添加以下关键配置：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;&amp;#39;trusted_domains&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;array&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;127.0.0.1:8080&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;a.com:20888&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 必须包含端口号
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;&amp;#39;overwrite.cli.url&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://a.com:20888&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;&amp;#39;overwritehost&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;a.com:20888&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;&amp;#39;overwriteprotocol&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;&amp;#39;trusted_proxies&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;127.0.0.1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;保存并 重启 Nextcloud 容器。&lt;/p&gt;</description></item><item><title>Arch Linux 删除软件包</title><link>https://yecnay.net/posts/tech/arch-linux-%E5%88%A0%E9%99%A4%E8%BD%AF%E4%BB%B6%E5%8C%85/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/arch-linux-%E5%88%A0%E9%99%A4%E8%BD%AF%E4%BB%B6%E5%8C%85/</guid><description>&lt;p&gt;在 Arch Linux 中，删除软件及其配置文件的操作取决于你是想删除&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;系统级配置文件&lt;/strong&gt;（如 &lt;code&gt;/etc&lt;/code&gt; 下的文件）还是&lt;strong&gt;用户级配置文件&lt;/strong&gt;（家目录下的“点文件”，如 &lt;code&gt;~/.config&lt;/code&gt;）。&lt;/p&gt;
&lt;p&gt;以下是具体的操作方法：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;删除软件及系统级配置文件&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;使用 &lt;code&gt;pacman&lt;/code&gt; 的递归删除参数可以清理软件本身、其未被其他软件使用的依赖以及系统级配置文件：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;删除软件及其未使用的依赖和系统配置：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo pacman -Rns &amp;lt;软件名&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;请谨慎使用此类代码。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-R&lt;/code&gt;: 删除软件包。
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-n&lt;/code&gt;: 删除软件时同时移除其在系统路径（如 &lt;code&gt;/etc&lt;/code&gt;）下的配置文件。如果不加 &lt;code&gt;-n&lt;/code&gt;，pacman 会保留并重命名这些文件为 &lt;code&gt;.pacsave&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-s&lt;/code&gt;: 递归删除那些不再被其他软件包需要的依赖项。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;极端彻底删除（包含依赖软件的配置文件）：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo pacman -Rscn &amp;lt;软件名&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;请谨慎使用此类代码。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;-c&lt;/code&gt;: 级联删除。除了删除该软件，还会删除所有依赖于它的软件。&lt;strong&gt;请务必检查输出列表，防止误删重要系统组件&lt;/strong&gt;。 &lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="2"&gt;
&lt;li&gt;删除用户级配置文件夹（手动）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;pacman&lt;/code&gt; 不会触碰用户家目录（&lt;code&gt;~&lt;/code&gt;）下的任何文件，这些文件是由程序在运行时生成的，不属于包管理器管理范围。你需要手动清理： &lt;/p&gt;
&lt;p&gt;通常这些文件夹位于以下位置：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;主配置文件：&lt;/strong&gt; &lt;code&gt;~/.config/&amp;lt;软件名&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缓存文件：&lt;/strong&gt; &lt;code&gt;~/.cache/&amp;lt;软件名&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据文件：&lt;/strong&gt; &lt;code&gt;~/.local/share/&amp;lt;软件名&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;手动删除示例：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;rm -rf ~/.config/&amp;lt;软件名&amp;gt;
rm -rf ~/.local/share/&amp;lt;软件名&amp;gt;
rm -rf ~/.cache/&amp;lt;软件名&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;请谨慎使用此类代码。&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;清理残留的孤立包（孤儿包）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果你之前删除软件时没带 &lt;code&gt;-s&lt;/code&gt; 参数，可能会留下许多无用的依赖包，可以使用以下命令清理：&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# 列出并删除所有孤儿依赖包及其配置文件
sudo pacman -Rns $(pacman -Qdtq)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;请谨慎使用此类代码。&lt;/p&gt;</description></item><item><title>Beancount复式记账</title><link>https://yecnay.net/posts/tech/beancount%E5%A4%8D%E5%BC%8F%E8%AE%B0%E8%B4%A6/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/beancount%E5%A4%8D%E5%BC%8F%E8%AE%B0%E8%B4%A6/</guid><description>&lt;hr&gt;
&lt;p&gt;profileName: yecnay.com
postId: &amp;ldquo;1782&amp;rdquo;
postType: post
categories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;640&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1 id="beancount-复式记账"&gt;Beancount 复式记账&lt;/h1&gt;
&lt;h2 id="一-为什么"&gt;一 、为什么&lt;/h2&gt;
&lt;p&gt;我在&lt;a href="https://byvoid.com/blog/4-years-at-google-3"&gt;在 Google 的这四年（三）&lt;/a&gt;这篇文章中提到了一个「秘密武器」Beancount 以及「复式记账」的概念。我说过我要专门写一篇文章来分享我的经验，这篇文章就是我承诺的兑现了。&lt;/p&gt;
&lt;h3 id="如何实现财务自由"&gt;如何实现财务自由&lt;/h3&gt;
&lt;p&gt;这个章节标题有点吸引人眼球，像是成功学教程。但是我保证我下面说的内容都是严肃，而且有明确定义和方法的。&lt;/p&gt;
&lt;p&gt;为什么要记账，我来用一句话总结就是为了&lt;strong&gt;提升对自我的认识&lt;/strong&gt;。记账是个人理财的基础，更是通往财务自由的必经之路。财务自由这件事情固然是根本需要赚钱来实现，但并不是只有一夜暴富才能实现的。财务自由其实并不是一件虚无缥缈的事情，而是每个人都可以努力达到的一种状态，换句话说就是「退休」，只不是有人能在三十多岁退休，有人要六十岁，有人则要到八十岁。&lt;/p&gt;
&lt;p&gt;财务自由的一般定义是&lt;strong&gt;由资产产生的收入不少于生活开销&lt;/strong&gt;。如果不知道自己有多少开销，甚至不知道自己有多少资产、收入，即便是一夜暴富，财务自由是一件不可能的事情。&lt;/p&gt;
&lt;p&gt;接下来我来解释为什么财务自由是可以实现的，而且应该是每个人的目标。首先需要强调的概念是**资产（Assets）&lt;strong&gt;和&lt;/strong&gt;净资产（Net Assets）**的区别，虽然我之后还会详细解释，但是这里需要记住，财务自由并非对个人净资产的要求，这也就是为什么不需要暴富就能实现。像所有投资都有期限一样，个人的寿命也是有期限的。每当我想到我总有一天会死，都会觉得有些忧伤，但这是无法改变的自然规律。只要在预期的寿命之内资产（而不是净资产）产生现金流能够满足生活所需的开销，这就是财务自由。我对资产产生现金流的定义较为宽泛，不仅包括利息、分红、租金、版税这类收入，还包括了直接通过资产折现的收入，即净资产减少。&lt;/p&gt;
&lt;p&gt;要想达到财务自由，需要三点要求：对支出的预期、对资产和收入的了解、对寿命的期望。这三点都是说起来容易，做起来难的，但是记账可以帮助你很大程度上解决至少前两个问题。至于第三个问题，才是财务自由的根本困难所在，不过这个问题的解决方案已经超出了本文探讨的内容了。&lt;/p&gt;
&lt;h3 id="为什么要复式记账"&gt;为什么要复式记账&lt;/h3&gt;
&lt;p&gt;记账这件事是那种容易让人因为一时冲动开始，但是很快就放弃的事情。每个记过账人都有不同的原因和契机，但能坚持下来的则凤毛麟角。记账的好处是提升对自己的了解，解决那种不知道自己赚的钱都到哪里去了的问题。但记账的困难也显而易见，那就是麻烦，还容易遗漏、错误。一般来说普通人对记账的理解就是每笔消费都干什么了，所以就是每一笔消费都有一个金额和类别就可以了。这种记账方式一开始简单，但能带来的价值有限，只是开支记录而已，长期看来难以说服自己为了这些价值而忍受麻烦的记账过程。&lt;/p&gt;
&lt;p&gt;相比普通的流水账，复式记账的核心理念是账户之间的进出关系，要求所有的记录全部入账，它可以保证账目的完整性和一致性。复式记账可以提供除了开支记录之外的损益表、资产负债表、现金流量表、试算平衡表等报表。复式记账还可以把投资和消费轻易区分，譬如购入电脑、手机，可以作为资产项目入账并定期折旧。同理对各种代金券、点数积分的购入一样要算入资产而不是消费。&lt;/p&gt;
&lt;p&gt;虽然有各种各样的手机应用号称可以简化记账，它们把用户交互做得更加简单友善，有的还可以从银行账户、信用卡公司直接抓取数据，降低心理障碍，但与此同时它们却带来了另一个问题，就是数据所有权、安全性和持久性的疑虑。这些工具大多都是把数据存储在云端的，泄漏隐私的可能性不言而喻。更麻烦的是，它们几乎都是自己的专有格式，无法导出保存，或者哪怕可以导出也难以使用。这也意味着你不得不一直用一个产品，直到有一天倒闭或者服务关闭为止。这对我来说是不可接受的，因为在互联网时代能活过十年的产品非常稀少，无论是像 Google 这样随意关闭服务的大公司，还是随时有可能倒闭的小公司。复式记账的价值在于数据的完整性，我对其数据寿命的要求是二十年以上。&lt;/p&gt;
&lt;p&gt;复式记账是一种划时代的发明，这个发明被认为是源于中世纪的地中海城邦（意大利或者埃及犹太人）。复式记账技术成为中世纪至大航海时代复杂贸易的支柱性工具，使得复杂的合约、信贷成为可能。后世会计学、金融学的许多概念都来自于复式记账，可以说体系化的资本主义是从复式记账的实践中诞生的。&lt;/p&gt;
&lt;h3 id="如何复式记账"&gt;如何复式记账&lt;/h3&gt;
&lt;p&gt;网上对于复式记账的文章也是汗牛充栋了，但各种晦涩难懂的名词可能会吓跑人。我不打算在这里介绍什么是复式记账，因为很难一句话说清楚，说得复杂了又没有意义。其实你并不需要懂很多才能开始复式记账，只需要一些最基本的概念就可以了。这个概念就是会计恒等式。&lt;/p&gt;
&lt;h4 id="会计恒等式"&gt;会计恒等式&lt;/h4&gt;
&lt;p&gt;作为会计学的核心，复式记账是一种实践中诞生的技术。除了最基本的会计恒等式之外，复式记账只有规范，没有对错。那么什么是会计恒等式呢？最基本的形式就是：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;资产 = 负债 + 权益（净资产）
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这个等式对于没有接触过会计学的人来说可能不太容易理解，但是记账实践过马上会明白的。理解的难点在于，会计学上的「资产（Assets）」和一般人对一个人富有程度的理解不太一样，因为资产是负债和权益的总和，负债（Liabilities）也是资产的一部分。&lt;/p&gt;
&lt;p&gt;更容易理解的部分其实是权益（Equity），在个人理财的上下文中，又和净资产（Net Assets）是等价的，也就是经常说的「个人净值」。净资产需要由总资产排除负债，&lt;strong&gt;一个人到底是否富有，看的是净资产，而不是资产&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;举例说明，一个人首付 20 万美元，贷款 80 万美元，买了价格为 100 万美元的房产。假设这个人没有别的资产和负债，那么他的资产就是 100 万美元，负债是 80 万美元，而净资产是 20 万美元。在房价没有变化的情况下，买房对一个人的净资产没有什么影响（忽略手续费的话），而他的资产和负债都暴增，也就是所谓的「扩大资产负债表」。&lt;/p&gt;
&lt;p&gt;如果你理解了会计恒等式，那么复式记账的一切知识障碍已经扫除了。&lt;/p&gt;
&lt;h4 id="使用-beancount"&gt;使用 Beancount&lt;/h4&gt;
&lt;p&gt;再说一遍，复式记账在于实践，在开始实践之前学很多艰深的会计学概念没有任何意义。要开始实践，就要有工具上手了。在众多工具中我推荐使用 Beancount，原因如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Beancount 是一个开源工具，用 Python 实现的，可以本地运行。&lt;/li&gt;
&lt;li&gt;账本是一套基于文本的语法，方便存储和管理，个人拥有全部的数据，还可以使用 Git 管理。&lt;/li&gt;
&lt;li&gt;账本的语法很规范，也具备灵活度，像编程语言一样可以嵌套引入，也有语法高亮和代码检查工具。&lt;/li&gt;
&lt;li&gt;有完整的命令行工具链和可视化工具 fava，还有基于 SQL 的查询和报表生成。&lt;/li&gt;
&lt;li&gt;没有预先定义的类别、货币等现实世界概念，可以轻松实现多币种记账，包括各种点数、虚拟货币。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;除了 Beancount，&lt;a href="https://plaintextaccounting.org/#comparisons"&gt;Plain Text Accounting&lt;/a&gt;网站还列出了其他的开源工具比较，类似的具有竞争力的开源工具还有 Ledger 和 hledger，其中 Ledger 是这类工具的开创者。无论使用里面介绍的哪个工具，其基本理念都差不多，即记录账户之间的资金流动。最重要的是，你是账本的所有者，如果不喜欢一个工具了，可以轻易转换到另一个工具。虽然它们语法有些许区别，但写一个脚本来转换不难。&lt;/p&gt;</description></item><item><title>Cachyos gpu 直通</title><link>https://yecnay.net/posts/tech/cachyos-gpu-%E7%9B%B4%E9%80%9A/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/cachyos-gpu-%E7%9B%B4%E9%80%9A/</guid><description>&lt;p&gt;Cachyos 使用qemu kvm安装操作系统后，网络nat与ufw冲突，如何解决&lt;/p&gt;
&lt;p&gt;在 CachyOS（以及大多数 Arch 系发行版）中，QEMU/KVM 的 NAT 网络（通常是 &lt;code&gt;virbr0&lt;/code&gt;）与 UFW 冲突是一个经典问题。&lt;/p&gt;
&lt;p&gt;其根本原因在于：&lt;strong&gt;Libvirt 10.x 及更高版本默认改用了 &lt;code&gt;nftables&lt;/code&gt; 作为后端，而 UFW 主要是为 &lt;code&gt;iptables&lt;/code&gt; 设计的，或者其默认的“拒绝转发”策略（DROP Forward）拦截了虚拟机的流量。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;以下是解决此问题的步骤，建议按顺序操作：&lt;/p&gt;
&lt;h3 id="1-将-libvirt-切换回iptables后端最推荐"&gt;1. 将 Libvirt 切换回 &lt;code&gt;iptables&lt;/code&gt; 后端（最推荐）&lt;/h3&gt;
&lt;p&gt;这是目前最有效的解决办法，因为 UFW 能够更好地识别和处理 &lt;code&gt;iptables&lt;/code&gt; 生成的转发规则。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;修改 Libvirt 的网络配置文件：&lt;/p&gt;
&lt;p&gt;Bash&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nano /etc/libvirt/network.conf
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;找到 &lt;code&gt;#firewall_backend = &amp;quot;nftables&amp;quot;&lt;/code&gt; 这一行（可能被注释掉了），取消注释并改为：&lt;/p&gt;
&lt;p&gt;Plaintext&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;firewall_backend = &amp;#34;iptables&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;保存并退出 (Ctrl+O, Enter, Ctrl+X)。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3 id="2-修改-ufw-的转发规则"&gt;2. 修改 UFW 的转发规则&lt;/h3&gt;
&lt;p&gt;即使修改了后端，UFW 默认也会禁止所有“路由（Route）”流量。你需要显式允许虚拟网桥的流量。&lt;/p&gt;
&lt;p&gt;执行以下命令：&lt;/p&gt;
&lt;p&gt;Bash&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# 允许虚拟网桥 virbr0 的入站流量
sudo ufw allow in on virbr0
# 允许经由 virbr0 的路由流量（这一步至关重要）
sudo ufw route allow in on virbr0
sudo ufw route allow out on virbr0
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h3 id="3-修改-ufw-的默认转发策略"&gt;3. 修改 UFW 的默认转发策略&lt;/h3&gt;
&lt;p&gt;如果上述操作后仍无法上网，请检查 UFW 的全局转发配置：&lt;/p&gt;</description></item><item><title>Debian启用BBR</title><link>https://yecnay.net/posts/tech/debian%E5%90%AF%E7%94%A8bbr/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/debian%E5%90%AF%E7%94%A8bbr/</guid><description/></item><item><title>Fcitx 最佳配置实践 2026-01-06</title><link>https://yecnay.net/posts/tech/fcitx-%E6%9C%80%E4%BD%B3%E9%85%8D%E7%BD%AE%E5%AE%9E%E8%B7%B5-2026-01-06/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/fcitx-%E6%9C%80%E4%BD%B3%E9%85%8D%E7%BD%AE%E5%AE%9E%E8%B7%B5-2026-01-06/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;Fcitx 最佳配置实践 2026-01-06&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://manateelazycat.github.io/2026/01/06/fcitx-best-config/%22"&gt;https://manateelazycat.github.io/2026/01/06/fcitx-best-config/&amp;quot;&lt;/a&gt;
author:
published:
created: 2026-01-11
description:
tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;Fcitx 最佳配置实践 2026-01-06&lt;/p&gt;
&lt;p&gt;「&lt;a href="https://manateelazycat.github.io/tags.html#Fcitx"&gt;Fcitx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;」&lt;/p&gt;
&lt;p&gt;2026-01-06 2486字&lt;/p&gt;
&lt;p&gt;Linux 下最爽的输入法就是 Fcitx 了， 但是没有配置好， 就会出现各种各样的问题， 比如打太快漏字这种问题。&lt;/p&gt;
&lt;p&gt;今天把所有博客关于 Fcitx 的配置都整理成一篇， 方便我自己和大家以后用。&lt;/p&gt;
&lt;h3 id="安装-fcitx5-输入法框架"&gt;安装 Fcitx5 输入法框架&lt;/h3&gt;
&lt;p&gt;安装 Fcitx5 软件包：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo pacman -S fcitx5 fcitx5-gtk fcitx5-qt fcitx5-configtool fcitx5-rime librime
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;fcitx5: 输入法基础框架主程序&lt;/li&gt;
&lt;li&gt;fcitx5-gtk: GTK 程序的支持， 必须安装， 修复打字太快漏字的问题&lt;/li&gt;
&lt;li&gt;fcitx5-qt: QT5 程序的支持， 必须安装， 修复打字太快漏字的问题&lt;/li&gt;
&lt;li&gt;fcitx5-configtool: 图形化配置工具&lt;/li&gt;
&lt;li&gt;fcitx5-rime: RIME 输入法&lt;/li&gt;
&lt;li&gt;fcitx5-im: 输入法设置工具&lt;/li&gt;
&lt;li&gt;librime: rime 相关库， 下面的 emacs-rime 会用到&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;备注：&lt;/p&gt;</description></item><item><title>ghostty 配置文件</title><link>https://yecnay.net/posts/tech/ghostty-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/ghostty-%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/</guid><description>&lt;p&gt;Config generated by Ghostty Config
shell-integration = zsh
shell-integration-features = cursor,sudo,title
custom-shader-animation = true
clipboard-read = allow
clipboard-write = allow&lt;/p&gt;
&lt;p&gt;font-family = &amp;ldquo;ZedMono NFM Extd&amp;rdquo;&lt;/p&gt;
&lt;p&gt;font-style-bold = &amp;ldquo;Medium&amp;rdquo;
font-style-bold-italic = &amp;ldquo;Medium Italic&amp;rdquo;
font-size = 13.8
font-thicken = true
grapheme-width-method = &amp;ldquo;unicode&amp;rdquo;&lt;/p&gt;
&lt;p&gt;adjust-cell-width = -5%
palette = 0=#212733
palette = 1=#f08778
palette = 2=#53bf97
palette = 3=#fdcc60
palette = 4=#60b8d6
palette = 5=#ec7171
palette = 6=#98e6ca
palette = 7=#fafafa
palette = 8=#686868
palette = 9=#f58c7d
palette = 10=#58c49c
palette = 11=#ffd165
palette = 12=#65bddb
palette = 13=#f17676
palette = 14=#9debcf
palette = 15=#ffffff
background =
foreground =&lt;/p&gt;</description></item><item><title>How to change hostname on Debian 121110 Linux</title><link>https://yecnay.net/posts/tech/how-to-change-hostname-on-debian-121110-linux/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/how-to-change-hostname-on-debian-121110-linux/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;How to change hostname on Debian 12/11/10 Linux&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://www.cyberciti.biz/faq/how-to-change-hostname-on-debian-10-linux/%22"&gt;https://www.cyberciti.biz/faq/how-to-change-hostname-on-debian-10-linux/&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;[Vivek Gite](/tags/Vivek Gite/)&amp;rdquo;
published: 2019-07-13
created: 2025-06-02
description: &amp;ldquo;This step-by-step guide explains how to change the hostname on your Debian Linux 12/11/10/9 system using the hostnamectl and /etc/hosts file.&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Linux&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;H ow do I change the hostname of a Debian Linux 12/11/10 (“bullseye” or “Buster”) operating system permanently using the command line tools?&lt;/p&gt;
&lt;p&gt;You can use the hostnamectl command or hostname command to display or set the Debian Linux system’s host name. In this tutorial, you will learn how to change your hostname on Debian Linux.&lt;/p&gt;</description></item><item><title>How to Fix SSH Failed Permission Denied</title><link>https://yecnay.net/posts/tech/how-to-fix-ssh-failed-permission-denied/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/how-to-fix-ssh-failed-permission-denied/</guid><description/></item><item><title>Linux Xargs 命令使用</title><link>https://yecnay.net/posts/tech/linux-xargs-%E5%91%BD%E4%BB%A4%E4%BD%BF%E7%94%A8/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/linux-xargs-%E5%91%BD%E4%BB%A4%E4%BD%BF%E7%94%A8/</guid><description/></item><item><title>Linux 命令行编辑快捷键</title><link>https://yecnay.net/posts/tech/linux-%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%BC%96%E8%BE%91%E5%BF%AB%E6%8D%B7%E9%94%AE/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/linux-%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%BC%96%E8%BE%91%E5%BF%AB%E6%8D%B7%E9%94%AE/</guid><description>&lt;p&gt;初学者在Linux命令窗口（终端）敲命令时，肯定觉得通过输入一串一串的字符的方式来控制计算是效率很低。
但是Linux命令解释器（Shell）是有很多快捷键的，熟练掌握可以极大的提高操作效率。
下面列出最常用的快捷键，这还不是完全版。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;命令行快捷键：
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;常用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ctrl L&lt;/strong&gt; ：清屏&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl M&lt;/strong&gt; ：等效于回车&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl C&lt;/strong&gt; : 中断正在当前正在执行的程序&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;历史命令：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ctrl P&lt;/strong&gt; : 上一条命令，可以一直按表示一直往前翻&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl N&lt;/strong&gt; : 下一条命令&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl R&lt;/strong&gt;，再按历史命令中出现过的字符串：按字符串寻找历史命令（重度推荐）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;命令行编辑：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tab&lt;/strong&gt; : 自动补齐（重度推荐）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl A&lt;/strong&gt; ： 移动光标到命令行首&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl E&lt;/strong&gt; : 移动光标到命令行尾&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl B&lt;/strong&gt; : 光标后退&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl F&lt;/strong&gt; : 光标前进&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alt F&lt;/strong&gt; : 光标前进一个单词&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alt B&lt;/strong&gt; : 光标后退一格单词&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl ]&lt;/strong&gt; : 从当前光标往后搜索字符串，用于快速移动到该字符串&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl Alt ]&lt;/strong&gt; : 从当前光标往前搜索字符串，用于快速移动到该字符串&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl H&lt;/strong&gt; : 删除光标的前一个字符&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl D&lt;/strong&gt; : 删除当前光标所在字符&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl K&lt;/strong&gt; ：删除光标之后所有字符&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl U&lt;/strong&gt; : 清空当前键入的命令&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl W&lt;/strong&gt; : 删除光标前的单词(Word, 不包含空格的字符串)&lt;/li&gt;
&lt;li&gt;**Ctrl \ ** : 删除光标前的所有空白字符&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl Y&lt;/strong&gt; : 粘贴&lt;strong&gt;Ctrl W&lt;/strong&gt;或&lt;strong&gt;Ctrl K&lt;/strong&gt;删除的内容&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alt .&lt;/strong&gt; : 粘贴上一条命令的最后一个参数（很有用）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alt [0-9] Alt .&lt;/strong&gt; 粘贴上一条命令的第[0-9]个参数&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alt [0-9] Alt . Alt.&lt;/strong&gt; 粘贴上上一条命令的第[0-9]个参数&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ctrl X Ctrl E&lt;/strong&gt; : 调出系统默认编辑器编辑当前输入的命令，退出编辑器时，命令执行&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;其他：&lt;/p&gt;</description></item><item><title>Linux教程 MOC</title><link>https://yecnay.net/posts/tech/linux%E6%95%99%E7%A8%8B-moc/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/linux%E6%95%99%E7%A8%8B-moc/</guid><description/></item><item><title>Mac 上“终端”中的键盘快捷键</title><link>https://yecnay.net/posts/tech/mac-%E4%B8%8A%E7%BB%88%E7%AB%AF%E4%B8%AD%E7%9A%84%E9%94%AE%E7%9B%98%E5%BF%AB%E6%8D%B7%E9%94%AE/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/mac-%E4%B8%8A%E7%BB%88%E7%AB%AF%E4%B8%AD%E7%9A%84%E9%94%AE%E7%9B%98%E5%BF%AB%E6%8D%B7%E9%94%AE/</guid><description>&lt;h1 id="mac-上终端中的键盘快捷键"&gt;Mac 上“终端”中的键盘快捷键&lt;/h1&gt;
&lt;p&gt;在 Mac 上的“终端” App &lt;img alt="img" loading="lazy" src="https://help.apple.com/assets/65DFB7A79DFEC61A7A0517AC/65DFB7A793CD15C0410BA37D/zh_CN/20f5edbfdfa0bd8ad4c4c6452e5b6761.png"&gt; 中，你可以使用键盘快捷键快速完成许多任务。请参阅下方的快捷键，以及在&lt;a href="https://support.apple.com/zh-cn/guide/terminal/aside/glos33eb8abd/2.14/mac/15.0"&gt;菜单栏&lt;/a&gt;的“终端”菜单中显示的快捷键。在 App 菜单中，键盘快捷键&lt;a href="https://support.apple.com/zh-cn/guide/mac-help/cpmh0011"&gt;显示为符号&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;【注】&lt;em&gt;App 中的键盘快捷键因你在 Mac 上使用的语言和键盘布局而异。如果下方的快捷键未按预期正常工作，请在菜单栏的 App 菜单中查找以查看正确的快捷键。你还可以&lt;a href="https://support.apple.com/zh-cn/guide/mac-help/mchlp1015"&gt;使用虚拟键盘&lt;/a&gt;查看当前键盘布局，称为&lt;/em&gt;输入法&lt;/em&gt;。&lt;/p&gt;
&lt;h2 id="使用终端窗口和标签页"&gt;使用“终端”窗口和标签页&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left"&gt;操作&lt;/th&gt;
&lt;th style="text-align: left"&gt;快捷键&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;新建窗口&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-N&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;使用相同命令新建窗口&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-Command-N&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;新建标签页&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-T&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;使用相同命令新建标签页&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-Command-T&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;显示或隐藏标签页栏&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-T&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;显示所有标签页或退出标签页概览&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-反斜杠 ()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;新建命令&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-N&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;新建远程连接&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;显示或隐藏检查器&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-I&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;编辑标题&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-I&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;编辑背景颜色&lt;/td&gt;
&lt;td style="text-align: left"&gt;Option-Command-I&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;放大字体&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-加号键 (+)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;缩小字体&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-减号键 (–)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;下一个窗口&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-重音符键 (`)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;上一个窗口&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-Shift-波浪符号 (~)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;下一个标签页&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-Tab&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;上一个标签页&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-Shift-Tab&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;将窗口拆分为两个面板&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-D&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;关闭拆分面板&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-D&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;关闭标签页&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-W&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;关闭窗口&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-W&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;关闭其他标签页&lt;/td&gt;
&lt;td style="text-align: left"&gt;Option-Command-W&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;全部关闭&lt;/td&gt;
&lt;td style="text-align: left"&gt;Option-Shift-Command-W&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;滚动到顶部&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-Home&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;滚动到底部&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-End&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;上一页&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-Page Up&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;下一页&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-Page Down&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;上一行&lt;/td&gt;
&lt;td style="text-align: left"&gt;Option-Command-Page Up&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;下一行&lt;/td&gt;
&lt;td style="text-align: left"&gt;Option-Command-Page Down&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="编辑命令行"&gt;编辑命令行&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left"&gt;操作&lt;/th&gt;
&lt;th style="text-align: left"&gt;快捷键&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;重新定位插入点&lt;/td&gt;
&lt;td style="text-align: left"&gt;在按住 Option 键的同时将指针移到新的插入点&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;将插入点移到行的开头&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;将插入点移到行的结尾&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-E&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;将插入点前移一个字符&lt;/td&gt;
&lt;td style="text-align: left"&gt;右箭头键&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;将插入点后移一个字符&lt;/td&gt;
&lt;td style="text-align: left"&gt;左箭头键&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;将插入点前移一个字词&lt;/td&gt;
&lt;td style="text-align: left"&gt;Option-右箭头键&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;将插入点后移一个字词&lt;/td&gt;
&lt;td style="text-align: left"&gt;Option-左箭头键&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;删除行&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-U&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;删除到行的结尾&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;向前删除到字词的结尾&lt;/td&gt;
&lt;td style="text-align: left"&gt;Option-D（选中&lt;a href="https://support.apple.com/zh-cn/guide/terminal/trmlkbrd/2.14/mac/15.0"&gt;将 Option 键用作 Meta 键&lt;/a&gt;后可用）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;向后删除到字词的开头&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-W&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;删除一个字符&lt;/td&gt;
&lt;td style="text-align: left"&gt;Delete&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;向前删除一个字符&lt;/td&gt;
&lt;td style="text-align: left"&gt;向前删除（或使用 Fn-Delete）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;转置两个字符&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-T&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="在终端窗口中选择和查找文本"&gt;在“终端”窗口中选择和查找文本&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left"&gt;操作&lt;/th&gt;
&lt;th style="text-align: left"&gt;快捷键&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;选择完整文件路径&lt;/td&gt;
&lt;td style="text-align: left"&gt;按住 Shift-Command 键并连按路径&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;选择整行文本&lt;/td&gt;
&lt;td style="text-align: left"&gt;点按该行三下&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;选择一个词&lt;/td&gt;
&lt;td style="text-align: left"&gt;连按该词&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;选择 URL&lt;/td&gt;
&lt;td style="text-align: left"&gt;按住 Shift-Command 键并连按 URL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;选择矩形块&lt;/td&gt;
&lt;td style="text-align: left"&gt;按住 Option 键并拖移来选择文本&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;剪切&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;拷贝&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;不带背景颜色拷贝&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-Shift-Command-C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;拷贝纯文本&lt;/td&gt;
&lt;td style="text-align: left"&gt;Option-Shift-Command-C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;粘贴&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-V&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;粘贴所选内容&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-V&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;粘贴转义文本&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-Command-V&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;粘贴转义的所选内容&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-Shift-Command-V&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;查找&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-F&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;查找下一个&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-G&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;查找上一个&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-Shift-G&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;使用选定的文本查找&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-E&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;跳到选定的文本&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-J&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;全选&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;打开字符检视器&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-Command-Space&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="使用标记和书签"&gt;使用标记和书签&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left"&gt;操作&lt;/th&gt;
&lt;th style="text-align: left"&gt;快捷键&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;标记&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-U&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;标记为书签&lt;/td&gt;
&lt;td style="text-align: left"&gt;Option-Command-U&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;取消标记&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-U&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;标记命令行并发送返回结果&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-Return&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;发送返回结果但不标记&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-Return&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;插入书签&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;插入包含名称的书签&lt;/td&gt;
&lt;td style="text-align: left"&gt;Option-Shift-Command-M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;跳到上一个标记&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-上箭头键&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;跳到下一个标记&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-下箭头键&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;跳到上一个书签&lt;/td&gt;
&lt;td style="text-align: left"&gt;Option-Command-上箭头键&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;跳到下一个书签&lt;/td&gt;
&lt;td style="text-align: left"&gt;Option-Command-下箭头键&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;清除到上一个标记&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-L&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;清除到上一个书签&lt;/td&gt;
&lt;td style="text-align: left"&gt;Option-Command-L&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;清除到开头&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;在标记之间选择&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-A&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="其他快捷键"&gt;其他快捷键&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left"&gt;操作&lt;/th&gt;
&lt;th style="text-align: left"&gt;快捷键&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;进入或退出全屏幕&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-Command-F&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;显示或隐藏颜色&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;打开“终端”设置&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-逗号键 (,)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;中断&lt;/td&gt;
&lt;td style="text-align: left"&gt;键入 Command-句点键 (.) 等于在命令行上输入 Control-C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;打印&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-P&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;软重置终端仿真器状态&lt;/td&gt;
&lt;td style="text-align: left"&gt;Option-Command-R&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;硬重置终端仿真器状态&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-Option-Command-R&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;打开 URL&lt;/td&gt;
&lt;td style="text-align: left"&gt;按住 Command 键并连按 URL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;添加至文件的完整路径&lt;/td&gt;
&lt;td style="text-align: left"&gt;从“访达”将文件拖移到“终端”窗口中&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;将文本导出为&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-S&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;将选定的文本导出为&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-S&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;反向搜索命令历史&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-R&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;开关“允许鼠标报告”选项&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-R&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;开关“将 Option 键用作 Meta 键”选项&lt;/td&gt;
&lt;td style="text-align: left"&gt;Command-Option-O&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;显示备用屏幕&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-下箭头键&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;隐藏备用屏幕&lt;/td&gt;
&lt;td style="text-align: left"&gt;Shift-Command-上箭头键&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;打开所选内容的 man 页面&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-Shift-Command-问号键 (?)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;搜索所选内容的 man 页面索引&lt;/td&gt;
&lt;td style="text-align: left"&gt;Control-Option-Command-斜杠 (/)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;完整的目录或文件名称&lt;/td&gt;
&lt;td style="text-align: left"&gt;在命令行上，键入一个或多个字符，然后按下 Tab 键&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;显示可能的目录或文件名称补全列表&lt;/td&gt;
&lt;td style="text-align: left"&gt;在命令行上，键入一个或多个字符，然后按下 Tab 键两次&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>markdown小抄表</title><link>https://yecnay.net/posts/tech/markdown%E5%B0%8F%E6%8A%84%E8%A1%A8/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/markdown%E5%B0%8F%E6%8A%84%E8%A1%A8/</guid><description/></item><item><title>Nginx 配置与实战</title><link>https://yecnay.net/posts/tech/nginx-%E9%85%8D%E7%BD%AE%E4%B8%8E%E5%AE%9E%E6%88%98/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/nginx-%E9%85%8D%E7%BD%AE%E4%B8%8E%E5%AE%9E%E6%88%98/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器，而且支持热部署，几乎可以做到 7 * 24 小时不间断运行，即使运行几个月也不需要重新启动，还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量，其占用内存少、并发能力强、能支持高达 5w 个并发连接数，最重要的是， Nginx 是免费的并可以商业化，配置使用也比较简单。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nginx特点：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;高并发、高性能；&lt;/li&gt;
&lt;li&gt;模块化架构使得它的扩展性非常好；&lt;/li&gt;
&lt;li&gt;异步非阻塞的事件驱动模型这点和 Node.js 相似；&lt;/li&gt;
&lt;li&gt;相对于其它服务器来说它可以连续几个月甚至更长而不需要重启服务器使得它具有高可靠性；&lt;/li&gt;
&lt;li&gt;热部署、平滑升级；&lt;/li&gt;
&lt;li&gt;完全开源，生态繁荣；&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;更多内容查看这篇：《 &lt;a href="https://www.cnblogs.com/librarookie/p/18779489"&gt;Nginx 离线安装与介绍&lt;/a&gt; 》&lt;/p&gt;
&lt;h2 id="一配置nginxconf"&gt;一、配置（nginx.conf）&lt;/h2&gt;
&lt;p&gt;nginx.conf 配置文件的语法规则：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;配置文件由 &lt;code&gt;指令&lt;/code&gt; 与 &lt;code&gt;指令块&lt;/code&gt; 构成;&lt;/li&gt;
&lt;li&gt;每条指令以 &lt;code&gt;;&lt;/code&gt; 分号结尾，指令与参数间以空格符号分隔;&lt;/li&gt;
&lt;li&gt;指令块以 &lt;code&gt;{}&lt;/code&gt; 大括号将多条指令组织在一起;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;include&lt;/code&gt; 语句允许组合多个配置文件以提升可维护性;&lt;/li&gt;
&lt;li&gt;通过 &lt;code&gt;#&lt;/code&gt; 符号添加注释，提高可读性;&lt;/li&gt;
&lt;li&gt;通过 &lt;code&gt;$&lt;/code&gt; 符号使用变量;&lt;/li&gt;
&lt;li&gt;部分指令的参数支持正则表达式，例如常用的 location 指令.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nginx 的典型配置示例：&lt;/p&gt;
&lt;p&gt;&lt;img alt="202503112016964" loading="lazy" src="https://gitee.com/librarookie/picgo/raw/master/img/202503112016964.png"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;main 全局配置，对全局生效；&lt;/li&gt;
&lt;li&gt;events 配置影响 Nginx 服务器与用户的网络连接；&lt;/li&gt;
&lt;li&gt;http 配置代理，缓存，日志定义等绝大多数功能和第三方模块的配置；&lt;/li&gt;
&lt;li&gt;server 配置虚拟主机的相关参数，一个 http 块中可以有多个 server 块；&lt;/li&gt;
&lt;li&gt;location 用于配置匹配的 uri ；&lt;/li&gt;
&lt;li&gt;upstream 配置后端服务器具体地址，负载均衡配置不可或缺的部分；
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#1. main段配置信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;user nginx&lt;span class="p"&gt;;&lt;/span&gt; 运行用户，默认即是nginx，可以不进行设置
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;worker_processes auto&lt;span class="p"&gt;;&lt;/span&gt; 进程数，一般设置为和 CPU 核数一样
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;error_log /var/log/nginx/error.log warn&lt;span class="p"&gt;;&lt;/span&gt; 的错误日志存放目录
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pid /var/run/nginx.pid&lt;span class="p"&gt;;&lt;/span&gt; 服务启动时的 pid 存放位置
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#2. events段配置信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;events &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; use epoll&lt;span class="p"&gt;;&lt;/span&gt; 使用epoll的I/O模型&lt;span class="o"&gt;(&lt;/span&gt;缺省会自动选择一个最适合你操作系统的&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; worker_connections 1024&lt;span class="p"&gt;;&lt;/span&gt; 每个进程允许最大并发数
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#3. http段配置信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#配置使用最频繁的部分，代理、缓存、日志定义等绝大多数功能和第三方模块的配置都在这里设置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;http &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 设置日志模式
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; log_format main &lt;span class="s1"&gt;&amp;#39;$remote_addr - $remote_user [$time_local] &amp;#34;$request&amp;#34; &amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;$status $body_bytes_sent &amp;#34;$http_referer&amp;#34; &amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#34;$http_user_agent&amp;#34; &amp;#34;$http_x_forwarded_for&amp;#34;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; access_log /var/log/nginx/access.log main&lt;span class="p"&gt;;&lt;/span&gt; 访问日志存放位置
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; sendfile on&lt;span class="p"&gt;;&lt;/span&gt; 开启高效传输模式
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; tcp_nopush on&lt;span class="p"&gt;;&lt;/span&gt; 减少网络报文段的数量
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; tcp_nodelay on&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; keepalive_timeout 65&lt;span class="p"&gt;;&lt;/span&gt; 保持连接的时间，也叫超时时间，单位秒
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; types_hash_max_size 2048&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; include /etc/nginx/mime.types&lt;span class="p"&gt;;&lt;/span&gt; 文件扩展名与类型映射表
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; default_type application/octet-stream&lt;span class="p"&gt;;&lt;/span&gt; 默认文件类型
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; . server段配置信息
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; server &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; listen 80&lt;span class="p"&gt;;&lt;/span&gt; 配置监听的端口
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; server_name localhost&lt;span class="p"&gt;;&lt;/span&gt; 配置的域名
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; . location段配置信息
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; location / &lt;span class="o"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; root /usr/share/nginx/html&lt;span class="p"&gt;;&lt;/span&gt; 网站根目录
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; index index.html index.htm&lt;span class="p"&gt;;&lt;/span&gt; 默认首页文件
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; deny 172.168.22.11&lt;span class="p"&gt;;&lt;/span&gt; 禁止访问的ip地址，可以为all
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; allow 172.168.33.44； 允许访问的ip地址，可以为all
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; error_page &lt;span class="m"&gt;500&lt;/span&gt; &lt;span class="m"&gt;502&lt;/span&gt; &lt;span class="m"&gt;503&lt;/span&gt; &lt;span class="m"&gt;504&lt;/span&gt; /50x.html&lt;span class="p"&gt;;&lt;/span&gt; 默认50x对应的访问页面
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; error_page &lt;span class="m"&gt;400&lt;/span&gt; &lt;span class="m"&gt;404&lt;/span&gt; error.html&lt;span class="p"&gt;;&lt;/span&gt; 同上
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 加载子配置项
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; include /etc/nginx/conf.d/*.conf&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="11-内置变量"&gt;1.1 内置变量&lt;/h3&gt;
&lt;p&gt;nginx 常用的内置全局变量，你可以在配置中随意使用，点此查看效果： &lt;a href="https://www.cnblogs.com/librarookie/p/#%E5%86%85%E7%BD%AE%E5%8F%98%E9%87%8F%E5%AE%9E%E4%BE%8B%E6%BC%94%E7%A4%BA" title="实例传送阵"&gt;内置变量实例演示&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Nginx日志按天切割、压缩，并自动清理 30 天前的旧日志文件</title><link>https://yecnay.net/posts/tech/nginx%E6%97%A5%E5%BF%97%E6%8C%89%E5%A4%A9%E5%88%87%E5%89%B2%E5%8E%8B%E7%BC%A9%E5%B9%B6%E8%87%AA%E5%8A%A8%E6%B8%85%E7%90%86-30-%E5%A4%A9%E5%89%8D%E7%9A%84%E6%97%A7%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/nginx%E6%97%A5%E5%BF%97%E6%8C%89%E5%A4%A9%E5%88%87%E5%89%B2%E5%8E%8B%E7%BC%A9%E5%B9%B6%E8%87%AA%E5%8A%A8%E6%B8%85%E7%90%86-30-%E5%A4%A9%E5%89%8D%E7%9A%84%E6%97%A7%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6/</guid><description>&lt;hr&gt;
&lt;p&gt;title: Nginx日志按天切割、压缩，并自动清理 30 天前的旧日志文件
source: &lt;a href="https://www.cnblogs.com/ydswin/p/18664322"&gt;https://www.cnblogs.com/ydswin/p/18664322&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/dashery/"&gt;dashery&lt;/a&gt;&amp;rdquo;
published: 2025-01-10
created: 2025-07-17
tags:&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;以下是一个完整的 Shell 脚本，用于实现 Nginx 日志按天切割、压缩，并自动清理 30 天前的旧日志文件。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="脚本内容"&gt;脚本内容&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 定义日志目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;LOG_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/var/log/nginx&amp;#34;&lt;/span&gt; Nginx 日志目录
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;DAYS_TO_KEEP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;30&lt;/span&gt; 保留最近多少天的日志
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 检查日志目录是否存在&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; ! -d &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_DIR&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;错误：日志目录 &lt;/span&gt;&lt;span class="nv"&gt;$LOG_DIR&lt;/span&gt;&lt;span class="s2"&gt; 不存在！&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 获取昨天的日期（用于日志切割）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;YESTERDAY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date -d &lt;span class="s2"&gt;&amp;#34;yesterday&amp;#34;&lt;/span&gt; +%Y-%m-%d&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 切割日志文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -f &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_DIR&lt;/span&gt;&lt;span class="s2"&gt;/access.log&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; mv &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_DIR&lt;/span&gt;&lt;span class="s2"&gt;/access.log&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_DIR&lt;/span&gt;&lt;span class="s2"&gt;/access_&lt;/span&gt;&lt;span class="nv"&gt;$YESTERDAY&lt;/span&gt;&lt;span class="s2"&gt;.log&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -f &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_DIR&lt;/span&gt;&lt;span class="s2"&gt;/error.log&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; mv &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_DIR&lt;/span&gt;&lt;span class="s2"&gt;/error.log&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_DIR&lt;/span&gt;&lt;span class="s2"&gt;/error_&lt;/span&gt;&lt;span class="nv"&gt;$YESTERDAY&lt;/span&gt;&lt;span class="s2"&gt;.log&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 向 Nginx 主进程发送 USR1 信号，重新打开日志文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -f /var/run/nginx.pid &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;kill&lt;/span&gt; -USR1 &lt;span class="k"&gt;$(&lt;/span&gt;cat /var/run/nginx.pid&lt;span class="k"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 压缩昨天的日志文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -f &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_DIR&lt;/span&gt;&lt;span class="s2"&gt;/access_&lt;/span&gt;&lt;span class="nv"&gt;$YESTERDAY&lt;/span&gt;&lt;span class="s2"&gt;.log&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; gzip &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_DIR&lt;/span&gt;&lt;span class="s2"&gt;/access_&lt;/span&gt;&lt;span class="nv"&gt;$YESTERDAY&lt;/span&gt;&lt;span class="s2"&gt;.log&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -f &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_DIR&lt;/span&gt;&lt;span class="s2"&gt;/error_&lt;/span&gt;&lt;span class="nv"&gt;$YESTERDAY&lt;/span&gt;&lt;span class="s2"&gt;.log&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; gzip &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_DIR&lt;/span&gt;&lt;span class="s2"&gt;/error_&lt;/span&gt;&lt;span class="nv"&gt;$YESTERDAY&lt;/span&gt;&lt;span class="s2"&gt;.log&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 清理 30 天前的旧日志文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;find &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_DIR&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; -type f -name &lt;span class="s2"&gt;&amp;#34;access_*.log.gz&amp;#34;&lt;/span&gt; -mtime +&lt;span class="nv"&gt;$DAYS_TO_KEEP&lt;/span&gt; -exec rm -f &lt;span class="o"&gt;{}&lt;/span&gt; &lt;span class="se"&gt;\;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;find &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_DIR&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; -type f -name &lt;span class="s2"&gt;&amp;#34;error_*.log.gz&amp;#34;&lt;/span&gt; -mtime +&lt;span class="nv"&gt;$DAYS_TO_KEEP&lt;/span&gt; -exec rm -f &lt;span class="o"&gt;{}&lt;/span&gt; &lt;span class="se"&gt;\;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 记录操作日志&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;date &lt;span class="s1"&gt;&amp;#39;+%Y-%m-%d %H:%M:%S&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt; - 日志已切割、压缩并清理完成。&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$LOG_DIR&lt;/span&gt;&lt;span class="s2"&gt;/nginx_log_cleanup.log&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h3 id="脚本说明"&gt;脚本说明&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;日志目录&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;LOG_DIR&lt;/code&gt; 定义了 Nginx 日志文件的存储目录，默认是 &lt;code&gt;/var/log/nginx&lt;/code&gt; 。你可以根据实际路径修改。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;日志切割&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;脚本会将当前的 &lt;code&gt;access.log&lt;/code&gt; 和 &lt;code&gt;error.log&lt;/code&gt; 文件重命名为 &lt;code&gt;access_YYYY-MM-DD.log&lt;/code&gt; 和 &lt;code&gt;error_YYYY-MM-DD.log&lt;/code&gt; ，其中 &lt;code&gt;YYYY-MM-DD&lt;/code&gt; 是前一天的日期。&lt;/li&gt;
&lt;li&gt;通过向 Nginx 主进程发送 &lt;code&gt;USR1&lt;/code&gt; 信号，通知 Nginx 重新打开日志文件。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;日志压缩&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;使用 &lt;code&gt;gzip&lt;/code&gt; 命令将切割后的日志文件压缩为 &lt;code&gt;.gz&lt;/code&gt; 格式，以节省磁盘空间。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;日志清理&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;使用 &lt;code&gt;find&lt;/code&gt; 命令查找并删除 30 天前的旧日志文件（文件名格式为 &lt;code&gt;access_*.log.gz&lt;/code&gt; 和 &lt;code&gt;error_*.log.gz&lt;/code&gt; ）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;操作日志&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;每次运行脚本时，会将操作记录到 &lt;code&gt;nginx_log_cleanup.log&lt;/code&gt; 中，方便后续查看。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3 id="使用方法"&gt;使用方法&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;将脚本保存为文件，例如 &lt;code&gt;/usr/local/bin/rotate_compress_clean_nginx_logs.sh&lt;/code&gt; 。&lt;/li&gt;
&lt;li&gt;赋予脚本执行权限：
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chmod +x /usr/local/bin/rotate_compress_clean_nginx_logs.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;手动运行脚本测试：
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/usr/local/bin/rotate_compress_clean_nginx_logs.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;如果需要每天自动运行，可以将脚本添加到 crontab 中。例如，每天凌晨 0 点运行：
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;crontab -e
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;添加以下内容：
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; * * * /usr/local/bin/rotate_compress_clean_nginx_logs.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3 id="注意事项"&gt;注意事项&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;权限问题&lt;/strong&gt;&lt;br&gt;
确保脚本以具有足够权限的用户（如 &lt;code&gt;root&lt;/code&gt; ）运行，否则可能无法删除、重命名或压缩日志文件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;测试&lt;/strong&gt;&lt;br&gt;
在生产环境中运行之前，建议先在测试环境中验证脚本的正确性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;日志轮换&lt;/strong&gt;&lt;br&gt;
如果已经配置了 &lt;code&gt;logrotate&lt;/code&gt; 来管理 Nginx 日志，请确保脚本与 &lt;code&gt;logrotate&lt;/code&gt; 的配置不冲突。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;备份&lt;/strong&gt;&lt;br&gt;
如果需要保留某些重要日志，可以在删除前备份到其他位置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;压缩文件格式&lt;/strong&gt;&lt;br&gt;
脚本使用 &lt;code&gt;gzip&lt;/code&gt; 压缩日志文件，压缩后的文件格式为 &lt;code&gt;.gz&lt;/code&gt; 。如果需要其他格式（如 &lt;code&gt;.zip&lt;/code&gt; ），可以修改脚本中的压缩命令。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;通过这个脚本，你可以实现 Nginx 日志按天切割、压缩并自动清理旧日志，有效管理磁盘空间并保留必要的日志记录。&lt;/p&gt;</description></item><item><title>obsidian markdown 语法</title><link>https://yecnay.net/posts/tech/obsidian-markdown-%E8%AF%AD%E6%B3%95/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/obsidian-markdown-%E8%AF%AD%E6%B3%95/</guid><description>&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-md" data-lang="md"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;所谓跨行
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;就是可以有很多行
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;这里是跨行注释：
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;### 图表
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Obsidian 通过 [&lt;span class="nt"&gt;Mermaid&lt;/span&gt;](&lt;span class="na"&gt;https://mermaid-js.github.io/&lt;/span&gt;) 及其所提供的[&lt;span class="nt"&gt;编译器&lt;/span&gt;](&lt;span class="na"&gt;https://mermaid-js.github.io/mermaid-live-editor&lt;/span&gt;)来为用户提供图表的绘制功能。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;``&lt;span class="sb"&gt;`mermaid
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt;sequenceDiagram
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; Alice-&amp;gt;&amp;gt;+John: 嗨，John，最近怎样？
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; Alice-&amp;gt;&amp;gt;+John: John，听得到我说话吗？
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; John--&amp;gt;&amp;gt;-Alice: 嗨，Alice，我能听到！
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; John--&amp;gt;&amp;gt;-Alice: 最近不错！
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt;`&lt;/span&gt;`&lt;span class="sb"&gt;`&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt;`&lt;/span&gt;``mermaid
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sequenceDiagram
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Alice-&amp;gt;&amp;gt;+John: 嗨，John，最近怎样？
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Alice-&amp;gt;&amp;gt;+John: John，听得到我说话吗？
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; John--&amp;gt;&amp;gt;-Alice: 嗨，Alice，我能听到！
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; John--&amp;gt;&amp;gt;-Alice: 最近不错！
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="开发小记"&gt;开发小记&lt;/h2&gt;
&lt;p&gt;总的来说，我们在努力让 Obsidian 的语法不偏离正统的 Markdown 语法太多。总的来看，Obsidian 的语法大多还是基于 CommonMark，包括了一些 GitHub Flavored Markdown（GFM）和 LaTeX，以及我们特有的嵌入文件语法。&lt;/p&gt;</description></item><item><title>OmniFocus 常用快捷键</title><link>https://yecnay.net/posts/tech/omnifocus-%E5%B8%B8%E7%94%A8%E5%BF%AB%E6%8D%B7%E9%94%AE/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/omnifocus-%E5%B8%B8%E7%94%A8%E5%BF%AB%E6%8D%B7%E9%94%AE/</guid><description>&lt;p&gt;使用键盘快捷键能进一步加快工作流程！下面列出了一些我们认为对您特别有用的快捷键：&lt;/p&gt;
&lt;p&gt;标记为完成 空格键
标记已丢弃 Option-空格键
删除   Command-Delete
编辑标题 E
编辑备注 N
编辑项目  P
编辑标签 T
编辑截止日期 D
标记为已标注 F
上移 Control-Command-上箭头
下移 Control-Command-下箭头
缩进 Command-右中括号 (])
减少缩进 Command-左中括号 ([)&lt;/p&gt;</description></item><item><title>Openwrt opkg 批量更新软件</title><link>https://yecnay.net/posts/tech/openwrt-opkg-%E6%89%B9%E9%87%8F%E6%9B%B4%E6%96%B0%E8%BD%AF%E4%BB%B6/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/openwrt-opkg-%E6%89%B9%E9%87%8F%E6%9B%B4%E6%96%B0%E8%BD%AF%E4%BB%B6/</guid><description/></item><item><title>rclone 如何通过WebDAV 链接synology - Google Search</title><link>https://yecnay.net/posts/tech/rclone-%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87webdav-%E9%93%BE%E6%8E%A5synology-google-search/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/rclone-%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87webdav-%E9%93%BE%E6%8E%A5synology-google-search/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;rclone 如何通过WebDAV 链接synology - Google Search&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://www.google.com.hk/search?q=rclone+%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87WebDAV+%E9%93%BE%E6%8E%A5synology&amp;amp;sca_esv=83052c8b1ac74795&amp;amp;sxsrf=ANbL-n5BC4hPxpV1mOeOmPy8duv6Y33HYA%3A1768261347558&amp;amp;source=hp&amp;amp;ei=44ZlaYezIPuwkPIP69j9-A4&amp;amp;iflsig=AFdpzrgAAAAAaWWU826MN4C3b7hbxJ2hfcqoNQwW4Ial&amp;amp;aep=22&amp;amp;udm=50&amp;amp;ved=0ahUKEwjHsPXrloeSAxV7GEQIHWtsH-8QteYPCBo&amp;amp;oq=&amp;amp;gs_lp=Egdnd3Mtd2l6IgBIAFAAWABwAHgAkAEAmAEAoAEAqgEAuAEByAEAmAIAoAIAmAMAkgcAoAcAsgcAuAcAwgcAyAcAgAgA&amp;amp;sclient=gws-wiz&amp;amp;mstk=AUtExfBNnod1Fl3lhxi24qi1VlhNecEVlzdnppauum_IMIQPAl_-iiXOX0dV3SAO9hq2vL-3KMCtZqVYOCQVmm8YFqKJV-LZ0hldX63pKz6rZO2LY9Cu3xfedbS67xB3mw4RfLHRZEaQJjh5Y-aUJys-75TYc1PmPt-O2kaDgswvzz_-goLSU72rgBjEyic4i-1EV_b-jdLFpQLSifJZTZNkDHOiEzLJ88pYSH_t-76pZOxLEReFa1ouvLdjltKW37o1v5vJJQvWCnGmIwbhW--uwOarA80kcPMJNnY&amp;amp;csuir=1&amp;amp;mtid=A4dlad3_IfDcptQPycflsAc%22"&gt;https://www.google.com.hk/search?q=rclone+%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87WebDAV+%E9%93%BE%E6%8E%A5synology&amp;amp;sca_esv=83052c8b1ac74795&amp;amp;sxsrf=ANbL-n5BC4hPxpV1mOeOmPy8duv6Y33HYA%3A1768261347558&amp;amp;source=hp&amp;amp;ei=44ZlaYezIPuwkPIP69j9-A4&amp;amp;iflsig=AFdpzrgAAAAAaWWU826MN4C3b7hbxJ2hfcqoNQwW4Ial&amp;amp;aep=22&amp;amp;udm=50&amp;amp;ved=0ahUKEwjHsPXrloeSAxV7GEQIHWtsH-8QteYPCBo&amp;amp;oq=&amp;amp;gs_lp=Egdnd3Mtd2l6IgBIAFAAWABwAHgAkAEAmAEAoAEAqgEAuAEByAEAmAIAoAIAmAMAkgcAoAcAsgcAuAcAwgcAyAcAgAgA&amp;amp;sclient=gws-wiz&amp;amp;mstk=AUtExfBNnod1Fl3lhxi24qi1VlhNecEVlzdnppauum_IMIQPAl_-iiXOX0dV3SAO9hq2vL-3KMCtZqVYOCQVmm8YFqKJV-LZ0hldX63pKz6rZO2LY9Cu3xfedbS67xB3mw4RfLHRZEaQJjh5Y-aUJys-75TYc1PmPt-O2kaDgswvzz_-goLSU72rgBjEyic4i-1EV_b-jdLFpQLSifJZTZNkDHOiEzLJ88pYSH_t-76pZOxLEReFa1ouvLdjltKW37o1v5vJJQvWCnGmIwbhW--uwOarA80kcPMJNnY&amp;amp;csuir=1&amp;amp;mtid=A4dlad3_IfDcptQPycflsAc&amp;quot;&lt;/a&gt;
author:
published:
created: 2026-01-13
description:
tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;rclone 如何通过WebDAV 链接synology&lt;/p&gt;
&lt;p&gt;在 2026 年，使用 rclone 通过 WebDAV 连接 Synology (群晖) NAS 的过程主要分为两步：在 NAS 上启用服务以及在 rclone 中进行配置。&lt;/p&gt;
&lt;p&gt;第一步：在 Synology NAS 上启用 WebDAV&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;安装套件&lt;/strong&gt; ：登录 DSM，在 &lt;strong&gt;套件中心 (Package Center)&lt;/strong&gt; 搜索并安装 &lt;strong&gt;WebDAV Server&lt;/strong&gt; 。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;启用端口&lt;/strong&gt; ：打开 WebDAV Server 应用程序。
&lt;ul&gt;
&lt;li&gt;勾选 &lt;strong&gt;启用 HTTP&lt;/strong&gt; (默认端口 5005) 或 &lt;strong&gt;启用 HTTPS&lt;/strong&gt; (默认端口 5006，推荐使用 HTTPS 以保证数据安全)。&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;应用&lt;/strong&gt; 保存设置。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;设置权限&lt;/strong&gt; ：
&lt;ul&gt;
&lt;li&gt;前往 &lt;strong&gt;控制面板 &amp;gt; 用户账号 (或用户与群组)&lt;/strong&gt; ，选择目标用户并点击 &lt;strong&gt;编辑&lt;/strong&gt; 。&lt;/li&gt;
&lt;li&gt;在 &lt;strong&gt;应用程序&lt;/strong&gt; 选项卡中，确保该用户对 &lt;strong&gt;WebDAV Server&lt;/strong&gt; 的访问权限为 &lt;strong&gt;允许&lt;/strong&gt; 。&lt;/li&gt;
&lt;li&gt;确保该用户对需要访问的 &lt;strong&gt;共享文件夹&lt;/strong&gt; 拥有读写权限。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;第二步：在 rclone 中配置连接&lt;/p&gt;</description></item><item><title>sing-box 基础教程：sing-box 的配置方法和使用教程</title><link>https://yecnay.net/posts/tech/sing-box-%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8Bsing-box-%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E5%92%8C%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/sing-box-%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8Bsing-box-%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95%E5%92%8C%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/</guid><description>&lt;hr&gt;
&lt;h2 id="tags"&gt;title: sing-box 基础教程：sing-box 的配置方法和使用教程
source: &lt;a href="https://icloudnative.io/posts/sing-box-tutorial/"&gt;https://icloudnative.io/posts/sing-box-tutorial/&lt;/a&gt;
author: []
published: 2024-01-14
created: 2024-12-04
description: 全面解析 sing-box：超越 *ray core 和 clash 的下一代通用代理工具。了解其支持的丰富协议，免费客户端，以及如何轻松设置全局透明代理。适用于 Android、iOS、macOS，Linux，及更多平台。
tags:&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt; sing-box 是什么
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="https://icloudnative.io/go/?target=aHR0cHM6Ly9naXRodWIuY29tL1NhZ2VyTmV0L3NpbmctYm94"&gt;sing-box&lt;/a&gt; 是新一代超强通用代理工具，对标 *ray core 与 clash，而且它的性能以及支持的协议类型已经超过了 *ray core 与 clash。目前支持以下协议：&lt;/p&gt;
&lt;p&gt;入站：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Shadowsocks(including shadowsocks2022)&lt;/li&gt;
&lt;li&gt;Vmess&lt;/li&gt;
&lt;li&gt;Trojan&lt;/li&gt;
&lt;li&gt;Naive&lt;/li&gt;
&lt;li&gt;Hysteria&lt;/li&gt;
&lt;li&gt;ShadowTLS&lt;/li&gt;
&lt;li&gt;Vless&lt;/li&gt;
&lt;li&gt;Tuic&lt;/li&gt;
&lt;li&gt;Tun&lt;/li&gt;
&lt;li&gt;Redirect&lt;/li&gt;
&lt;li&gt;TProxy&lt;/li&gt;
&lt;li&gt;Socks&lt;/li&gt;
&lt;li&gt;HTTP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;出站：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Shadowsocks(including shadowsocks2022)&lt;/li&gt;
&lt;li&gt;Vmess&lt;/li&gt;
&lt;li&gt;Trojan&lt;/li&gt;
&lt;li&gt;Wireguard&lt;/li&gt;
&lt;li&gt;Hysteria&lt;/li&gt;
&lt;li&gt;ShadowTLS&lt;/li&gt;
&lt;li&gt;ShadowsocksR&lt;/li&gt;
&lt;li&gt;VLESS&lt;/li&gt;
&lt;li&gt;Tuic&lt;/li&gt;
&lt;li&gt;Hysteria2&lt;/li&gt;
&lt;li&gt;Tor&lt;/li&gt;
&lt;li&gt;SSH&lt;/li&gt;
&lt;li&gt;DNS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;除了命令行客户端以外，还提供了图形界面客户端，图形界面支持 Android、iOS、macOS 以及 Apple tvOS，Windows 暂时不支持，还在施工中 🚧&lt;/p&gt;</description></item><item><title>Tmux 使用教程</title><link>https://yecnay.net/posts/tech/tmux-%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/tmux-%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/</guid><description/></item><item><title>记账神器Beancount教程</title><link>https://yecnay.net/posts/tech/%E8%AE%B0%E8%B4%A6%E7%A5%9E%E5%99%A8beancount%E6%95%99%E7%A8%8B/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/%E8%AE%B0%E8%B4%A6%E7%A5%9E%E5%99%A8beancount%E6%95%99%E7%A8%8B/</guid><description>&lt;h1 id="记账神器-beancount-教程"&gt;记账神器 Beancount 教程&lt;/h1&gt;
&lt;p&gt;记了几年账，工具用过随手记、Excel 甚至 Evernote。通常只记收支，不记收支对应的账户变化。其实知道这种方式很粗浅，容易错记、漏记，并且只能分析收支，无法跟踪个人财务现状。结果则是，虽然记了几年，却很少分析，个人财务状态也没有实质改善。&lt;/p&gt;
&lt;p&gt;几个月前看到 byvoid 分享 Beancount，发现是一款记账神器。我从 7 月 1 日正式使用，如今也有 3 个多月，分享一些经验心得。&lt;/p&gt;
&lt;h2 id="一普通记账-vs-复式记账"&gt;一、普通记账 vs 复式记账&lt;/h2&gt;
&lt;p&gt;Beancount 记账方法叫复式记账。&lt;/p&gt;
&lt;p&gt;把只记录收支的方法称为&lt;strong&gt;普通记账&lt;/strong&gt;（估计是多数人在用的方法）。那么&lt;strong&gt;复式记账&lt;/strong&gt;，除了记录收支，还需记录账户（支付宝、银行卡等）的变动。以一个最简单的例子感受二者的区别：&lt;/p&gt;
&lt;p&gt;假设：7 月 1 日，打车花费 30 元，使用&lt;strong&gt;银行卡&lt;/strong&gt;支付。&lt;/p&gt;
&lt;p&gt;普通记账一般包括日期、收支分类和金额，如下：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;2019-08-28: 交通-打车 -200元
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;复式记账把账户变化也一并记账，如下：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;2019-08-28:
交通-打车 200元
银行卡 -200元
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;复式记账会记录每笔交易的资金流动，各账户变化「有正有负，正负相等」。这便是复式记账的基本原理，称之为「会计恒等式」&lt;/strong&gt;。这种方式能够保证记账准确无误，也能提供更详细的财务分析。&lt;/p&gt;
&lt;p&gt;这句话中的&lt;strong&gt;账户&lt;/strong&gt;是广义的，也可理解为分类，「银行卡」和「交通 - 打车」都是账户。下文中出现账户，若无特别说明，均指广义的账户。&lt;/p&gt;
&lt;h2 id="二beancount-入门"&gt;二、Beancount 入门&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;复式记账是方法论，而 Beancount 则是支持复式记账的工具&lt;/strong&gt;，Beancount 有以下三个优点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;完整个人财务数据比较敏感，Beancount 本地存储，不用担心数据泄露。&lt;/li&gt;
&lt;li&gt;纯文本账本，不依赖特定软件，便于数据迁移。&lt;/li&gt;
&lt;li&gt;Beancount 是开源软件。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;接下来介绍 Beancount 的基础使用。&lt;/p&gt;
&lt;h3 id="安装"&gt;安装&lt;/h3&gt;
&lt;p&gt;beancount 是个 Python 项目，安装好 &lt;a href="https://sspai.com/link?target=https%3A%2F%2Fwww.python.org%2Fdownloads%2F"&gt;python&lt;/a&gt; 后，执行：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;pip install beancount
pip install fava
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Fava 是关联软件，为 Beancount 提供一个更漂亮的 Web 界面（如图 1/2/3），建议同时安装。&lt;/p&gt;</description></item><item><title>群晖常用端口</title><link>https://yecnay.net/posts/tech/%E7%BE%A4%E6%99%96%E5%B8%B8%E7%94%A8%E7%AB%AF%E5%8F%A3/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/%E7%BE%A4%E6%99%96%E5%B8%B8%E7%94%A8%E7%AB%AF%E5%8F%A3/</guid><description>&lt;p&gt;群晖
dsm_http: 4500
dsm_https: 4501
bitwarden: 8507
webdav: 5006
ssh: 2112&lt;/p&gt;
&lt;p&gt;HPgen8
hp_ssh: 2113
pve_webui: 8006&lt;/p&gt;
&lt;p&gt;1panel
1panel_web: 21006
bitwarden_1panel: 4500
nextcloud: 20888
oxicloud:2086
openclaw: 18789&lt;/p&gt;</description></item><item><title>群晖更新证书</title><link>https://yecnay.net/posts/tech/%E7%BE%A4%E6%99%96%E6%9B%B4%E6%96%B0%E8%AF%81%E4%B9%A6/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/%E7%BE%A4%E6%99%96%E6%9B%B4%E6%96%B0%E8%AF%81%E4%B9%A6/</guid><description>&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;SYNO_Scheme&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;https&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;SYNO_Hostname&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;10.0.0.10&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;SYNO_Port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;2087&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;SYNO_Curl_Insecure&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 如果你用临时管理员模式（默认开启），可以加这个（推荐，本地运行时常用）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;SYNO_USE_TEMP_ADMIN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 如果端口是自定义的 2087，确认 DSM 的 HTTPS 端口确实是这个（通常是 5001）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;bash /usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/ --force
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /usr/local/share/acme.sh &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; ./acme.sh --deploy --home . -d www.turiux.com --deploy-hook synology_dsm
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>如何在Debian上设置无人值守更新</title><link>https://yecnay.net/posts/tech/%E5%A6%82%E4%BD%95%E5%9C%A8debian%E4%B8%8A%E8%AE%BE%E7%BD%AE%E6%97%A0%E4%BA%BA%E5%80%BC%E5%AE%88%E6%9B%B4%E6%96%B0/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/%E5%A6%82%E4%BD%95%E5%9C%A8debian%E4%B8%8A%E8%AE%BE%E7%BD%AE%E6%97%A0%E4%BA%BA%E5%80%BC%E5%AE%88%E6%9B%B4%E6%96%B0/</guid><description>&lt;hr&gt;
&lt;p&gt;profileName: yecnay.com
postId: &amp;ldquo;1779&amp;rdquo;
postType: post
categories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;640&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;</description></item><item><title>使用Beancount管理家庭财务</title><link>https://yecnay.net/posts/tech/%E4%BD%BF%E7%94%A8beancount%E7%AE%A1%E7%90%86%E5%AE%B6%E5%BA%AD%E8%B4%A2%E5%8A%A1/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/%E4%BD%BF%E7%94%A8beancount%E7%AE%A1%E7%90%86%E5%AE%B6%E5%BA%AD%E8%B4%A2%E5%8A%A1/</guid><description>&lt;h1 id="使用beancount管理家庭财务"&gt;使用Beancount管理家庭财务&lt;/h1&gt;
&lt;p&gt;今年春节的时候，由于感受到了使用近9年的记账App挖财可能无法长期使用了，我便花了11小时将其迁移到了强大的 &lt;a href="https://www.bmpi.dev/self/beancount-my-accounting-tool-v2/(https://plaintextaccounting.org/)"&gt;纯文本复式记账&lt;/a&gt; 软件 &lt;a href="https://github.com/beancount/beancount"&gt;Beancount&lt;/a&gt; 上，代价就是历史数据无法迁移过来。为了能够将历史数据导出做个备份，在支付了挖财50元VIP季会员费后我拿到了9年的Excel账本，转投Beancount的怀抱，希望能继续花一生记录财富慢慢增值的过程。&lt;/p&gt;
&lt;p&gt;&lt;img alt="img" loading="lazy" src="https://img.bmpi.dev/5159fd77-f548-b3b6-daad-e8771026f4ec.png"&gt;&lt;/p&gt;
&lt;p&gt;对于我的记账史见这篇 &lt;a href="https://www.bmpi.dev/self/my-accounting-tool/"&gt;我的财务管理方案&lt;/a&gt; 文章。放弃使用9年多的工具是挺难的，尤其是历史数据的迁移，但有多种原因促使我不得不选择新的工具：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;从一些挖财App深度用户得知挖财可能要无法使用；&lt;/li&gt;
&lt;li&gt;挖财的数据导出需要VIP权限；&lt;/li&gt;
&lt;li&gt;个人长期的数据托管到商业化的公司手里不仅有可持续使用的问题，还有严重的隐私问题；&lt;/li&gt;
&lt;li&gt;已经被很多人推荐过复式记账神器Beancount的强大；&lt;/li&gt;
&lt;li&gt;Beancount是开源且本地的工具，满足可持续使用与隐私安全的需求。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;选择了Beancount后我便开始了数据迁移与适应新工具的过程了。目前已经使用Beancount近10个月，我的感受是记账类App虽然让我们能更便捷的利用手机记账，但是却让我们失去了记账的乐趣。用复式记账虽然初次使用需要学习一些知识，但是一旦掌握后可长期使用，性价比其实挺高的。&lt;/p&gt;
&lt;p&gt;不过我需要提醒的是，如果你只是想简单记账，或者是想培养记账的习惯，那选择一个记账App也可以，但是如果你看重隐私和可持续使用，那Beancount就是最好的选择。&lt;/p&gt;
&lt;p&gt;这篇文章我并不想写成Beancount的教程类文章，所以对Beancount的入门介绍我推荐看这篇 &lt;a href="https://www.skyue.com/19101819.html"&gt;记账神器Beancount教程&lt;/a&gt; 。之后可以看byvoid的进阶版教程：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://byvoid.com/zhs/blog/beancount-bookkeeping-1/"&gt;Beancount复式记账（一）：为什么&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://byvoid.com/zhs/blog/beancount-bookkeeping-2/"&gt;Beancount复式记账（二）：借贷记账法&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://byvoid.com/zhs/blog/beancount-bookkeeping-3/"&gt;Beancount复式记账（三）：结余与资产&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;当看完这些教程后，相信你已经知道怎么用Beancount记账了。接下来我想分享的是我是如何使用Beancount记账以及如何解决一些特殊记账的场景。&lt;/p&gt;
&lt;h2 id="使用beancount的心理建设"&gt;使用Beancount的心理建设&lt;/h2&gt;
&lt;p&gt;不少人畏惧使用命令行（CLI）和纯文本来记账，尤其是非程序员的群体，但这些只是习惯问题。Beancount的记账是很简单的，比如我们用记账App记录一笔中午吃饭的帐是这样的：&lt;/p&gt;
&lt;p&gt;&lt;img alt="img" loading="lazy" src="https://img.bmpi.dev/614dd539-7a8b-614e-7781-c1d39946e129.png"&gt;&lt;/p&gt;
&lt;p&gt;而用Beancount记账是这样的：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2021-10-01 * &amp;#34;请客吃饭&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Liabilities:CreditCard:CN:PINGAN-6467 -83.0 CNY
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Expenses:Food:Lunch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;看起来用手机记账更直观一些，而且Beancount很难在手机上操作，一般都用电脑来记账。但纯文本的优势在于编辑和存储方便，不需要特定的软件即可编辑内容，尤其是有很多笔账要记录的时候，电脑编辑纯文本效率也更高。&lt;/p&gt;
&lt;p&gt;手机App记账的时间点一般都是随时记录，但Beancount的话我一般是一天一记录，有的人是一周或者一月一记录。看起来用手机随时记录很方便，但用电脑记账的话，需要先在手机上暂存，之后在电脑上统一记录。现在大多人用手机支付都有消费提醒，只需要在晚上记账的时候查看下当天的消费记录就可以记录了。&lt;/p&gt;
&lt;p&gt;我个人感觉手机记账方便只是一个习惯问题，当我切换到电脑记账的时候不适感也就一周，之后感觉和手机记账差不多，就是时间点的不同而已。所以手机记账方便只是一个习惯问题，并不具备啥优势，时间成本也差不多。&lt;/p&gt;
&lt;p&gt;所以说手机记账App和Beancount的差异主要是&lt;code&gt;命令行&lt;/code&gt;、&lt;code&gt;纯文本&lt;/code&gt;和&lt;code&gt;移动端&lt;/code&gt;的差异。这些差异并不是说手机App记账有优势，更主要的是习惯的问题，而习惯的切换成本不过一周时间。带来的好处却是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;数据掌控在自己手里，隐私不会泄露；&lt;/li&gt;
&lt;li&gt;更灵活的记账方式；&lt;/li&gt;
&lt;li&gt;摆脱手机App流水式记账，使用复式记账法专业记账；&lt;/li&gt;
&lt;li&gt;长期可持续的记账方式。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="我的beancount记账流程"&gt;我的Beancount记账流程&lt;/h2&gt;
&lt;p&gt;我的账本结构包括记账的工具都是参考 &lt;a href="https://www.skyue.com/19101819.html"&gt;记账神器Beancount教程&lt;/a&gt; 这篇文章。&lt;/p&gt;
&lt;h3 id="账本建立"&gt;账本建立&lt;/h3&gt;
&lt;p&gt;在&lt;code&gt;accounts&lt;/code&gt;这个目录里存放着：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── assets.bean 资产账户，包括银行卡、信用卡、投资组合、房产、车、加密币钱包、RSU 等账户
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── liabilities.bean 负债账户
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── income.bean 收入类别
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── expenses.bean 支出类别
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── equity.bean 通过 pad 和 balance 初始化资产账户
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── price.bean 自定义货币价格，这是 Beancount 最神奇的地方，可以自定义货币价格，比如美元和人民币的价格，这样在记账的时候就可以自由的记录货币的价格，而不用担心记账的时候货币价格变动的问题。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="assetsbean"&gt;assets.bean&lt;/h4&gt;
&lt;p&gt;&lt;img alt="img" loading="lazy" src="https://img.bmpi.dev/3f09e4aa-6318-36ba-4d94-7296af047f21.png"&gt;&lt;/p&gt;</description></item><item><title>在Debian10上安装和配置Fail2Ban</title><link>https://yecnay.net/posts/tech/%E5%9C%A8debian10%E4%B8%8A%E5%AE%89%E8%A3%85%E5%92%8C%E9%85%8D%E7%BD%AEfail2ban/</link><pubDate>Tue, 19 May 2026 15:46:00 +0800</pubDate><guid>https://yecnay.net/posts/tech/%E5%9C%A8debian10%E4%B8%8A%E5%AE%89%E8%A3%85%E5%92%8C%E9%85%8D%E7%BD%AEfail2ban/</guid><description>&lt;hr&gt;
&lt;p&gt;profileName: yecnay.com
postId: &amp;ldquo;1686&amp;rdquo;
postType: post
categories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;</description></item><item><title>Archlinux 下 Fcitx5 无法在部分应用输入中文的问题</title><link>https://yecnay.net/posts/tech/archlinux-%E4%B8%8B-fcitx5-%E6%97%A0%E6%B3%95%E5%9C%A8%E9%83%A8%E5%88%86%E5%BA%94%E7%94%A8%E8%BE%93%E5%85%A5%E4%B8%AD%E6%96%87%E7%9A%84%E9%97%AE%E9%A2%98/</link><pubDate>Tue, 19 May 2026 15:45:59 +0800</pubDate><guid>https://yecnay.net/posts/tech/archlinux-%E4%B8%8B-fcitx5-%E6%97%A0%E6%B3%95%E5%9C%A8%E9%83%A8%E5%88%86%E5%BA%94%E7%94%A8%E8%BE%93%E5%85%A5%E4%B8%AD%E6%96%87%E7%9A%84%E9%97%AE%E9%A2%98/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;Archlinux 下 Fcitx5 无法在部分应用输入中文的问题&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://blog.flowerinsnow.cn/p/archlinux-%E4%B8%8B-fcitx5-%E6%97%A0%E6%B3%95%E5%9C%A8%E9%83%A8%E5%88%86%E5%BA%94%E7%94%A8%E8%BE%93%E5%85%A5%E4%B8%AD%E6%96%87%E7%9A%84%E9%97%AE%E9%A2%98/%22"&gt;https://blog.flowerinsnow.cn/p/archlinux-%E4%B8%8B-fcitx5-%E6%97%A0%E6%B3%95%E5%9C%A8%E9%83%A8%E5%88%86%E5%BA%94%E7%94%A8%E8%BE%93%E5%85%A5%E4%B8%AD%E6%96%87%E7%9A%84%E9%97%AE%E9%A2%98/&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/%E5%86%AC%E8%8A%B1ice%E7%9A%84%E4%B8%93%E6%A0%8F/"&gt;冬花ice的专栏&lt;/a&gt;&amp;rdquo;
published: 2025-05-16
created: 2026-01-15
description: &amp;ldquo;在安装了 Archlinux 并安装了 PlasmaKDE/Wayland、Fcitx5 虚拟键盘（输入法）后，我又通过安装了 QQ、微信、VSCode、IntelliJ IDEA、Minecraft 等应用，出现了一个问题：不能在它们里面使用 Fcitx5 输入中文了，下面是解决经验，仅供参考\n&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;在安装了 Archlinux 并安装了 PlasmaKDE/Wayland、Fcitx5 虚拟键盘（输入法）后，我又通过安装了 QQ、微信、VSCode、IntelliJ IDEA、Minecraft 等应用，出现了一个问题：不能在它们里面使用 Fcitx5 输入中文了，下面是解决经验，仅供参考&lt;/p&gt;
&lt;h2 id="注意"&gt;注意&lt;/h2&gt;
&lt;p&gt;本方法适用于 Archlinux/Fcitx5/KDE Plasma/Wayland，并确定您已经配置好了输入法（如配置了虚拟键盘等）&lt;/p&gt;
&lt;h2 id="通用解决方法添加环境变量"&gt;通用解决方法：添加环境变量&lt;/h2&gt;
&lt;p&gt;最好添加三个环境变量，你可以不去理解它们，如果想要理解，请参阅相关文档（可以在 &lt;a href="https://blog.flowerinsnow.cn/p/archlinux-%E4%B8%8B-fcitx5-%E6%97%A0%E6%B3%95%E5%9C%A8%E9%83%A8%E5%88%86%E5%BA%94%E7%94%A8%E8%BE%93%E5%85%A5%E4%B8%AD%E6%96%87%E7%9A%84%E9%97%AE%E9%A2%98/#%e5%8f%82%e8%80%83%e8%b5%84%e6%96%99"&gt;#参考资料&lt;/a&gt; 中参阅）&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;1
2
3
XMODIFIERS=@im=fcitx
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;您可以通过修改 &lt;code&gt;/etc/environment&lt;/code&gt; ，或软件启动脚本，或软件内部设置实现它&lt;/p&gt;
&lt;h3 id="例启动命令行"&gt;例：启动命令行&lt;/h3&gt;
&lt;p&gt;您可以在命令前添加它们以添加应用程序的环境变量&lt;/p&gt;
&lt;p&gt;bash&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;1
XMODIFIERS=@im=fcitx GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx your_command_here
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="对于-electron-应用的解决方法"&gt;对于 Electron 应用的解决方法&lt;/h2&gt;
&lt;p&gt;可以为 Electron 应用添加标记来修复这个问题，这个方法同样对 chromium 内核的应用有效&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;1
2
3
--enable-features=UseOzonePlatform
--ozone-platform-hint=wayland
--enable-wayland-ime
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;如果你是 Electron 应用遇到了这个问题，那么可以按照如下步骤添加启动 flags&lt;/p&gt;</description></item><item><title>Linux cut 命令</title><link>https://yecnay.net/posts/tech/linux-cut-%E5%91%BD%E4%BB%A4/</link><pubDate>Tue, 12 May 2026 17:47:51 +0800</pubDate><guid>https://yecnay.net/posts/tech/linux-cut-%E5%91%BD%E4%BB%A4/</guid><description/></item><item><title>API</title><link>https://yecnay.net/posts/tech/api/</link><pubDate>Mon, 11 May 2026 11:19:52 +0800</pubDate><guid>https://yecnay.net/posts/tech/api/</guid><description>&lt;p&gt;telegrame_bot API: 8546206304:AAHD8_oCCXxNQeDapycRmrz4p51MalSZs-c
Cloudflare api ：tDbRa6ipD8AQocB6M48cGln73widrvUHlV2e1O74（yec.com)
Cloudflare api: 97S03z-Q7pvcuL8vTrpnuP0sZVRaLmxIsss4Jm2h (yecnet)
Cloudflare api: cx0rdbU1M-rBjrVBakH3Tjx2PBtnCWfx5pDY_tUl(yec.org)
Cloudflare api: cfut_914Y2zWOh0M5tmgvXA2aK4siIsIKSiEkLb4wsxBU34cf0810（turiux.com)
deepseek api: sk-cfe7a7f60ac44174be2a5bce7b732fae
sk-52e908dc4a9e4b2396e0c49d3755b7c3
openrouter api: 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&lt;/p&gt;
&lt;p&gt;nv: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
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&lt;/p&gt;
&lt;p&gt;nocobase api:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjIsInJvbGVOYW1lIjoiYWRtaW4iLCJpYXQiOjE3NzgyMzIwOTIsImV4cCI6MzMzMzU4MzIwOTJ9.WZhi-5jPOUa_4co5CdMC-UoT5RdOC4F3LkVXZGfIatk&lt;/p&gt;
&lt;p&gt;小米mimo:tp-cnbm2czpr0xivrk2oz5m4h7p31yzcqybeoubql26ev9gjioy&lt;/p&gt;</description></item><item><title>Bitwarden SSH Agent</title><link>https://yecnay.net/posts/tech/bitwarden-ssh-agent/</link><pubDate>Fri, 08 May 2026 07:32:10 +0800</pubDate><guid>https://yecnay.net/posts/tech/bitwarden-ssh-agent/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;Bitwarden SSH Agent&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://bitwarden.com/help/ssh-agent/#tab-linux-6VN1DmoAVFvm7ZWD95curS%22"&gt;https://bitwarden.com/help/ssh-agent/#tab-linux-6VN1DmoAVFvm7ZWD95curS&amp;quot;&lt;/a&gt;
author:
published:
created: 2026-05-08
description: &amp;ldquo;This article provides a guide to setup and use the Bitwarden SSH Agent.&amp;rdquo;
tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="ssh-agent"&gt;SSH Agent&lt;/h2&gt;
&lt;p&gt;Bitwarden Password Manager desktop app can act as an SSH Agent to securely encrypt and store your SSH (Secure Shell) keys for use with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Authenticating to servers&lt;/li&gt;
&lt;li&gt;Signing Git commits&lt;/li&gt;
&lt;li&gt;Interacting with SSH based services&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Bitwarden SSH Agent will organize and protect your keys in one secure location. SSH keys can be accessed with the desktop app, web app, browser extension, and mobile app. SSH keys can be generated using the desktop app, web app, and browser extension.&lt;/p&gt;</description></item><item><title>1panel</title><link>https://yecnay.net/posts/tech/1panel/</link><pubDate>Tue, 21 Apr 2026 08:50:21 +0800</pubDate><guid>https://yecnay.net/posts/tech/1panel/</guid><description>&lt;p&gt;备份账号：onedrive
备份名称:turixu.com-1panel
客户端id:745faaa1-7c3f-4252-be0a-4bf5635e1a75
客户端密钥:sxP8Q~TvG5epeBLOuzM7ImvpR3zeFJlZXF_qxdzQ
重定向url:http://localhost:8080
授权码:M.C531_BAY.2.U.DlDHpCon9XbgKZqF9FlhHuzC!oi4BbEXuXOMrePlg3FVf3xjZ8EBNm1q1lcFH8niFiPBnNWdN02SdQEggazGmfQPhDAnkO2KWTBpJN3RaJB5Ve&lt;em&gt;Kz8Us76t&lt;/em&gt;h7ZF09giI5uZXB3XG2Vp4M4t!yZAtBXH!arLztfCrV6&lt;em&gt;DoBD2Y8sPu02s!2h!cp&lt;/em&gt;yRHY4RzQZlX8g3!i!j6stelXbyBMaticY57DWrGo&lt;em&gt;JR8yXqy77Y!x&lt;/em&gt;VWJpTG!nSBpgH5WiNrEBd3FVVfXRqFzd9piQdgZq6owbxS6siwBHGP1!AOYkFuFpCj0latxcFBIPsje48zKHLkQc9uT0J1aWej34fBDoZGj&lt;em&gt;IZHvD8gLceE79FuvzrJ5A&lt;/em&gt;fRDj2GGRmT6ycTg&lt;em&gt;u!S&lt;/em&gt;a1TbupVSZkcgyPnLmltQjZ9R&lt;em&gt;5uWfD9kAz!994Ub1h3s2bIVF5&lt;/em&gt;Ky67allwTxY5JpNLmn4Evez5sFe00jFi9iLg0avlu8VYpILClpwrastjVO*ziHjIgsoPwsu4JV0loIHQjo3QgdVGpifbf5L8CV2DW8JCViYBarOtZwRxuzmMAqRcvMPEUSm0DErqnRQ%24%24
备份目录:/opt/1panel/backup&lt;/p&gt;</description></item><item><title>crontab实用手册</title><link>https://yecnay.net/posts/tech/crontab%E5%AE%9E%E7%94%A8%E6%89%8B%E5%86%8C/</link><pubDate>Tue, 21 Apr 2026 08:50:21 +0800</pubDate><guid>https://yecnay.net/posts/tech/crontab%E5%AE%9E%E7%94%A8%E6%89%8B%E5%86%8C/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;crontab实用手册&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646763.html%22"&gt;https://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646763.html&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/ggjucheng/"&gt;ggjucheng&lt;/a&gt;&amp;rdquo;
published: 2012-08-19
created: 2025-07-21
description: &amp;ldquo;前言crontab是Unix和Linux用于设置周期性被执行的指令，是互联网很常用的技术，很多任务都会设置在crontab循环执行，如果不使用crontab，那么任务就是常驻程序，这对你的程序要求比较高，一个要求你的程序是24X7小时不宕机，一个是要求你的调度程序比较可靠，实际工作中，90%的程序都&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;crontab是Unix 和Linux 用于设置周期性被执行的指令，是互联网很常用的技术，很多任务都会设置在crontab循环执行，如果不使用crontab，那么任务就是常驻程序，这对你的程序要求比较高，一个要求你的程序是24X7小时不宕机，一个是要求你的调度程序比较可靠，实际工作中，90%的程序都没有必要花这么多时间和精力去解决上面的两个问题的，只需要写好自己的业务逻辑，通过crond这个工业级程序去调度就行了，crond的可靠性，健壮性，大家应该是毫无疑问的。&lt;/p&gt;
&lt;h2 id="crontab简易入门"&gt;crontab简易入门&lt;/h2&gt;
&lt;p&gt;假设我要设置一个任务，每分钟就要做一个数据同步，这个同步脚本的路径是/home/blue/do/rsyncfile.sh，那么我可以在这么配置，使用blue用户，在终端输入&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;crontab -e
# 此时会进入 vi 的编辑画面让您编辑工作！注意到，每项工作都是一行。
#分 时 日 月 周 |&amp;lt;==============任务的完整命令行
* * * * * /home/blue/do/rsyncfile.sh
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;默认情况下，任何使用者只要不被列入 /etc/cron.deny 当中，那么他就可以直接下达『 crontab -e 』去编辑自己的例行性命令了！整个过程就如同上面提到的，会进入 vi 的编辑画面， 然后以一个工作一行来编辑，编辑完毕之后输入『:wq 』储存后离开 vi 就可以了！&lt;/p&gt;
&lt;p&gt;假如我们需要修改为每5分钟运行数据同步的脚本，那么 同样使用 crontab -e 进入编辑：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;*/5 * * * * /home/blue/do/rsyncfile.sh
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;假如服务器出了问题，有一天的数据没有同步，于是我们就需要补数据了，假设这个补数据的脚本是/home/blue/do/rsyncfile_day.sh,但是白天是高峰期，晚上用户不多，是低峰期，我们补数据会占用大量带宽，尤其是白天，会影响正常业务，所以一般我们可以让补数据任务在凌晨2点开始跑，那么同样使用crontab -e 进入编辑：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;0 2 1 4 * /home/blue/do/rsyncfile_day.sh
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这样，在4月1号凌晨2点0分就会开始启动我们的补数据的脚本了。&lt;/p&gt;
&lt;p&gt;同步数据，在互联网公司是再平常不过的任务了，这里大家可以看到crontab的魅力所在了，只需要写最简单的业务逻辑，把调度交给crond做，就完成了一个可靠性很高的一项任务了，如果要自己去额外写这种调度程序，不知道要花多少精力才能做到可靠稳定。&lt;/p&gt;
&lt;h2 id="crontab的语法"&gt;crontab的语法&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;crontab [-u username] [-l|-e|-r]
选项与参数：
-u ：只有 root 才能进行这个任务，亦即帮其他使用者创建/移除 crontab 工作排程；
-e ：编辑 crontab 的工作内容
-l ：查阅 crontab 的工作内容
-r ：移除所有的 crontab 的工作内容，若仅要移除一项，请用 -e 去编辑
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;查询使用者目前的 crontab 内容:&lt;/p&gt;</description></item><item><title>FreeBSD 中的 pkg 使用代理</title><link>https://yecnay.net/posts/tech/freebsd-%E4%B8%AD%E7%9A%84-pkg-%E4%BD%BF%E7%94%A8%E4%BB%A3%E7%90%86/</link><pubDate>Tue, 21 Apr 2026 08:50:21 +0800</pubDate><guid>https://yecnay.net/posts/tech/freebsd-%E4%B8%AD%E7%9A%84-pkg-%E4%BD%BF%E7%94%A8%E4%BB%A3%E7%90%86/</guid><description>&lt;p&gt;http_proxy: &amp;ldquo;http://10.211.55.2:7890&amp;rdquo;,&lt;/p&gt;</description></item><item><title>hiya金牛座</title><link>https://yecnay.net/posts/tech/hiya%E9%87%91%E7%89%9B%E5%BA%A7/</link><pubDate>Tue, 21 Apr 2026 08:50:21 +0800</pubDate><guid>https://yecnay.net/posts/tech/hiya%E9%87%91%E7%89%9B%E5%BA%A7/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;hiya金牛座&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://www.hiya.top/archives/1710598606470%22"&gt;https://www.hiya.top/archives/1710598606470&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/hiya%E9%87%91%E7%89%9B%E5%BA%A7/"&gt;hiya金牛座&lt;/a&gt;&amp;rdquo;
published:
created: 2025-08-10
description: &amp;ldquo;Rime / 中州韵 是开源跨平台输入法框架，不同平台客户端不同。 mac：鼠须管 squirrel windows：小狼毫 weasel 优点就不多说了，强大的自定义配置，不流氓，无广告等等等。当然，强大就意味着，想要用好它不容易。希望像搜狗一样无脑安装的就别折腾了。 折腾之前请确保自己知道什么是&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="rime小狼豪鼠须管-输入法配置记"&gt;Rime/小狼豪/鼠须管 输入法配置记&lt;/h2&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://rime.im/"&gt;Rime / 中州韵&lt;/a&gt; 是开源跨平台输入法框架，不同平台客户端不同。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mac：鼠须管 squirrel&lt;/li&gt;
&lt;li&gt;windows：小狼毫 weasel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;优点就不多说了，强大的自定义配置，不流氓，无广告等等等。当然，强大就意味着，想要用好它不容易。希望像搜狗一样无脑安装的就别折腾了。&lt;/p&gt;
&lt;p&gt;折腾之前请确保自己知道什么是 &lt;code&gt;yaml&lt;/code&gt; 并且有一个趁手的编辑器。&lt;/p&gt;
&lt;h2 id="配置文件"&gt;配置文件&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://github.com/rime/home/wiki/RimeWithSchemata#rime-%E4%B8%AD%E7%9A%84%E6%95%B8%E6%93%9A%E6%96%87%E4%BB%B6%E5%88%86%E4%BD%88%E5%8F%8A%E4%BD%9C%E7%94%A8"&gt;官方 Wiki&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;内置文件是 Rime 自带的，不应该修改。否则升级后有可能丢失。位置如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mac: &lt;code&gt;/Library/Input Methods/Squirrel.app/Contents/SharedSupport/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;wind: &lt;code&gt;安裝目錄\data&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;linux: &lt;code&gt;/usr/share/rime-data/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;自定义的配置文件都放在「用户文件夹」里。具体位置如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mac: &lt;code&gt;~/Library/Rime&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;win: &lt;code&gt;%APPDATA%\Rime&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;linux:
&lt;ul&gt;
&lt;li&gt;iBus: &lt;code&gt;~/.config/ibus/rime&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Fcitx: &lt;code&gt;~/.config/fcitx/rime&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;常见的配置文件如下：&lt;/p&gt;
&lt;!-- raw HTML omitted --&gt;
&lt;p&gt;&lt;strong&gt;修改配置文件后记得重新部署才能生效。mac 上的快捷键是&lt;/strong&gt; &lt;code&gt;Ctrl + Option + ~&lt;/code&gt; 。&lt;/p&gt;</description></item><item><title>linux grep命令详解</title><link>https://yecnay.net/posts/tech/linux-grep%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3/</link><pubDate>Tue, 21 Apr 2026 08:50:21 +0800</pubDate><guid>https://yecnay.net/posts/tech/linux-grep%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;linux grep命令详解&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856896.html%22"&gt;https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856896.html&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/ggjucheng/"&gt;ggjucheng&lt;/a&gt;&amp;rdquo;
published: 2013-01-13
created: 2025-07-21
description: &amp;ldquo;简介grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具，它能使用正则表达式搜索文本，并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgr&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="简介"&gt;简介&lt;/h2&gt;
&lt;p&gt;grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具，它能使用正则表达式搜索文本，并把匹配的行打印出来。&lt;/p&gt;
&lt;p&gt;Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展，支持更多的re元字符， fgrep就是fixed grep或fast grep，它们把所有的字母都看作单词，也就是说，正则表达式中的元字符表示回其自身的字面意义，不再特殊。linux使用GNU版本的grep。它功能更强，可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。&lt;/p&gt;
&lt;h2 id="grep常用用法"&gt;grep常用用法&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[root@www ~]# grep [-acinv] [--color=auto] &amp;#39;搜寻字符串&amp;#39; filename
选项与参数：
-a ：将 binary 文件以 text 文件的方式搜寻数据
-c ：计算找到 &amp;#39;搜寻字符串&amp;#39; 的次数
-i ：忽略大小写的不同，所以大小写视为相同
-n ：顺便输出行号
-v ：反向选择，亦即显示出没有 &amp;#39;搜寻字符串&amp;#39; 内容的那一行！
--color=auto ：可以将找到的关键词部分加上颜色的显示喔！
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;将/etc/passwd，有出现 root 的行取出来&lt;/p&gt;</description></item><item><title>MacOS配置Mihomo代理</title><link>https://yecnay.net/posts/tech/macos%E9%85%8D%E7%BD%AEmihomo%E4%BB%A3%E7%90%86/</link><pubDate>Tue, 21 Apr 2026 08:50:21 +0800</pubDate><guid>https://yecnay.net/posts/tech/macos%E9%85%8D%E7%BD%AEmihomo%E4%BB%A3%E7%90%86/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;MacOS配置Mihomo代理&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://zjan.me/archives/macospei-zhi-mihomodai-li%22"&gt;https://zjan.me/archives/macospei-zhi-mihomodai-li&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;[Janvh&amp;rsquo;s Blog](/tags/Janvh&amp;rsquo;s Blog/)&amp;rdquo;
published:
created: 2025-12-08
description: &amp;ldquo;我不喜欢用mitm的去广告类的功能，所以在macos上也没有选用app类的代理工具，而是和其他平台一样使用裸核mihomo tun后台代理。 Mihomo简介 Mihomo GIthub Mihomo Wiki 一个全功能全协议的代理工具，支持多协议入站和出站，对机场用户友好的代理工具。 下载安装M&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;我不喜欢用mitm的去广告类的功能，所以在macos上也没有选用app类的代理工具，而是和其他平台一样使用裸核mihomo tun后台代理。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="mihomo简介"&gt;Mihomo简介&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/MetaCubeX/mihomo" title="https://github.com/MetaCubeX/mihomo"&gt;Mihomo GIthub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://wiki.metacubex.one/" title="https://wiki.metacubex.one/"&gt;Mihomo Wiki&lt;/a&gt;&lt;br&gt;
一个全功能全协议的代理工具，支持多协议入站和出站，对机场用户友好的代理工具。&lt;/p&gt;
&lt;h2 id="下载安装mihomo"&gt;下载安装Mihomo&lt;/h2&gt;
&lt;p&gt;我的笔记本是M1的air所以选择 &lt;code&gt;arm64&lt;/code&gt;版本的二进制文件即可。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;使用 &lt;code&gt;homebrew&lt;/code&gt;  安装： &lt;code&gt;$ brew install mihomo&lt;/code&gt;  安装后的位置在 &lt;code&gt;/opt/homebrew/bin/mihomo&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;下载安装：&lt;a href="https://github.com/MetaCubeX/mihomo/releases" title="https://github.com/MetaCubeX/mihomo/releases"&gt;下载链接&lt;/a&gt;，建议安装位置:&lt;code&gt;/usr/local/bin/mihomo&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="准备配置文件"&gt;准备配置文件&lt;/h2&gt;
&lt;p&gt;文件路径： /etc/mihomo/config.yaml&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo mkdir -p /etc/mihomo
sudo chown -R your_username:staff /etc/mihomo 将 ownership 设置为你的用户，方便编辑
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;配置文件示例：&lt;a href="https://wiki.metacubex.one/example/conf/#__tabbed_3_1" title="https://wiki.metacubex.one/example/conf/#__tabbed_3_1"&gt;官方示例&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="创建-launchdaemon-配置文件"&gt;创建 &lt;code&gt;LaunchDaemon&lt;/code&gt; 配置文件&lt;/h2&gt;
&lt;p&gt;我们将创建一个 &lt;code&gt;.plist&lt;/code&gt; 文件，并将其放置在 &lt;code&gt;/Library/LaunchDaemons/&lt;/code&gt; 目录下，该目录下的服务会以 &lt;code&gt;root&lt;/code&gt; 权限运行。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;创建日志目录 (如果不存在)：&lt;/strong&gt;&lt;br&gt;
我们将把 &lt;code&gt;mihomo&lt;/code&gt; 的日志输出到系统日志目录，方便调试。&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo mkdir -p /var/log/mihomo
sudo chmod 755 /var/log/mihomo 确保 root 用户有写入权限
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;创建 &lt;code&gt;com.mihomo.tun.plist&lt;/code&gt; 文件：&lt;/strong&gt;&lt;br&gt;
使用 &lt;code&gt;sudo&lt;/code&gt; 和你喜欢的文本编辑器（如 &lt;code&gt;nano&lt;/code&gt; 或 &lt;code&gt;vim&lt;/code&gt;）来创建并编辑这个文件。&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nano /Library/LaunchDaemons/com.mihomo.tun.plist
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;将以下内容粘贴到文件中，并根据你的实际情况进行修改：&lt;/p&gt;</description></item><item><title>macOS下拷贝目录的小事</title><link>https://yecnay.net/posts/tech/macos%E4%B8%8B%E6%8B%B7%E8%B4%9D%E7%9B%AE%E5%BD%95%E7%9A%84%E5%B0%8F%E4%BA%8B/</link><pubDate>Tue, 21 Apr 2026 08:50:21 +0800</pubDate><guid>https://yecnay.net/posts/tech/macos%E4%B8%8B%E6%8B%B7%E8%B4%9D%E7%9B%AE%E5%BD%95%E7%9A%84%E5%B0%8F%E4%BA%8B/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;macOS下拷贝目录的小事&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://xfyuan.github.io/2022/11/copy-foler-structure-without-contents/%22"&gt;https://xfyuan.github.io/2022/11/copy-foler-structure-without-contents/&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/xfyuan/"&gt;xfyuan&lt;/a&gt;&amp;rdquo;
published: 2022-11-24
created: 2025-08-06
description: &amp;ldquo;最近在 macOS 上碰到一个小问题，需要把原来一个很大的目录拷贝到另一个位置，要求必须保持其内部所有的子目录结构，但不需要拷贝每个目录下的任何文件，因为到时会有新的文件放到各个目录下。&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img alt="xfyuan" loading="lazy" src="https://xfyuan.github.io/assets/images/avatar.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://xfyuan.github.io/"&gt;xfyuan&lt;/a&gt; &lt;a href="https://twitter.com/apexy"&gt;Follow&lt;/a&gt; A Chinese software engineer living and working in Chengdu. I love creating the future in digital worlds, big and small.&lt;/p&gt;
&lt;p&gt;&lt;img alt="macOS下拷贝目录的小事" loading="lazy" src="https://gcore.jsdelivr.net/gh/xfyuan/ossimgs@master/uPic/image20221124.jpeg"&gt;&lt;/p&gt;
&lt;p&gt;最近在 macOS 上碰到一个小问题，需要把原来一个很大的目录拷贝到另一个位置，要求必须保持其内部所有的子目录结构，但不需要拷贝每个目录下的任何文件，因为到时会有新的文件放到各个目录下。&lt;/p&gt;
&lt;p&gt;这里比较棘手的地方在于，原来那个目录下有非常多的子目录和嵌套（至少有上百个以上，而且嵌套层数没有规律），这样的话要是靠手工去一个个复制粘贴，那得累死个人了。😭&lt;/p&gt;
&lt;p&gt;以前还真没处理过类似问题，于是花了10分钟搜了一下，最后在 Apple 社区找到了，确实有人早就碰到类似的需求。直接看怎么解决的吧：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="m"&gt;4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 进入要复制的目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /path/to/beginning/dir
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 查找所有 dictionary，并在目标目录创建相同名称的子目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;find . -type d -print0 &lt;span class="p"&gt;|&lt;/span&gt; xargs -0 -I&lt;span class="o"&gt;{}&lt;/span&gt; mkdir -p &lt;span class="s2"&gt;&amp;#34;/path/to/DestinationFoler/{}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="https://xfyuan.github.io/2022/11/rails7-zeitwerk-mode/"&gt;« Rails7 的Zeitwerk模式解惑&lt;/a&gt; &lt;a href="https://xfyuan.github.io/2022/11/cyan-mountain/"&gt;青山不改，绿水长流 »&lt;/a&gt;&lt;/p&gt;</description></item><item><title>OpenClash 设置方案</title><link>https://yecnay.net/posts/tech/openclash-%E8%AE%BE%E7%BD%AE%E6%96%B9%E6%A1%88/</link><pubDate>Tue, 21 Apr 2026 08:50:21 +0800</pubDate><guid>https://yecnay.net/posts/tech/openclash-%E8%AE%BE%E7%BD%AE%E6%96%B9%E6%A1%88/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;OpenClash 设置方案&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://github.com/Aethersailor/Custom_OpenClash_Rules/wiki/OpenClash-%E8%AE%BE%E7%BD%AE%E6%96%B9%E6%A1%88%22"&gt;https://github.com/Aethersailor/Custom_OpenClash_Rules/wiki/OpenClash-%E8%AE%BE%E7%BD%AE%E6%96%B9%E6%A1%88&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/Aethersailor/"&gt;Aethersailor&lt;/a&gt;&amp;rdquo;
published:
created: 2025-06-10
description: &amp;ldquo;分流完善的 OpenClash 订阅转换模板，搭配保姆级 OpenClash 设置教程，无需套娃其他插件即可实现完美分流、DNS无污染无泄漏，且快速的国内外上网体验。 - OpenClash 设置方案 · Aethersailor/Custom_OpenClash_Rules Wiki&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="介绍"&gt;介绍&lt;/h2&gt;
&lt;p&gt;本项目创建于2024年4月，保证这是你见过的最详细的 OpenClash 图文设置方案&lt;/p&gt;
&lt;p&gt;由 Wiki 的编辑历史可以检索到 Wiki 第一个版本是2024年5月6日编写，前后修订几十个版本进行了完善。&lt;br&gt;
&lt;a href="https://github.com/Aethersailor/Custom_OpenClash_Rules/wiki/_history?page=6"&gt;Wiki 编辑历史&lt;/a&gt;&lt;br&gt;
鄙视所有转载不注明出处的行为！&lt;/p&gt;
&lt;p&gt;请尊重开源社区的基本守则！&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;本项目使用 &lt;code&gt;Fake-IP&lt;/code&gt; 模式，介意这一点的麻烦关闭网页。&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;本项目依赖 OpenClash 的 &lt;code&gt;绕过中国大陆&lt;/code&gt; 功能，介意这一点的麻烦关闭网页。&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;本项目维护者反对使用所谓的“旁路由”网络架构，本项目所有教程均以主路由环境为例，仅对旁路由网络架构下的设置差异作简单提示。“旁路由”用户请自行融会贯通举一反三，出了问题也不要提问，谁教你用旁路由的你去找谁，感谢合作。&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="本方案所实现的效果"&gt;本方案所实现的效果&lt;/h2&gt;
&lt;p&gt;严格按照本方案的内容去设置你的 OpenClash 插件，无需套娃其他工具（如 Mosdns）即可实现以下功能：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优化的 DNS 设置，闪电般的国内访问速度。&lt;/strong&gt;&lt;br&gt;
国内域名采用运营商 DNS 解析，域名和 IP 均绕过 OpenClash 内核并返回真实 IP，让 OpenClash 对国内访问的影响降低到几乎为零。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;杜绝 DNS 污染和泄露，无需搭配其他插件。&lt;/strong&gt;&lt;br&gt;
海外域名采用使用远端节点服务器的 DNS 进行解析并访问，确保隐私的同时取得最佳解析结果。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;彻底告别套娃设置。&lt;/strong&gt;&lt;br&gt;
免去各种 DNS 插件带来的搭配烦恼，全部特性依靠 OpenClash 一个插件实现，且保证 OpenClash 即使挂了也不影响访问国内网站。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;傻瓜化的设置操作。&lt;/strong&gt;&lt;br&gt;
鼠标点击+复制粘贴几分钟即可完成完美设置，无需手搓配置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;丰富的分流策略组。&lt;/strong&gt;&lt;br&gt;
包含流媒体服务、AI 工具、电商、游戏平台等在内的大量常见的分流策略组，同时也为轻量化需求用户提供简化版本的规则。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;支持节点按地区分类测速优选。&lt;/strong&gt;&lt;br&gt;
自动优选最快节点，不用自己折腾切换。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steam 访问优化。&lt;/strong&gt;&lt;br&gt;
单独列出 Steam 规则并强制 Steam 下载 CDN 走直连，解决 Steam 下载 CDN 定位到海外的问题，确保 Steam 下载流量不走代理。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自动更新，长期无人值守。&lt;/strong&gt;&lt;br&gt;
设置完成后即可长期无人值守，每日定时自动更新上游规则 GEO 数据库和大陆白名单等具有时效性要求的数据，无需自己动手。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;海外下载流量优化。&lt;/strong&gt;&lt;br&gt;
尽力避免海外下载流量走节点，节约节点流量。（尚不完善）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;支持广告屏蔽功能和 hosts 加速。&lt;/strong&gt;&lt;br&gt;
依靠 OpenClash 配合系统自带 Dnsmasq 实现广告过滤和 hosts 加速功能，并实现每日自动更新，支持添加多个规则。（可选）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;增加更多的节点区域分组。&lt;/strong&gt;&lt;br&gt;
增加包括英国、加拿大等国家的节点分组，参考本项目推荐机场的节点地区设定。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;增加若干冷门域名规则。&lt;/strong&gt;&lt;br&gt;
增加了一些小众网站的直连规则，可以自己 PR 提交域名参与完善规则。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="0-使用前的一些提醒"&gt;0. 使用前的一些提醒&lt;/h2&gt;
&lt;h3 id="01-关于推荐固件"&gt;0.1. 关于推荐固件&lt;/h3&gt;
&lt;p&gt;推荐使用 ImmortalWrt 官方编译固件，备选 OpenWrt 官方编译固件。&lt;/p&gt;</description></item><item><title>OpenWrt 开启 IPv6 中继</title><link>https://yecnay.net/posts/tech/openwrt-%E5%BC%80%E5%90%AF-ipv6-%E4%B8%AD%E7%BB%A7/</link><pubDate>Tue, 21 Apr 2026 08:50:21 +0800</pubDate><guid>https://yecnay.net/posts/tech/openwrt-%E5%BC%80%E5%90%AF-ipv6-%E4%B8%AD%E7%BB%A7/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;OpenWrt 开启 IPv6 中继&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://blog.jiangshen.org/2024/openwrt-kai-qi-ipv6-zhong-ji/%22"&gt;https://blog.jiangshen.org/2024/openwrt-kai-qi-ipv6-zhong-ji/&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;[Jiang Shen jiangshen@outlook.com](/tags/Jiang Shen &lt;a href="mailto:jiangshen@outlook.com"&gt;jiangshen@outlook.com&lt;/a&gt;/)&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;[Jiang Shen](/tags/Jiang Shen/)&amp;rdquo;
published: 2024-08-28
created: 2025-07-03
description: &amp;ldquo;最近换了个路由器，不过只能刷 OpenWrt 固件。我之前用的都是 Padavan，几乎可以一键配置 IPv6，加上有 IPv6 公网，非常方便我在外使用远程桌面。不过换成 OpenWrt 后，前后折腾了一个多星期，才搞定了 OpenWrt IPv6 中继。 这里稍微介绍一些 IPv6 基础知识，同时记录一下 OpenWrt 开启 IPv6 中继实现过程。 IPv6 基础知识 IPv6 地址规范&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;最近换了个路由器，不过只能刷 OpenWrt 固件。我之前用的都是 Padavan，几乎可以一键配置 IPv6，加上有 IPv6 公网，非常方便我在外使用远程桌面。不过换成 OpenWrt 后，前后折腾了一个多星期，才搞定了 OpenWrt IPv6 中继。&lt;/p&gt;
&lt;p&gt;这里稍微介绍一些 IPv6 基础知识，同时记录一下 OpenWrt 开启 IPv6 中继实现过程。&lt;/p&gt;
&lt;h2 id="ipv6-基础知识"&gt;IPv6 基础知识&lt;/h2&gt;
&lt;h2 id="ipv6-地址规范"&gt;IPv6 地址规范&lt;/h2&gt;
&lt;p&gt;IPv6 地址的长度为 128 bits（2 &lt;!-- raw HTML omitted --&gt;128&lt;!-- raw HTML omitted --&gt; ），由八组 16 位字段组成，相邻字段用冒号分隔，如：&lt;/p&gt;</description></item><item><title>OpenWrt 路由器如何实现单线复用？</title><link>https://yecnay.net/posts/tech/openwrt-%E8%B7%AF%E7%94%B1%E5%99%A8%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%8D%95%E7%BA%BF%E5%A4%8D%E7%94%A8/</link><pubDate>Tue, 21 Apr 2026 08:50:21 +0800</pubDate><guid>https://yecnay.net/posts/tech/openwrt-%E8%B7%AF%E7%94%B1%E5%99%A8%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%8D%95%E7%BA%BF%E5%A4%8D%E7%94%A8/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;OpenWrt 路由器如何实现单线复用？&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://voxsay.com/posts/openwrt-single-line-multiplexing-vlan-iptv/%22"&gt;https://voxsay.com/posts/openwrt-single-line-multiplexing-vlan-iptv/&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/%E8%A8%80%E5%A4%96%E4%B9%8B%E9%9F%B3/"&gt;言外之音&lt;/a&gt;&amp;rdquo;
published: 2025-01-14
created: 2025-06-14
description: &amp;ldquo;因为装修时，从弱电箱到客厅只预留了一根网线，此前电信师傅的方案是把网线的 8 芯分成两份，每 4 芯做成一个水晶头，一个接机顶盒，一个接路由器，这样就实现了一根网线既能上网，也能使用 IPTV。但由于 4 芯网线最多只能跑满 100M 的宽带，而现在大部分家庭宽带都是 300M 到 1000M，所以为了充分利用带宽，就需要使用单线复用技术。&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;因为装修时，从弱电箱到客厅只预留了一根网线，此前电信师傅的方案是把网线的 8 芯分成两份，每 4 芯做成一个水晶头，一个接机顶盒，一个接路由器，这样就实现了一根网线既能上网，也能使用 IPTV。但由于 4 芯网线最多只能跑满 100M 的宽带，而现在大部分家庭宽带都是 300M 到 1000M，所以为了充分利用带宽，就需要使用单线复用技术。&lt;/p&gt;
&lt;p&gt;单线复用是一种网络技术，旨在通过一根物理网线同时传输多种网络业务。通过这种技术，可以在不增加布线的情况下，实现普通上网数据和 IPTV 信号的传输，避免重新布线的麻烦。实现单线复用通常依赖 VLAN（虚拟局域网）技术，通过在网络设备上对数据流量进行标记和分离，达到不同网络业务共用一根网线的目的。&lt;/p&gt;
&lt;p&gt;下面我就来介绍如何使用 OpenWrt 路由器，通过合理规划 LAN 口（普通上网区和 IPTV 专用区）并配置 VLAN 技术，实现单线复用，让一根网线同时满足千兆宽带上网和 IPTV 使用需求。&lt;/p&gt;
&lt;h2 id="一路由器端口规划"&gt;一、路由器端口规划&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;flowchart TB
subgraph Router[路由器 OpenWrt]
direction TB
B[WAN 口]
subgraph Home_Network[普通上网网络]
direction TB
LAN1[LAN1]
LAN2[LAN2]
LAN3[LAN3]
LAN4[LAN4]
end
subgraph IPTV_Network[IPTV 专用网络]
direction TB
LAN5[LAN5]
end
end
A[光猫] --&amp;gt;|单根网线| B
B --&amp;gt;|普通流量| Home_Network
Home_Network --&amp;gt;|网线 / WiFi| H[电脑 / 手机 / 其它]
B --&amp;gt;|IPTV 流量| IPTV_Network
IPTV_Network --&amp;gt;|网线| STB[IPTV 机顶盒]
subgraph Device_Layer[设备层（VLAN 配置）]
direction RL
eth1[物理设备: eth1]
eth1_45[VLAN 设备: eth1.45&amp;lt;br&amp;gt;VLAN ID: 45]
eth1 --&amp;gt;|VLAN 分离| eth1_45
end
subgraph Bridge_Layer[桥接层]
br_lan[br-lan&amp;lt;br&amp;gt;网桥端口: LAN1-LAN4]
br_iptv[br-iptv&amp;lt;br&amp;gt;网桥端口: eth1.45 + LAN5]
wan_iface --&amp;gt;|普通流量| br_lan
iptv_iface --&amp;gt;|IPTV 流量| br_iptv
end
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Synology Drive Linux 按需同步</title><link>https://yecnay.net/posts/tech/synology-drive-linux-%E6%8C%89%E9%9C%80%E5%90%8C%E6%AD%A5/</link><pubDate>Tue, 21 Apr 2026 08:50:21 +0800</pubDate><guid>https://yecnay.net/posts/tech/synology-drive-linux-%E6%8C%89%E9%9C%80%E5%90%8C%E6%AD%A5/</guid><description>&lt;p&gt;截至 2026 年，Synology Drive Client 的&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;按需同步 (On-demand Sync)&lt;/strong&gt; 功能仍==&lt;strong&gt;不支持&lt;/strong&gt; Linux 系统==。该功能目前仅限在 Windows 10 (1809 及以上) 和 macOS (12.3 及以上) 平台上使用。 &lt;/p&gt;
&lt;p&gt;对于 Linux 用户，目前的主要现状与替代方案如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;现状：仅支持“完整同步”&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在 Linux 环境下，Synology Drive 客户端会默认下载任务路径下的&lt;strong&gt;所有&lt;/strong&gt;文件到本地磁盘，无法像 Windows/macOS 那样仅显示文件占位符而不占用空间。 &lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;官方折中方案：选择性同步&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;虽然没有“按需下载”，但你可以通过“选择性同步”来减少本地空间占用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;操作方法&lt;/strong&gt;：在任务设置中，进入“同步规则” &amp;gt; “文件夹”，勾选你需要同步的特定文件夹，取消勾选不需要同步的大文件目录。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;局限性&lt;/strong&gt;：未勾选的文件夹在本地文件管理器中完全不可见。 &lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="3"&gt;
&lt;li&gt;第三方/进阶替代方案&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;由于官方尚未提供 Linux 按需同步功能，社区用户通常采用以下方式实现类似体验：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;WebDAV / NFS / SMB 挂载&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;通过将 NAS 文件夹以网络协议的形式挂载到 Linux 本地目录（例如使用 &lt;code&gt;rclone mount&lt;/code&gt; 或系统的“连接到服务器”功能）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：文件在本地可见，仅在打开时下载（即读即下），不占用硬盘空间。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缺点&lt;/strong&gt;：受网络带宽限制，在大文件预览或断网环境下体验较差。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;rclone&lt;/strong&gt;：一款开源工具，支持将 Synology Drive (通过 WebDAV 或 API) 挂载为本地磁盘，效果非常接近按需同步。 &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;总结建议&lt;/p&gt;
&lt;p&gt;如果您在 2026 年需要在 Linux 上管理大量 NAS 文件且本地空间不足：&lt;/p&gt;</description></item><item><title>Tailscale的子网路由和出口节点</title><link>https://yecnay.net/posts/tech/tailscale%E7%9A%84%E5%AD%90%E7%BD%91%E8%B7%AF%E7%94%B1%E5%92%8C%E5%87%BA%E5%8F%A3%E8%8A%82%E7%82%B9/</link><pubDate>Tue, 21 Apr 2026 08:50:21 +0800</pubDate><guid>https://yecnay.net/posts/tech/tailscale%E7%9A%84%E5%AD%90%E7%BD%91%E8%B7%AF%E7%94%B1%E5%92%8C%E5%87%BA%E5%8F%A3%E8%8A%82%E7%82%B9/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;Tailscale的子网路由和出口节点&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://laosu.tech/2022/11/18/Tailscale%E7%9A%84%E5%AD%90%E7%BD%91%E8%B7%AF%E7%94%B1%E5%92%8C%E5%87%BA%E5%8F%A3%E8%8A%82%E7%82%B9/%22"&gt;https://laosu.tech/2022/11/18/Tailscale%E7%9A%84%E5%AD%90%E7%BD%91%E8%B7%AF%E7%94%B1%E5%92%8C%E5%87%BA%E5%8F%A3%E8%8A%82%E7%82%B9/&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;[杨浦老苏 折腾各种好玩的东西](/tags/杨浦老苏 折腾各种好玩的东西/)&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/%E6%9D%A8%E6%B5%A6%E8%80%81%E8%8B%8F/"&gt;杨浦老苏&lt;/a&gt;&amp;rdquo;
published: 2022-11-18
created: 2025-05-27
description: &amp;ldquo;Tailscale 的两个应用场景的设置。&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;sudo tailscale up &amp;ndash;advertise-routes 192.168.8.0/24,192.168.1.0/24,192.168.2.0/24,192.168.3.0/24,10.0.0.0/24 &amp;ndash;advertise-exit-node &amp;ndash;accept-routes &amp;ndash;reset
sudo tailscale up &amp;ndash;advertise-routes 192.168.1.0/24,192.168.2.0/24,192.168.3.0/24 &amp;ndash;advertise-exit-node &amp;ndash;reset
sudo tailscale up &amp;ndash;advertise-routes 10.0.0.0/24 &amp;ndash;advertise-exit-node &amp;ndash;reset&lt;/p&gt;
&lt;p&gt;/volume1/@appstore/Tailscale/bin/tailscaled &amp;ndash;state=/volume1/@appdata/Tailscale/tailscaled.state &amp;ndash;socket=/volume1/@appdata/Tailscale/tailscaled.sock &amp;ndash;port=41641 &amp;ndash;tun=userspace-networking&lt;/p&gt;
&lt;p&gt;tskey-auth-kaTe7kYckV11CNTRL-ViMHfprPSpMExzBmWG4doMQ8r197zB1h2&lt;/p&gt;
&lt;p&gt;TS_AUTH_KEY
sudo tailscale up &amp;ndash;advertise-routes 192.168.6.0/24,10.0.0.0/24 &amp;ndash;accept-routes &amp;ndash;reset&lt;/p&gt;
&lt;p&gt;sudo tailscale up &amp;ndash;advertise-routes 10.34.29.96/32,10.0.0.0/24,192.168.8.0/24 &amp;ndash;advertise-exit-node &amp;ndash;accept-routes &amp;ndash;reset&lt;/p&gt;
&lt;p&gt;sudo tailscale up &amp;ndash;advertise-routes 192.168.6.0/24,192.168.1.0/24,192.168.2.0/24,192.168.3.0/24 &amp;ndash;advertise-exit-node &amp;ndash;reset&lt;/p&gt;</description></item><item><title>买最便宜的VPS跑最小的系统 老梁的学习笔记</title><link>https://yecnay.net/posts/tech/%E4%B9%B0%E6%9C%80%E4%BE%BF%E5%AE%9C%E7%9A%84vps%E8%B7%91%E6%9C%80%E5%B0%8F%E7%9A%84%E7%B3%BB%E7%BB%9F-%E8%80%81%E6%A2%81%E7%9A%84%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</link><pubDate>Tue, 21 Apr 2026 08:50:21 +0800</pubDate><guid>https://yecnay.net/posts/tech/%E4%B9%B0%E6%9C%80%E4%BE%BF%E5%AE%9C%E7%9A%84vps%E8%B7%91%E6%9C%80%E5%B0%8F%E7%9A%84%E7%B3%BB%E7%BB%9F-%E8%80%81%E6%A2%81%E7%9A%84%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;买最便宜的VPS跑最小的系统 | 老梁的学习笔记&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://b.awei.pub/2025/09/minivps/%22"&gt;https://b.awei.pub/2025/09/minivps/&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/%E8%80%81%E6%A2%81/"&gt;老梁&lt;/a&gt;&amp;rdquo;
published:
created: 2025-12-21
description:
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="买最便宜的vps跑最小的系统"&gt;买最便宜的VPS跑最小的系统&lt;/h2&gt;
&lt;p&gt;很久没折腾了。&lt;/p&gt;
&lt;p&gt;今天写个买最便宜的VPS（便宜的代价就是VPS非常弱）只跑代理，系统最小化。&lt;/p&gt;
&lt;p&gt;这里还是推荐 &lt;a href="https://my.racknerd.com/aff.php?aff=11068&amp;amp;pid=912"&gt;racknerd.com&lt;/a&gt; ，现在年付只要$10.96。他们的VPS是真便宜，相对它的价格，性能又还不错。&lt;/p&gt;
&lt;p&gt;系统推荐FreeBSD的，最小化安装只有10个进程。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://b.awei.pub/image/2025/09/htop.png"&gt;&lt;img alt="htop" loading="lazy" src="https://b.awei.pub/image/2025/09/htop.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;很多VPS提供商都有提供FreeBSD系统，但 &lt;a href="https://my.racknerd.com/aff.php?aff=11068&amp;amp;pid=912"&gt;racknerd&lt;/a&gt; 没有提供，可以写提交服务单要求他们给安装FreeBSD，他们会让我们提供个安装镜像链接，我们只要把官方最新的ISO镜像链接发给客服就OK了。&lt;/p&gt;
&lt;p&gt;客服会把FreeBSD的安装镜像挂载，我们只要重启，就能正常安装了，安装完，再把系统启动顺序改成先硬盘后光盘就可以正常进入系统。&lt;/p&gt;
&lt;p&gt;如果用其他VPS，他们提供的版本基本上是12.0+的，不是最新的，如果没强迫症也能直接用，也能升级到最新版本。&lt;/p&gt;
&lt;h3 id="1freebsd12升级到最新的freebsd143"&gt;1.FreeBSD12+升级到最新的FreeBSD14.3&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ freebsd-version查看当前版本
$freebsd-update -r 14.3-RELEASE upgrade升级到当前最新版本，目前是14.3
$ freebsd-update install升级安装
$ reboot系统重启
$ freebsd-update install再次更新服务器
$ pkg update更新包
$ pkg upgrade安装更新包
$ pkg install vim wget htop安装必要的软件
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这新FreeBSD就更新到最新的14.3版本了。&lt;/p&gt;
&lt;h3 id="2代理服务器端用hysteria2"&gt;2.代理服务器端用Hysteria2&lt;/h3&gt;
&lt;p&gt;Hysteria2设置简单，性能强劲，强力推荐，只自己用，很方便。&lt;/p&gt;
&lt;p&gt;先到官网下载最新的 &lt;a href="https://github.com/apernet/hysteria/releases"&gt;for freebsd版&lt;/a&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ wget https://github.com/apernet/hysteria/releases/download/app%2Fv2.6.2/hysteria-freebsd-amd64下载目前最新的2.6.2版
$ mv hysteria-freebsd-amd64 hysteria把文件改名成hysteria
# chmod +x hysteria让文件可执行
$ mv hysteria /usr/local/bin将文件移到相应目录
$ sysrc hysteria_enable=&amp;#34;YES&amp;#34;设置开机启动
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;创建启动脚本,并将脚本放到目录/usr/local/etc/rc.d中。系统默认没有这个脚本，我的脚本如下：&lt;/p&gt;</description></item><item><title>Arch Linux Reflector 完全指南：优化你的镜像源列表</title><link>https://yecnay.net/posts/tech/arch-linux-reflector-%E5%AE%8C%E5%85%A8%E6%8C%87%E5%8D%97%E4%BC%98%E5%8C%96%E4%BD%A0%E7%9A%84%E9%95%9C%E5%83%8F%E6%BA%90%E5%88%97%E8%A1%A8/</link><pubDate>Tue, 21 Apr 2026 08:50:20 +0800</pubDate><guid>https://yecnay.net/posts/tech/arch-linux-reflector-%E5%AE%8C%E5%85%A8%E6%8C%87%E5%8D%97%E4%BC%98%E5%8C%96%E4%BD%A0%E7%9A%84%E9%95%9C%E5%83%8F%E6%BA%90%E5%88%97%E8%A1%A8/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;Arch Linux Reflector 完全指南：优化你的镜像源列表&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://geek-blogs.com/blog/arch-linux-reflector/%22"&gt;https://geek-blogs.com/blog/arch-linux-reflector/&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/geek-blogs/"&gt;geek-blogs&lt;/a&gt;&amp;rdquo;
published: 2025-09-29
created: 2026-01-07
description: &amp;ldquo;Arch Linux 作为一款滚动更新的发行版，其核心优势在于能够快速获取最新的软件包。而这一切的基础，离不开高效、稳定的 &lt;strong&gt;镜像源（Mirror）&lt;/strong&gt;。镜像源是存储 Arch Linux 软件包的服务器，用户通过 &lt;code&gt;/etc/pacman.d/mirrorlist&lt;/code&gt; 文件配置 pacman 使用哪些镜像源。然而，随着时间推移，部分镜像源可能会变慢、过时甚至下线，导致 pacman 下载速度下降或更新失败。手动维护镜像源列表不仅繁琐，还难以确保时效性和最优性。这时，&lt;strong&gt;Reflector&lt;/strong&gt; 应运而生。Reflector 是一款由 Arch Linux 官方提供的工具，它能够自动查询 Arch Linux 镜像源状态 API，根据用户需求筛选、排序镜像源，并生成优化后的 &lt;code&gt;mirrorlist&lt;/code&gt;。本文将从基础到进阶，详细介绍 Reflector 的使用方法，帮助你彻底掌握镜像源优化技巧。&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="目录"&gt;目录&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://geek-blogs.com/blog/arch-linux-reflector/#1-%E4%BB%80%E4%B9%88%E6%98%AF-reflector"&gt;什么是 Reflector？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://geek-blogs.com/blog/arch-linux-reflector/#2-%E5%AE%89%E8%A3%85-reflector"&gt;安装 Reflector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://geek-blogs.com/blog/arch-linux-reflector/#3-%E5%9F%BA%E7%A1%80%E7%94%A8%E6%B3%95%E5%BF%AB%E9%80%9F%E7%94%9F%E6%88%90%E4%BC%98%E5%8C%96%E9%95%9C%E5%83%8F%E6%BA%90"&gt;基础用法：快速生成优化镜像源&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;3.1 核心参数解析&lt;/li&gt;
&lt;li&gt;3.2 基础命令示例&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://geek-blogs.com/blog/arch-linux-reflector/#4-%E8%BF%9B%E9%98%B6%E9%85%8D%E7%BD%AE%E5%AE%9A%E5%88%B6%E5%8C%96%E7%AD%9B%E9%80%89%E4%B8%8E%E6%8E%92%E5%BA%8F"&gt;进阶配置：定制化筛选与排序&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;4.1 多条件组合筛选&lt;/li&gt;
&lt;li&gt;4.2 基于评分的镜像源优先级&lt;/li&gt;
&lt;li&gt;4.3 排除与自定义输出&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://geek-blogs.com/blog/arch-linux-reflector/#5-%E8%87%AA%E5%8A%A8%E5%8C%96%E9%80%9A%E8%BF%87-systemd-%E5%AE%9A%E6%97%B6%E6%9B%B4%E6%96%B0%E9%95%9C%E5%83%8F%E6%BA%90"&gt;自动化：通过 Systemd 定时更新镜像源&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;5.1 自定义 Systemd 服务与定时器&lt;/li&gt;
&lt;li&gt;5.2 使用官方默认定时器&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://geek-blogs.com/blog/arch-linux-reflector/#6-troubleshooting%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E4%B8%8E%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88"&gt;troubleshooting：常见问题与解决方案&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;6.1 镜像源未更新或无效&lt;/li&gt;
&lt;li&gt;6.2 下载速度依然缓慢&lt;/li&gt;
&lt;li&gt;6.3 Reflector 命令执行失败&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://geek-blogs.com/blog/arch-linux-reflector/#7-%E6%80%BB%E7%BB%93%E4%B8%8E%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5"&gt;总结与最佳实践&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="1-什么是-reflector"&gt;1. 什么是 Reflector？&lt;/h2&gt;
&lt;p&gt;Reflector 是一款用 Python 编写的命令行工具，其核心功能是 &lt;strong&gt;动态生成优化的 Arch Linux 镜像源列表&lt;/strong&gt; 。它通过查询 &lt;a href="https://archlinux.org/mirrors/status/json/"&gt;Arch Linux 镜像源状态 API&lt;/a&gt; 获取实时镜像源数据（包括同步状态、下载速度、地理位置等），然后根据用户指定的条件（如国家、协议、更新时间、速度等）筛选并排序镜像源，最终覆盖或更新 &lt;code&gt;/etc/pacman.d/mirrorlist&lt;/code&gt; 。&lt;/p&gt;</description></item><item><title>Configure Nginx for a Production Environment</title><link>https://yecnay.net/posts/tech/configure-nginx-for-a-production-environment/</link><pubDate>Tue, 21 Apr 2026 08:50:20 +0800</pubDate><guid>https://yecnay.net/posts/tech/configure-nginx-for-a-production-environment/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;Configure Nginx for a Production Environment&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://harshshah8996.medium.com/configure-nginx-for-a-production-environment-be0e02a3d9e8%22"&gt;https://harshshah8996.medium.com/configure-nginx-for-a-production-environment-be0e02a3d9e8&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;[Harsh Shah](/tags/Harsh Shah/)&amp;rdquo;
published: 2021-05-06
created: 2025-06-02
description: &amp;ldquo;Nginx is the most versatile web server out there and can beat other servers when configured properly. A web server in a production environment is different from a web server in a test environment…&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://harshshah8996.medium.com/sitemap/sitemap.xml"&gt;Sitemap&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://miro.medium.com/v2/resize:fit:640/format:webp/1*f0Scebz1rDA919ThePtpJQ.jpeg"&gt;&lt;/p&gt;
&lt;p&gt;Nginx is the most versatile web server out there and can beat other servers when configured properly. A web server in a production environment is different from a web server in a test environment regarding performance, security, etc.&lt;br&gt;
Nginx 是目前功能最丰富的 Web 服务器，配置得当的话，可以胜过其他服务器。生产环境中的 Web 服务器与测试环境中的 Web 服务器在性能、安全性等方面存在差异。&lt;/p&gt;</description></item><item><title>openwrt vlan详解与WAN口、LAN口任意设定指南__什么值得买</title><link>https://yecnay.net/posts/tech/openwrt-vlan%E8%AF%A6%E8%A7%A3%E4%B8%8Ewan%E5%8F%A3lan%E5%8F%A3%E4%BB%BB%E6%84%8F%E8%AE%BE%E5%AE%9A%E6%8C%87%E5%8D%97__%E4%BB%80%E4%B9%88%E5%80%BC%E5%BE%97%E4%B9%B0/</link><pubDate>Tue, 21 Apr 2026 08:50:20 +0800</pubDate><guid>https://yecnay.net/posts/tech/openwrt-vlan%E8%AF%A6%E8%A7%A3%E4%B8%8Ewan%E5%8F%A3lan%E5%8F%A3%E4%BB%BB%E6%84%8F%E8%AE%BE%E5%AE%9A%E6%8C%87%E5%8D%97__%E4%BB%80%E4%B9%88%E5%80%BC%E5%BE%97%E4%B9%B0/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;openwrt vlan详解与WAN口、LAN口任意设定指南__什么值得买&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://post.smzdm.com/p/az6p9ggr/%22"&gt;https://post.smzdm.com/p/az6p9ggr/&amp;quot;&lt;/a&gt;
author:
published: 2022-04-07
created: 2025-06-13
description: &amp;ldquo;上次说Wi-Fi6路由器刷openwrt的时候，有值友问我双wan口怎么实现之类的。搜了下值得买社区好像没什么讲解vlan使用的原创，趁假期就简单说&amp;rdquo;
tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;当前位置：&lt;/p&gt;
&lt;p&gt;&lt;a href="https://post.smzdm.com/"&gt;社区首页&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;文章详情&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://qna.smzdm.com/202205/07/62762c32b9663627.jpg_fo742.jpg"&gt;&lt;/p&gt;
&lt;h2 id="openwrt-vlan详解与wan口lan口任意设定指南"&gt;openwrt vlan详解与WAN口、LAN口任意设定指南&lt;/h2&gt;
&lt;p&gt;上次说Wi-Fi6路由器刷openwrt的时候，有值友问我双wan口怎么实现之类的。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://post.smzdm.com/p/az6p9ggr/pic_2/"&gt;&lt;img alt="openwrt vlan详解与WAN口、LAN口任意设定指南" loading="lazy" src="https://am.zdmimg.com/202204/07/624e8ce8dabcb4838.jpg_e1080.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;搜了下值得买社区好像没什么讲解vlan使用的原创，趁假期就简单说说。事先说明我就是个外行，写的内容很小白，各位技术大佬见笑了。&lt;/p&gt;
&lt;p&gt;文章&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://qna.smzdm.com/202205/07/627627fe916bf8986.jpg_a200.jpg"&gt;&lt;/p&gt;
&lt;p&gt;WiFi 6 梅林或openwrt固件路由器入手指南&lt;/p&gt;
&lt;p&gt;qianseyue&lt;/p&gt;
&lt;p&gt;2022-03-30&lt;/p&gt;
&lt;p&gt;536&lt;/p&gt;
&lt;p&gt;教程针对的是Openwrt 21.02前的配置方式，Openwrt 21.02版本后Swtich架构发生了变化，DSA取代了swconfig，配置vlan的方式也发生了变化。DSA的配置方式下次再更新，感兴趣的可以关注我账户。&lt;/p&gt;
&lt;h2 id="ps关注我第一时间获得填坑更新大家的关注就是我填坑的动力"&gt;PS：关注我！第一时间获得填坑更新。大家的关注，就是我填坑的动力。&lt;/h2&gt;
&lt;hr&gt;
&lt;h2 id="vlan作用"&gt;vlan作用&lt;/h2&gt;
&lt;p&gt;vlan即virtual local area network的缩写，中文直译虚拟局域网，功能类似交换机。很多帖子都是在iptv单线复用，多wan之类的内容里简单提了下。但是忽视了vlan根本作用，任意定制网口功能。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;wan：广域网接口，连接外网或上一层网络。&lt;/li&gt;
&lt;li&gt;lan：局域网接口，连接局域网的设备或下一层网络。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;常规路由器背面，都会有wan或lan两种接口。其中wan连接光猫，lan连接电脑。例如我目前使用的网件Orbi RBKE963，母路由背面就有1个10G wan口和4个lan口（1个2.5、3个1G）。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://post.smzdm.com/p/az6p9ggr/pic_3/"&gt;&lt;img alt="openwrt vlan详解与WAN口、LAN口任意设定指南" loading="lazy" src="https://qnam.smzdm.com/202204/07/624e9350898264775.jpg_e1080.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;其中2.5G口还能变成wan口，实现双wan。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://post.smzdm.com/p/az6p9ggr/pic_4/"&gt;&lt;img alt="openwrt vlan详解与WAN口、LAN口任意设定指南" loading="lazy" src="https://qnam.smzdm.com/202204/07/624ece03b4550743.jpg_e1080.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;但是绝大部分路由器固件中没法自己修改，只能1个wan口和2-6个lan口。这种情况，就得刷第三方固件，例如openwrt，通过其交换机vlan功能实现多个wan口。&lt;/p&gt;
&lt;h2 id="修改演示"&gt;修改演示&lt;/h2&gt;
&lt;p&gt;我以只有三个网口（2个LAN，1个WAN）的mt7620路由器为例，说说怎么修改vlan任意配制lan口和wan口数量。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://post.smzdm.com/p/az6p9ggr/pic_5/"&gt;&lt;img alt="openwrt vlan详解与WAN口、LAN口任意设定指南" loading="lazy" src="https://qnam.smzdm.com/202204/07/624e993f32d093765.jpg_e1080.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;默认启用vlan的情况如上图所示，启用vlan的勾勾被打上，路由器的物理LAN1、LAN2归类到了1组，WAN归类到了2组。&lt;/p&gt;
&lt;h3 id="全改lan"&gt;全改lan&lt;/h3&gt;
&lt;p&gt;假若要把网口全改成lan，那就设置成下图的形式。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://post.smzdm.com/p/az6p9ggr/pic_6/"&gt;&lt;img alt="openwrt vlan详解与WAN口、LAN口任意设定指南" loading="lazy" src="https://qnam.smzdm.com/202204/07/624e9924a26ae1427.jpg_e1080.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;把网口全部划分到1组，保存并应用。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://post.smzdm.com/p/az6p9ggr/pic_7/"&gt;&lt;img alt="openwrt vlan详解与WAN口、LAN口任意设定指南" loading="lazy" src="https://qnam.smzdm.com/202204/07/624eb950b99391799.jpg_e1080.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;在接口页面删掉原来的WAN口和LAN，编辑LAN口。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://post.smzdm.com/p/az6p9ggr/pic_8/"&gt;&lt;img alt="openwrt vlan详解与WAN口、LAN口任意设定指南" loading="lazy" src="https://qnam.smzdm.com/202204/07/624e9acbc08cf802.jpg_e1080.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;把设备选项，选中VLAN：eth0.1。协议是静态地址，地址和掩码一般默认即可。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://post.smzdm.com/p/az6p9ggr/pic_9/"&gt;&lt;img alt="openwrt vlan详解与WAN口、LAN口任意设定指南" loading="lazy" src="https://qnam.smzdm.com/202204/07/624e9b00751375054.jpg_e1080.jpg"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>OpenWrt 开启 IPv6 公网访问全指南 - 晨鹤部落格</title><link>https://yecnay.net/posts/tech/openwrt-%E5%BC%80%E5%90%AF-ipv6-%E5%85%AC%E7%BD%91%E8%AE%BF%E9%97%AE%E5%85%A8%E6%8C%87%E5%8D%97-%E6%99%A8%E9%B9%A4%E9%83%A8%E8%90%BD%E6%A0%BC/</link><pubDate>Tue, 21 Apr 2026 08:50:20 +0800</pubDate><guid>https://yecnay.net/posts/tech/openwrt-%E5%BC%80%E5%90%AF-ipv6-%E5%85%AC%E7%BD%91%E8%AE%BF%E9%97%AE%E5%85%A8%E6%8C%87%E5%8D%97-%E6%99%A8%E9%B9%A4%E9%83%A8%E8%90%BD%E6%A0%BC/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;OpenWrt 开启 IPv6 公网访问全指南 - 晨鹤部落格&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://chenhe.me/post/openwrt-config-ipv6-public-access%22"&gt;https://chenhe.me/post/openwrt-config-ipv6-public-access&amp;quot;&lt;/a&gt;
author:
published: 4月 17
created: 2025-07-02
description: &amp;ldquo;阅读本文要求具有基础网络知识，例如知道什么是网络掩码、路由、DHCP 等。 当前环境： 江苏电信，光猫为桥接模式。 x86 软路由，安装 iStoreOS。 基础概念 什么是 IPv6 IPv6 与 v4 不同。v4 时代运营商一般只给用户分配最多 1 个公网 ip，然后用户自己的路由器通过 NAT&amp;rdquo;
tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;阅读本文要求具有基础网络知识，例如知道什么是网络掩码、路由、DHCP 等。&lt;/p&gt;
&lt;p&gt;当前环境：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;江苏电信，光猫为桥接模式。&lt;/li&gt;
&lt;li&gt;x86 软路由，安装 &lt;a href="https://www.istoreos.com/"&gt;iStoreOS&lt;/a&gt; 。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id="基础概念"&gt;基础概念&lt;/h2&gt;
&lt;h3 id="什么是-ipv6"&gt;什么是 IPv6&lt;/h3&gt;
&lt;p&gt;IPv6 与 v4 不同。v4 时代运营商一般只给用户分配最多 1 个公网 ip，然后用户自己的路由器通过 NAT 再给局域网设备分配内网 IP，也就是 &lt;code&gt;192.168.x.x&lt;/code&gt; 这种。这种情况下内网设备没有独立的公网 IP，要想从公网访问必须配置路由器端口转发。随着 v4 资源枯竭，现在运营商默认已经不再分配公网 IP 了。要想正常从外部访问，必须做内网穿透。&lt;/p&gt;
&lt;p&gt;IPv6 有无数个地址可供分配，“可以给地球上的每一粒沙子都分配一个 IP 地址”。因此运营商分配的策略也会变化。v4 分配的是一个地址，而 v6 分配的是一个前缀，也就是所谓的 &lt;code&gt;pd&lt;/code&gt; ，相当于是一整个网段，我们可以自己继续往下分配，从而使得每一个局域网设备都能获得公网 IP 地址，甚至可以划分自己的多层子网。&lt;/p&gt;</description></item><item><title>Proxmox VE 9.1.1 屏蔽订阅弹窗提示 - azh3ng</title><link>https://yecnay.net/posts/tech/proxmox-ve-9.1.1-%E5%B1%8F%E8%94%BD%E8%AE%A2%E9%98%85%E5%BC%B9%E7%AA%97%E6%8F%90%E7%A4%BA-azh3ng/</link><pubDate>Tue, 21 Apr 2026 08:50:20 +0800</pubDate><guid>https://yecnay.net/posts/tech/proxmox-ve-9.1.1-%E5%B1%8F%E8%94%BD%E8%AE%A2%E9%98%85%E5%BC%B9%E7%AA%97%E6%8F%90%E7%A4%BA-azh3ng/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;Proxmox VE 9.1.1 屏蔽订阅弹窗提示 - azh3ng&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://azh3ng.com/2025/12/17/Proxmox-VE-disable-subscription-notice.htmltext=%E8%BF%99%E6%9D%A1%E5%91%BD%E4%BB%A4%E4%BC%9A%E5%9C%A8,bak%20%E5%90%8E%E7%BC%80%E7%9A%84%E5%A4%87%E4%BB%BD%E6%96%87%E4%BB%B6%E3%80%82%22"&gt;https://azh3ng.com/2025/12/17/Proxmox-VE-disable-subscription-notice.htmltext=%E8%BF%99%E6%9D%A1%E5%91%BD%E4%BB%A4%E4%BC%9A%E5%9C%A8,bak%20%E5%90%8E%E7%BC%80%E7%9A%84%E5%A4%87%E4%BB%BD%E6%96%87%E4%BB%B6%E3%80%82&amp;quot;&lt;/a&gt;
author:
published:
created: 2026-03-26
description: &amp;ldquo;Proxmox VE (PVE) 是一款优秀的开源虚拟化管理平台，基于 Debian 并集成了 KVM 和 LXC 虚拟化技术。然而，在使用社区版时，每次登录 Web 管理界面都会弹出订阅提示窗口，虽然不影响功能使用，但频繁出现确实会影响使用体验。本文将介绍如何在 Proxmox VE 9.1.1 版本中屏蔽这个&amp;hellip;&amp;rdquo;
tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;Proxmox VE (PVE) 是一款优秀的开源虚拟化管理平台，基于 Debian 并集成了 KVM 和 LXC 虚拟化技术。然而，在使用社区版时，每次登录 Web 管理界面都会弹出订阅提示窗口，虽然不影响功能使用，但频繁出现确实会影响使用体验。&lt;/p&gt;
&lt;p&gt;本文将介绍如何在 Proxmox VE 9.1.1 版本中屏蔽这个登录后的订阅提示弹窗。&lt;/p&gt;
&lt;h2 id="操作步骤"&gt;操作步骤&lt;/h2&gt;
&lt;h3 id="1-备份原始文件"&gt;1. 备份原始文件&lt;/h3&gt;
&lt;p&gt;在进行任何修改之前，强烈建议先备份原始的 JavaScript 文件，以便在出现问题时能够快速恢复：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cp /usr/share/pve-manager/js/pvemanagerlib.js &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; /usr/share/pve-manager/js/pvemanagerlib.js.bak
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这条命令会在同目录下创建一个 &lt;code&gt;.bak&lt;/code&gt; 后缀的备份文件。&lt;/p&gt;
&lt;h3 id="2-修改订阅检查代码"&gt;2. 修改订阅检查代码&lt;/h3&gt;
&lt;p&gt;使用 &lt;code&gt;sed&lt;/code&gt; 命令直接修改 JavaScript 文件中的订阅检查逻辑：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sed -i &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;&amp;#39;s/Proxmox.Utils.checked_command(Ext.emptyFn);/Ext.emptyFn();\/\* subscription check disabled \*\//g&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/usr/share/pve-manager/js/pvemanagerlib.js
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这条命令的作用是将订阅检查函数替换为一个空函数，从而跳过弹窗提示。修改后的代码会添加注释 &lt;code&gt;/* subscription check disabled */&lt;/code&gt; 以便识别。&lt;/p&gt;</description></item><item><title>磊科N60 Pro备份及刷官方OpenWrt教程-OPENWRT专版</title><link>https://yecnay.net/posts/tech/%E7%A3%8A%E7%A7%91n60-pro%E5%A4%87%E4%BB%BD%E5%8F%8A%E5%88%B7%E5%AE%98%E6%96%B9openwrt%E6%95%99%E7%A8%8B-openwrt%E4%B8%93%E7%89%88/</link><pubDate>Tue, 21 Apr 2026 08:50:20 +0800</pubDate><guid>https://yecnay.net/posts/tech/%E7%A3%8A%E7%A7%91n60-pro%E5%A4%87%E4%BB%BD%E5%8F%8A%E5%88%B7%E5%AE%98%E6%96%B9openwrt%E6%95%99%E7%A8%8B-openwrt%E4%B8%93%E7%89%88/</guid><description>&lt;p&gt;N60 Pro在N60基础上内存升级为DDR4 512M，新增一个USB3.0接口，网口升级为2&lt;em&gt;2.5G+3&lt;/em&gt;1G。&lt;!-- raw HTML omitted --&gt;对于有千兆以上大水管，同时需要通过USB连接设备的用户，是一步到位的性价比之选。&lt;!-- raw HTML omitted --&gt;磊科官方固件开放SSH，因此对于刷机非常友好。&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;视频教程：&lt;!-- raw HTML omitted --&gt;【磊科N60 Pro刷官方OpenWrt教程】 &lt;!-- raw HTML omitted --&gt;&lt;a href="https://www.bilibili.com/video/BV1nKQLY1Ev1"&gt;https://www.bilibili.com/video/BV1nKQLY1Ev1&lt;/a&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;刷机所需文件及软件链接:&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;游客，如果您要查看本帖隐藏内容请 &lt;!-- raw HTML omitted --&gt;回复&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;1. 官方固件各分区备份教程&lt;!-- raw HTML omitted --&gt;需要工具：winscp&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;ssh登录官方固件&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;ssh &lt;a href="mailto:useradmin@leike.cc"&gt;useradmin@leike.cc&lt;/a&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;复制代码&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;密码是路由器管理密码。&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;备份Factory，BL2，u-boot，u-boot-env分区。 &lt;!-- raw HTML omitted --&gt;Factory分区请务必备份，每台机器都不一样。&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;dd if=/dev/mtd1 of=/tmp/mtd1_BL2.bin&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;复制代码&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;使用WinSCP把保存在路由器/tmp目录的文件传到电脑上&lt;!-- raw HTML omitted --&gt;备份官方固件分区。&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;dd if=/dev/mtd5 of=/tmp/mtd5_ubi.bin&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;复制代码&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;同样使用WinSCP把备份的文件传到电脑上&lt;!-- raw HTML omitted --&gt;备份完整Flash（编程器固件）&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;dd if=/dev/mtd5 of=/tmp/mtd5_ubi.bin&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;复制代码&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;2. 刷写u-boot&lt;!-- raw HTML omitted --&gt;需要工具：winscp&lt;!-- raw HTML omitted --&gt;需要文件：u-boot文件&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;本帖中用到的u-boot仅支持官方OpenWrt，如您不打算使用官方OpenWrt请不要刷入！！！&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;使用winscp上传u-boot文件到路由器/tmp目录，输入下面命令写入新的u-boot：&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;mtd write /tmp/u-boot.bin FIP&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;复制代码&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;上面命令执行结束前，确保不要断电，否则你会收到一块砖！！！&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;输入下面命令擦除官方固件并重启：&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;mtd erase /dev/mtd5&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;reboot&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;复制代码&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;3. 刷写官方OpenWrt&lt;!-- raw HTML omitted --&gt;需要工具：tftpd64.exe&lt;!-- raw HTML omitted --&gt;需要文件：initramfs.bin 官方OpenWrt文件&lt;!-- raw HTML omitted --&gt;第2步重启后，会自动进入u-boot，下面步骤请使用网线连接路由器lan口。&lt;!-- raw HTML omitted --&gt;电脑网线连接到路由器lan口后，设置网卡为静态IP：&lt;!-- raw HTML omitted --&gt; IP地址：192.168.1.254 子网掩码：255.255.255.0打开tftpd64.exe，打开保存initramfs.bin的文件夹，选择连接路由器的网卡，会自动上传initramfs.bin上传完成后，路由器会自动重启，不要断电，将网卡重新恢复到DHCP模式，稍等片刻。待网卡获取到IP地址后，打开浏览器地址栏输入openwrt复制代码即可进入路由器管理页面，在系统升级页面选择官方openwrt升级文件，上传重启后就刷完了。&lt;/p&gt;</description></item><item><title>群辉 synology acme ssl证书配置 - 萌牛小站</title><link>https://yecnay.net/posts/tech/%E7%BE%A4%E8%BE%89-synology-acme-ssl%E8%AF%81%E4%B9%A6%E9%85%8D%E7%BD%AE-%E8%90%8C%E7%89%9B%E5%B0%8F%E7%AB%99/</link><pubDate>Tue, 21 Apr 2026 08:50:20 +0800</pubDate><guid>https://yecnay.net/posts/tech/%E7%BE%A4%E8%BE%89-synology-acme-ssl%E8%AF%81%E4%B9%A6%E9%85%8D%E7%BD%AE-%E8%90%8C%E7%89%9B%E5%B0%8F%E7%AB%99/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;群辉 synology acme ssl证书配置 - 萌牛小站&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://www.moeox.com/282.html%22"&gt;https://www.moeox.com/282.html&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;[萌牛 2 年前](/tags/萌牛 2 年前/)&amp;rdquo;
published:
created: 2026-01-23
description:
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;配置步骤1：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo -i -----登录root
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget https://github.com/acmesh-official/acme.sh/archive/master.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar xvf master.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; acme.sh-master/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail &lt;span class="s2"&gt;&amp;#34;邮箱地址&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;####dnspod&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;DP_Id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;id&amp;#34;&lt;/span&gt; -----dnspod
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;DP_Key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;key&amp;#34;&lt;/span&gt; -----dnspod
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;######腾讯云 任选其一&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;Tencent_SecretId&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;xxx&amp;#34;&lt;/span&gt; ---腾讯云api
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;Tencent_SecretKey&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;xxx&amp;#34;&lt;/span&gt; ----腾讯云api
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;CERT_DOMAIN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;域名.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /usr/local/share/acme.sh/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;###dnspod&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./acme.sh --issue --server letsencrypt --home . -d &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$CERT_DOMAIN&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; -d *.域名.com --dns dns_dp
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;####腾讯云&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./acme.sh --issue --server letsencrypt --home . -d &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$CERT_DOMAIN&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; -d *.域名.com --dns dns_tencent
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---------导入证书至dsm
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /usr/local/share/acme.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;SYNO_Username&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;群辉管理员用户名&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;SYNO_Password&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;密码&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;SYNO_Hostname&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;群辉ip&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;SYNO_Scheme&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;https&amp;#34;&lt;/span&gt; ------可选
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;SYNO_Port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;5001&amp;#34;&lt;/span&gt; ------可选
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;SYNO_Certificate&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;default&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;SYNO_Create&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt; ---------第一次安装证书需要加入这个
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;CERT_DOMAIN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;域名.com&amp;#34;&lt;/span&gt; --------必须填入 不然会报错
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;SYNO_DID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;cookies&amp;#39;&lt;/span&gt; -----------------如果开启了otp两步验证 需要登录网页 然后登录 otp那里选择记住电脑保持登录 下次不用输入otp 登录进页面后 chrome里看cookies里的did值 输入这里
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./acme.sh --insecure --deploy --home . -d &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$CERT_DOMAIN&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; --deploy-hook synology_dsm
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Bash&lt;/p&gt;</description></item><item><title>使用 Mihomo(Clash) 搭建透明网关，使局域网设备科学上网 EsunR-Blog</title><link>https://yecnay.net/posts/tech/%E4%BD%BF%E7%94%A8-mihomoclash-%E6%90%AD%E5%BB%BA%E9%80%8F%E6%98%8E%E7%BD%91%E5%85%B3%E4%BD%BF%E5%B1%80%E5%9F%9F%E7%BD%91%E8%AE%BE%E5%A4%87%E7%A7%91%E5%AD%A6%E4%B8%8A%E7%BD%91-esunr-blog/</link><pubDate>Tue, 21 Apr 2026 08:50:20 +0800</pubDate><guid>https://yecnay.net/posts/tech/%E4%BD%BF%E7%94%A8-mihomoclash-%E6%90%AD%E5%BB%BA%E9%80%8F%E6%98%8E%E7%BD%91%E5%85%B3%E4%BD%BF%E5%B1%80%E5%9F%9F%E7%BD%91%E8%AE%BE%E5%A4%87%E7%A7%91%E5%AD%A6%E4%B8%8A%E7%BD%91-esunr-blog/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;使用 Mihomo(Clash) 搭建透明网关，使局域网设备科学上网 | EsunR-Blog&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://blog.esunr.site/2025/04/ec8dc9f7a09d.html#0-%E4%BB%80%E4%B9%88%E6%98%AF%E9%80%8F%E6%98%8E%E7%BD%91%E5%85%B3%22"&gt;https://blog.esunr.site/2025/04/ec8dc9f7a09d.html#0-%E4%BB%80%E4%B9%88%E6%98%AF%E9%80%8F%E6%98%8E%E7%BD%91%E5%85%B3&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/EsunR/"&gt;EsunR&lt;/a&gt;&amp;rdquo;
published: 2025-04-08
created: 2025-12-08
description: &amp;ldquo;使用 Mihomo(Clash) 搭建透明网关，使局域网设备科学上网&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;本文只探讨在 Linux 设备下（如树莓派、迷你主机）开启 Clash，并将该设备作为透明网关供家庭其他设备使用这一场景，本文需要一定的网络原理基础。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="0-什么是透明网关"&gt;0. 什么是透明网关&lt;/h2&gt;
&lt;p&gt;如果一个设备想要科学上网，那么他可以在本机安装代理工具来进行网络访问。但是在一个局域网中，网关是可以自定义的，我们可以将希望科学上网的设备网关指向一台可以转发网络流量的设备，从而让这个设备帮我们把流量转发给代理工具，并让代理工具访问到资源后再返回给设备，这就实现了局域网设备无需安装任何代理工具就能实现科学上网的需求。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://esunr-image-bed.oss-cn-beijing.aliyuncs.com/picgo/202504081652374.png"&gt;&lt;img alt="image.png|686" loading="lazy" src="https://esunr-image-bed.oss-cn-beijing.aliyuncs.com/picgo/202504081652374.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://esunr-image-bed.oss-cn-beijing.aliyuncs.com/picgo/202504081652374.png"&gt;image.png|686&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;其实“透明网关”和“旁路由”类似，都是非标准术语，只是社区上都这么叫。只是一般我们讲透明网关强调的是数据转发、拦截的功能，而旁路由可能还有 DHCP、NAT 等功能，旁路由安装了 OpenClash 之类的插件也能实现透明网关的功能。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;讲一下为啥不用 OpenClash 来做代理实现同样的功能，因为 OpenClash 设置太复杂了，并且我这边使用的效果会影响局域网内其他设备的网络访问，造成整个局域网都很慢，感觉有很多 BUG。并且 OpenWrt 的资源占用也不低，单纯为了实现透明网关的数据代理不如只用一个轻量的 Linux 系统 + Clash/Mihomo 核心来实现。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="1-clash-端开启-tun-mode"&gt;1. Clash 端开启 TUN Mode&lt;/h2&gt;
&lt;h2 id="11-使用-clash不推荐"&gt;1.1 使用 Clash（不推荐）&lt;/h2&gt;
&lt;p&gt;安装 Clash permium 版本：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;注意：开源的普通版本不支持 TUN Mode，无法搭建透明网关&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Clash 2022 年 3 月的更新在 TUN Mode 的配置中加入了 &lt;code&gt;auto-route&lt;/code&gt; 与 &lt;code&gt;auto-detect-interface&lt;/code&gt; 两项配置，极大的方便了 Linux 设备开启 TUN 模式，不需要再额外设置 iptables 与 tproxy。&lt;/p&gt;</description></item><item><title>通过ACME让群晖（Synology）自动申请部署Let's Encrypt的SSL证书</title><link>https://yecnay.net/posts/tech/%E9%80%9A%E8%BF%87acme%E8%AE%A9%E7%BE%A4%E6%99%96synology%E8%87%AA%E5%8A%A8%E7%94%B3%E8%AF%B7%E9%83%A8%E7%BD%B2lets-encrypt%E7%9A%84ssl%E8%AF%81%E4%B9%A6/</link><pubDate>Tue, 21 Apr 2026 08:50:20 +0800</pubDate><guid>https://yecnay.net/posts/tech/%E9%80%9A%E8%BF%87acme%E8%AE%A9%E7%BE%A4%E6%99%96synology%E8%87%AA%E5%8A%A8%E7%94%B3%E8%AF%B7%E9%83%A8%E7%BD%B2lets-encrypt%E7%9A%84ssl%E8%AF%81%E4%B9%A6/</guid><description>&lt;hr&gt;
&lt;p&gt;profileName: yecnay.com
postId: &amp;ldquo;1681&amp;rdquo;
postType: post
categories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;640&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="在数字安全日益重要的今天"&gt;在数字安全日益重要的今天&lt;/h2&gt;
&lt;p&gt;为您的网络存储器（NAS）配置 HTTPS 证书是保护数据传输的关键一步。Synology NAS 用户可以通过 Let&amp;rsquo;s Encrypt 免费获得 SSL 证书，但是默认的方法需要开放网络端口，这可能不是每个人都愿意做的。幸运的是，有一种替代方案：使用 DNS-01 验证和 acme.sh 脚本。这篇文章将指导您如何使用 acme.sh 为您的 Synology NAS 设置 HTTPS 证书，而无需开放额外的网络端口。&lt;/p&gt;
&lt;p&gt;现有的一些介绍群晖配置免费Let&amp;rsquo;s Encrypt证书的方法，要么是表达不清，要么是需要一些技术功底，对小白并不友好。M学院对官方文档重新整理一下，并且亲测有效，这是目前位置我们认为最好的方案也是唯一全部成功的方案。&lt;/p&gt;
&lt;h2 id="准备工作"&gt;准备工作&lt;/h2&gt;
&lt;p&gt;在开始之前，确保您有以下条件：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;拥有一个域名，并且可以控制其 DNS 记录。&lt;/li&gt;
&lt;li&gt;对您的 Synology NAS 有管理员权限。&lt;/li&gt;
&lt;li&gt;SSH 访问权限。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="安装-acmesh"&gt;安装 acme.sh&lt;/h2&gt;
&lt;p&gt;首先，您需要在您的设备上安装 acme.sh。通过 SSH 登录到您的 NAS 并执行以下命令：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;复制&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo su
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget https://github.com/acmesh-official/acme.sh/archive/master.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar xvf master.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; acme.sh-master/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail &lt;span class="s2"&gt;&amp;#34;email@gmail.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.profile
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="配置-dns"&gt;配置 DNS&lt;/h2&gt;
&lt;p&gt;以 Cloudflare 为例，您需要设置两个环境变量，以便 acme.sh 能够设置 DNS 记录。如果您使用的是其他 DNS 提供商，查阅 acme.sh 的 DNS API 文档来找到正确的设置方法。&lt;/p&gt;</description></item><item><title>为高性能优化 PHP-FPM PHP优质外文翻译 PHP 技术论坛</title><link>https://yecnay.net/posts/tech/%E4%B8%BA%E9%AB%98%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96-php-fpm-php%E4%BC%98%E8%B4%A8%E5%A4%96%E6%96%87%E7%BF%BB%E8%AF%91-php-%E6%8A%80%E6%9C%AF%E8%AE%BA%E5%9D%9B/</link><pubDate>Tue, 21 Apr 2026 08:50:20 +0800</pubDate><guid>https://yecnay.net/posts/tech/%E4%B8%BA%E9%AB%98%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96-php-fpm-php%E4%BC%98%E8%B4%A8%E5%A4%96%E6%96%87%E7%BF%BB%E8%AF%91-php-%E6%8A%80%E6%9C%AF%E8%AE%BA%E5%9D%9B/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;为高性能优化 PHP-FPM | PHP优质外文翻译 | PHP 技术论坛&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://learnku.com/php/t/34358%22"&gt;https://learnku.com/php/t/34358&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/Summer/"&gt;Summer&lt;/a&gt;&amp;rdquo;
published:
created: 2025-07-25
description: &amp;ldquo;PHP是无处不在的，可以说是互联网 Web 应用上使用最广泛的语言。 然而，它的高性能并不为人所知，尤其是在涉及到高并发系统时。这就是为什么对于这样特殊的用例，正在被 Node (是的，我知道，它不是一种语言)、Go 和&amp;hellip;&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://learnku.com/auth/oauth?driver=wechat"&gt;微信登录&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="为高性能优化-php-fpm"&gt;为高性能优化 PHP-FPM&lt;/h2&gt;
&lt;p&gt;&lt;img alt="PHP" loading="lazy" src="https://cdn.learnku.com/uploads/images/201909/23/1/pPk7RW9zBF.png!large"&gt;&lt;/p&gt;
&lt;p&gt;PHP 是无处不在的，可以说是互联网 Web 应用上使用最广泛的语言。&lt;/p&gt;
&lt;p&gt;然而，它的高性能并不为人所知，尤其是在涉及到高并发系统时。这就是为什么对于这样特殊的用例，正在被 Node (是的，我知道，它不是一种语言)、Go 和 Elixir 等语言接管。&lt;/p&gt;
&lt;p&gt;也就是说，您可以做很多事情来改进服务器上的 PHP 性能。本文主要关注 &lt;code&gt;php-fpm&lt;/code&gt; 方面的内容，如果您使用 Nginx，这是在服务器上的默认配置。&lt;/p&gt;
&lt;p&gt;如果你知道 &lt;code&gt;php-fpm&lt;/code&gt; 是什么，请直接跳到优化部分。&lt;/p&gt;
&lt;h2 id="什么是-php-fpm"&gt;什么是 php-fpm?&lt;/h2&gt;
&lt;p&gt;许多开发人员对 DevOps 方面的知识不太感兴趣，即使是那些对此感兴趣的开发人员，也极少有人知道它的底层原理。有趣的是，当浏览器发送一个请求到运行 PHP 的服务器上时，PHP 也不是最先进行处理请求的服务；而是，HTTP 服务器，Apache 和 Nginx 是其中最主要的两个。「web 服务器」决定如何与 PHP 进行通信，然后传递请求的类型，数据和头部信息到 PHP 进程。&lt;/p&gt;
&lt;p&gt;&lt;img alt="PHP" loading="lazy" src="https://cdn.learnku.com/uploads/images/201909/23/1/m9dLq0BIMN.png!large"&gt;&lt;/p&gt;
&lt;p&gt;上图是 PHP 项目的请求 - 响应生命周期（图片来源: ProinerTech）&lt;/p&gt;</description></item><item><title>修复WPS Office的Fcitx5输入法问题 - 星外之神的博客 wszqkzqk Blog</title><link>https://yecnay.net/posts/tech/%E4%BF%AE%E5%A4%8Dwps-office%E7%9A%84fcitx5%E8%BE%93%E5%85%A5%E6%B3%95%E9%97%AE%E9%A2%98-%E6%98%9F%E5%A4%96%E4%B9%8B%E7%A5%9E%E7%9A%84%E5%8D%9A%E5%AE%A2-wszqkzqk-blog/</link><pubDate>Tue, 21 Apr 2026 08:50:20 +0800</pubDate><guid>https://yecnay.net/posts/tech/%E4%BF%AE%E5%A4%8Dwps-office%E7%9A%84fcitx5%E8%BE%93%E5%85%A5%E6%B3%95%E9%97%AE%E9%A2%98-%E6%98%9F%E5%A4%96%E4%B9%8B%E7%A5%9E%E7%9A%84%E5%8D%9A%E5%AE%A2-wszqkzqk-blog/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;修复WPS Office的Fcitx5输入法问题 - 星外之神的博客 | wszqkzqk Blog&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://wszqkzqk.github.io/2024/03/09/WPS-Fcitx5/%22"&gt;https://wszqkzqk.github.io/2024/03/09/WPS-Fcitx5/&amp;quot;&lt;/a&gt;
author:
published: 2024-03-09
created: 2026-03-19
description: &amp;ldquo;天下难事，必作于易；天下大事，必作于细&amp;rdquo;
tags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;以前，Fcitx5一般会要求用户在 &lt;code&gt;/etc/environment&lt;/code&gt; 中添加有关环境变量的配置，例如：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;XMODIFIERS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;@im&lt;span class="o"&gt;=&lt;/span&gt;fcitx
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;GTK_IM_MODULE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;fcitx
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;QT_IM_MODULE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;fcitx
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;SDL_IM_MODULE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;fcitx
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;GLFW_IM_MODULE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ibus
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然而，在Wayland合成器中，如果存在这些环境变量，可能会遇到Fcitx5闪烁的情况，可能会影响用户体验。&lt;/p&gt;
&lt;p&gt;Fcitx5在KDE Wayland下建议通过 &lt;code&gt;系统设置-&amp;gt;键盘-&amp;gt;虚拟键盘&lt;/code&gt; 来选择Fcitx5输入法。由于KDE Plasma支持1-3版的Wayland输入法协议，因此，仅建议在环境变量中添加：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;XMODIFIERS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;@im&lt;span class="o"&gt;=&lt;/span&gt;fcitx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;其他环境变量不需要添加。&lt;/p&gt;
&lt;p&gt;然而，WPS Office静态链接了Qt5，不受系统的Qt库控制，由于某种原因不能应用这样选择的输入法，导致无法输入中文。&lt;/p&gt;
&lt;h2 id="解决方法"&gt;解决方法&lt;/h2&gt;
&lt;p&gt;由于在以前添加了环境变量的时候，WPS Office是可以正常输入中文的，因此，只要我们单独给WPS Office添加环境变量，就可以解决这个问题。&lt;/p&gt;
&lt;p&gt;单独给WPS Office添加环境变量可以由很多方式实现，比如说编辑WPS Office的启动脚本、使用额外启动脚本替代WPS Office的启动脚本、编辑WPS Office的&lt;code&gt;.desktop&lt;/code&gt; 文件等等。然而，这些方法会在WPS Office的每次更新后失效。&lt;/p&gt;
&lt;p&gt;笔者选择了将WPS Office的&lt;code&gt;.desktop&lt;/code&gt; 文件复制到 &lt;code&gt;~/.local/share/applications&lt;/code&gt; 目录下。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cp /usr/share/applications/wps-office*.desktop ~/.local/share/applications/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后编辑该文件的启动命令，实现单独给WPS Office添加环境变量。在原有的文件中，找到 &lt;code&gt;Exec=&lt;/code&gt; 一行，形如：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;Exec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/usr/bin/wps %F
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;为了单独给WPS Office添加环境变量，我们可以将其修改为：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;Exec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;env &lt;span class="nv"&gt;XMODIFIERS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;@im=fcitx&amp;#34;&lt;/span&gt; &lt;span class="nv"&gt;GTK_IM_MODULE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;fcitx&amp;#34;&lt;/span&gt; &lt;span class="nv"&gt;QT_IM_MODULE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;fcitx&amp;#34;&lt;/span&gt; &lt;span class="nv"&gt;SDL_IM_MODULE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;fcitx &lt;span class="nv"&gt;GLFW_IM_MODULE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ibus /usr/bin/wps %F
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这里，我们使用 &lt;code&gt;env&lt;/code&gt; 命令来临时添加环境变量，这样，我们就可以在不修改WPS Office的启动脚本的情况下，实现单独给WPS Office添加环境变量。&lt;/p&gt;</description></item><item><title>【代理新姿势】科学上网最新AnyTLS协议快速上手，收集了两年的各代理协议反馈分享，reality依旧稳如老狗！ - 科学上网 技术分享</title><link>https://yecnay.net/posts/tech/%E4%BB%A3%E7%90%86%E6%96%B0%E5%A7%BF%E5%8A%BF%E7%A7%91%E5%AD%A6%E4%B8%8A%E7%BD%91%E6%9C%80%E6%96%B0anytls%E5%8D%8F%E8%AE%AE%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B%E6%94%B6%E9%9B%86%E4%BA%86%E4%B8%A4%E5%B9%B4%E7%9A%84%E5%90%84%E4%BB%A3%E7%90%86%E5%8D%8F%E8%AE%AE%E5%8F%8D%E9%A6%88%E5%88%86%E4%BA%ABreality%E4%BE%9D%E6%97%A7%E7%A8%B3%E5%A6%82%E8%80%81%E7%8B%97-%E7%A7%91%E5%AD%A6%E4%B8%8A%E7%BD%91-%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/</link><pubDate>Tue, 21 Apr 2026 08:50:19 +0800</pubDate><guid>https://yecnay.net/posts/tech/%E4%BB%A3%E7%90%86%E6%96%B0%E5%A7%BF%E5%8A%BF%E7%A7%91%E5%AD%A6%E4%B8%8A%E7%BD%91%E6%9C%80%E6%96%B0anytls%E5%8D%8F%E8%AE%AE%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B%E6%94%B6%E9%9B%86%E4%BA%86%E4%B8%A4%E5%B9%B4%E7%9A%84%E5%90%84%E4%BB%A3%E7%90%86%E5%8D%8F%E8%AE%AE%E5%8F%8D%E9%A6%88%E5%88%86%E4%BA%ABreality%E4%BE%9D%E6%97%A7%E7%A8%B3%E5%A6%82%E8%80%81%E7%8B%97-%E7%A7%91%E5%AD%A6%E4%B8%8A%E7%BD%91-%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;【代理新姿势】科学上网最新AnyTLS协议快速上手，收集了两年的各代理协议反馈分享，reality依旧稳如老狗！ - 科学上网 技术分享&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://bulianglin.com/archives/anytls.html%22"&gt;https://bulianglin.com/archives/anytls.html&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/%E4%B8%8D%E8%89%AF%E6%9E%97/"&gt;不良林&lt;/a&gt;&amp;rdquo;
published: 2025 年 05 月 17 日
created: 2025-05-26
description: &amp;ldquo;视频教程youtube播放地址：https://youtu.be/yUJ&amp;ndash;0eUs_oGIA高速VPS推荐： &lt;a href="https://d.m123.org"&gt;https://d.m123.org&lt;/a&gt;家宽住宅VPS推荐： &lt;a href="https://v.m"&gt;https://v.m&lt;/a&gt;1&amp;hellip;&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://bulianglin.com/"&gt;首页&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;正文&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="视频教程"&gt;视频教程&lt;/h2&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://www.youtube.com/watch?v=yUJ--0eUs_o"&gt;&lt;/p&gt;
&lt;p&gt;youtube播放地址： &lt;a href="https://bulianglin.com/g/aHR0cHM6Ly95b3V0dS5iZS95VUotLTBlVXNfbw"&gt;https://youtu.be/yUJ&amp;ndash;0eUs_o&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GIA高速VPS推荐：&lt;/strong&gt; &lt;a href="https://bulianglin.com/g/aHR0cHM6Ly9kLm0xMjMub3Jn"&gt;https://d.m123.org&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;家宽住宅VPS推荐：&lt;/strong&gt; &lt;a href="https://bulianglin.com/g/aHR0cHM6Ly92Lm0xMjMub3Jn"&gt;https://v.m123.org&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;自用专线机场推荐：&lt;/strong&gt; &lt;a href="https://bulianglin.com/g/aHR0cHM6Ly9iLm0xMjMub3Jn"&gt;https://b.m123.org&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="anytls"&gt;AnyTLS&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://bulianglin.com/g/aHR0cHM6Ly9naXRodWIuY29tL2FueXRscy9hbnl0bHMtZ28"&gt;https://github.com/anytls/anytls-go&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;一个试图缓解 嵌套的TLS握手指纹(TLS in TLS) 问题的代理协议。 &lt;code&gt;anytls-go&lt;/code&gt; 是该协议的参考实现。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;灵活的分包和填充策略&lt;/li&gt;
&lt;li&gt;连接复用，降低代理延迟&lt;/li&gt;
&lt;li&gt;简洁的配置&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="支持anytls协议的代理工具"&gt;支持AnyTLS协议的代理工具&lt;/h2&gt;
&lt;h3 id="sing-box"&gt;sing-box&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://bulianglin.com/g/aHR0cHM6Ly9naXRodWIuY29tL1NhZ2VyTmV0L3NpbmctYm94"&gt;https://github.com/SagerNet/sing-box&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;包含 anytls 协议的服务器和客户端&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="mihomo"&gt;mihomo&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://bulianglin.com/g/aHR0cHM6Ly9naXRodWIuY29tL01ldGFDdWJlWC9taWhvbW8"&gt;https://github.com/MetaCubeX/mihomo&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;包含 anytls 协议的服务器和客户端&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="shadowrocket"&gt;Shadowrocket&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://bulianglin.com/g/aHR0cHM6Ly9hcHBzLmFwcGxlLmNvbS9hcHAvc2hhZG93cm9ja2V0L2lkOTMyNzQ3MTE4"&gt;https://apps.apple.com/app/shadowrocket/id932747118&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Shadowrocket 2.2.65+ 实现了 anytls 协议的客户端&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="nekobox-for-android"&gt;NekoBox For Android&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://bulianglin.com/g/aHR0cHM6Ly9naXRodWIuY29tL01hdHN1cmlEYXlvL05la29Cb3hGb3JBbmRyb2lkL3JlbGVhc2Vz"&gt;https://github.com/MatsuriDayo/NekoBoxForAndroid/releases&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;NekoBox For Android 1.3.8+ 实现了 anytls 协议的客户端&lt;/p&gt;</description></item><item><title>Converting GL.iNet MT3000 (Beryl AX) from CN to Global - Hardware Questions and Recommendations</title><link>https://yecnay.net/posts/tech/converting-gl.inet-mt3000-beryl-ax-from-cn-to-global-hardware-questions-and-recommendations/</link><pubDate>Tue, 21 Apr 2026 08:50:19 +0800</pubDate><guid>https://yecnay.net/posts/tech/converting-gl.inet-mt3000-beryl-ax-from-cn-to-global-hardware-questions-and-recommendations/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;Converting GL.iNet MT3000 (Beryl AX) from CN to Global - Hardware Questions and Recommendations&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://forum.openwrt.org/t/converting-gl-inet-mt3000-beryl-ax-from-cn-to-global/165159/4%22"&gt;https://forum.openwrt.org/t/converting-gl-inet-mt3000-beryl-ax-from-cn-to-global/165159/4&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/kentnek/"&gt;kentnek&lt;/a&gt;&amp;rdquo;
published: 2023-07-08
created: 2025-06-09
description: &amp;ldquo;Hi, I recently purchased a MT3000 (Beryl AX) from Taobao, and realized the VPN and Adguard features were unavailable due to the router having CN version. According to the instructions shared in their forum for the MT2500…&amp;rdquo;
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="converting-glinet-mt3000-beryl-ax-from-cn-to-global"&gt;Converting GL.iNet MT3000 (Beryl AX) from CN to Global&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://forum.openwrt.org/c/hardware-questions-and-recommendations/13"&gt;Hardware Questions and Recommendations&lt;/a&gt;&lt;/p&gt;</description></item><item><title>gl-country-switcherunlocker.sh at main · mrgenius45gl-country-switcher · GitHub</title><link>https://yecnay.net/posts/tech/gl-country-switcherunlocker.sh-at-main-mrgenius45gl-country-switcher-github/</link><pubDate>Tue, 21 Apr 2026 08:50:19 +0800</pubDate><guid>https://yecnay.net/posts/tech/gl-country-switcherunlocker.sh-at-main-mrgenius45gl-country-switcher-github/</guid><description>&lt;hr&gt;
&lt;p&gt;title: &amp;ldquo;gl-country-switcher/unlocker.sh at main · mrgenius45/gl-country-switcher · GitHub&amp;rdquo;
source: &amp;ldquo;&lt;a href="https://github.com/mrgenius45/gl-country-switcher/blob/main/unlocker.sh%22"&gt;https://github.com/mrgenius45/gl-country-switcher/blob/main/unlocker.sh&amp;quot;&lt;/a&gt;
author:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;&lt;a href="https://yecnay.net/tags/mrgenius45/"&gt;mrgenius45&lt;/a&gt;&amp;rdquo;
published:
created: 2025-06-09
description:
tags:&lt;/li&gt;
&lt;li&gt;&amp;ldquo;clippings&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://github.com/mrgenius45/gl-country-switcher/blob/main/#start-of-content"&gt;Skip to content&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>