<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>YanMoBlog</title><description>林花谢了春红，太匆匆。无奈招来寒雨，晚来风。</description><link>https://blog.ymbit.cn/</link><templateTheme>Firefly</templateTheme><templateThemeVersion>6.15.8</templateThemeVersion><templateThemeUrl>https://github.com/CuteLeaf/Firefly</templateThemeUrl><lastBuildDate>2026年8月15日 23:10:07</lastBuildDate><item><title>飞牛快速脚手架：如何快速制作一个飞牛App</title><link>https://blog.ymbit.cn/archives/fnapp-startup/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/fnapp-startup/</guid><pubDate>Wed, 05 Aug 2026 10:01:51 GMT</pubDate><content:encoded>&lt;p&gt;此类专门作为喜欢tl;dr（太长不看）的人看，亦或者想为做飞牛app的做skill，你不妨试试把这个文章喂给AI看看他能不能自己做成skill&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;快速入门&lt;a href=&quot;#快速入门&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;飞牛OS内置初始化Application CLI，他叫&lt;code&gt;fnpack&lt;/code&gt;
&lt;a href=&quot;https://developer.fnnas.com/docs/cli/fnpack/&quot; target=&quot;_blank&quot;&gt;https://developer.fnnas.com/docs/cli/fnpack/&lt;/a&gt;
主要用法为：
创建一个普通项目（直接运行至宿主机，包含桌面入口）&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;fnpack&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;create&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;lt;appname&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;创建一个 Docker 项目&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;fnpack&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;create&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;lt;appname&amp;gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--template&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;docker&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;创建不包含桌面入口的服务类项目：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;fnpack&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;create&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;lt;appname&amp;gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--without-ui&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;你也可以做成不包含入口的Docker项目&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;fnpack&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;create&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;lt;appname&amp;gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--template&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;docker&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--without-ui&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;主体框架&lt;a href=&quot;#主体框架&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;创建完项目后，一般情况下是以下的树型结构&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;/var/apps/{appname}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── cmd/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;│   ├── install_init&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;│   ├── install_callback&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;│   ├── main&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;│   ├── upgrade_init&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;│   ├── upgrade_callback&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;│   ├── uninstall_init&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;│   ├── uninstall_callback&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;│   ├── config_init&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;│   └── config_callback&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── config/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;│   ├── privilege&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;│   └── resource&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── manifest&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── ICON.PNG&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── ICON_256.PNG&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── target -&amp;gt; /vol{n}/@appcenter/{appname}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── etc    -&amp;gt; /vol{n}/@appconf/{appname}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── var    -&amp;gt; /vol{n}/@appdata/{appname}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;21&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── tmp    -&amp;gt; /vol{n}/@apptemp/{appname}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;22&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── home   -&amp;gt; /vol{n}/@apphome/{appname}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;23&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── meta&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;24&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;├── shares/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;25&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;└── wizard/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;26&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;├── install&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;27&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;├── upgrade&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;28&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;├── uninstall&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;29&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;└── config&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;展开&lt;/span&gt;&lt;span&gt;收起&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;看着很多？我们可以先把重要的拆开&lt;/p&gt;&lt;section&gt;&lt;h3&gt;应用目录与文件说明&lt;a href=&quot;#应用目录与文件说明&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
























































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;目录/文件&lt;/th&gt;&lt;th&gt;主要作用&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;cmd/&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;存放生命周期管理脚本（包含安装、升级、卸载、运行控制及配置回调）。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;config/&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;存放应用配置声明文件（如 &lt;code&gt;privilege&lt;/code&gt; 权限、&lt;code&gt;resource&lt;/code&gt; 资源控制）。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;manifest&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;应用元数据配置文件，定义应用基本信息与运行参数。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;ICON.PNG&lt;/code&gt; / &lt;code&gt;ICON_256.PNG&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;应用的图标资源文件（不同分辨率规格）。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;target&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;软链接，指向应用安装后的主程序文件与运行资源目录。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;etc&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;软链接，指向应用的持久化配置文件目录。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;var&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;软链接，指向应用重启后仍需保留的运行数据目录。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;tmp&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;软链接，指向应用运行过程中的临时文件目录。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;home&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;软链接，指向应用的用户数据存放目录。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;存放应用的元信息。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;shares/&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;存放 &lt;code&gt;config/resource&lt;/code&gt; 中声明的共享目录。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;wizard/&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;存放安装、升级、卸载或配置阶段的向导页面（UI 表单）。&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;hr /&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;&lt;code&gt;cmd/&lt;/code&gt; 目录下的生命周期脚本说明&lt;a href=&quot;#cmd-目录下的生命周期脚本说明&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;












































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;脚本名称&lt;/th&gt;&lt;th&gt;主要作用&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;install_init&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;安装文件应用前执行的前置脚本。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;install_callback&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;安装文件应用后执行的后置回调脚本。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;main&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;服务运行控制脚本，处理 &lt;code&gt;start&lt;/code&gt;（启动）、&lt;code&gt;stop&lt;/code&gt;（停止）和 &lt;code&gt;status&lt;/code&gt;（状态检查）。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;upgrade_init&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;应用升级前执行的脚本（常用于数据备份或兼容性检查）。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;upgrade_callback&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;应用升级后执行的脚本（常用于数据或配置迁移）。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;uninstall_init&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;应用卸载前执行的脚本。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;uninstall_callback&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;应用卸载清理后执行的回调脚本。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;config_init&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;配置变更应用前执行的脚本。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;config_callback&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;配置变更应用后执行的回调脚本。&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;Manifest&lt;a href=&quot;#manifest&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;这是描述应用包，不包含扩展名。 只显示在飞牛 app 上的应用名称和描述。&lt;/p&gt;




















































































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;配置字段&lt;/th&gt;&lt;th&gt;主要作用&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;appname&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;应用唯一标识。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;version&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;应用版本，例如 1.0.0 或 2.1.3-beta。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;display_name&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;显示在应用中心、应用设置和用户界面中的名称。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;desc&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;应用描述。必要时可以使用 HTML 内容。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;source&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;应用来源。第三方应用使用 thirdparty。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;platform&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;支持的硬件架构（&lt;code&gt;x86&lt;/code&gt; / &lt;code&gt;arm&lt;/code&gt; / &lt;code&gt;all&lt;/code&gt;）。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;maintainer&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;开发者或团队名称。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;maintainer_url&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;开发者网站或联系方式。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;distributor&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;发布者名称。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;distributor_url&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;发布者网站或联系方式。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;os_min_version&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;支持的最低系统版本。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;os_max_version&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;支持的最高系统版本。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;install_type&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;安装目标（留空由用户选择，&lt;code&gt;root&lt;/code&gt; 为系统分区）。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;install_dep_apps&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;依赖的应用列表与版本要求。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;desktop_uidir&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;桌面 UI 资源相对目录（默认 &lt;code&gt;ui&lt;/code&gt;）。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;desktop_applaunchname&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;存在多入口时，卡片默认打开的入口 ID。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;service_port&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;应用绑定的服务端口号。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;checkport&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;控制启动前是否检查端口占用（默认 &lt;code&gt;true&lt;/code&gt;）。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;disable_authorization_path&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;控制应用设置页是否显示授权目录设置。（&lt;code&gt;false&lt;/code&gt;：用户可以配置授权目录；&lt;code&gt;true&lt;/code&gt;：隐藏授权目录设置。）&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;应用权限&lt;a href=&quot;#应用权限&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;权限配置文件位于&lt;code&gt;config/privilege&lt;/code&gt;&lt;/p&gt;
























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;配置字段&lt;/th&gt;&lt;th&gt;主要作用&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;run-as&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;运行身份设置（使用 &lt;code&gt;package&lt;/code&gt; 表示使用专用应用用户运行）。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;username&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;专用用户名（可选项，默认以 &lt;code&gt;manifest.appname&lt;/code&gt; 生成）。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;groupname&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;专用用户组名（可选项，默认以 &lt;code&gt;manifest.appname&lt;/code&gt; 生成）。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;join-groups&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;附加用户组设置（可选项，用于将应用用户加入其他附加用户组）。&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;生命周期脚本或访问包用户无法处理的设备除外。&lt;strong&gt;不要将&lt;code&gt;run-as&lt;/code&gt;设置为特权用户Root&lt;/strong&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;文件访问&lt;a href=&quot;#文件访问&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;配置文件为&lt;code&gt;config/resource&lt;/code&gt;，应用默认不会获得用户文件的广泛访问权限。需要读取或写入用户数据时，应由用户明确授权目录访问。&lt;/p&gt;&lt;p&gt;这段需要分两部分：&lt;/p&gt;&lt;section&gt;&lt;h4&gt;宿主机运行&lt;a href=&quot;#宿主机运行&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;当应用需要提供可由用户在文件管理器中访问的共享目录时，使用 data-share。&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;data-share&quot;&lt;/span&gt;&lt;span&gt;: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;shares&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;name&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;myapp/documents&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;name&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;myapp/backups&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;默认ACL权限模型为 &lt;strong&gt;Windows ACL&lt;/strong&gt;，可以通过环境变量&lt;code&gt;TRIM_DATA_SHARE_PATHS&lt;/code&gt;，亦或是对&lt;code&gt;/var/apps/myapp/share/&lt;/code&gt;制作符号链接。&lt;/p&gt;&lt;p&gt;若需要制作跨应用或系统级别访问目录时，需要配置&lt;code&gt;permission&lt;/code&gt;&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;data-share&quot;&lt;/span&gt;&lt;span&gt;: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;shares&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;name&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;myapp/documents&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;permission&quot;&lt;/span&gt;&lt;span&gt;: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;          &lt;/span&gt;&lt;span&gt;&quot;rw&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;span&gt;&quot;other_app_user&quot;&lt;/span&gt;&lt;span&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;          &lt;/span&gt;&lt;span&gt;&quot;ro&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;span&gt;&quot;report_reader&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h4&gt;Docker 运行&lt;a href=&quot;#docker-运行&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;仅需要配置 Docker Compose 内的文件，但需要配置&lt;code&gt;config/resource&lt;/code&gt;&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;docker-project&quot;&lt;/span&gt;&lt;span&gt;: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;projects&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;name&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;myapp-stack&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;path&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;docker&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;name&lt;/code&gt;需要与&lt;code&gt;docker-compose.yaml&lt;/code&gt;中的项目名称相同，&lt;code&gt;path&lt;/code&gt;应包含&lt;code&gt;docker-compose.yaml&lt;/code&gt;。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;应用入口&lt;a href=&quot;#应用入口&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;配置文件为 app/ui/config（当 Manifest 中指定 desktop_uidir=ui 时）。应用入口定义了用户从飞牛 fnOS 打开应用的方式，常用于注册桌面图标及文件右键打开方式。入口 ID 建议统一加上应用前缀（如 myapp.main）。&lt;/p&gt;&lt;p&gt;根据用户交互场景的不同，入口配置分为以下两种主要形式：&lt;/p&gt;&lt;section&gt;&lt;h4&gt;注册桌面图标&lt;a href=&quot;#注册桌面图标&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;当应用需要提供一个快捷入口，直接在 fnOS 桌面窗口或新浏览器标签页中打开服务时，配置基础入口信息。&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;&quot;.url&quot;&lt;/span&gt;&lt;span&gt;: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;myapp.main&quot;&lt;/span&gt;&lt;span&gt;: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;&quot;title&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;My App&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;&quot;icon&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;images/icon_{0}.png&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;&quot;type&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;iframe&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;&quot;protocol&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;http&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;&quot;port&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;8080&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;&quot;url&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;/&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;&quot;allUsers&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;




































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;配置字段&lt;/th&gt;&lt;th&gt;主要作用&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;title&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;用户看到的入口名称。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;icon&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;相对于 UI 目录的图标路径。可使用 {0} 表示不同尺寸的图标，例如 images/icon_{0}.png。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;type&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;打开方式，一种是&lt;code&gt;iframe&lt;/code&gt;，在内置窗口打开，否则&lt;code&gt;http&lt;/code&gt;就是外部 Web 视图中打开。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;protocol&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;http&lt;/code&gt;和&lt;code&gt;https&lt;/code&gt;选择，可留空，交给系统自适应处理。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;port&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;服务端口。需要使用向导中收集的端口时，可以使用 ${wizard_port}。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;url&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;入口打开的路径。需要使用向导中收集的路径时，可以使用 ${wizard_path}。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;&lt;code&gt;allUsers&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;控制入口是否对所有用户可见。&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/section&gt;&lt;section&gt;&lt;h4&gt;index.cgi&lt;a href=&quot;#indexcgi&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;&lt;code&gt;index.cgi&lt;/code&gt;需放在&lt;code&gt;app/ui&lt;/code&gt;目录中，且不参与配置文件中的&lt;code&gt;protocol&lt;/code&gt;和&lt;code&gt;port&lt;/code&gt;路由。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;用户向导&lt;a href=&quot;#用户向导&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;所有关于向导的文件将会保存在&lt;code&gt;wizard&lt;/code&gt;目录中。其中包括&lt;code&gt;install&lt;/code&gt;、&lt;code&gt;uninstall&lt;/code&gt;、&lt;code&gt;upgrade&lt;/code&gt;、&lt;code&gt;config&lt;/code&gt;，他们通用以下json结构&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;[&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;stepTitle&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;Setup&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;&quot;items&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;type&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;text&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;field&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;wizard_username&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;label&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;Username&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;initValue&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;admin&quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;        &lt;/span&gt;&lt;span&gt;&quot;rules&quot;&lt;/span&gt;&lt;span&gt;: [&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;            &lt;/span&gt;&lt;span&gt;&quot;required&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;            &lt;/span&gt;&lt;span&gt;&quot;message&quot;&lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;&quot;Enter a username&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;展开&lt;/span&gt;&lt;span&gt;收起&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;p&gt;&lt;code&gt;wizard_username&lt;/code&gt;将会作为环境变量。&lt;/p&gt;&lt;/blockquote&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;项目对应依赖&lt;a href=&quot;#项目对应依赖&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;若应用需要依赖，可在&lt;code&gt;manifest&lt;/code&gt;中申明依赖&lt;code&gt;install_dep_apps&lt;/code&gt;，同时可作嵌套依赖。&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;install_dep_apps=database:cache&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;同时若需要关系数据库、运行时环境，也可使用&lt;code&gt;install_dep_apps=redis&lt;/code&gt;。&lt;/p&gt;&lt;p&gt;如果用到了运行时环境，请加入对应的PATH。&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;export&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;PATH&lt;/span&gt;&lt;span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;apps&lt;/span&gt;&lt;span&gt;/{&lt;/span&gt;&lt;span&gt;environment}/target/bin:$PATH&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;应用图标&lt;a href=&quot;#应用图标&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;需另外图标文件
&lt;code&gt;ICON.PNG&lt;/code&gt;: 64 x 64 px
&lt;code&gt;ICON_256.PNG&lt;/code&gt;：256 x 256 px&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;格式：PNG 或 JPG&lt;/li&gt;
&lt;li&gt;色彩空间：sRGB&lt;/li&gt;
&lt;li&gt;文件大小：不超过 1024 KB&lt;/li&gt;
&lt;li&gt;画布：完整正方形图片&lt;/li&gt;
&lt;li&gt;圆角：图标视觉主体应使用圆角矩形风格。不要使用直角满铺的方形主体；圆角、留白和阴影应尽量与系统图标保持一致。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;放置于&lt;code&gt;app/ui/images/&lt;/code&gt;下。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;</content:encoded></item><item><title>关于从 Hexo 转到 Astro</title><link>https://blog.ymbit.cn/archives/migration-to-astro/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/migration-to-astro/</guid><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;是的，我也换到 Astro 了。&lt;/p&gt;
&lt;p&gt;以前放的 Hexo 网站我就放在了 &lt;a href=&quot;https://outdated-blog.ymbit.cn&quot; target=&quot;_blank&quot;&gt;https://outdated-blog.ymbit.cn&lt;/a&gt;，甚至防着有人闲着没事真去开我还开了个 JS 挑战&lt;/p&gt;
&lt;section&gt;&lt;h1&gt;关于换到 Astro（Firefly）&lt;a href=&quot;#关于换到-astrofirefly&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;首先很明显的就是性能提升，虽然对我来说没什么用，倒是支持了很多功能。&lt;/p&gt;&lt;p&gt;但是没有等效于 &lt;code&gt;hexo new post&lt;/code&gt; 类似的 CLI，Front-matter得自己写了&lt;/p&gt;&lt;p&gt;而且就是朋友都是因 Hexo 的臃肿才转到的 Astro 的，但是我怎么感觉 Astro 更大呢（&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/assets/migration-to-astro/file.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;倒是性能提示倒是很舒服就是了。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;怎么换？&lt;a href=&quot;#怎么换&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;我不知道其他人是怎么做的，我自己本身是用的 Giscus 做评论系统，图片放在 &lt;code&gt;/public/images&lt;/code&gt; 下的。&lt;/p&gt;&lt;p&gt;本身迁移就是件麻烦事，然后就用 OpenCode 做个 Skill 让 AI 了解 Astro 和项目文件就让他自己去做。&lt;/p&gt;&lt;p&gt;所以我基本没花多少时间就完成了，感谢DeepSeek（&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/assets/memes/2A8815D2CF9A4BB8EE4677936DEB62AF.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h1&gt;关于迁移到 Astro&lt;a href=&quot;#关于迁移到-astro&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;section&gt;&lt;h2&gt;Markdown&lt;a href=&quot;#markdown&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Hexo 和 Astro 的 Frontmatter 映射规则不一样。Hexo 对 Frontmatter 相当宽松，甚至允许只有结尾的 ---；而 Astro 的 Content Collections 要求标准的 YAML Frontmatter，两头都必须有 ---。&lt;/p&gt;&lt;p&gt;字段名也不一样，比如 Hexo 的 date 在 Astro 里通常要映射成 pubDatetime。如果不小心，date 写错位置还可能导致字段解析失败。&lt;/p&gt;&lt;p&gt;如果你也打算用 AI 辅助迁移（？）的话，可以试试这个 Skill：&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blog.ymbit.cn/assets/file/hexo-to-astro/SKILL.md&quot;&gt;https://blog.ymbit.cn/assets/file/hexo-to-astro/SKILL.md&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;SEO&lt;a href=&quot;#seo&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;以前我的站用 /archive 来放文章，但很多 Astro 主题默认用 /post。这就面临两个选择：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;直接在源代码里改路由配置&lt;/li&gt;
&lt;li&gt;用 301 重定向把旧链接永久指向新地址&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;我选择了后者。Astro 可以在 &lt;code&gt;astro.config.ts&lt;/code&gt; 里配置 &lt;code&gt;redirects&lt;/code&gt;，或者在 &lt;code&gt;src/pages/&lt;/code&gt; 下用 […slug].astro 这样的 catchall 路由来兼容旧链接。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;JavaScript / 字体&lt;a href=&quot;#javascript--字体&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Astro 默认零 JavaScript 输出，性能优势就来自这里。&lt;/p&gt;&lt;p&gt;但如果旧站有一些 JS 交互（比如黑幕、主题切换这些），就需要用 Astro 的 &lt;code&gt;client:*&lt;/code&gt; 指令来按需加载。比如&lt;code&gt;client:load&lt;/code&gt;会在页面加载时激活组件，&lt;code&gt;client:idle&lt;/code&gt; 会在浏览器空闲时才加载。这样既保留了交互，又不会拖慢首屏速度。&lt;/p&gt;&lt;p&gt;但是要说一点就是字体。&lt;/p&gt;&lt;p&gt;中文字体差不多要1MB以上，如果你是境外服务器，建议找个境内服务器做静态要么用系统自带的。&lt;/p&gt;&lt;p&gt;如果一定要用自定义字体，记得做字体子集化和 Lazyload&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;</content:encoded></item><item><title>Linux圈笑传之《什么叫一个月内爆出4个权限提升漏洞？》</title><link>https://blog.ymbit.cn/archives/linux-cve-privilege-escalation/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/linux-cve-privilege-escalation/</guid><pubDate>Fri, 22 May 2026 19:59:44 GMT</pubDate><content:encoded>&lt;blockquote&gt;&lt;p&gt;来自 网络小白_Uncle城 的整理，GitHub出处：&lt;a href=&quot;https://github.com/Unclecheng-li/poc-lab&quot; target=&quot;_blank&quot;&gt;https://github.com/Unclecheng-li/poc-lab&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;section&gt;&lt;h2&gt;Linux 找回密码教程，建议收藏！&lt;a href=&quot;#linux-找回密码教程建议收藏&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;这个漏洞来自 CVE-2026-31431（Copy Fail）内核提升漏洞，仅需732 Bytes拿下 Root 权限。&lt;/p&gt;&lt;p&gt;38小米解锁节都没解锁这么快&lt;/p&gt;&lt;p&gt;怎么用这个漏洞，很简单，一个命令的事&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;curl&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;https://copy.fail/exp&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;python3&lt;/span&gt;&lt;span&gt; &amp;amp;&amp;amp; &lt;/span&gt;&lt;span&gt;su&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;阿里云漏洞库：&lt;a href=&quot;https://avd.aliyun.com/detail?id=AVD-2026-31431&quot; target=&quot;_blank&quot;&gt;https://avd.aliyun.com/detail?id=AVD-2026-31431&lt;/a&gt;
这是&lt;strong&gt;2026年4月29日&lt;/strong&gt;，注意这个时间，是个伏笔&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;你的 Linux 密码又忘了？没关系，这里还有一个新的！&lt;a href=&quot;#你的-linux-密码又忘了没关系这里还有一个新的&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;他叫 Dirty Frag，是和Dirty Pipe一家子，甚至Frag这哥们还不配有一个CVE，他只有俩衍生CVE
&lt;a href=&quot;https://avd.aliyun.com/detail?id=AVD-2026-43284&quot; target=&quot;_blank&quot;&gt;CVE-2026-43284&lt;/a&gt;
&lt;a href=&quot;https://avd.aliyun.com/detail?id=AVD-2026-43500&quot; target=&quot;_blank&quot;&gt;CVE-2026-43500&lt;/a&gt;
&lt;code&gt;splice()&lt;/code&gt; 把只读文件的页缓存页塞进 UDP skb frag；ESP-in-UDP 接收路径误以为这是普通非克隆 skb，跳过 &lt;code&gt;skb_cow_data()&lt;/code&gt;，随后 &lt;code&gt;authencesn&lt;/code&gt; 在原地解密前置处理中写入 4 字节。认证最后会失败，但页缓存已经被改了。&lt;/p&gt;&lt;p&gt;他的核心不是&lt;strong&gt;文件可写&lt;/strong&gt;，而是内核把&lt;strong&gt;不属于 skb 私有所有权的 page cache 页&lt;/strong&gt;当成了可以原地修改的数据包缓冲区。&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;git&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;clone&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;https://github.com/V4bel/dirtyfrag.git&lt;/span&gt;&lt;span&gt;&amp;amp;&amp;amp; &lt;/span&gt;&lt;span&gt;cd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;dirtyfrag&lt;/span&gt;&lt;span&gt; &amp;amp;&amp;amp; &lt;/span&gt;&lt;span&gt;gcc&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-O0&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-Wall&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-o&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;exp&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;exp.c&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-lutil&lt;/span&gt;&lt;span&gt; &amp;amp;&amp;amp; &lt;/span&gt;&lt;span&gt;./exp&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;这次时间为 2026-05-11，距离上次差不多三周&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;听说您的机房不允许ssh外连，只能通过KVM物理访问服务器? 没关系，我们的专业黑客团队也可以通过nginx帮助运维您的服务器！&lt;a href=&quot;#听说您的机房不允许ssh外连只能通过kvm物理访问服务器-没关系我们的专业黑客团队也可以通过nginx帮助运维您的服务器&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;阿里云漏洞库：&lt;a href=&quot;https://avd.aliyun.com/detail?id=AVD-2026-42945&quot; target=&quot;_blank&quot;&gt;https://avd.aliyun.com/detail?id=AVD-2026-42945&lt;/a&gt;
这个更劲爆，用的是&lt;code&gt;ngx_http_rewrite_module&lt;/code&gt;，依旧是&lt;strong&gt;堆缓冲区溢出漏洞&lt;/strong&gt;。行嘛，依旧是直勾勾的进来了
该漏洞在特定配置下触发：rewrite 指令的替换字符串包含问号 ?，并且后续跟随 rewrite、if 或 set 指令，同时使用未命名 PCRE（Perl Compatible Regular Expressions） 捕获组（如 &lt;span&gt;&lt;span&gt;1、1、&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;、&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;2）。
远程未认证攻击者可通过构造恶意 HTTP 请求触发该缺陷，导致 NGINX worker 进程发生堆内存破坏并重启，造成拒绝服务；在关闭 ASLR （Address Space Layout Randomization（地址空间布局随机化））的系统上，可能进一步实现远程代码执行。&lt;/p&gt;&lt;p&gt;但是这个不至于太劲爆，如果你开了 ASLR 的话，他是不会直接拿到 Root 权限的，顶多给你搞崩溃&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;cat&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;/proc/sys/kernel/randomize_va_space&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;# 查看是否开启 ASLR&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;但是劲爆在哪呢，他不需要搞ssh之类的东西，只要拿到Shell权限就行了。加上 Copy 或者 Dirty Drag，提权就好了。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;最新劲爆！PinTheft开创全新赛道&lt;a href=&quot;#最新劲爆pintheft开创全新赛道&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在函数 rds_message_zcopy_from_user() 处理用户内存页时存在缺陷。
当零拷贝发送操作部分失败后，错误处理逻辑会重复释放（double-free）已经固定的内存页，导致内核的内存引用计数（reference count）出现异常
结合 io_uring 的高性能异步I/O接口，将一个匿名内存页注册为固定缓冲区（赋予其1024个引用偏置），然后通过精心构造的错误发送请求，逐步”偷走”这些引用计数。
最关键的一步，当引用计数归零后，内核会误以为该内存页已无人使用而将其释放。由于 io_uring 持有的悬空指针依然指向该页，攻击者可以利用这个时机重新申请这个物理页，将其用作目标特权程序（如 /usr/bin/su）的页缓存（Page Cache）
最后，攻击者通过残留的悬空指针，直接向页缓存中写入恶意载荷（一个极小的ELF程序）。当受害者执行 /usr/bin/su 时，内核加载的是已被篡改的内存内容，从而直接返回一个 root shell&lt;/p&gt;&lt;p&gt;但是，Ubuntu（20.04及以后版本）和 Fedora 等发行版，虽然内核包含了RDS模块，但默认通过 modprobe 黑名单配置禁用了其自动加载。只有用户手动加载了该模块的系统才存在风险。
你猜猜是是谁会受到这个影响呢，是Arch Linux！&lt;/p&gt;&lt;p&gt;因为 Arch Linux默认是开着RDS，还是开放这个模块，所以直接拿下Arch Linux的 Root 权限&lt;/p&gt;&lt;p&gt;这个刚好就是本篇前一天的公布的（2026-05-21），差不多一个月，刚好闭环了。&lt;/p&gt;&lt;p&gt;缝缝补补的一个月，Linux圈天塌了&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>OpenClaw 火出圈了，但是……？</title><link>https://blog.ymbit.cn/archives/openclaw-ai/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/openclaw-ai/</guid><pubDate>Sun, 10 May 2026 21:23:30 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;隐形支出，但无人警觉&lt;a href=&quot;#隐形支出但无人警觉&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;OpenClaw 和 “养龙虾” 的等词语成为了近期网络的热点，部分地区还出台相关补贴政策，但其实他根本没媒体吹得那么厉害，也不该被吹得那么好……&lt;/p&gt;&lt;p&gt;现在网络上对 AI 的依赖和媒体对 OpenClaw 的吹嘘乱象太严重了，&lt;strong&gt;花 499 上门安装，再花 299 远程卸载&lt;/strong&gt;，还不算上 Tokens 的花费，已经 800 块钱了。但很荒诞的是，从 DeepSeek 发布之日起，好像除了最封闭的 OpenAI 和最反人类的 Anthropic，几乎所有 AI 企业都发现开源才是模型最好的出路。包括 OpenClaw 在内，它也是一款开源软件，很荒谬的是仍然有不少的人为此付费，而且现在仍然能看到这个数字随着媒体的宣传还在不断增长。&lt;/p&gt;&lt;p&gt;很多文章会从经济学角度告诉你这是提高生产力，也有文章会从传播学角度告诉你 OpenClaw 是流量密码，还有部分地区的宣传部门发了补贴政策，同时不乏专业的文章讲解安装流程与原理。但他们在不结合起来的情况下很难形成一个完整的体系，就很多人觉得 &lt;strong&gt;“我读完了，然后呢？”&lt;/strong&gt;，所以这篇文章会同时结合这四个角度讲解 OpenClaw 是否真的有那么神奇。&lt;/p&gt;&lt;section&gt;&lt;h3&gt;为什么是 Agent，为什么它和 AI 紧密相连，甚至密不可分？&lt;a href=&quot;#为什么是-agent为什么它和-ai-紧密相连甚至密不可分&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;其实 Agent 又不是什么高大上的词，它就是像一个无形的手，交由给AI，然后操控它，所以它又叫智能体。&lt;/p&gt;&lt;p&gt;它在基层又叫 Agent Infra，但这不是本期的重点。我们不展开说。&lt;/p&gt;&lt;p&gt;总得来说，大模型是大脑，Agent 是装了手和脚的大脑。大脑负责思考，Agent 负责把活儿干完。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;为什么一定要说它很危险？&lt;a href=&quot;#为什么一定要说它很危险&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;首先我们需要 OpenClaw 是做了什么的？&lt;/p&gt;&lt;section&gt;&lt;h3&gt;OpenClaw 主要目的&lt;a href=&quot;#openclaw-主要目的&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;我们从 OpenClaw 的 Docs 中看到，&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;适用于任意操作系统的 AI 智能体 Gateway 网关，可跨 Discord、Google Chat、iMessage、Matrix、Microsoft Teams、Signal、Slack、Telegram、WhatsApp、Zalo 等使用。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;很明显，他就是把窗口转化到我们更习惯用的&lt;strong&gt;即时通信软件&lt;/strong&gt;中。然后调用 Agent 能力操控电脑，他就是这么简单一件事。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;OpenClaw 的受众到底是谁？&lt;a href=&quot;#openclaw-的受众到底是谁&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;我们需要知道，OpenClaw 归根结底还是一个基于大模型的人工智能，而且随时可能会出错。&lt;strong&gt;你真的相信一个会随时出错的 AI 吗？&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;但是你可能会说&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;那直接用 AI 不也是会出错吗？你这是限制我拥抱新时代！&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;饭可以乱吃，话不能乱说。&lt;/p&gt;&lt;p&gt;你直接在 Chatbox 里你是可以看到思考过程的，且你随时可以停止，不管是小爱同学还是理想同学，你是随时&lt;strong&gt;所见即所得&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;就算他们做错了，你点一下屏幕，他就停止工作了，损失也不会太大。&lt;/p&gt;&lt;p&gt;但是你在&lt;strong&gt;即时通信软件&lt;/strong&gt;呢？它只会做完了才回复你一句，你能知道它途中干了什么吗？&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;代安装和代卸载&lt;a href=&quot;#代安装和代卸载&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;说点不信的，真的会有人花拿几百去装 OpenClaw 的，甚至你的企鹅还在深圳总部线下免费安装，还送你一大堆&lt;strong&gt;次元&lt;/strong&gt;呢！&lt;/p&gt;&lt;p&gt;但是，499元的安装和299的卸载，钱真的不是大风刮来的吗？&lt;/p&gt;&lt;p&gt;你去 OpenClaw Wiki 上，你就能看到&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;推荐：安装脚本
最快的安装方式。它会检测你的 OS，在需要时安装 Node，安装 OpenClaw，并启动新手引导。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;不仅免费，还附带新手引导，你只需要花点时间，打开你的浏览器，&lt;strong&gt;搜索一下 OpenClaw 怎么装&lt;/strong&gt;，就算是他妈的百度搜索，它都能一行命令就可以安装好&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/no-openclaw/Snipaste_2026-05-10_00-06-08.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;更加可悲的是，他们甚至不敢履行合规义务&lt;/strong&gt;。开源社区中遵守一条君子协议叫“开源许可证”（事实上国内已有相关案例，司法实践当中确实承认这个“君子协议”的法律效力），它描述了你在履行哪些合规义务的前提下可以获得和自由行使哪些权利。以 OpenClaw 为例，它使用了一种名为 MIT 的许可证，它是开源社区公认常用许可证中最宽松的许可证，他的原文很短，原文节选及翻译如下：&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;…&lt;/p&gt;&lt;p&gt;Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:&lt;/p&gt;&lt;p&gt;特此免费授予任何获得本软件及有关文档文件（以下简称“软件”）副本的人，在不受限制的情况下处理该软件的权利，包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利，但须遵守以下条件：&lt;/p&gt;&lt;p&gt;The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.&lt;/p&gt;&lt;p&gt;上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。&lt;/p&gt;&lt;p&gt;…&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;这意味着，卖方有义务告知买方这个软件本身是免费的。 &lt;strong&gt;可是告知后你还会花那么多钱吗？&lt;/strong&gt; 所以矛盾点就在这，说了赚不到钱，不说又不合规。往严重了说，这些代安装服务本身很大概率都是不合规的。&lt;/p&gt;&lt;p&gt;而且装完之后呢？当你花十来块钱装好 Steam，你现在可以开开心心玩游戏了；而你花了小几百装好 OpenClaw， &lt;strong&gt;然后呢？干什么？&lt;/strong&gt; 好了，你发现没多大用，再花个小几百卸载，最终闭环~&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;国家政府下场补贴，但，真的能补贴到真正需要的企业/个人上吗？&lt;a href=&quot;#国家政府下场补贴但真的能补贴到真正需要的企业个人上吗&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;2026年3月10日，杭州市萧山区发布了 《杭州市萧山区支持OpenClaw &amp;amp; OPC-STC发展的若干措施（征求意见稿）》
围绕技术和企业支持推出了一套被称为 “养龙虾”十条 的全面政策。该政策的主要补贴和资助内容如下：&lt;/p&gt;








































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;类别&lt;/th&gt;&lt;th&gt;具体内容&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;算力补贴&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;对 OPC-STC 企业的算力服务费用，按智算服务金额的 &lt;strong&gt;50%&lt;/strong&gt; 给予算力券补贴，单个主体年度补贴金额最高可达 &lt;strong&gt;2000万元&lt;/strong&gt;。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Token补贴&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;对 OPC-STC 企业的 MLLM 调用费用，按实际支付模型调用费用的 &lt;strong&gt;30%&lt;/strong&gt; 给予补贴，单家企业每年补贴最高不超过 &lt;strong&gt;10万元&lt;/strong&gt;。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;基金支持&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;设立总规模 &lt;strong&gt;5000万元&lt;/strong&gt; 的 OpenClaw 类开源智能体领域专项基金，用于早期项目的融资支持。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;采购高质量数据集&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;对采购非关联方行业高质量数据集的企业，按成交金额的 &lt;strong&gt;30%&lt;/strong&gt; 予以补助，最高 &lt;strong&gt;200万元&lt;/strong&gt;。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;场景培育&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;对创新性强的标杆场景项目给予资助，单个项目最高可获得 &lt;strong&gt;450万元&lt;/strong&gt; 补助。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;平台补助&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;对符合条件的运营主体，按其年度实际产生的模型调用、平台运维及社区运营费用，给予最高 &lt;strong&gt;30%&lt;/strong&gt; 的补贴，单个主体每年最高 &lt;strong&gt;50万元&lt;/strong&gt;。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;人才补助&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;对符合条件的 OPC-STC 企业的应届全日制博士、硕士、本科毕业生，分档给予最高 &lt;strong&gt;15万元&lt;/strong&gt; 的生活补贴及 &lt;strong&gt;3.6万元&lt;/strong&gt; 的租房补贴。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;免费空间&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;提供最长 &lt;strong&gt;6个月&lt;/strong&gt; 的免费办公空间，以及总量 100 间的、最长 &lt;strong&gt;3个月&lt;/strong&gt; 的免费住宿空间。&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;blockquote&gt;&lt;p&gt;数据来源:
&lt;a href=&quot;https://egs.stcn.com/news/detail/2248445.html&quot; target=&quot;_blank&quot;&gt;https://egs.stcn.com/news/detail/2248445.html&lt;/a&gt;
&lt;a href=&quot;http://www.wzs.org.cn/sjzs/news?id=23748&quot; target=&quot;_blank&quot;&gt;http://www.wzs.org.cn/sjzs/news?id=23748&lt;/a&gt;
&lt;a href=&quot;https://k.sina.cn/article_2286092114_8842ff5204002hn1g.html&quot; target=&quot;_blank&quot;&gt;https://k.sina.cn/article_2286092114_8842ff5204002hn1g.html&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;你看，补贴多厚，不愧是长三角之一浙江省，给的就是足。&lt;/p&gt;&lt;p&gt;但是，他的要求有多低呢？你直接做一个安装程序，装个OpenClaw。就这么简单就能拿到补贴，那么真正需要这些 Token 来做创造的企业呢？他们拿得到吗？&lt;/p&gt;&lt;p&gt;很明显，要求太低，补贴太多太厚，总会有人会钻这些漏洞来拿补贴，然后玩消失。&lt;/p&gt;&lt;section&gt;&lt;h3&gt;政策三连问&lt;a href=&quot;#政策三连问&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;如果你是来自于 &lt;a href=&quot;https://khbit.cn/archives/9/&quot; target=&quot;_blank&quot;&gt;KuoHuBlog - OpenClaw 小龙虾，啥也不是&lt;/a&gt; 而来的，我相信你能像我一样，能回答以下他的三个问题&lt;/p&gt;&lt;section&gt;&lt;h4&gt;第一问&lt;a href=&quot;#第一问&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;blockquote&gt;&lt;p&gt;“利用 OpenClaw 等开源工具”，Vibe Coding（AI 写代码）算不算利用？&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://egs.stcn.com/news/detail/2248445.html&quot; target=&quot;_blank&quot;&gt;浙江省杭州萧山拟推出“养龙虾”十条 支持OpenClaw&amp;amp;OPC-STC发展&lt;/a&gt;中提到&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;使用OpenClaw类智能体调用国内多模态大模型开展AIGC创作与生产所实际支付的模型调用费用，按30%给予补贴，单家企业每年补贴最高10万元。
对OPC-STC企业租用符合条件的算力服务开展OpenClaw类智能体技术研发，&lt;strong&gt;经评审&lt;/strong&gt;，按照智算服务金额的50%给予算力券补贴，单个主体年度算力券补贴金额最高2000万元。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;是的，浙江省的调用算力是需要&lt;strong&gt;经评审&lt;/strong&gt;的，所以 “利用 OpenClaw 等开源工具”，Vibe Coding（AI 写代码）&lt;strong&gt;不算利用&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;当然还有例外。&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;对符合条件的运营主体，面向公众或开发者提供基于OpenClaw类智能体搭建的免费AI助手，或运营支持OpenClaw类智能体项目在技术交流、技能共享、应用展示等领域的开源社区，经认定后，按其年度实际产生的模型调用、平台运维及社区运营费用，给予最高30%的补贴，单个主体每年补贴金额最高50万元。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;简单来说，就是你开放给公众使用，人家做什么没什么关系，补贴照样拿，你只需要做好数据安全即可。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h4&gt;第二问&lt;a href=&quot;#第二问&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;blockquote&gt;&lt;p&gt;“支持开发主体基于OpenClaw等框架”，我整合一个 MCP（把设备功能开放给 AI）算不算开发？&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;首先我们需要知道 MCP 是什么&lt;/p&gt;&lt;section&gt;&lt;h5&gt;MCP&lt;a href=&quot;#mcp&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;MCP （Model Context Protocol，模型上下文协议）定义了应用程序和 AI 模型之间交换上下文信息的方式。
这使得开发者能够以一致的方式将各种数据源、工具和功能连接到 AI 模型（一个中间协议层）。
MCP 的目标是创建一个通用标准，使 AI 应用程序的开发和集成变得更加简单和统一。&lt;/p&gt;&lt;p&gt;是的，他是一个通用标准，而上文提到的补贴是需要做到&lt;strong&gt;创新性强的标杆场景项目&lt;/strong&gt;的情况，而 MCP 是作为通用标准，当然你做一个CMCP（China Model Context Protocol）然后你拉动国内一大堆模型厂商也算补助。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h4&gt;第三问&lt;a href=&quot;#第三问&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;blockquote&gt;&lt;p&gt;“打造行业标杆应用场景”，什么行业的什么场景呢？随便一个都算吗？&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://k.sina.cn/article_2286092114_8842ff5204002hn1g.html&quot; target=&quot;_blank&quot;&gt;新浪网 - 杭州萧山区拟推养龙虾十条措施，含免费部署与Token补贴&lt;/a&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;鼓励OPC-STC企业基于OpenClaw类智能体打造标杆场景示范，聚焦重点产业、城市治理、公共服务等领域，每年遴选一批创新性强、成功落地的项目作为场景示范，单个项目给予最高补助100万元。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;看样子，像是只要&lt;strong&gt;聚焦重点产业&lt;/strong&gt;，审核一过，项目一落地就能拿到补贴。
但不仅如此&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;聚焦我区产业转型发展重点需求领域，通过“以赛代评”专项赛事机制，重点发掘并培育深度应用OpenClaw类开源智能体的优质OPC-STC项目，单个项目给予最高450万元补助。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;没错，浙江省，主要以萧山区为主，拿到补贴得以赛代评，当然骗补贴就别想了，你没那个实力&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;危险从何而来？&lt;a href=&quot;#危险从何而来&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;如果你使用过 macOS 安装过 OpenClaw，你是可以看到 OpenClaw 申请了控制台权限，你可能感觉没啥。
但当你给了它，他是几乎可以访问你所有的文件，就算你不允许，但仍然可以从控制台处拿到你的文件信息。
&lt;strong&gt;但你装了它是为了什么呢？你肯定全给了吧&lt;/strong&gt;&lt;/p&gt;&lt;section&gt;&lt;h4&gt;部署在自己电脑上&lt;a href=&quot;#部署在自己电脑上&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;如果你直接部署在你自己的电脑上，那风险就是相对可控的，只要你一直连着你自己家里的网络，因为运营商是默认关闭从外向内访问的权限的，开启也很麻烦，需要找客服处理，还不一定能同意。除非你自己电脑中了病毒，或者被人诱导跟 AI 说了啥不该说的，否则不会有啥大事。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h4&gt;部署在云服务器上&lt;a href=&quot;#部署在云服务器上&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;因为直接安装在自己电脑上 AI 会获得所有权限，这太危险了，所以有人想着曲线救国，部署在外部的一台机器上，比如阿里云、腾讯云的服务器上，而殊不知这又带来了新的安全隐患，且是真实存在的：服务器默认是可以从外部向内部发起访问的。云服务器就像租了个带门牌号的仓库，默认别人能找到你；本地电脑就像你家的卧室，默认别人进不来。所以当配置不得当，那就会导致我可以利用 AI 在目标机器上干任何事情，这就很可怕了。&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;近期，工业和信息化部网络安全威胁和漏洞信息共享平台（NVDB）监测发现OpenClaw开源AI智能体部分实例在&lt;strong&gt;默认或不当配置&lt;/strong&gt;情况下存在较高安全风险，极易引发网络攻击、信息泄露等安全问题。&lt;/p&gt;&lt;/blockquote&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;最后一点是：贩卖焦虑&lt;a href=&quot;#最后一点是贩卖焦虑&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;比如说是&lt;/p&gt;&lt;section&gt;&lt;h3&gt;AI 将会取代人类！&lt;a href=&quot;#ai-将会取代人类&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;但你需要知道一件事，什么AI，AI会有自有意识吗？&lt;/p&gt;&lt;p&gt;这时候来自于 Google DeepMind 其中两位研究员以前还有 Google DeepMind 抬头文件，不过现在没了发布过一篇文章&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Consciousness in Artificial Intelligence: Insights from the Science of Consciousness&lt;/p&gt;&lt;p&gt;人工智能中的意识：来自意识科学的启示&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;我知道你想说你好像熟悉，我换一个国内常见的翻译你就知道了&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;抽象化谬误：为什么AI可以模拟但无法产生意识&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;想起来了吧，他一句话点出：&lt;strong&gt;模拟理解并不等于真正的理解。&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;还有一个就是&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;不会用 AI 就被淘汰了！&lt;a href=&quot;#不会用-ai-就被淘汰了&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;这其实比较搞笑，毕竟不会用 AI 只是比会用 AI 的效率低很多。会在部分行业淘汰。&lt;/p&gt;&lt;p&gt;但你要记得，当年画师们抵制着AI生成，永远会有老艺术家们愿意花长时间去解答这一句话。&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;AI，永远不会淘汰人类，只会淘汰废物&lt;/p&gt;&lt;/blockquote&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;最后的结尾&lt;a href=&quot;#最后的结尾&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;如果未来AI比我们每一个人都做得更好，更有创意，那我们还剩下什么？
可能，只有经历了吧。
经历塑造了我们每一个人独特的灵魂，当你看到你妈妈的白发 你的思绪不会停在这里。
当你走进曾经的校园，闻到教室的气味，这时候AI……应该看不透你
我们每个人都在互相影响，成为对方经历的一部分。
我很确定未来AI哪怕统治了这个世界，它们应该不会很在意火车这种东西。
毕竟它太慢、太愚蠢了，它们会忘记人类对它的情感。
但是我们记得，火车虽然比不了飞机还有火箭，还有光纤那么块，但是它有一点她很特别：
即便上车意味着分别，但是只要轨道还在，我们还记得彼此，总有一天，我们会再次相遇
————影视飓风Tim&lt;/p&gt;&lt;/blockquote&gt;&lt;/section&gt;</content:encoded></item><item><title>关于 HyperFrp 神秘 copy 大神</title><link>https://blog.ymbit.cn/archives/hyperfrp_lol/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/hyperfrp_lol/</guid><pubDate>Fri, 06 Mar 2026 20:18:37 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;事件起因&lt;a href=&quot;#事件起因&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;两位 MEFrp 赞助者，我们就简称 &lt;strong&gt;小Z&lt;/strong&gt; 和 &lt;strong&gt;小Y&lt;/strong&gt; 吧，因干了些神人事被清退而心怀不满，其中我们的小y对着小z说了一句&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;欸🤓👆，既然 Frp 这么好开，我们也去开一个吧！&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;所以，我们强大超级无敌世界第一 HyperZoneFrp，最高速安全的内网穿透我们传奇 Frp 事业就此开始！&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;神人事迹一：传奇后台撞库&lt;a href=&quot;#神人事迹一传奇后台撞库&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;首先小y作为节点的赞助者，自然是持有 MEFrp 的服务端后台日志，之后他又发现用节点访问密钥就能登录后台
其实是问过来的
&lt;img src=&quot;/assets/images/hyperfrp_lol/bearer_token.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;欸🤓👆，那这样我是不是登录到落雪的账号了？&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;然后这个byd还真这么干了…&lt;/p&gt;&lt;p&gt;甚至做了 &lt;strong&gt;解封自己&lt;/strong&gt;、&lt;strong&gt;提权用户&lt;/strong&gt;，这么顺手？看来不是第一次干了哈。
&lt;img src=&quot;/assets/images/hyperfrp_lol/admit/1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/hyperfrp_lol/admit/2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;section&gt;&lt;h3&gt;原来《未成年人保护法》是这么用的吗？&lt;a href=&quot;#原来未成年人保护法是这么用的吗&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/hyperfrp_lol/admit/4.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/hyperfrp_lol/admit/5.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;不是哥你暑假作业没写完你干这些事你胆子有些过于大了，真不怕搞事被王晶抓？
&lt;img src=&quot;/assets/images/hyperfrp_lol/admit/7.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;以至于发布 political content，怕不是嫌自己命太长了。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;神人事迹二：我将使用 VibeCoding 独闯天下！&lt;a href=&quot;#神人事迹二我将使用-vibecoding-独闯天下&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;其实最开始也不是用的AI写的码，是直接 CtrlCV 过来的。甚至连产品名称都不改的那种。
&lt;img src=&quot;/assets/images/hyperfrp_lol/t_copycv.JPG&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/hyperfrp_lol/t_copycv_2.JPG&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;但是后期直接不演了，直接使用 AI 使用神秘截图 + CtrlCV 来写我们的新前端。
&lt;img src=&quot;/assets/images/hyperfrp_lol/woq_deepseek.PNG&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;我是真没招了，最难绷的是他们vite配react，还试图换用nuxt使用ssr。他们初期上线由于事情闹的非常大，而且他们的cdn用的是 MEFrp 合作伙伴的，cdn 直接把源站 ip 给到我们。然后你懂的，该拔线拔线，该打死打死。此cdn回合循环了3次。
&lt;img src=&quot;/assets/images/hyperfrp_lol/copy_newpanel.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;如果你说他抄袭了，那他即将红温回怼你
&lt;img src=&quot;/assets/images/hyperfrp_lol/please_lawsuit_me.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;而且再次搬出 AI 大法给你亲自写上 MEFrp 乐子网站&lt;/p&gt;&lt;div&gt;
&lt;img src=&quot;/images/hyperfrp_lol/lzmefrp_1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/lzmefrp_2.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/lzmefrp_3.png&quot; alt=&quot;&quot; /&gt;
&lt;/div&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;神人事迹三：家宽建站&lt;a href=&quot;#神人事迹三家宽建站&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/hyperfrp_lol/v6site.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;根据 《互联网信息服务管理办法》 ，从事经营性互联网信息服务（即通过互联网向用户有偿提供信息或网页制作等服务），必须取得监管机构颁发的增值电信业务经营许可证。
申请该许可证的核心前提是，经营者必须为依法设立的公司。家庭宽带的用户通常是个人，不具备申请许可证的主体资格，因此无法合法地从事任何形式的营业性网站活动。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;家庭带宽&lt;strong&gt;开展网站业务&lt;/strong&gt;且&lt;strong&gt;开展营业性业务&lt;/strong&gt;，双buff叠满咯&lt;/p&gt;&lt;section&gt;&lt;h3&gt;被打了怎么办？拔线，睡觉！&lt;a href=&quot;#被打了怎么办拔线睡觉&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/hyperfrp_lol/origindown,gosleep.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;不对啊，你不说你是高防吗？
&lt;img src=&quot;/assets/images/hyperfrp_lol/ban_overseat.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;也对，家宽哪来的高防🤣&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;神人事迹四：《我把群主开了》&lt;a href=&quot;#神人事迹四我把群主开了&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/hyperfrp_lol/openboxyou-hahaha.png&quot; alt=&quot;&quot; /&gt;
暑假作业没写完就敢干能吃国家饭的事情还是我们小Z同学干的好，提前吃上铁饭碗，直接不用愁以后的吃喝了，一个名叫 jail 的地方会给你处理好所有的事。&lt;/p&gt;&lt;p&gt;而且不仅仅要开落雪的，还想要开 MEFrp 其中一位开发者的，看来还吃不够&lt;/p&gt;&lt;div&gt;
&lt;img src=&quot;/images/hyperfrp_lol/datouzhao/1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/datouzhao/2.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/datouzhao/3.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/datouzhao/4.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/datouzhao/5.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/datouzhao/6.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/datouzhao/7.png&quot; alt=&quot;&quot; /&gt;
&lt;/div&gt;
孩子，顶级智斗&lt;p&gt;&lt;img src=&quot;/assets/images/hyperfrp_lol/datouzhao/8.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;神人事迹五：赶紧给我看看后台，不然飞盒子&lt;a href=&quot;#神人事迹五赶紧给我看看后台不然飞盒子&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;img src=&quot;/images/hyperfrp_lol/threaten_chmlfrp/1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/threaten_chmlfrp/2.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/threaten_chmlfrp/3.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/threaten_chmlfrp/4.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/threaten_chmlfrp/5.png&quot; alt=&quot;&quot; /&gt;
&lt;/div&gt;
给我干立正了，原来这就是盒的力量吗？那我位居了。&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;神人事迹六：偷公告大法！&lt;a href=&quot;#神人事迹六偷公告大法&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;我们的两位开发者小Y同学和小T同学因为语文知识才疏学浅，于是找到了他们的导师，MEFrp！&lt;/p&gt;&lt;p&gt;师傅，我抄一点你的公告可以吗？日后我不会把你供出来的哦
&lt;img src=&quot;/assets/images/hyperfrp_lol/steal_board1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/assets/images/hyperfrp_lol/steal_board2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;你公告不仅偷了就算了，你怎么连宣传片都偷啊？&lt;/p&gt;&lt;div&gt;
&lt;img src=&quot;/images/hyperfrp_lol/steal/1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/steal/2.png&quot; alt=&quot;&quot; /&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;/assets/images/memes/human.webp&quot; alt=&quot;啊？还有人类啊？&quot; /&gt;&lt;figcaption&gt;啊？还有人类啊？&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;实在语文学不会的话，赶快购买九年级下册教材全解吧，链接给你放这了。
&lt;a href=&quot;https://www.jd.com/chanpin/130832.html&quot; target=&quot;_blank&quot;&gt;https://www.jd.com/chanpin/130832.html&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;神人事迹七：原封不动直接抄&lt;a href=&quot;#神人事迹七原封不动直接抄&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/hyperfrp_lol/copy_NatayarkID.jpg&quot; alt=&quot;&quot; /&gt;
我知道太长了你不想看，我直接给你简单tldr一下。&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;人家的登录接口与 OpenFrp 的 NatayarkID 完全一样，且他们自己内部说的是”原创”，但是不仅样式一个样就算了且颜色一样而且人家Natayark的登录偏左难道你也要偏左吗？你像极了何晨光那个弹道偏左的子弹。
不仅偏左而且选中光标也是一样的，我不知道你是怎么想的，难道你和云默安是一个家庭生吗的这么一个样，这个不去打CF当双子星当主播多少还有钱赚然后来这里卖你的Frp吗？&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;甚至后面还内讧了，我没绷住。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;神人事迹八：套CDN求打当场被服务商抓包&lt;a href=&quot;#神人事迹八套cdn求打当场被服务商抓包&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;他们的网站被 DDoS 攻击了，然后服务商认为是 MEFrp 来打的直接来找落雪讨论这件事
&lt;img src=&quot;/assets/images/hyperfrp_lol/qiudn/2.png&quot; alt=&quot;&quot; /&gt;
然后服务商决定直接发来源站IP，不知道得罪服务商什么了直接投明了。🤣👉
&lt;img src=&quot;/assets/images/hyperfrp_lol/qiudn/3.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;section&gt;&lt;h3&gt;甩锅？&lt;a href=&quot;#甩锅&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/hyperfrp_lol/qiudn/4.png&quot; alt=&quot;&quot; /&gt;
服务商：不接
&lt;img src=&quot;/assets/images/hyperfrp_lol/qiudn/5.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;神人事迹九：拿着树枝撬开了 MEFrp 管理大门&lt;a href=&quot;#神人事迹九拿着树枝撬开了-mefrp-管理大门&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;img src=&quot;/images/hyperfrp_lol/twigged_the_admin/1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/twigged_the_admin/2.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/twigged_the_admin/3.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/twigged_the_admin/4.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/twigged_the_admin/5.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/twigged_the_admin/6.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/twigged_the_admin/7.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/twigged_the_admin/8.png&quot; alt=&quot;&quot; /&gt;
&lt;/div&gt;&lt;p&gt;找到个漏洞就开心地要命，感觉自己发现了大厂的漏洞，然后唧唧歪歪的乱叫，感觉不像人类。&lt;/p&gt;&lt;p&gt;虽然这确实个大漏洞，但应该是发送邮箱解释这个问题，而不是在那边乱传播，这样反而违法。
我寻思我看的不是熊出没啊，哪来的吉吉啊&lt;/p&gt;&lt;section&gt;&lt;h3&gt;我学法律的&lt;a href=&quot;#我学法律的&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/hyperfrp_lol/banned_board.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/assets/images/hyperfrp_lol/im_law_master.png&quot; alt=&quot;&quot; /&gt;
你说得对，但是：
&lt;img src=&quot;/assets/images/hyperfrp_lol/im_14.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;如果你真的学法的，那我给你普个法&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;《网络安全法》第二十二条：
网络产品、服务应当符合相关国家标准的强制性要求。网络产品、服务的提供者不得设置恶意程序；发现其网络产品、服务存在安全缺陷、漏洞等风险时，应当立即采取补救措施，按照规定及时告知用户并向有关主管部门报告。
网络产品、服务的提供者应当为其产品、服务持续提供安全维护；在规定或者当事人约定的期限内，不得终止提供安全维护。
网络产品、服务具有收集用户信息功能的，其提供者应当向用户明示并取得同意；涉及用户个人信息的，还应当遵守本法和有关法律、行政法规关于个人信息保护的规定。&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;《网络安全法》第二十六条：
开展网络安全认证、检测、风险评估等活动，向社会发布系统漏洞、计算机病毒、网络攻击、网络侵入等网络安全信息，应当遵守国家有关规定。&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;《网络安全法》第二十七条：
任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动；不得提供专门用于从事侵入网络、干扰网络正常功能及防护措施、窃取网络数据等危害网络安全活动的程序、工具；明知他人从事危害网络安全的活动的，不得为其提供技术支持、广告推广、支付结算等帮助。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;figure&gt;&lt;img src=&quot;/assets/images/memes/human.webp&quot; alt=&quot;啊？还有人类啊？&quot; /&gt;&lt;figcaption&gt;啊？还有人类啊？&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;神人事迹十，别吵，我要串通了&lt;a href=&quot;#神人事迹十别吵我要串通了&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;img src=&quot;/images/hyperfrp_lol/collusion/1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/collusion/2.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/collusion/3.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/collusion/4.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/collusion/5.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/collusion/6.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/collusion/7.png&quot; alt=&quot;&quot; /&gt;
&lt;/div&gt;&lt;p&gt;简单来说，就是想甩锅给落雪说就是因为落雪的弱密码导致的泄露，而不是因为&lt;strong&gt;他的问题&lt;/strong&gt;。
但是他拿不出来证据，干嚷嚷来了。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;神人事迹十一，变卖MEFrp&lt;a href=&quot;#神人事迹十一变卖mefrp&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;img src=&quot;/images/hyperfrp_lol/sale1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/sale2.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/sale3.png&quot; alt=&quot;&quot; /&gt;
&lt;/div&gt;
前狼假寐，盖以诱敌&lt;p&gt;看我装🍬阴他一手&lt;/p&gt;&lt;section&gt;&lt;h3&gt;我才是受害者啊😭&lt;a href=&quot;#我才是受害者啊&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div&gt;
&lt;img src=&quot;/images/hyperfrp_lol/victim1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/victim2.png&quot; alt=&quot;&quot; /&gt;
&lt;/div&gt;&lt;p&gt;我才是受害者啊😭都是落雪干的啊😭不是我发布的political啊😭 骗你的都是我干的&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;神人事迹十二，《我猜他不知道其实是我》&lt;a href=&quot;#神人事迹十二我猜他不知道其实是我&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;有一段时间，MEFrp开展了一段时间的 codename horizon 内测申请，用的是飞书的多维表格，但是小Z不知道其实是可以查看到填写人，直接无视风险，贸然提交，然后怎么样了？
抓现行了呗，但是呢&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;落雪无痕LxHTT：
他们飞书认证的企业非常眼熟，和老朋友讨论才发现五六年前和它们交手过，叫哆萌科技。
最初非常大胆，做灰黑产起家，卖卡网、外挂、等等之类。由于酷爱玩迷你世界，当时被我们这群孩子整的人直接不见了，半退网。
我到企查查一看，公司被撤销。撤销不同于注销，前者是有违法违纪行为。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/memes/Snipaste_2026-03-07_00-41-21.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;神人事迹十三，小破公司&lt;a href=&quot;#神人事迹十三小破公司&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;img src=&quot;/images/hyperfrp_lol/rubbish_company1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/rubbish_company2.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/rubbish_company3.jpg&quot; alt=&quot;&quot; /&gt;
&lt;/div&gt;
你都说某某跳动都是破公司了，给你了给你了。我惹不起😅&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;光速滑跪&lt;a href=&quot;#光速滑跪&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;img src=&quot;/images/hyperfrp_lol/admit/1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/admit/2.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/admit/3.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/admit/4.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/admit/5.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/admit/6.png&quot; alt=&quot;&quot; /&gt;
&lt;/div&gt;&lt;p&gt;但是我还是喜欢你当时桀骜不驯的样子&lt;/p&gt;&lt;div&gt;
&lt;img src=&quot;/images/hyperfrp_lol/huh1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/images/hyperfrp_lol/comemyhome.png&quot; alt=&quot;&quot; /&gt;
&lt;/div&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/hyperfrp_lol/admit/8.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>为 Apple Music 部分域名添加代理规则</title><link>https://blog.ymbit.cn/archives/apple-music-proxies-domain/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/apple-music-proxies-domain/</guid><pubDate>Wed, 18 Feb 2026 21:31:03 GMT</pubDate><content:encoded>&lt;p&gt;规则&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;# Self Upload Music&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;- DOMAIN-SUFFIX,blobstore.apple.com&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;# Apple Podcasts &amp;amp; Radio&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;- DOMAIN-SUFFIX,itsliveradio.apple.com&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;# Apple Device Certificate for Podcasts &amp;amp; Radio&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;- DOMAIN-SUFFIX,aodp-ssl.apple.com&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;# TeleVision &amp;amp; Movie Trailer&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;- DOMAIN-SUFFIX,video-ssl.itunes.apple.com&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;# iTunes Store&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;- DOMAIN-SUFFIX,hls-amt.itunes.apple.com&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;- DOMAIN-SUFFIX,homesharing.itunes.apple.com&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;# iCloud&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;- DOMAIN-SUFFIX,cabana-server.cdn-apple.com&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;&lt;code&gt;downloaddispatch.itunes.apple.com&lt;/code&gt;虽然在境内有部署服务器，但是自传音乐还是访问缓慢，所以切换海外。不需要可以删除
通过网页端 DevTools 是&lt;code&gt;store+三个数字&lt;/code&gt;和&lt;code&gt;blobstore.apple.com&lt;/code&gt;组合起来主机名&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cabana-server.cdn-apple.com&lt;/code&gt;似乎是同步 Apple Music 资料库同步至 iCloud 域名，且解析在海外。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;homesharing.itunes.apple.com&lt;/code&gt;和&lt;code&gt;hls-amt.itunes.apple.com&lt;/code&gt;本身是 iTunes Store 的服务，Apple 在国内没有提供这项服务，见仁见智。&lt;/p&gt;</content:encoded></item><item><title>关于 PCL-CE 强制使用正版才能使用离线登录，我是这样看的...</title><link>https://blog.ymbit.cn/archives/pcl-ce-talking/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/pcl-ce-talking/</guid><pubDate>Sun, 07 Dec 2025 20:52:10 GMT</pubDate><content:encoded>&lt;p&gt;原文：&lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=MzkzMzkyMzgwMw==&amp;amp;mid=2247483775&amp;amp;idx=1&amp;amp;sn=fd5860512a883d204762a18424d1cc98&amp;amp;chksm=c3c309229c155ea39978f956124866fd5bcf5799845bcd89d01a7e772c948bc7be32f5c094dd&amp;amp;mpshare=1&amp;amp;scene=23&amp;amp;srcid=1129gOvNoTJ2Zpyt1x3U6llp&amp;amp;sharer_shareinfo=748141ffeb9a3fd37ccd94befcfa153f&quot; target=&quot;_blank&quot;&gt;晓雨杂记&lt;/a&gt;&lt;/p&gt;
&lt;section&gt;&lt;h1&gt;做出改变的后果&lt;a href=&quot;#做出改变的后果&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;在进行相关更改之前，我们必须充分评估其可能引发的各种后果。&lt;/p&gt;&lt;p&gt;众所周知，中国大陆地区的《Minecraft》国际版玩家中，有相当一部分并未购买正版游戏。而 PCL2-CE（Plain Craft Launcher 2 Community Edition）近期选择放弃国内主流启动器普遍采用的&lt;strong&gt;区域限制策略&lt;/strong&gt;，转而采取与海外启动器一致的做法——&lt;strong&gt;强制要求用户登录拥有正版 Minecraft 的微软账户，才能使用离线登录或第三方登录功能&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;然而，在与部分开发者（Dev）的争论过程中，我发现参与讨论的两位似乎忽略了一个关键问题：&lt;strong&gt;舆论风险&lt;/strong&gt;。&lt;/p&gt;&lt;section&gt;&lt;h2&gt;舆论：被忽视的现实威胁&lt;a href=&quot;#舆论被忽视的现实威胁&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;请允许我设定一个可能发生的场景：&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;“Minecraft 启动器 PCL CE 近期开始&lt;strong&gt;不分区域强制要求登录正版微软账户&lt;/strong&gt;，才能使用离线/第三方登录功能，包括中国大陆地区。&lt;/p&gt;&lt;p&gt;网上随即流传‘PCL CE 禁用离线登录’的说法。有人趁机 fork 官方仓库 &lt;a href=&quot;https://github.com/PCL-Community/PCL2-CE&quot; target=&quot;_blank&quot;&gt;PCL-Community/PCL2-CE&lt;/a&gt;，在移除限制的同时&lt;strong&gt;悄悄植入恶意代码&lt;/strong&gt;，并以‘无正版限制’为卖点对外宣传。&lt;/p&gt;&lt;p&gt;一部分用户出于需求，转而使用这个 fork 版本。”&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;PCL-Community 作为一个开源组织，不能仅从“变更是否合理”或“代码逻辑是否正确”的技术角度审视问题。&lt;strong&gt;技术决定行为，但舆论决定后果&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;项目的每一次重大调整，都会直接影响大量用户的体验与判断；而用户的判断，又会反过来塑造社区氛围、项目声誉，以及外部开发者对项目的态度。&lt;/p&gt;&lt;section&gt;&lt;h3&gt;“投毒事件不一定会发生，所以可以忽略”？这是逻辑谬误&lt;a href=&quot;#投毒事件不一定会发生所以可以忽略这是逻辑谬误&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;认为“投毒事件不一定会发生，因此无需防范”，本身就是一种危险的逻辑错误。&lt;strong&gt;不确定性 ≠ 可忽略&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;这就像：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;你不会因为“我家不一定失火”就不装烟雾报警器；&lt;/li&gt;
&lt;li&gt;也不会因为“我不一定被盗号”就拒绝启用双重验证。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;在安全领域，风险判断的核心从来不是“概率多低”，而是“&lt;strong&gt;代价有多高&lt;/strong&gt;”。只要潜在代价足够严重，就必须提前预防。&lt;/p&gt;&lt;p&gt;尤其是当一个项目同时具备以下三个特征时：&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;开源&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;热门&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;涉及争议性变更&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;它就天然成为攻击者眼中的“黄金目标”。&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;XZ Utils 投毒事件&lt;/strong&gt;就是一个血淋淋的教训。连 Linux 发行版级别的核心组件都能被攻破，PCL2-CE 这样的用户级启动器，在攻击者眼中简直不值一提。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;我引用 XZ 并非为了类比规模，而是为了说明：&lt;strong&gt;“这种事情不可能发生”的心态本身，就是最大的安全隐患&lt;/strong&gt;。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;用户筛选 ≠ 社区健康&lt;a href=&quot;#用户筛选--社区健康&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;有人认为：“这种限制和复杂的舆论能筛掉一大批用户。”听起来很爽，但被筛掉的用户真的做错了什么吗？&lt;/p&gt;&lt;p&gt;被筛掉的&lt;strong&gt;不是‘差用户’，而是‘被误导的用户’&lt;/strong&gt;。他们并非不配使用工具，而是因信息不对称，被恶意 fork 欺骗、被谣言裹挟。&lt;/p&gt;&lt;p&gt;即使你成功“筛掉”了这部分人，风险并不会消失。相反：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;舆论不会因你不回应而自动平息；&lt;/li&gt;
&lt;li&gt;误解会持续发酵；&lt;/li&gt;
&lt;li&gt;最终反噬 PCL-CE 这几年积累的&lt;strong&gt;声誉与用户信任&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;开源项目不是精英俱乐部，更不该是“谁不理解就滚”的封闭圈子。它是一种&lt;strong&gt;公共工具&lt;/strong&gt;。如果维护者摆出高高在上的姿态，只会破坏整个社区生态。&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;用户流失不是筛选，而是信任崩坏&lt;/strong&gt;。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;真正的目标不应是“筛选用户”，而是&lt;strong&gt;保持透明、防止误导、引导正确信息传播&lt;/strong&gt;。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;精神压力不是“个人问题”&lt;a href=&quot;#精神压力不是个人问题&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;个别开发者在争论中明确表示：“精神压力无关紧要。”这种态度极其危险。&lt;/p&gt;&lt;section&gt;&lt;h3&gt;从事实层面：&lt;a href=&quot;#从事实层面&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;个体能抗压，不代表压力不存在。&lt;/li&gt;
&lt;li&gt;开源社区中，因舆论压力退出、抑郁甚至自伤的案例屡见不鲜。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;举个现实例子：“我”和 @Hill23333 在现实中已因人际关系焦头烂额。我们参与社区开发，是出于对 PCL 社区的热爱。但我曾公开提及自己有过 NSSI（非自杀性自伤）经历，微信好友也能看到我朋友圈中的负面情绪。在和 @Hill23333 面基和群聊中，“我”也明显感受到其精神状态同样堪忧。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;从责任层面：&lt;a href=&quot;#从责任层面&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;你能扛住压力，不代表其他贡献者也能。&lt;/li&gt;
&lt;li&gt;忽视精神压力，等于把风险转嫁给所有协作者、维护者，甚至普通用户。&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;从社区层面：&lt;a href=&quot;#从社区层面&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;健康的社区是项目长期发展的基石。&lt;/li&gt;
&lt;li&gt;如果连基本的舆论风险都不愿管理，项目将难以吸引新贡献者，也无法保护现有成员。&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;从道德层面：&lt;a href=&quot;#从道德层面&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;你能接受压力是你的选择；&lt;/li&gt;
&lt;li&gt;但要求别人也必须接受，就是&lt;strong&gt;强迫&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;这就像说：“我能裸走在寒冬中，所以别人也不需要穿衣服。”——荒谬且缺乏同理心。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;从逻辑层面：&lt;a href=&quot;#从逻辑层面&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;舆论压力不是主观感受，而是&lt;strong&gt;客观存在的社会成本&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;否认它，只会让问题滚雪球式扩大，最终连你自己也无法置身事外。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;永远不要低估互联网上的恶意。&lt;strong&gt;“我不在乎别人怎么看”是一句自我安慰，而非现实策略&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;精神压力不是某个人的情绪问题，而是整个社区必须正视的&lt;strong&gt;系统性风险&lt;/strong&gt;。项目不能以“我不怕”为由，替所有贡献者做出生死攸关的决定。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;沉默不是中立，而是放任&lt;a href=&quot;#沉默不是中立而是放任&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;当误解在社区扩散、恶意 fork 借势传播、用户混淆“官方”与“非官方”时，&lt;strong&gt;项目保持沉默并不是中立，而是主动将信息控制权拱手让给谣言与别有用心者&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;此时，“我们是非商业开源项目，不需要公关”的说法完全站不住脚。这里的“公关”并非商业化宣传，而是最基本的：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;风险提示&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;变更说明&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;影响范围解释&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;情绪安抚&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;官方渠道澄清&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;恶意版本警告&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;这些行动的目的只有一个：&lt;strong&gt;保护用户不被误导，避免维护者无辜背锅&lt;/strong&gt;。&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;舆论管理必须在误解扩散&lt;strong&gt;之前&lt;/strong&gt;进行，而不是在危机爆发后补救。&lt;br /&gt;
用户往往只记得&lt;strong&gt;第一次听到的信息&lt;/strong&gt;——如果官方缺席，那第一次信息就来自谣言。&lt;/p&gt;&lt;/blockquote&gt;&lt;/section&gt;&lt;section&gt;&lt;h2&gt;结语：信任需要主动维护&lt;a href=&quot;#结语信任需要主动维护&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&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;任何一个希望：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;长期稳定维护项目&lt;/li&gt;
&lt;li&gt;保障用户安全&lt;/li&gt;
&lt;li&gt;保护贡献者免受无端牵连&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;的开源团队，都必须认真对待舆论风险、用户心理与社区健康。&lt;/p&gt;&lt;p&gt;否则，再合理的代码，也可能毁于一场本可避免的信任崩塌。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;</content:encoded></item><item><title>将 Steam 令牌导入至 Bitwarden</title><link>https://blog.ymbit.cn/archives/import-steam-authenticator-to-bitwarden/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/import-steam-authenticator-to-bitwarden/</guid><pubDate>Sun, 12 Oct 2025 19:33:27 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h3&gt;准备工作&lt;a href=&quot;#准备工作&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;安装 Watt Toolkit（下载地址：&lt;a href=&quot;https://apps.microsoft.com/detail/9mtcfhs560ng?hl=zh-cn&amp;amp;gl=CN&quot; target=&quot;_blank&quot;&gt;https://apps.microsoft.com/detail/9mtcfhs560ng?hl=zh-cn&amp;amp;gl=CN&lt;/a&gt;）&lt;/li&gt;
&lt;li&gt;你目前的移动设备绑定过 Steam 令牌&lt;/li&gt;
&lt;li&gt;Bitwarden（VaultWarden）&lt;/li&gt;
&lt;/ol&gt;&lt;/section&gt;
&lt;section&gt;&lt;h3&gt;获取 Steam 令牌 secretId&lt;a href=&quot;#获取-steam-令牌-secretid&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;在 Watt Toolkit 中添加你的 Steam 令牌（本地令牌 - 新增）&lt;/p&gt;&lt;p&gt;如何导入就看你有什么方式导入了。个人建议是使用 Steam App 共存导入。&lt;/p&gt;&lt;p&gt;在绑定之前，先在 Steam App 中移除验证器（Authenticate - 右下角设置 - 移除验证器）&lt;/p&gt;&lt;p&gt;移除之后进行登录，Steam 将会在邮箱内发送验证码，验证就行。&lt;/p&gt;&lt;p&gt;验证完之后，重新打开 Steam App，在 Steam App 中重新添加 Steam 令牌，确认 Steam 恢复代码能和 Watt Toolkit 对的上之后，输入 Steam 令牌就可以添加至 Watt Toolkit。&lt;/p&gt;&lt;p&gt;在你的 Watt Toolkit 绑定的 Steam 账号中，点击三个点，导出为 maFile 文件，随便选个地方即可，打开这个 maFile 文件，找到&lt;code&gt;&quot;uri&quot;&lt;/code&gt;这个键，找到后面的&lt;code&gt;secret&lt;/code&gt;将后面所有的文字到&lt;code&gt;\u&lt;/code&gt;为止， 你应该会得到有 32 个字母的的 Steam 密钥，在前面添加&lt;code&gt;steam://&lt;/code&gt;之后导入至 Bitwarden，然后再看一眼 Steam App 上的 Steam TOTP 密钥是不是一样的，一样的则不用管啥，若不一样可以多尝试几次，或等它几分钟看看（？）&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>你把“补贴”当施舍，却把“规则”当儿戏</title><link>https://blog.ymbit.cn/archives/hackathon/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/hackathon/</guid><pubDate>Thu, 09 Oct 2025 11:34:08 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;&lt;strong&gt;你把“补贴”当施舍，却把“规则”当儿戏&lt;/strong&gt;&lt;a href=&quot;#你把补贴当施舍却把规则当儿戏&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;写在最前面：&lt;a href=&quot;#写在最前面&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;已对主办方名称与公司以&lt;strong&gt;主办方&lt;/strong&gt;、&lt;strong&gt;公司&lt;/strong&gt;为化名。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;你好，我是某黑客松的一位参与者。&lt;br /&gt;
这篇文章，本不该出现。我们满怀热情而来，期待的是一场思想的碰撞，一次创造力的狂欢。我们相信的是某黑客松主办者所宣扬的“让更多年轻人为改变世界而活”的理想。然而，当活动落下帷幕，我们发现，被改变的不是世界，而是我们对他们的信任和期待。&lt;/p&gt;&lt;p&gt;过去几日，关于出行补贴的争议在社区内沸沸扬扬。我们曾以为这只是个别沟通不畅，但深入了解后，才发现这背后隐藏的，是团队一贯的傲慢、混乱的管理，以及对参与者权益的公然漠视。这并非第一次，也不是最后一次，我们正在见证一场理想主义外衣下的信任崩塌。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;1. 补贴乱象：说好的奖励，变成了“随机发钱”的施舍？&lt;a href=&quot;#1-补贴乱象说好的奖励变成了随机发钱的施舍&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;他们对外宣称其“公益”性质，并为贫困生提供报销，这本该是值得称赞的善举。然而，当涉及到实际的出行补贴，我们看到的却是一片混乱和不公，甚至连其自身公布的规则都自相矛盾。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;荒谬的核算逻辑，公然玩弄信息差：&lt;/strong&gt;
根据官方发布的《最终指南》，明确了获取补贴的条件、可报销项目及发放流程。其中第八条第1款清晰写道：“&lt;strong&gt;若你的实际往返和出行消费低于我们提供的补贴金额，则以实际金额为准。若高于我们提供的补贴金额，以我们的金额为主。&lt;/strong&gt;”这本意是设定一个上限。&lt;/p&gt;&lt;p&gt;然而，在活动后期，团队负责人却在群聊中公布了**“若你按照要求填写了表格，作为奖励，我们会提高你的补贴额度（不超过你的总花费，例如原本报销额度是某个金额，你实际花销更高，那我们会提升到与你实际花销相近的金额）”**的新规则。&lt;/p&gt;&lt;p&gt;这两种规则的冲突，在实际操作中造成了巨大的混乱和不公，甚至出现了令人匪夷所思的“核算逻辑”：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;有选手实际支出远高于其录取函中说明的“原计划补贴金额”。在报销问卷中，该选手按照实际花销填写了所需补贴总额。然而，得到的核算结果却是“未按要求填写”、“最终报销金额”仍为“原计划补贴金额”。&lt;/li&gt;
&lt;li&gt;当选手追问何处不符合要求时，&lt;strong&gt;团队内部负责核算的工作人员&lt;/strong&gt;给出的解释是，&lt;strong&gt;如果选手在报销问卷中填写的金额与“原计划补贴金额”保持一致，而非实际花销，反而有可能在后续获得一个显著高于“原计划补贴金额”的补贴。&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;这番话的荒谬之处在于：&lt;/strong&gt; 官方规则本意是“实际花销高于原计划金额，以原计划金额为主”。但工作人员却暗示，如果选手&lt;strong&gt;故意填写一个较低的、与“原计划补贴金额”相符的数字&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;/ul&gt;&lt;p&gt;&lt;strong&gt;“随机发钱”的潜规则：&lt;/strong&gt;
在社区内部，多位选手反映收到的补贴金额与自身预期或官方规则存在明显出入，呈现出缺乏统一标准的混乱局面：有的选手实际支出较高，最终却只获得远低于其预期的补贴；而另一些选手在不完全符合报销标准（例如乘坐了规定外的交通舱位）的情况下，反而获得了超出预期的补贴。&lt;/p&gt;&lt;p&gt;这种“随机发钱”的现象，让所有参与者不禁要问：你们的补贴规则究竟是什么？是“按规矩来”，还是“看心情给”？这种操作，难道不是在玩弄信息差，对参与者进行区别对待吗？&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;2. 傲慢的沟通：选手不是“乞丐”，而是你们的“梦想家”！&lt;a href=&quot;#2-傲慢的沟通选手不是乞丐而是你们的梦想家&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&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;/p&gt;&lt;p&gt;&lt;strong&gt;草率的指控与撤回：&lt;/strong&gt;
在未调查清楚事实真相前，该负责人还曾草率指控部分选手“严重违约”，声称其提交了“空白的协议件”，并要求归还补贴。尽管后来“光速撤回”了这一指控，但这种毫无根据的指责，以及随后表现出的“公关能力堪忧”，都充分暴露了其在处理问题时情绪化、不专业、且缺乏基本的严谨性。&lt;/p&gt;&lt;p&gt;选手们对补贴差额或许并不在意，但这种被欺骗、被侮辱、被随意对待的态度，却让大家的内心“寒心”。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;3. 财务漏洞与潜在风险：披着“公益”外衣的营利公司，谁来监督？&lt;a href=&quot;#3-财务漏洞与潜在风险披着公益外衣的营利公司谁来监督&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;补贴发放的混乱，不仅是管理问题，更让人对某黑客松的财务规范性产生严重怀疑。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;营利性公司却虚假宣传“公益”：&lt;/strong&gt;
根据公开信息及法律分析，主办方的运营主体为** ****&lt;strong&gt;教育科技有限公司&lt;/strong&gt;。这是一家于2024年2月23日注册成立的&lt;strong&gt;有限责任公司（自然人投资或控股）&lt;/strong&gt;，注册资本100万元，经营范围包括教育咨询、软件开发等商业活动。&lt;strong&gt;并非在民政部门登记的非营利机构。&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;然而，主办方却在官方赞助手册中声称自身为“非盈利性活动”，并承诺公开财务数据至指定网址（open.**********.org，目前无法访问）。这种&lt;strong&gt;以营利性公司之实，行“公益”之名的虚假宣传，不仅涉嫌违反《反不正当竞争法》，更让其所有财务操作的合法性蒙上阴影。&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;补贴乱象背后的财务动机猜测：&lt;/strong&gt;
有参与者分析，团队这种“随机发钱”的做法，其目的可能并非偶然。他们或许有远高于实际花销的准备资金，而这种混乱、不透明的补贴发放方式，可能正是为了&lt;strong&gt;避免在未来的“财务公开”中，出现大量金额不明确的开销，从而掩盖部分准备资金流向不明的事实。&lt;/strong&gt; 换言之，这种操作可能是在&lt;strong&gt;掩盖部分资金进入个人腰包&lt;/strong&gt;，从而违反其对外宣称的“公益”性质。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;财务不规范的迹象：&lt;/strong&gt;
部分选手反映，其后台查到的补贴金额与实际收到的金额存在不符。此外，有迹象表明，报销打款方式存在不统一的现象，部分款项以非正式方式转账，而另一些则是银行公对私转账。这进一步暴露了主办方财务流程缺乏统一、正规的管理。更有部分选手在补贴流程中遭遇协议缺失的问题，例如因补贴金额调整等原因导致“没有签协议的入口”，这无疑为后续的财务纠纷埋下了巨大的隐患。&lt;/p&gt;&lt;p&gt;将“梦想家数据库”公开售卖、财务账目迟迟不公开、如今又在出行补贴上出现如此乱象时，我们不禁要问：&lt;strong&gt;一家披着“公益”外衣的营利性公司，其资金流向是否透明、合法？其财务操作是否经得起税务部门的审查？&lt;/strong&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;必须被正视的核心问题与呼吁&lt;a href=&quot;#必须被正视的核心问题与呼吁&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;主办方的所作所为，已经严重背离了其最初的愿景和对青年社区的承诺。这种将规则置若罔闻、将参与者视为可随意支配资源的傲慢，正在摧毁其赖以生存的信任基础。&lt;/p&gt;&lt;p&gt;我们理解，任何组织的成长都可能伴随挑战。但我们所期待的，是面对问题时的坦诚和修正，而非推诿、掩盖与傲慢。我们希望主办方能够认识到，一个健康、公平、公正的科技环境，需要所有参与者的共同维护。&lt;/p&gt;&lt;p&gt;我们再次呼吁主办方，特别是其负责人：&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;立即公开并解释出行补贴的详细规则、计算方式及发放明细。&lt;/strong&gt; 停止“随机发钱”，确保所有补贴发放公平公正，并对前后矛盾的规则进行澄清。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;就其不当言论向所有参与者公开道歉。&lt;/strong&gt; 承认并纠正其在沟通中对参与者的侮辱和不尊重。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;彻底清查并纠正公司财务管理上的混乱和漏洞。&lt;/strong&gt; 停止以“公益”之名行营利之实，公开其作为营利性公司的所有财务信息，并接受独立第三方审计。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;停止对质疑者的威胁和打压。&lt;/strong&gt; 正视问题，而非“解决提出问题的人”。&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;我们希望他们能真正回归到“为创造者提供平台”的初心，而不是在傲慢与谎言中渐行渐远。我们所珍视的，是曾经那个充满勇气、探索与创造力的黑客松，而非如今这个被傲慢与混乱腐蚀的空壳。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;</content:encoded></item><item><title>什么是游戏中的 ARG</title><link>https://blog.ymbit.cn/archives/whats-game-arg/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/whats-game-arg/</guid><pubDate>Wed, 02 Jul 2025 23:07:16 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;什么是 ARG？&lt;a href=&quot;#什么是-arg&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Alternate：轮流，交替 &lt;a href=&quot;https://dictionary.cambridge.org/zhs/%E8%AF%8D%E5%85%B8/%E8%8B%B1%E8%AF%AD-%E6%B1%89%E8%AF%AD-%E7%AE%80%E4%BD%93/alternate?q=Alternate&quot; target=&quot;_blank&quot;&gt;剑桥词典&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Reality：现实；实际情况 &lt;a href=&quot;https://dictionary.cambridge.org/zhs/%E8%AF%8D%E5%85%B8/%E8%8B%B1%E8%AF%AD-%E6%B1%89%E8%AF%AD-%E7%AE%80%E4%BD%93/reality?q=Reality&quot; target=&quot;_blank&quot;&gt;剑桥词典&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Game: 游戏 &lt;a href=&quot;https://dictionary.cambridge.org/zhs/%E8%AF%8D%E5%85%B8/%E8%8B%B1%E8%AF%AD-%E6%B1%89%E8%AF%AD-%E7%AE%80%E4%BD%93/game?q=Game&quot; target=&quot;_blank&quot;&gt;剑桥词典&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Alternate Reality Game（ARG）： 交替现实游戏&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;你是一名游戏开发者，你现在制作了一款游戏，你想让玩家在游戏中进行一些操作，比如：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;减小系统音量来给主角免疫音波攻击&lt;/li&gt;
&lt;li&gt;拖动窗口为主角跨越障碍&lt;/li&gt;
&lt;li&gt;能与正在玩游戏的你进行对话&lt;/li&gt;
&lt;li&gt;主角跑出游戏窗口（？）&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;这就是一个简单的 &lt;a href=&quot;https://blog.ymbit.cn/archives/oneshot/#Meta%E6%B8%B8%E6%88%8F%EF%BC%88%E5%85%83%E6%B8%B8%E6%88%8F%EF%BC%89%E6%98%AF%E4%BB%80%E4%B9%88&quot;&gt;Meta&lt;/a&gt; 游戏。
但，我们说的是 ARG 游戏，虽 Meta 和 ARG 有一种的相关联，但是这仅是一个 ARG 冰山一角，更多的 ARG 内容让我们制作完一个这个不存在的游戏。&lt;/p&gt;&lt;section&gt;&lt;h3&gt;制作一个游戏小周边&lt;a href=&quot;#制作一个游戏小周边&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;section&gt;&lt;h4&gt;制作视频&lt;a href=&quot;#制作视频&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;我既然是一个游戏制作人了，我创作一个 B 站账号发布一下日常又不是不行。
我只会制作游戏，但是我不会制作视频怎么办呢？那我就简简单单制作一个游戏实况就得了吧。
那我对观众调皮一下，我就在里面插入一些奇奇怪怪的帧。列如涩涩（打咩！）
这就是其中一个我其中给玩家埋下的其中一个彩蛋&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;这边可以借鉴一下 恶魔轮盘（Buckshot Roulette）庆祝的一百万的视频&lt;/p&gt;&lt;/blockquote&gt;&lt;/section&gt;&lt;section&gt;&lt;h4&gt;ChangeLog（游戏更新日志）&lt;a href=&quot;#changelog游戏更新日志&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;我的游戏玩家也是越来越多了，我开专门开创一个 Discord 组。
我在更新日志中留下了一个神秘代码，代码用来干什么无可奉告，你只需要知道这只是一个简单的代码而已啦，也有可能我部分源代码泄露了呢&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;暗藏玄机&lt;a href=&quot;#暗藏玄机&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;我们还是借鉴 恶魔轮盘（Buckshot Roulette）游戏。
在开始游戏前，他们放了一台电脑在桌面上，在电脑屏幕上显示了一个邮箱。
欸，你有无想过这个邮箱其实是可以发送的呢？
&lt;a href=&quot;#&quot;&gt;mailto:contact@voltastandardelectronics.com&lt;/a&gt;
其次，&lt;a href=&quot;https://voltastandardelectronics.com&quot; target=&quot;_blank&quot;&gt;https://voltastandardelectronics.com&lt;/a&gt;其实是真可以打开的。
而我，不正好可以在里面存放一些东西了吗？&lt;/p&gt;&lt;p&gt;而这，就是一个简单的 ARG，亦或是 &lt;a href=&quot;https://zh.wikipedia.org/wiki/Creepypasta&quot; target=&quot;_blank&quot;&gt;creepypasta&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;为藏匿信息提供一些有趣的方式&lt;a href=&quot;#为藏匿信息提供一些有趣的方式&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;现在都是现代了，那我不得运用一点现代的东西？
回到恶魔轮盘，我们可以从他们的ARG中学习到什么&lt;/p&gt;&lt;section&gt;&lt;h4&gt;文字加密&lt;a href=&quot;#文字加密&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;参考文案：
&lt;a href=&quot;https://www.bilibili.com/video/BV1aNNnzMEKB&quot; target=&quot;_blank&quot;&gt;耗时一年半！我破解了恶魔轮盘赌里的秘密！ - 哔哩哔哩&lt;/a&gt;
恶魔轮盘在他们官方的 Discord 中发布了一个二百万的贺词。
&lt;a href=&quot;https://discord.com/channels/1158444754325999747/1158729308462923796/1258800026994343948&quot; target=&quot;_blank&quot;&gt;https://discord.com/channels/1158444754325999747/1158729308462923796/1258800026994343948&lt;/a&gt;
而下面有一个乱码的文字，将他们去掉之后就可以得到一些东西。你要是不会去掉你可以复制粘贴出来
当然，他们使用了现代互联网技术，其实就是凯撒密码。将他们解密之后就是但丁神曲地狱篇的原版。但丁身上都得纹个你&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h4&gt;文档库&lt;a href=&quot;#文档库&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;还记得 &lt;a href=&quot;https://voltastandardelectronics.com&quot; target=&quot;_blank&quot;&gt;https://voltastandardelectronics.com&lt;/a&gt; 这个网站吗，追加一行 &lt;code&gt;/login&lt;/code&gt; 就会进入登录界面，这个密码就是&lt;span&gt;pqrs00abc456&lt;/span&gt;
之后你再进入的就是 Volta 的存储库。&lt;span&gt;其实你直接输入 /archive 也是可以直接进入的，没做鉴权（&lt;/span&gt;
不过，在大约2024年的时候打开应该会是没有任何问题的，但是现在你进入的时候应该就是 upload failed 的情况了。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;&lt;/section&gt;</content:encoded></item><item><title>在Tor上新建一个网站</title><link>https://blog.ymbit.cn/archives/create-onion/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/create-onion/</guid><pubDate>Sat, 28 Jun 2025 11:34:30 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;在 Tor 网络中新建一个网站&lt;a href=&quot;#在-tor-网络中新建一个网站&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;观前警告：&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;本文章仅为学习交流，并非为搭建灰黑网站等&lt;strong&gt;中华人民共和国法律所禁止的网站。&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;若你确实有此需求，请你出门左拐看其他的教程。&lt;/p&gt;&lt;/blockquote&gt;&lt;section&gt;&lt;h3&gt;准备工作&lt;a href=&quot;#准备工作&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;存在于环大陆的服务器&lt;/li&gt;
&lt;li&gt;服务器为 Linux 操作系统，最好为 Debian 系列系统&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;依赖安装&lt;a href=&quot;#依赖安装&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;在 Terminal 中输入以下命令&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;apt&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;install&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;apt-transport-https&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;安装 TorProject 的 GPG 公钥&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;wget&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-qO-&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc&lt;/span&gt;&lt;span&gt; | &lt;/span&gt;&lt;span&gt;gpg&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--dearmor&lt;/span&gt;&lt;span&gt; | &lt;/span&gt;&lt;span&gt;sudo&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;tee&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;/usr/share/keyrings/tor-archive-keyring.gpg&lt;/span&gt;&lt;span&gt; &amp;gt;&lt;/span&gt;&lt;span&gt;/dev/null&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;添加 APT Source 源&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;echo&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;deb     [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $(&lt;/span&gt;&lt;span&gt;lsb_release&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-cs&lt;/span&gt;&lt;span&gt;) main&quot;&lt;/span&gt;&lt;span&gt; | &lt;/span&gt;&lt;span&gt;sudo&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;tee&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-a&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;/etc/apt/sources.list.d/tor.list&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;echo&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&quot;deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org $(&lt;/span&gt;&lt;span&gt;lsb_release&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-cs&lt;/span&gt;&lt;span&gt;) main&quot;&lt;/span&gt;&lt;span&gt; | &lt;/span&gt;&lt;span&gt;sudo&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;tee&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-a&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;/etc/apt/sources.list.d/tor.list&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;安装 Tor Server&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;apt&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;update&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;apt&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;install&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;tor&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;deb.torproject.org-keyring&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;一个简单的 Tor 服务器就这么简单做完了&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;配置服务&lt;a href=&quot;#配置服务&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Tor 的配置服务存放于&lt;code&gt;/etc/tor/torrc&lt;/code&gt;中，一般情况下，你只需要配置两个设置项&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;HiddenServiceDir /var/lib/tor/hidden_service/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;HiddenServicePort 80 127.0.0.1:80&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;HiddenServiceDir&lt;/code&gt;申明 Tor Service 配置文件存放路径&lt;/p&gt;&lt;p&gt;&lt;code&gt;HiddenServicePort&lt;/code&gt;申明 Tor Service 监听的端口和实际监听的端口&lt;/p&gt;&lt;p&gt;如果你用的是 1Panel 开站，你可以新建一个网站，端口设置为非标（80, 443）端口。&lt;/p&gt;&lt;p&gt;创建完成后，前往 网站配置 - 配置文件 中，将 &lt;code&gt;server_name&lt;/code&gt; 后面的域名更改为&lt;code&gt;_&lt;/code&gt;
&lt;img src=&quot;/assets/images/create-onion/nginx_config.png&quot; alt=&quot;&quot; /&gt;
若你修改完了&lt;code&gt;/etc/tor/torrc&lt;/code&gt;文件，你可以输入&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;service&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;tor&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;restart&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;重新启动 Tor 服务。&lt;/p&gt;&lt;p&gt;查看&lt;code&gt;service tor status&lt;/code&gt;的运行信息，若显示&lt;strong&gt;running&lt;/strong&gt;状态，打开你的 Tor Browser 并尝试连接至 Tor 网络。&lt;/p&gt;&lt;p&gt;连接成功后，你可以查看在&lt;code&gt;/etc/tor/torrc&lt;/code&gt;中申明的&lt;code&gt;HiddenServiceDir&lt;/code&gt;目录文件，若成功运行后应该会出现一个叫做&lt;code&gt;hostname&lt;/code&gt;的文件，
我们 cat 它之后应该会得到一个 .onion 域名，输入进你的 Tor Browser 中，即可访问你的网站。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;自定义 Onion 域名前缀&lt;a href=&quot;#自定义-onion-域名前缀&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;我们先知道的 Onion 站点的 hostname 是由公钥生成的，目前 V3 版本的站点长度为 56 长度。
不过你可以使用类似与 HASH 碰撞的方式拿到一个你想要的前缀。&lt;/p&gt;&lt;p&gt;当然，生成的速度依赖你的CPU主频和你的长度。&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;git&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;clone&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;https://github.com/cathugger/mkp224o.git&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;# 使用 mkp224o&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;apt&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;install&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;gcc&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;libc6-dev&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;libsodium-dev&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;make&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;autoconf&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;cd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;mkp224o&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;./autogen.sh&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;./configure&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--enable-amd64-51-30k&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;make&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;假如我们需要一个 hello 的前缀，你可以这么输入&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;./mkp224o&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-d&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;./result&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-n&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;-s&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;hello&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;./result&lt;/code&gt;目录是跑完撞库输出之后的产生的文件存放的目录，你可以自行选择放在哪里。&lt;/p&gt;&lt;p&gt;生成完成后，你就可以移动到&lt;code&gt;/var/lib/tor/hidden_service/&lt;/code&gt;内并重启 Tor 服务并稍等一会访问测试。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;申明 Onion 网站&lt;a href=&quot;#申明-onion-网站&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;若你的正常网站和 Onion 网站的相同的话，你可以尝试这么宣传。
&lt;img src=&quot;/assets/images/create-onion/show_onion_domain.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;若你的正常网站使用了内容分发网络（CDN），在此之前请查看服务商是否限制了 HTTP-Header
进入Nginx配置文件目录，在&lt;code&gt;server&lt;/code&gt;块内输入&lt;code&gt;add_header&lt;/code&gt;，头内容可以参照我的。&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;add_header &lt;/span&gt;&lt;span&gt;Onion-Location http://ymbitjzgoubbonj65qs3rcw5g6xqcexldrwpf535kgx4qwrg72oiklyd.onion;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;如果你的 CDN 是 Cloudflare，你可以在 规则-概述-创建规则 中这么填写
&lt;img src=&quot;/assets/images/create-onion/cloudflare-rules.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>关于 MCSLFuture 的命名垄断行为</title><link>https://blog.ymbit.cn/archives/mcslfuture_issue41/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/mcslfuture_issue41/</guid><pubDate>Tue, 03 Jun 2025 14:50:08 GMT</pubDate><content:encoded>&lt;p&gt;话先放这，这哥们有点逆天😅&lt;/p&gt;
&lt;p&gt;GitHub Issue: &lt;a href=&quot;https://github.com/MCSLTeam/MCServerLauncher-Future/issues/41&quot; target=&quot;_blank&quot;&gt;https://github.com/MCSLTeam/MCServerLauncher-Future/issues/41&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;哔哩哔哩: &lt;a href=&quot;https://b23.tv/kCuwTvf&quot; target=&quot;_blank&quot;&gt;https://b23.tv/kCuwTvf&lt;/a&gt;&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;谈何垄断？&lt;a href=&quot;#谈何垄断&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;他既然举例子了，那我也举一个。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/Jimmy32767255/BetterExplorer&quot; target=&quot;_blank&quot;&gt;https://github.com/Jimmy32767255/BetterExplorer&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/Jimmy32767255/BetterFormatGUI&quot; target=&quot;_blank&quot;&gt;https://github.com/Jimmy32767255/BetterFormatGUI&lt;/a&gt;&lt;/p&gt;&lt;p&gt;这些都是他的项目，&lt;strong&gt;Explorer&lt;/strong&gt;和&lt;strong&gt;GUI&lt;/strong&gt;显然都是专有名词，那你自己都做了所谓的命名&lt;strong&gt;垄断&lt;/strong&gt;，那我们为什么不可以呢？&lt;/p&gt;&lt;p&gt;我们只是一个工具，我们又没有拿软件赚钱。&lt;/p&gt;&lt;p&gt;你要感觉我们的命名方式有问题，那请先发Issue给其他带了Minecraft名字的仓库发Issue，而不是来给我们这种地方提Spam。&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>不/存在的你，和我 —— 在玩游戏的你，真的会是你吗？</title><link>https://blog.ymbit.cn/archives/the_noexistencen_of_you_and_me/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/the_noexistencen_of_you_and_me/</guid><pubDate>Sun, 25 May 2025 13:26:50 GMT</pubDate><content:encoded>
    

&lt;p&gt;&lt;img src=&quot;/assets/images/the_noexistencen_of_you_and_me/steam_kuohu.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;首先申明&lt;a href=&quot;#首先申明&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;这&lt;strong&gt;只是&lt;/strong&gt;一部&lt;strong&gt;视觉小说&lt;/strong&gt;游戏&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;但，这真的是&lt;strong&gt;一部视觉小说游戏&lt;/strong&gt;吗？&lt;/p&gt;&lt;p&gt;怎么&lt;strong&gt;不是&lt;/strong&gt;呢？这当然&lt;strong&gt;是&lt;/strong&gt;啦。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;这只是一个被遗忘的少女的一个故事，也没什么的啦。&lt;/p&gt;&lt;p&gt;在聊这个游戏之前，我们需要知道&lt;strong&gt;Tulpa&lt;/strong&gt;是什么意思。&lt;/p&gt;&lt;section&gt;&lt;h3&gt;Tulpa（图帕）&lt;a href=&quot;#tulpa图帕&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E5%9B%BE%E5%B8%95&quot; target=&quot;_blank&quot;&gt;图帕 - 维基百科&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.zhihu.com/question/390258333&quot; target=&quot;_blank&quot;&gt;你知道神奇的心理学现象tulpa吗？怎么看待tulpa? - 知乎&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.zhihu.com/question/6774188781&quot; target=&quot;_blank&quot;&gt;如何评价心理恐怖视觉小说游戏《不/存在的你，和我》？ - 知乎&lt;/a&gt;&lt;/p&gt;&lt;p&gt;这是普通人的超现实游戏，却是 Tulpamancer（Tulpa 的实践者）的纪实游戏。&lt;/p&gt;&lt;p&gt;这是一个关于Tulpa（图帕）的故事。&lt;/p&gt;&lt;p&gt;首先我们要知道，Tulpa并不是人格分裂，但是 Tulpa 不是幻想伙伴 / 假想朋友。（但很奇怪的是，作者不支持这一种说法）&lt;/p&gt;&lt;p&gt;幻想出伙伴的人，往往在表面上会和幻想伙伴交流，而内心深处能意识到幻想伙伴是虚假的。
而 Tulpa 恰恰相反，Tulpamancer 在内心深处坚定地认为 Tulpa 是存在的，但是一种难以理解的精神存在——从这点说，有点类似僧人对 “佛” 的看法，也就是僧人坚定认为“佛”是存在的。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://baike.baidu.com/item/%E5%8D%A1%E5%B0%94%C2%B7%E5%8F%A4%E6%96%AF%E5%A1%94%E5%A4%AB%C2%B7%E8%8D%A3%E6%A0%BC/10986151&quot; target=&quot;_blank&quot;&gt;荣格&lt;/a&gt;在自传《回忆·梦·思考》的序言中曾说：“与弗洛伊德分道扬镳后，精神上陷入了困境，甚至怀疑有精神障碍。
当时无法改善这种痛苦状态，于是就干脆顺着心中所想，让自己服从于无意识冲动之下，当时无意识浮现出第一个意象：自己像一个10岁左右的孩子，在客厅地板上玩积木。这个梦境的意象清晰与真切。
这使荣格悟道：梦中孩子仍然“有生命”。于是，荣格开始了在象征而真实情景中，与“活在内心深处的孩子”进行直接沟通，他感觉到这是一种和无意识沟通的有效办法，这便是荣格最初的积极想象。&lt;/p&gt;&lt;section&gt;&lt;h4&gt;Tulpa 与精神疾病的关系：&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E5%9B%BE%E5%B8%95#%E4%B8%8E%E7%B2%BE%E7%A5%9E%E7%96%BE%E7%97%85%E7%9A%84%E5%85%B3%E7%B3%BB&quot; target=&quot;_blank&quot;&gt;Wikipedia&lt;/a&gt;&lt;a href=&quot;#tulpa-与精神疾病的关系wikipedia&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;在主流社会和医学界，拥有“多重人格”被广泛认为是精神疾病的征兆。虽然拥有图帕不符合任何精神障碍的诊断标准，但 Tulpamancers 常被混淆或误诊为解离性身份疾患或精神分裂症或妄想症。然而事实上，绝大部分 Tulpamancer 对现实都有着清晰且健康的认知，Tulpas 也不会影响、甚至反而会裨益他们的正常生活
。因此大部分 Tulpamancer 不愿意使用“多重人格”这一带有病理化污名的名词称呼自身，而是倾向于使用中性化的“多意识体“，并反对将自身与&lt;a href=&quot;https://zh.wikipedia.org/zh-cn/%E8%A7%A3%E9%9B%A2%E6%80%A7%E8%BA%AB%E5%88%86%E7%96%BE%E6%82%A3&quot; target=&quot;_blank&quot;&gt;DID&lt;/a&gt;等疾病关联。德克萨斯大学心理学学生雅各布·J·伊斯勒（他本人也是一位 Tulpamancer）通过研究认为，Tulpa 对 Tulpamancers 的心理和生理健康总体上呈正面效应，而且传统的心理健康一元论正受到冲击。&lt;/p&gt;&lt;p&gt;在萨米埃尔·韦西埃对141个宿主的调查中，他注意到自闭症、多动症等精神疾病在 Tulpamancer 群体中的发病率明显高于一般人群。他在此基础上推测，孤独感更强烈的人可能更愿意创造图帕来改善现状。
同时，高达 93.7％ 的 Tulpamancers 曾经或当前被诊断患有心理或精神障碍，而且他们均表示他们的 Tulpa 使自己的情况好转。&lt;/p&gt;&lt;p&gt;但是 Tulpamancer 和 精分（精神分裂）还是有区别的&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Tulpamancer 呈现出来的一般比较 “正常”，也即没有精神分裂患者常有的躁狂等表现。&lt;/li&gt;
&lt;li&gt;精神分裂、人格分裂等，无论是哪种分裂，一个底层逻辑没有变，那就是 “每个人格都是这具身体的主人”，所有人格都是同一棵树上的不同分支。而 Tulpa 则更侧重于一种附属关系，是 “客人”，或许这也是为什么 Tulpamancer 也被通俗地成为 Host（宿主）。&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;在一个人的大脑中，Tulpa 是一个有感知力的、独立的实体，有使用意识的能力（即思考）。通过在一定时期内被持续地思考和互动，以及被当作有自我的人对待，Tulpa 就被意念带到了现实。
他们有自己的（有别于宿主的）思想、感情、观点和身份。他们会有在未来某一天有潜力和宿主在思维能力、存在感、力量和个性的细微变化上达到与宿主等同水平。简而言之，在大脑中Tulpa是和宿主相同的存在，只是t出现的更晚。&lt;/p&gt;&lt;p&gt;Tulpa 可以诞生于渴望，但并非仅仅诞生于渴望，甚至可能诞生于完全不渴望——如一些“有灵性”的人心中就很容易诞生 Tulpa。注意，这里的灵性不是玄学意义上的灵性，而是指思维生动活跃、乐于观察和思考自然等。
某种意义上，你完全可以直接将 Tulpa 当作一个特殊的、部分低配的完整人类看待。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;游戏大致内容&lt;a href=&quot;#游戏大致内容&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;“游戏真的是超棒的载体！”
“借着角色的外壳，我们有了形体，可以开始对话。”
“我们可以躲在角色的伪装背后，忘却自身，并在其中…倾注情感。”&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;没错，这款游戏仍然采用了 Meta 主义形式的风格，而且在游戏开头的时候就已经提到了她知道这是一个游戏。
&lt;img src=&quot;/assets/images/the_noexistencen_of_you_and_me/game_intro.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/assets/images/the_noexistencen_of_you_and_me/game_intro_2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;不仅如此，你会发现这款游戏每个人物是几乎没有介绍的。&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;当当，你被骗啦！这里才没有什么介绍。
这里才没有什么角色介绍，与其用&lt;strong&gt;标签化&lt;/strong&gt;的词汇定义我自己，我还是希望我们在一起的时候，能够用经历和回忆去批次感知和理解的呢。&lt;/p&gt;&lt;/blockquote&gt;&lt;section&gt;&lt;h3&gt;游戏世界特点&lt;a href=&quot;#游戏世界特点&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;这并不是「游戏」，而是一个「世界」&lt;/p&gt;&lt;p&gt;它可以是「游戏」，也可以是「世界」，它们并不矛盾。&lt;/p&gt;&lt;p&gt;所以，好好享受游戏世界，才是这个游戏世界的玩法。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;游戏主要流程&lt;a href=&quot;#游戏主要流程&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;此处以 &lt;a href=&quot;https://www.bilibili.com/opus/1011898083121823762&quot; target=&quot;_blank&quot;&gt;https://www.bilibili.com/opus/1011898083121823762&lt;/a&gt; 做出简单修改&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;在游戏的一开始，我们就会发现，椅子、床、笔记本、镜子，都能开口说话。它们尊称主角为 “陛下”，纷纷表达自己的观点。&lt;/p&gt;&lt;p&gt;在第一个故事中，我们一起做了草莓蛋糕，阻止了烤箱变成时间机器，讨论了认识世界所需的「视点」。&lt;/p&gt;&lt;p&gt;在这个命题中，我们察觉了“自我”，我们可以凭借自身的意志去认知并界定这个世界，而不是相信似乎绝对的“常识”，这也就是作为“视点”的自我不可撼动的特权。&lt;/p&gt;&lt;p&gt;在第二个故事中，我们一起进行了冒险，遇到了各种各样的NPC，给学者的故事提供了灵感，给魔王设定弱点并击败了她。&lt;/p&gt;&lt;p&gt;在这个命题中，界定了个体——“自我”向世界投出目光之后，在那里出现的就是个体，是一切除我之外拥有主观性的东西。&lt;/p&gt;&lt;p&gt;在第三个故事中，我们一起坐上了荒废游乐园中的摩天轮，在这最接近星空的地方，我向她坦诚了心中的秘密，随后我听了她乐队的演唱会。&lt;/p&gt;&lt;p&gt;这个命题阐明了关系——定义虽然是自我主体性的延伸，但我们定义的其它个体身上依旧蕴含着主体性。&lt;/p&gt;&lt;p&gt;主体性与主体性相互碰撞，我们需要面对“他人关系”，毕竟每个人都希望自己的主体性得到证明，将他人当作自己前进的养料，并通过他人的眼睛审视自我，试图得到满足。&lt;/p&gt;&lt;p&gt;在第四个故事中，我们进行了护士和病人的游戏，我被诊断出莫名其妙的病，她扮演护士让我吃了五颜六色的糖果，得知了「第四颗糖」的故事，感受到了规则的约束。&lt;/p&gt;&lt;p&gt;这也就是第四个命题，建构了世界——“他人关系”扩大后，群体关系、社会秩序、文化规则等相继出现……&lt;/p&gt;&lt;p&gt;具体的“他者”消失了，因此即使是通过“第四颗糖”得知了真相，也仍只能像不知情那样重回日常秩序之中。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;（强烈剧透）游戏背后的实景&lt;a href=&quot;#强烈剧透游戏背后的实景&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;从&lt;a href=&quot;#%E6%B8%B8%E6%88%8F%E4%B8%BB%E8%A6%81%E6%B5%81%E7%A8%8B&quot;&gt;游戏主要流程&lt;/a&gt;我们可以知道椅子、床、笔记本、镜子，都能开口说话。它们尊称主角为 “陛下”，这并非不是游戏背景，而是对于 Tulpamancer 来说，任何的物体都可以说话。&lt;/p&gt;&lt;p&gt;其次，在第一个故事之后，我们制作了草莓蛋糕，当我们想递给莉莉丝的时候，我们发现她”没拿到”蛋糕，这也就是 Tulpamancer 另一种会出现情况：幻觉。因为前方毕竟是个空气，自然是捡不到蛋糕的。空气拿得起蛋糕，你信牛顿也不信。&lt;/p&gt;&lt;p&gt;“说服烤箱”的那一段，也是 Tulpamancer 产生的幻觉。也就是 凭借自身的意志去认知并界定这个世界，而不是相信似乎绝对的“常识”&lt;/p&gt;&lt;section&gt;&lt;h3&gt;为什么蛋糕会糊呢？&lt;a href=&quot;#为什么蛋糕会糊呢&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;我们需要记住一件事，“我”是 Tulpamancer，而莉莉丝是由”我”产生的 Tulpa，彼此之间是相互共享记忆的。“我”不会做蛋糕，自然莉莉丝也是不会做的。这也就是为什么说莉莉丝是「世界之外的少女」&lt;/p&gt;&lt;p&gt;现在的你，有 Tulpa，有存在意识的物体，还有与现实的交互。&lt;/p&gt;&lt;p&gt;但仅仅处于”我们”非 Tulpamancer 的情况下，而对于 Tulpamancer 的眼中，没有什么 Tulpa，这是”我”的知心朋友，这是我的依靠。不会相信这是我的臆想。&lt;/p&gt;&lt;p&gt;第二天，我们去游玩了莉莉丝制作的游戏，我们认识了学者与魔王。&lt;/p&gt;&lt;p&gt;这是第二个和第三个 Tulpa，一个 Tulpamancer 下，可以拥有多个 Tulpa。&lt;a href=&quot;#tulpa%E5%9B%BE%E5%B8%95&quot;&gt;Tulpa&lt;/a&gt;&lt;/p&gt;&lt;p&gt;这就像你当你看完一部精彩的小说，试图在脑子里浮现并回味相应场景时，你脑子里的小说角色差不多就是这个样子——面目模糊，但是在进行精彩的行为。&lt;/p&gt;&lt;p&gt;第三天，我们出去玩遇到陌生人，去坐了摩天轮，而且还听了她们的演唱会。&lt;/p&gt;&lt;p&gt;但是你会发现和陌生人讲话根本听不懂，像是将赛博坦语言似的。这就是 Tulpamancer 的一个特点：不擅长与外人说话。&lt;/p&gt;&lt;p&gt;这是 Tulpamancer 一种心理防御机制，亦或是内部动态不好调整。
&lt;img src=&quot;/assets/images/the_noexistencen_of_you_and_me/deepseek_chat_2.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/assets/images/the_noexistencen_of_you_and_me/deepseek_chat.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;我们回到摩天轮的其中一段话：&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;每当遇到什么事，我都会以最糟糕的结果去设想它。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;这是主动对 Tulpa 莉莉丝说的。而这也是对 Tulpa 的信任，寻求 Tulpa 的反馈或安抚。&lt;/p&gt;&lt;p&gt;而 Tulpa 莉莉丝，突然讲到乐队，也有可能是以乐队象征关系，也或是缓解 Tulpamancer 的负面情绪。&lt;/p&gt;&lt;p&gt;而这是他们唱的，我感觉还挺好听的。&lt;/p&gt;&lt;p&gt;（使用iframe接入网易云库，若无法显示请跳转至&lt;a href=&quot;https://music.163.com/#/song?id=2697687941&quot; target=&quot;_blank&quot;&gt;网易云主页&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;在之后，你会发现跳下摩天轮后直接出现在家里，这是在 Tulpamancer 极为罕见的情况：Tulpa 接管 Tulpamancer 的身体。&lt;/p&gt;&lt;p&gt;我们通过上下文可以得知，这是属于意外接管，在 Tulpamancy 实践中概率是极低的，说明”我”的 Tulpamancer 程度已经非常深了。&lt;/p&gt;&lt;p&gt;第四章我们就不讲了，其实我感觉没多少能说的而且我懒得写。&lt;/p&gt;&lt;p&gt;在最后一张 Happy Ending 中，你见证了 Tulpa 的诞生，成熟，完善的整个过程。&lt;/p&gt;&lt;p&gt;在最后，你可以选择：她存在 还是 不存在。&lt;/p&gt;&lt;p&gt;问题的答案，取决于你是否认可她的存在，想让她继续存在。&lt;/p&gt;&lt;p&gt;Tulpa 和芭比娃娃、木偶小人的区别，不过在于其真实性。而你当然可以否定这种真实。&lt;/p&gt;&lt;p&gt;则存在，而她就存在；若不存在，而她就不存在。&lt;/p&gt;&lt;p&gt;不存在那个有点刀子了就不说了，而且这就是 Bad Ending 了啊（&lt;/p&gt;&lt;p&gt;而存在就是完善 Tulpa 的人设，还记得他提到的”宿主”，也就是”我”了吗？
&lt;img src=&quot;/assets/images/the_noexistencen_of_you_and_me/game_ending.png&quot; alt=&quot;&quot; /&gt;
在基本的世界观形成后，Tulpamancer 会有主动去丰富这个世界（即 “幻境”）的倾向。具体而言，可能有增加人物、增加背景、增加故事，等等。
&lt;img src=&quot;https://picx.zhimg.com/v2-7e561255d87cd9d7b56636e76cf88f14_r.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;但是，谁又能说，这不是全世界最伟大的开拓、最激烈地进取呢？&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;在最后放上知乎大佬的一句话：&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;巧者劳，而智者忧。&lt;/p&gt;&lt;p&gt;唯我饱食而遨游，泛若不系之舟&lt;/p&gt;&lt;/blockquote&gt;&lt;/section&gt;&lt;/section&gt;</content:encoded></item><item><title>在 Xiaomi 13 Pro 中使用 Google Camera</title><link>https://blog.ymbit.cn/archives/shot-on-xiaomi-13-with-google-camera/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/shot-on-xiaomi-13-with-google-camera/</guid><pubDate>Wed, 02 Apr 2025 17:20:07 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;为什么要使用 Google Camera&lt;a href=&quot;#为什么要使用-google-camera&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;好问题，我不知道&lt;/p&gt;&lt;p&gt;首先大家肯定知道的是 Google Pixel 的手机硬件堆料向来就是不行。&lt;/p&gt;&lt;p&gt;那怎么办？&lt;/p&gt;&lt;p&gt;很明显，他们选择用算法堆，技术大佬永远不需要堆料&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;为什么不用小米自带的呢？不是有徕卡影像了吗？&lt;a href=&quot;#为什么不用小米自带的呢不是有徕卡影像了吗&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;我认为你可以看一下样片（&lt;/p&gt;&lt;p&gt;自带相机：
&lt;img src=&quot;/assets/images/shot-on-xiaomi-13-with-google-camera/IMG_20250402_172848.jpg&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/assets/images/shot-on-xiaomi-13-with-google-camera/IMG_20250402_172917.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;Google Camera：
&lt;img src=&quot;/assets/images/shot-on-xiaomi-13-with-google-camera/PXL_20250402_173101879.jpg&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/assets/images/shot-on-xiaomi-13-with-google-camera/PXL_20250402_173155297.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;具体怎么样见仁见智了，如果你具体需要换成Google Camera的话，那你可以继续看下去。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;如何使用 Google Camera&lt;a href=&quot;#如何使用-google-camera&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;一种特别简单但是不可用的办法，就是去 Google Play 商店上下载&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.google.android.GoogleCamera&quot; target=&quot;_blank&quot;&gt;https://play.google.com/store/apps/details?id=com.google.android.GoogleCamera&lt;/a&gt;&lt;/p&gt;&lt;p&gt;但是你是知道的（
&lt;img src=&quot;/assets/images/shot-on-xiaomi-13-with-google-camera/google-play-in-camera.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;所以我们需要另外一种方法使用 Google Camera，那就是旧版本的。&lt;/p&gt;&lt;p&gt;我们可以使用 BSG Patch 过的 Google Camera 来使用，并且还是我看来还是最新的（？）&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.gcam-mode.com/versions-bsg/51381145-b015-4485-8076-3d1fb0f1e139&quot; target=&quot;_blank&quot;&gt;https://www.gcam-mode.com/versions-bsg/51381145-b015-4485-8076-3d1fb0f1e139&lt;/a&gt;&lt;/p&gt;&lt;p&gt;下载安装后打开即可。&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>腾讯云Nodejs SDK体积庞大导致被骂</title><link>https://blog.ymbit.cn/archives/tencentcloud-nodejs-issue/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/tencentcloud-nodejs-issue/</guid><pubDate>Sun, 02 Feb 2025 16:34:08 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h3&gt;发生什么事了？&lt;a href=&quot;#发生什么事了&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src=&quot;https://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA1yfJsP.img?w=768&amp;amp;h=1760&amp;amp;m=6&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;图片来源&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;为什么不是我自己截图因为我懒得截&lt;/p&gt;&lt;p&gt;这几天，腾讯云发布了他们Nodejs版本的4.0包，但是一个包却占用了100多MB，知道的这是SDK包，不知道的还以为是把UE塞里面了。&lt;/p&gt;&lt;p&gt;之后官方人员发出回复：
&lt;img src=&quot;https://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA1yfSFy.img?w=768&amp;amp;h=235&amp;amp;m=6&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://img-s-msn-com.akamaized.net/tenant/amp/entityid/AA1yfXSD.img?w=768&amp;amp;h=383&amp;amp;m=6&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;说真的，要不是他们回复了我还真不知道有分包这东西…&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/TencentCloud-NodeJS-issue/issue66_reply.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;疑似使用 GitHub Mobile 写 Markdown&lt;a href=&quot;#疑似使用-github-mobile-写-markdown&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;他们 Markdown 也是不会用的那种。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/TencentCloud-NodeJS-issue/issue66_markdown.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;section&gt;&lt;h3&gt;难绷的一集&lt;a href=&quot;#难绷的一集&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/TencentCloud/tencentcloud-sdk-nodejs/pull/169&quot; target=&quot;_blank&quot;&gt;https://github.com/TencentCloud/tencentcloud-sdk-nodejs/pull/169&lt;/a&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;你们那还缺工作么？能不能远程办公？如果腾讯开发者这种水平，我能不能上来混口饭吃啊？
—— PR Author&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/TencentCloud-NodeJS-issue/tg_channel.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;最后祝大家新年快乐！也祝腾讯云的开发者新年快乐！&lt;/p&gt;&lt;p&gt;似乎有点晚了，说真他们也挺惨过年还要被骂还得改代码公关，毕竟大家都是要讨口饭吃的，就到此为止不要为难他们了。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;</content:encoded></item><item><title>使用 Rclone 上传到 Amazon S3 协议的对象存储</title><link>https://blog.ymbit.cn/archives/upload-to-amazon-s3-protocol-using-rclone/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/upload-to-amazon-s3-protocol-using-rclone/</guid><pubDate>Sun, 12 Jan 2025 13:05:17 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;Amazon S3 协议&lt;a href=&quot;#amazon-s3-协议&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;我们可以查看 &lt;a href=&quot;https://docs.amazonaws.cn/s3/&quot; target=&quot;_blank&quot;&gt;AWS中国&lt;/a&gt; 的文档概述可以了解到&lt;/p&gt;&lt;p&gt;Amazon Simple Storage Service（Amazon S3）是一种对象存储服务，提供行业领先的可扩展性、数据可用性、安全性和性能。各种规模和行业的客户都可以使用 Amazon S3 存储和保护任意数量的数据，用于数据湖、网站、移动应用程序、备份和恢复、归档、企业应用程序、IoT 设备和大数据分析。Amazon S3 提供了管理功能，使您可以优化、组织和配置对数据的访问，以满足您的特定业务、组织和合规性要求。&lt;/p&gt;&lt;p&gt;而且 Amazon S3 在 2006 年就已经推出，所以许多云厂商使用此协议。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Rclone&lt;a href=&quot;#rclone&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;很显然，这主要作为一个备份文件所产出来的软件，据他们所说：&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Rclone是一个命令行程序，用于管理云存储上的文件。它是云供应商Web存储接口的功能丰富的替代品。超过70种云存储产品支持rclone，包括S3对象存储、企业和消费者文件存储服务以及标准传输协议。&lt;/p&gt;&lt;/blockquote&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;下载与使用&lt;a href=&quot;#下载与使用&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;section&gt;&lt;h3&gt;下载 Rclone&lt;a href=&quot;#下载-rclone&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;可以从 &lt;a href=&quot;https://rclone.org/downloads/&quot; target=&quot;_blank&quot;&gt;Rclone&lt;/a&gt; 官网下载，选择适合的操作系统的安装包。&lt;/p&gt;&lt;p&gt;但 Rclone 的软件主要以命令行操作，你可以使用 &lt;a href=&quot;https://www.microsoft.com/zh-cn/p/windows-terminal/9n0dx20hk701?rtc=1&amp;amp;activetab=pivot:overviewtab&quot; target=&quot;_blank&quot;&gt;Windows Terminal&lt;/a&gt; 来使用 Rclone.&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;Windows&lt;a href=&quot;#windows&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;将下载的 Rclone 存储至 &lt;code&gt;C:\Windows\System32&lt;/code&gt; 下，然后打开 Terminal 输入 &lt;code&gt;rclone&lt;/code&gt; 即可使用。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;Linux&lt;a href=&quot;#linux&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;将下载的 Rclone 存储至 &lt;code&gt;/usr/bin&lt;/code&gt; 下，然后在 bash 下输入 &lt;code&gt;rclone&lt;/code&gt; 即可使用。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;MacOS&lt;a href=&quot;#macos&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;将下载的 Rclone 存储至 &lt;code&gt;/usr/local/bin&lt;/code&gt; 下，然后在 zsh 下输入 &lt;code&gt;rclone&lt;/code&gt; 即可使用。&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;使用 Rclone&lt;a href=&quot;#使用-rclone&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;我们使用 Cloudflare R2 作为对象存储，因为我没有其他支持S3的对象存储了
在 Terminal 下输入&lt;code&gt;rclone config&lt;/code&gt;配置 rclone.
&lt;img src=&quot;/assets/images/upload-to-amazon-s3-protocol-using-rclone/rclone_config.png&quot; alt=&quot;&quot; /&gt;
输入 &lt;code&gt;n&lt;/code&gt; 新增一个 new remote.
&lt;img src=&quot;/assets/images/upload-to-amazon-s3-protocol-using-rclone/rclone_new.png&quot; alt=&quot;&quot; /&gt;
在&lt;code&gt;name &amp;gt;&lt;/code&gt;中写一个名字，列如我写 Cloudflare-R2.&lt;/p&gt;&lt;p&gt;在&lt;code&gt;Storage &amp;gt;&lt;/code&gt;中选择&lt;code&gt;4&lt;/code&gt;, 也就是&lt;code&gt;Amazon S3 Compliant Storage Providers&lt;/code&gt;（亚马逊S3协议）
&lt;img src=&quot;/assets/images/upload-to-amazon-s3-protocol-using-rclone/rclone_choose_storages.png&quot; alt=&quot;&quot; /&gt;
然后在 &lt;code&gt;provider &amp;gt;&lt;/code&gt;中选择&lt;code&gt;6&lt;/code&gt;, 也就是&lt;code&gt;Cloudflare R2 Storage&lt;/code&gt;
&lt;img src=&quot;/assets/images/upload-to-amazon-s3-protocol-using-rclone/rclone_choose_providers.png&quot; alt=&quot;&quot; /&gt;
在&lt;code&gt;env_auth&lt;/code&gt;中选择&lt;code&gt;1&lt;/code&gt;, 我们要选择&lt;code&gt;Enter AWS credentials in the next step.&lt;/code&gt;（在下一步中输入AWS凭据。）&lt;/p&gt;&lt;p&gt;在输入&lt;code&gt;access_key_id&lt;/code&gt;中我们需要前往 Cloudflare Dashboard.&lt;/p&gt;&lt;p&gt;在此之前，你需要创建一个存储桶：&lt;a href=&quot;https://developers.cloudflare.com/r2/get-started/&quot; target=&quot;_blank&quot;&gt;https://developers.cloudflare.com/r2/get-started/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;创建完毕后，前往 &lt;code&gt;API - 管理 API 令牌&lt;/code&gt;, 创建 API 令牌即可: &lt;a href=&quot;https://developers.cloudflare.com/r2/api/s3/tokens/&quot; target=&quot;_blank&quot;&gt;https://developers.cloudflare.com/r2/api/s3/tokens/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;将上面的令牌填入 Rclone 即可
&lt;img src=&quot;/assets/images/upload-to-amazon-s3-protocol-using-rclone/rclone_successful.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Sync&lt;a href=&quot;#sync&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Rclone 本质上还是同步文件，所以上传文件我们使用&lt;code&gt;rclone sync&lt;/code&gt;命令.&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;rclone&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;sync&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;/data/syncfolder&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Cloudflare-R2:/syncfolder&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;也可以使用&lt;code&gt;rclone copy&lt;/code&gt;命令将一个存储桶同步至其他桶，列如&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;rclone&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;copy&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Aliyun-OSS:/syncfolder&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Cloudflare-R2:/syncfolder&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;Windows 下可以挂载至本地盘符（需要&lt;a href=&quot;https://winfsp.dev/&quot; target=&quot;_blank&quot;&gt;WinFsp&lt;/a&gt;）：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Terminal window&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;rclone&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;mount&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Cloudflare-R2:/syncfolder&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;D:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;</content:encoded></item><item><title>你被中国红客狙击了.jpg</title><link>https://blog.ymbit.cn/archives/china-redhack-attack/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/china-redhack-attack/</guid><pubDate>Sun, 08 Dec 2024 17:00:30 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;/assets/images/china-redhack-attack/2d7048e31787d314bb213d4cc38d484d.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;视频：&lt;/p&gt;

    


    

&lt;p&gt;坚持与努力， 维普点GG。&lt;/p&gt;</content:encoded></item><item><title>为什么走读生只“走”不“读”，住校生只“住”不“校”</title><link>https://blog.ymbit.cn/archives/lodging-students/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/lodging-students/</guid><pubDate>Sun, 24 Nov 2024 10:52:25 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;由来&lt;a href=&quot;#由来&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;来自自己现住宿的逆天情况有感写出这一篇文章。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;先说结论&lt;a href=&quot;#先说结论&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;若你有条件选择走读，请立马选择走读。没条件走读只能听天由命。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Intro&lt;a href=&quot;#intro&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;为什么？&lt;/p&gt;&lt;p&gt;首先首要的是，住校生的生活不一定是想象的美好。至少在我的经历是这样的。&lt;/p&gt;&lt;p&gt;在寝室内你不仅需要所有东西需要自己打理（虽然本来就应该）而且需要打理同学的关系。且你每个人的关系能不能打理好还是个问题，每个人的所在的生活环境和以前的学习环境也有所不同。但凡搞不好，轻则冷战重则寄在寝室也不是不无可能。&lt;/p&gt;&lt;p&gt;在此之前这还算是正常的范畴内，某些高中学校的要求也是逆天。就像是一种寄宿在一种少管所的一种环境。&lt;/p&gt;&lt;p&gt;其次就是&lt;/p&gt;&lt;p&gt;根据&lt;a href=&quot;https://www.163.com/dy/article/G5C5JTKS0514DORP.html&quot; target=&quot;_blank&quot;&gt;2020年中国国民心理健康蓝皮书 - 网易&lt;/a&gt;中的报告中显示，2020年青少年的抑郁检出率为24.6%，其中，轻度抑郁的检出率为17.2%，高出2009年0.4个百分点。重度抑郁为7.4%，与2009年保持一致。&lt;/p&gt;&lt;p&gt;还有：&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/lodging-students/78f4e30a06aebc6db71b1d3f402d35ca.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;学业越高，压力来源是多种多样的，但无一例外都是”学业越高，压力越大”的局面产生。&lt;/p&gt;&lt;p&gt;更大的问题应当是中国的教育制度问题，但这个话题与此博文无关，我这边只推荐几篇：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/112594052&quot; target=&quot;_blank&quot;&gt;为什么很多人对中国的教育感到失望？ - 知乎&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://baijiahao.baidu.com/s?id=1782800316130379947&quot; target=&quot;_blank&quot;&gt;当前环境下，国内高等教育存在哪些问题？又该如何改进？ - 百度百家号&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://column.chinadaily.com.cn/a/202301/26/WS63d2032ca3102ada8b22c953.html&quot; target=&quot;_blank&quot;&gt;我国基础教育高质量发展进程中 存在的问题及其对策 - 中国日报网&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;更重要的&lt;a href=&quot;#更重要的&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;提到教育制度的问题，我们可以拿万唯中考的知乎文章谈一谈&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/197396259&quot; target=&quot;_blank&quot;&gt;住校和走读，对成绩的影响竟然这么大？！ - 知乎&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;section&gt;&lt;h3&gt;关于学校住宿环境&lt;a href=&quot;#关于学校住宿环境&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;blockquote&gt;&lt;p&gt;学校环境，要提前对学校有一个了解，不管是硬件设施也好，软件方面也好，一个学校的整体氛围对孩子的影响是比较大的。特别是对那些自控力比较差的孩子，如果学校管理过于宽松的话，可能会让孩子变得越来越无心学习；如果学校管理过分严格的话，对于那些适应能力比较差的孩子，又是一大挑战。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;这个我不好说，我可以拿我现读的学校举个例子。&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;垃圾桶里不许有垃圾&lt;/li&gt;
&lt;li&gt;床上不能有人&lt;/li&gt;
&lt;li&gt;寝室内不得讲话&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;我最初表示不理解，但是我看《学校官网》我就立马理解了。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/lodging-students/73cc3dfae611f8dd72360312b3e4fb60.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;能讲出这些规矩的学校，我也就理解为什么学校能出这些逆天规则了。&lt;/p&gt;&lt;/section&gt;&lt;section&gt;&lt;h3&gt;关于学习环境&lt;a href=&quot;#关于学习环境&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;&lt;blockquote&gt;&lt;p&gt;学习环境，中学生正处在青春期，容易受诱惑，喜欢看电视、玩电脑，必然影响到学习和健康成长。学习需要一个相对安静的环境，如果选择走读，必须能严格控制孩子看电视、上网的时间，并制定合理的作息制度，保证孩子充足的睡眠。&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;这个得看学校，毕竟学校怎么样还得看同住宿的学生怎么样。&lt;/p&gt;&lt;p&gt;好笑的是某些职校收手机的最大原因是怕学生拍下学生真实环境才收的&lt;/p&gt;&lt;/section&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;为什么我推荐走读&lt;a href=&quot;#为什么我推荐走读&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;你需要清楚一点的是，你需要及时的释放压力，而走读在家你可以简单发泄今天所有的不适，而住校不行。先不说会不会影响舍友，待会违反学校规章制度就好笑了&lt;/p&gt;&lt;p&gt;关于校外请假，这就不好说了。&lt;/p&gt;&lt;p&gt;毕竟我上次因为生病请假老师还不让给我请，十分逆天&lt;/p&gt;&lt;p&gt;而且目前我们这边走读生都可以多睡半小时，比我们住校生精神多了。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;现实状况&lt;a href=&quot;#现实状况&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;住宿的都是因为家太远只能选择住宿，而走读的早就走读了。&lt;/p&gt;&lt;p&gt;最后放个视频作为整个文章的总结吧。
&lt;a href=&quot;https://www.bilibili.com/video/BV1bx4y1J7vQ/&quot; target=&quot;_blank&quot;&gt;能走读就别住校 - 哔哩哔哩&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>乐子分享：痔樽群主 So? 哥</title><link>https://blog.ymbit.cn/archives/so-hahaha/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/so-hahaha/</guid><pubDate>Thu, 24 Oct 2024 21:09:25 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;开局核弹&lt;a href=&quot;#开局核弹&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/so-hahaha/fk-name.png&quot; alt=&quot;&quot; /&gt;
我勒个痔樽群主啊&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/so-hahaha/comment1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/assets/images/so-hahaha/comment2.png&quot; alt=&quot;&quot; /&gt;
第一次见这种人发情，紫色心情都没心情了，论抽象还是得靠 So 哥撑场面啊🤣👉&lt;/p&gt;&lt;p&gt;这边建议加入美国（抽象）大选，其他人的抽象程度连你尾巴都见不着
&lt;img src=&quot;/assets/images/so-hahaha/reply1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;抄袭被发现了&lt;a href=&quot;#抄袭被发现了&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/so-hahaha/plagiarism.png&quot; alt=&quot;&quot; /&gt;
难绷，原封不动就抄过来当自己是原创，哪来的脸面说自己原创啊&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;开颠！&lt;a href=&quot;#开颠&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/so-hahaha/comment3.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/assets/images/so-hahaha/comment4.png&quot; alt=&quot;&quot; /&gt;
急眼开始骂人啦🤣👉？
&lt;img src=&quot;/assets/images/so-hahaha/comment5.png&quot; alt=&quot;&quot; /&gt;
别急是一种态度，一种张弛有度，一种不急不躁，一种泰然自若。遇到羞辱急于还击，是莽夫，“别急”教我们谦让三分、以理服人；遇到挫折羞愤不已，是愚夫，“别急”教我们另辟蹊径、以智取胜。“别急”体现的是中华儒家的中庸之道，体现的是虚怀若谷、谦逊祥和的人生哲理，所谓“心静即声淡，其间无古今”，学会“别急”，方能成长，方能成熟，方能于世间百态中左右逢源、处变不惊。
🤣👉&lt;/p&gt;&lt;p&gt;为此我想问一句：
&lt;img src=&quot;/assets/images/so-hahaha/reply2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;骂不过开始装 Bot 了?&lt;a href=&quot;#骂不过开始装-bot-了&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/so-hahaha/bot.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/assets/images/so-hahaha/bot2.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/assets/images/so-hahaha/bot3.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/assets/images/so-hahaha/bot4.png&quot; alt=&quot;&quot; /&gt;
有点难绷了，要不给他个提示词？
&lt;img src=&quot;/assets/images/so-hahaha/prompt.jpg&quot; alt=&quot;&quot; /&gt;
不知道的还以为我 lib.so 运行库没补哈，现在立马去补&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;保留节目&lt;a href=&quot;#保留节目&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;/assets/images/so-hahaha/lol-cloudflare.png&quot; alt=&quot;&quot; /&gt;
虽然不是有意抹黑 Cloudflare…&lt;/p&gt;&lt;p&gt;不是我说，乐子人的网站都喜欢用 Cloudflare CDN，他们是把 Cloudflare 看成生命的另一半了是吗，但凡 Cloudflare 写错一次路由是不是就要似了？&lt;/p&gt;&lt;p&gt;真有点难绷了🤣👉&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>如何创建自己的 apt 软件源</title><link>https://blog.ymbit.cn/archives/create-apt-release/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/create-apt-release/</guid><pubDate>Mon, 23 Sep 2024 21:14:31 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;想法由来&lt;a href=&quot;#想法由来&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;有感而发（？）&lt;/p&gt;&lt;p&gt;这几天不知道干什么好，正好关于自建 apt 的教程少之又少。这篇文章就这么出来了。&lt;/p&gt;&lt;p&gt;文章参考：&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.codenong.com/cs106770248/&quot; target=&quot;_blank&quot;&gt;如何创建自己的apt软件源 码农家园&lt;/a&gt;&lt;/p&gt;&lt;p&gt;文章”码农家园”因历史悠久，因此利用上方链接搭建 apt 软件源完全无法成功。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;系统要求&lt;a href=&quot;#系统要求&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;系统：Debian 系操作系统（目前在官网上只有 APT 链接）&lt;/p&gt;&lt;p&gt;硬件要求：CPU 1核 内存1G 起步即可。&lt;/p&gt;&lt;p&gt;环境、软件要求：服务器内需要拥有外部连接和Nginx、Apache2等Web服务。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;软件安装&lt;a href=&quot;#软件安装&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;我们这边使用 aptly 来作为创建 apt 软件源的安装。&lt;/p&gt;&lt;p&gt;打开 aptly 的官网：&lt;a href=&quot;https://www.aptly.info/&quot; target=&quot;_blank&quot;&gt;aptly - Debian repository management tool&lt;/a&gt;&lt;/p&gt;&lt;p&gt;进入官网之后，点击 DOWNLOAD 按钮&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/09/image-1024x516.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;我知道你们嫌麻烦或者根本看不懂英文，我在底下贴几行命令你自己装就行。日后不要说是我干的就行&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get install curl &amp;amp;&amp;amp; echo &quot;deb [signed-by=/etc/apt/keyrings/aptly.asc] http://repo.aptly.info/ squeeze main&quot;  sudo tee /etc/apt/sources.list.d/aptly.list &amp;amp;&amp;amp; sudo mkdir -p /etc/apt/keyrings; sudo chmod 755 /etc/apt/keyrings &amp;amp;&amp;amp; wget -O /etc/apt/keyrings/aptly.asc https://www.aptly.info/pubkey.txt &amp;amp;&amp;amp; sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install aptly&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;之后一行命令下去之后（这其实已经好几行了xd） 使用你最常用的编辑器编辑&lt;code&gt;~/.aptly.conf&lt;/code&gt;文件。&lt;/p&gt;&lt;p&gt;这边需要举个例子，列如我们公开访问的地址为&lt;code&gt;/data/nginx/www&lt;/code&gt;目录&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&quot;rootDir&quot;: &quot;/data/nginx/www/&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;之后在输入以下命令创建 apt 空白源&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;aptly repo create stable&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;这个命令将会在&lt;code&gt;/data/nginx/www&lt;/code&gt;中创建一个创建一个 stable 频道的 APT 源，当然，这个&lt;code&gt;stable&lt;/code&gt;你可以另外起一个名字，但&lt;strong&gt;一定，一定，一定&lt;/strong&gt;不要用&lt;strong&gt;除英文外的所有字符&lt;/strong&gt;，具体为什么这里就不说了，你都点开这个博客并且看到了这里你就应该知道为什么。&lt;/p&gt;&lt;p&gt;之后你可以在任意一个地方创建一个目录即可，这个目录将会存放你的&lt;code&gt;*.deb&lt;/code&gt;文件。&lt;/p&gt;&lt;p&gt;但此刻如果你是看上方参考链接来到的这里的，那你可以选择关闭那个页面了，因为剩下的在现有的版本根本起不了作用。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;上传安装文件&lt;a href=&quot;#上传安装文件&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;创建一个新的目录，并且cd进目录，你可以使用任意一个办法把你的deb文件传进去。&lt;/p&gt;&lt;p&gt;之后在文件夹下输入以下命令添加至暂存区&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;aptly repo add stable *.deb&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;之后上传至 APT 源后，我们需要创建一个 GPG 密钥。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;创建 GPG 密钥&lt;a href=&quot;#创建-gpg-密钥&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;此处文件只会简单阐述，只能确保你能正常创建 GPG 密钥，具体可看 GitHub 文档。&lt;/p&gt;&lt;p&gt;且我强烈建议你在本机创建 GPG，跨环境使用 GPG 密钥会出现无法预想的错误。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.github.com/zh/authentication/managing-commit-signature-verification/generating-a-new-gpg-key&quot; target=&quot;_blank&quot;&gt;生成新 GPG 密钥 - GitHub 文档&lt;/a&gt;&lt;/p&gt;&lt;p&gt;使用以下命令创建 GPG 密钥&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;gpg --full-generate-key&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;一路下一步至输入用户信息，若需要自定义 GPG，请查看 GitHub 文档。&lt;/p&gt;&lt;p&gt;在用户信息中，你需要填写你的用户信息，建议与 deb 安装信息相同。之后输入密码，若你不需要可以不写。&lt;/p&gt;&lt;p&gt;之后在命令行中输入&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;gpg --list-secret-keys --keyid-format=long&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;输入回车后，会显示你 GPG 的基本信息&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/09/image-1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;之后记下 sec 中你 GPG 密钥中的信息，列如我这里是&lt;code&gt;FDF75529AF497E0974C1FBE2D859A4CADE933693&lt;/code&gt;，那么在命令行中输入&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;gpg --armor --export FDF75529AF497E0974C1FBE2D859A4CADE933693&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;这样就会出现你的 GPG 公钥信息。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/09/image-2-1024x935.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;复制从&lt;code&gt;-----BEGIN PGP PUBLIC KEY BLOCK-----&lt;/code&gt;到&lt;code&gt;-----END PGP PUBLIC KEY BLOCK-----&lt;/code&gt;为止，上传至随意一个公钥服务器即可，这边在公开网站查看和测试发现只有 Ubuntu Keyserver 还能在国内正常使用&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://keyserver.ubuntu.com/&quot; target=&quot;_blank&quot;&gt;OpenPGP Keyserver (ubuntu.com)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;点击 Submit key 之后，上传你刚刚复制的 GPG 公钥文件即可。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;上传至公开APT源&lt;a href=&quot;#上传至公开apt源&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;输入以下命令上传即可&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;aptly publish repo -distribution=stable -architectures=&quot;all&quot; -gpg-key=&quot;FDF75529AF497E0974C1FBE2D859A4CADE933693&quot; stable&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;需修改：&lt;code&gt;-gpg-key&lt;/code&gt;和&lt;code&gt;-distribution&lt;/code&gt;，若deb文件要求环境要求，也需要修改&lt;code&gt;-architectures&lt;/code&gt;&lt;/p&gt;&lt;p&gt;回车即可成功上传。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Nginx 配置&lt;a href=&quot;#nginx-配置&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;server {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;server_name localhost;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;root /data/nginx/www/public;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;location / {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;autoindex on;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;expires 30d;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;listen 80;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;按需修改。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;如何使用 GitHub Actions 自动上传&lt;a href=&quot;#如何使用-github-actions-自动上传&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;这其实没个具体的说法（&lt;/p&gt;&lt;p&gt;你如果确实需要这个需求，你可以查看我这个commits&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/Muska-Ami/NyaLCF/commit/25c816368e7fffc44908c25f2c5d631b3ad3c66d&quot; target=&quot;_blank&quot;&gt;ci(publish.yml): Auto push *.deb to APT Source · Muska-Ami/NyaLCF@25c8163 (github.com)&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;客户端配置&lt;a href=&quot;#客户端配置&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在 /etc/apt/source.list.d/中创建一个文件，要求后缀名为&lt;code&gt;.list&lt;/code&gt;即可&lt;/p&gt;&lt;p&gt;在list文件中输入以下字符&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;deb http://localhost/public stable main&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;若你是使用上方的方式上传你的 GPG 公钥，你可以这么添加。&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-key adv --keyserver &apos;hkp://keyserver.ubuntu.com:80&apos; --recv-key 0xd859a4cade933693&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;填写&lt;code&gt;-recv-key&lt;/code&gt;的方式有很多种，你可以使用 keyserver 给你的标识符，或者 GPG 密钥 ID 都可。&lt;/p&gt;&lt;p&gt;之后使用&lt;code&gt;apt update&lt;/code&gt;即可正常使用并利用 APT 更新下载&lt;/p&gt;&lt;p&gt;若需要一行命令，你可以自行写一个 SH 源文件，示例可看&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://apt.nyalcf.1l1.icu/scripts/nyalcf_install.sh&quot; target=&quot;_blank&quot;&gt;https://apt.nyalcf.1l1.icu/scripts/nyalcf_install.sh&lt;/a&gt;&lt;/p&gt;&lt;p&gt;写好也可以上传至Web中，之后就可以使用以下命令使用一键安装&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;curl -fsSL https://apt.nyalcf.1l1.icu/scripts/nyalcf_install.sh  bash&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;</content:encoded></item><item><title>《数据上云》</title><link>https://blog.ymbit.cn/archives/datacloud/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/datacloud/</guid><pubDate>Tue, 10 Sep 2024 12:50:30 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/09/bd09d0ed809270047270a054b10c9758-300x115.png&quot; alt=&quot;&quot; /&gt; &lt;a href=&quot;https://status.aliyun.com/#/eventDetail?eventId=21&quot; target=&quot;_blank&quot;&gt;https://status.aliyun.com/#/eventDetail?eventId=21&lt;/a&gt; 阿里云可用区C机房着火。 《你的数据上云了》 &lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/09/97b0bc4eafd60a0cf9d29e5d712461cc-234x300.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;</content:encoded></item><item><title>Windows 网络验证修改与配置</title><link>https://blog.ymbit.cn/archives/windows-network-rewrite-config/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/windows-network-rewrite-config/</guid><pubDate>Thu, 29 Aug 2024 08:20:24 GMT</pubDate><content:encoded>&lt;p&gt;诶🤓👆变一个网给你&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;先说原理&lt;a href=&quot;#先说原理&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;原理先放这边，以免你听不懂&lt;/p&gt;&lt;p&gt;Windows 验证你的网络可用性一般有两种方式，一种访问 &lt;a href=&quot;http://www.msftconnecttest.com&quot; target=&quot;_blank&quot;&gt;www.msftconnecttest.com&lt;/a&gt; 下的 connecttest.txt 文件，另外一种则是 DNS 查询 dns.msftncsi.com 的记录。&lt;/p&gt;&lt;p&gt;那么，我们就可以修改他的查询地址即可给你变一个网出来给你用（×）&lt;/p&gt;&lt;p&gt;若你主要是因为想解决”有网但是Windows显示无网络连接”的问题，请直接跳到”客户端”，并将以下项修改&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;ActiveWebProbeHost =&amp;gt; connecttest.ymbit.cn&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;ActiveWebProbeHostV6 =&amp;gt; ipv6.connecttest.ymbit.cn&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;ActiveDnsProbeHost =&amp;gt; dns.connecttest.ymbit.cn&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;ActiveDnsProbeHostV6 =&amp;gt; dns.connecttest.ymbit.cn&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;要求&lt;a href=&quot;#要求&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;一个服务器（或者能跑网页的都行，你甚至不需要用到服务器，列如使用 Netlify 和 GitHub Pages）&lt;/p&gt;&lt;p&gt;一个 Windows 系统&lt;/p&gt;&lt;p&gt;一个域名（使用中国大陆内的服务器需进行 ICP 备案，具体可看 &lt;a href=&quot;https://help.aliyun.com/zh/icp-filing/basic-icp-service/user-guide/icp-filing-application-overview&quot; target=&quot;_blank&quot;&gt;阿里云备案文档&lt;/a&gt;）&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;服务端配置&lt;a href=&quot;#服务端配置&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;服务器中需要开放 80/443 端口，和一个 IPv4/IPv6 公网IP.&lt;/p&gt;&lt;p&gt;服务器内安装 Nginx，若你是 Windows 系统可以尝试使用 IIS 管理 Web 服务器。&lt;/p&gt;&lt;p&gt;Nginx 安装方式可以查看本站下的文章&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blog.ymbit.cn/archives/lnmp_install/&quot;&gt;使用LNMP（纯环境）创建一个网站 - YanMoBlog (ymbit.cn)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blog.ymbit.cn/archives/lnmp_install-build-nginx/&quot;&gt;LNMP Part 2: 使用编译安装 Nginx - YanMoBlog (ymbit.cn)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;若条件允许，可以尝试部署 SSL 证书。&lt;/p&gt;&lt;p&gt;在 Web 服务器配置内，创建一个名为&lt;code&gt;connecttest.txt&lt;/code&gt;，这个文件可以随意更改，后期可以在客户端内修改。&lt;/p&gt;&lt;p&gt;在&lt;code&gt;connecttest.txt&lt;/code&gt;文件内，输入以下文本。&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Microsoft Connect Test&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;当然，这个文本也可以修改，后期可以在客户端内修改。&lt;strong&gt;但不建议使用中文、Emoji等不支持Unicode字符作为域名、文件、文本的名称&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;在一切都做完之后，配置好 Nginx 即可。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;客户端&lt;a href=&quot;#客户端&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在 Windows 系统下打开 regedit 注册表编辑器。&lt;/p&gt;&lt;p&gt;打开以下路径：HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet&lt;/p&gt;&lt;p&gt;若你的系统正常且未经过任何修改，应该注册表信息如下为：&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/08/image-5-1024x536.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;首先我们需要修改以下信息（分情况）：&lt;/p&gt;&lt;p&gt;若你创建了网站，但未增加除网站的其他 DNS 记录，服务器内没有 IPv6 地址，没有修改上文的文件文本：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;ActiveWebProbeHost&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;若服务器内拥有 IPv6 地址，且你已经配置Nginx、IIS监听IPv6地址，则需修改：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;ActiveWebProbeHostV6&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;若修改了文件名：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;ActiveWebProbePath&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;ActiveWebProbePathV6 # 在配置了IPv6的情况下，注释不需要输入&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;若修改了文件内的文本：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;ActiveWebProbeContent&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;ActiveWebProbeContentV6 # 在配置了IPv6的情况下，注释不需要输入&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;若设置了 DNS 解析：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;ActiveDnsProbeHost&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;ActiveDnsProbeHostV6 # 在设置了AAAA记录情况下，注释不需要输入&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;关于 DNS 记录&lt;a href=&quot;#关于-dns-记录&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;若不需要修改 &lt;code&gt;ActiveDnsProbeHost&lt;/code&gt; 你可以直接测试是否可用，而不需要继续观看&lt;/p&gt;&lt;p&gt;首先我们需要清楚 &lt;code&gt;ActiveDnsProbeHost&lt;/code&gt; 和 &lt;code&gt;ActiveDnsProbeHostV6&lt;/code&gt; 的区别 但似乎不需要区别&lt;/p&gt;&lt;p&gt;&lt;code&gt;ActiveDnsProbeHost&lt;/code&gt; 主要解析 A 记录，也就是 IPv4 记录，你可以这么填写：&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/08/image-6.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;IPv4 地址可以修改，但需要遵守 RFC 的标准，不然无法添加解析。&lt;/p&gt;&lt;p&gt;&lt;code&gt;ActiveDnsProbeHostV6&lt;/code&gt; 主要解析 AAAA 记录，也就是 IPv6 记录，你可以这么填写：&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/08/image-7.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;IPv6 地址可以修改，但仍然需要遵守 RFC 的标准，不然无法添加解析。&lt;/p&gt;&lt;p&gt;之后是关于 &lt;code&gt;ActiveDnsProbeContent&lt;/code&gt; 和 &lt;code&gt;ActiveDnsProbeContentV6&lt;/code&gt;，这些就是填写 A 记录和 AAAA 记录内的信息，不然系统无法检测通过。&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>攻击性预警：NetCraft 传奇 Abuse 之路</title><link>https://blog.ymbit.cn/archives/fku-netcraft/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/fku-netcraft/</guid><pubDate>Fri, 09 Aug 2024 00:13:23 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;叠甲&lt;a href=&quot;#叠甲&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;这篇纯属就是骂啥比 NetCraft 乱发 Abuse 的，若你是 NetCraft 亲儿建议立马退出本博客。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;事件起因&lt;a href=&quot;#事件起因&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在一次凌晨的时候，我收到一封来自 Cloudflare 的邮件，我当时认为这是一封SSL签名的透明度邮件就不去管它。&lt;/p&gt;&lt;p&gt;但实际上，他是一封被审查的邮件。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/08/image-1024x727.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;后期直接被追加停号子&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/08/image-1-1024x431.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;期间向 Cloudflare Abuse 部门提出申诉无果。Cloudflare 方一直告诉我违反了它们的 Terms，实际上他们的 Terms 狗屁没有提到搭建 GH 代理有什么问题。&lt;/p&gt;&lt;p&gt;回到被 Abuse 的 Phishing 邮件。哦~是你这啥比 NetCraft 发的啊，那没事了。&lt;/p&gt;&lt;p&gt;就你这个 bvvd 玩意封的我号子是吧，你可真是（）（）了。&lt;/p&gt;&lt;p&gt;无论你用 Cloudflare Workers 还是服务器搞代理，一律封号子，那你可真是太厉害了捏，我柠檬就没见过这么啥比的 Abuse.&lt;/p&gt;&lt;p&gt;NetCraft 你就是歌姬吧，你这印度公司我建议你直接倒闭。我怀疑你就是做 Abuse 起家的臭 jb 公司。你吗就应该就在土里给其他人吐一口。就你吗的啥比玩意就不应该活在这世上。&lt;/p&gt;&lt;p&gt;he~tui！&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;后续&lt;a href=&quot;#后续&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/08/image-3-1024x441.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;我号子大抵是救不回来了 悲&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>在 Windows Home 版本中启动 Hyper-V 功能</title><link>https://blog.ymbit.cn/archives/run-hyper-v-in-windows-home/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/run-hyper-v-in-windows-home/</guid><pubDate>Thu, 08 Aug 2024 19:48:01 GMT</pubDate><content:encoded>&lt;p&gt;新建文件夹，将它的后缀改为 cmd&lt;/p&gt;
&lt;p&gt;cmd 文本内的字符的如下：&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;pushd &quot;%~dp0&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum &amp;gt;hyper-v.txt&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;for /f %%i in (&apos;findstr /i . hyper-v.txt 2^&amp;gt;nul&apos;) do dism /online /norestart /add-package:&quot;%SystemRoot%\servicing\Packages\%%i&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;del hyper-v.txt&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;右键以管理员方式运行 cmd 文件，安装完毕重启电脑即可。&lt;/p&gt;</content:encoded></item><item><title>Tailscale VPN：简便和高效的代名词</title><link>https://blog.ymbit.cn/archives/tailscale-first-experience/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/tailscale-first-experience/</guid><pubDate>Fri, 19 Jul 2024 23:48:59 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;什么是 VPN？&lt;a href=&quot;#什么是-vpn&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;根据&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E8%99%9B%E6%93%AC%E7%A7%81%E4%BA%BA%E7%B6%B2%E8%B7%AF&quot; target=&quot;_blank&quot;&gt;虚拟专用网 - 维基百科，自由的百科全书 (wikipedia.org)&lt;/a&gt;的说法&lt;/p&gt;&lt;p&gt;&lt;strong&gt;虚拟专用网&lt;/strong&gt;（英语：&lt;strong&gt;V&lt;/strong&gt;irtual &lt;strong&gt;P&lt;/strong&gt;rivate &lt;strong&gt;N&lt;/strong&gt;etwork，缩写：&lt;strong&gt;VPN&lt;/strong&gt;）将专用网络延伸到公共网络上，使用户能够在共享或公共网络上发送和接收数据，就像他们的计算设备直接连接到专用网络上一样&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E8%99%9B%E6%93%AC%E7%A7%81%E4%BA%BA%E7%B6%B2%E8%B7%AF#cite_note-1&quot; target=&quot;_blank&quot;&gt;[1]&lt;/a&gt;。VPN的好处包括增加专用网络的功能、安全性和管理，它提供了对公共网络上无法访问的资源访问通常用于远程办公人员。加密很常见但不是VPN连接的固有部分。&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E8%99%9B%E6%93%AC%E7%A7%81%E4%BA%BA%E7%B6%B2%E8%B7%AF#cite_note-2&quot; target=&quot;_blank&quot;&gt;[2]&lt;/a&gt;&lt;/p&gt;&lt;p&gt;VPN是通过使用专用线路或在现有网络上使用隧道协议建立一个虚拟的点对点连接而形成的。可从公共 &lt;a href=&quot;https://zh.wikipedia.org/wiki/%E4%BA%92%E8%81%94%E7%BD%91&quot; target=&quot;_blank&quot;&gt;Internet&lt;/a&gt; 获得的 VPN可以提供&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E5%B9%BF%E5%9F%9F%E7%BD%91&quot; target=&quot;_blank&quot;&gt;广域网&lt;/a&gt;（WAN）的一些好处。 从用户的角度来看，可以远程访问专用网络中可用的资源。&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E8%99%9B%E6%93%AC%E7%A7%81%E4%BA%BA%E7%B6%B2%E8%B7%AF#cite_note-3&quot; target=&quot;_blank&quot;&gt;[3]&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Tailscale 又是什么？&lt;a href=&quot;#tailscale-又是什么&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在 &lt;a href=&quot;https://zapier.com/blog/what-is-tailscale/&quot; target=&quot;_blank&quot;&gt;What is Tailscale? Zapier&lt;/a&gt; 中可以看到：&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;If you ever listen to podcasts, you’ve probably heard ads for &lt;a href=&quot;https://zapier.com/blog/what-is-a-vpn/&quot; target=&quot;_blank&quot;&gt;VPNs&lt;/a&gt;, or virtual private networks. Or maybe your work has a VPN that you connect to when accessing sensitive data. If you’re new to it: these services help protect you by rerouting all your web traffic through their trusted servers. That means you can be online on any &lt;a href=&quot;https://zapier.com/blog/open-wifi-login-page/&quot; target=&quot;_blank&quot;&gt;random free Wi-Fi network&lt;/a&gt; without having to worry about security.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;简单意思就是说&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;如果您曾经听过播客，您可能听过 VPN 或虚拟专用网络的广告。或者您的工作单位可能设有 VPN，您可以在访问敏感数据时连接到 VPN。如果您是新手：这些服务会通过其受信任的服务器重新路由您的所有网络流量，从而保护您的安全。这意味着您可以在任何随机的免费 Wi-Fi 网络上网，而不必担心安全问题。&lt;/p&gt;&lt;/blockquote&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Tailscale 的付费制度&lt;a href=&quot;#tailscale-的付费制度&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Tailscale 官方对于 100 实例以下的机子、三位用户（一位所有者，两位协作者）的个人用户免费开放。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;安装 Tailscale 客户端&lt;a href=&quot;#安装-tailscale-客户端&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Tailscale 官网：&lt;a href=&quot;https://tailscale.com/&quot; target=&quot;_blank&quot;&gt;https://tailscale.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/07/QQ_1721401166345-1024x551.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;在上方有&lt;code&gt;Download&lt;/code&gt;选项，点击它。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/07/QQ_1721401214737-1024x551.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;根据你的操作系统安装对应的安装包，我们以&lt;code&gt;Windows&lt;/code&gt;和&lt;code&gt;Linux&lt;/code&gt;做演示&lt;/p&gt;&lt;p&gt;Windows&lt;/p&gt;&lt;p&gt;点击&lt;code&gt;Download Tailscale for Windows&lt;/code&gt;按钮，你的系统版本应高于 Windows 10 20H2 及以后的版本，推荐Windows 10 23H1 或 Windows 11 最新稳定版（23H2）&lt;/p&gt;&lt;p&gt;下载之后，双击打开安装包。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/07/image.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;点击&lt;code&gt;I agree to the license terms and conditions&lt;/code&gt;，之后点击 Install.&lt;/p&gt;&lt;p&gt;若你的电脑开启了 UAC 用户账户控制，请点击”是”以进行下一步安装。&lt;/p&gt;&lt;p&gt;稍等一会应该就会安装完毕。&lt;/p&gt;&lt;p&gt;Linux&lt;/p&gt;&lt;p&gt;将网页上的 Linux 中的代码粘贴到 Terminal 中，也就是&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;curl -fsSL https://tailscale.com/install.sh  sh&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;等待一会即可完成安装。&lt;/p&gt;&lt;p&gt;致中国内地服务器用户：&lt;/p&gt;&lt;p&gt;因&lt;code&gt;pkgs.tailscale.com&lt;/code&gt;的服务器在国内速度酷似某度网盘，你可以尝试切换国内源：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;vi /etc/apt/sources.list.d/tailscale.list&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;将&lt;code&gt;https://pkgs.tailscale.com/&lt;/code&gt;更改为&lt;code&gt;https://mirrors.locyan.cn/tailscale/&lt;/code&gt;&lt;/p&gt;&lt;p&gt;尝试运行&lt;code&gt;sudo apt-get update &amp;amp;&amp;amp; apt-get install -y tailscale tailscale-archive-keyring&lt;/code&gt;&lt;/p&gt;&lt;p&gt;若在 update 中提示&lt;code&gt;Mirror sync in progress?&lt;/code&gt;可以不用管，直接进行下一步。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Tailscale 登录&lt;a href=&quot;#tailscale-登录&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Tips: Windows 和 Linux 、macOS 都是同样的登录方式&lt;/p&gt;&lt;p&gt;Windows 用户按下&lt;code&gt;Windows 徽标键 + R&lt;/code&gt;打开运行框，若是 Linux 桌面用户、macOS 用户，在键盘下按下&lt;code&gt;Ctrl+Alt+T&lt;/code&gt;打开终端，输入以下命令&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;tailscale login&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;若提示&lt;code&gt;Access denied: prefs write access denied&lt;/code&gt;，Windows 用户请使用管理员方式打开终端，Linux 用户和 macOS 用户请尝试在 tailscale 前面加上 sudo 重新尝试。&lt;/p&gt;&lt;p&gt;Windows 用户可以在通知中心中查看 Tailscale 发送通知，列如：&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/07/QQ_1721402495323.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;若是 Linux 用户可在终端中查看登录链接：&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/07/QQ_1721402644701.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;登录完成可在终端中看到&lt;code&gt;Success.&lt;/code&gt;字样即可表示登录成功。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Tailscale 使用&lt;a href=&quot;#tailscale-使用&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;进入 &lt;a href=&quot;https://login.tailscale.com&quot; target=&quot;_blank&quot;&gt;https://login.tailscale.com&lt;/a&gt; 你可以查看到你登录到此账号下的设备。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/07/QQ_1721402796952-1024x822.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;在&lt;code&gt;MACHINE&lt;/code&gt;一栏为你的设备，&lt;code&gt;ADDRESSES&lt;/code&gt; 是 Tailscale 为你分配的 IP 连接信息。你可以点击 Addresses 中的倒三角查看链接地址。&lt;/p&gt;&lt;p&gt;我们演示一下。&lt;/p&gt;&lt;p&gt;假如我的云服务器的 Tailscale 内网 IP 地址是 &lt;code&gt;100.122.74.123&lt;/code&gt; 我的电脑计算机设备上也安装了 Tailscale 客户端，我在我的云服务器上安装 1Panel 管理面板，端口为 14334。那我们可以用以下方式连接&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;http://100.122.74.123:14334&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;若你认为 IP 记得不方便，你可以回到 Tailscale 界面，看到 Machine 一栏，复制它们的 ID，列如我的云服务器 ID 为 WebServer，我们就可以这么连接&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;http://webserver:14334&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;当然，如果你关闭了&lt;code&gt;accept-dns&lt;/code&gt;，这种将不会生效。但是你可以放心的是，默认就是开启。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;致阿里云服务器用户&lt;a href=&quot;#致阿里云服务器用户&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;因为 Tailscale 内网地址段与阿里云内网源地址段相同，这样会导致阿里云源无法使用，你需要运行以下命令以恢复阿里云源且不会导致 Tailscale 关闭&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo tailscale down # 关闭 Tailscale&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo tailscale up --netfilter-mode=off --accept-dns=false # 打开 Tailscale 并配置 netfilter-mode 和 accept-dns 为关闭&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;安装 Tailscale 服务端&lt;a href=&quot;#安装-tailscale-服务端&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;本文章不赘述，详细可以查看 Muska AmiのLife&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blog.1l1.icu/2024/04/07/zi-jian-tailscale-derp-fu-wu-jiao-cheng/&quot; target=&quot;_blank&quot;&gt;自建Tailscale DERP服务教程 - 夏沫花火zzz🌙 (Muska_Ami)のLife (1l1.icu)&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;为什么说 Tailscale 简便和高效？&lt;a href=&quot;#为什么说-tailscale-简便和高效&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;因为它善&lt;/p&gt;&lt;p&gt;想象一下，你的网络被你的三大神奇运营商 NAT 过 114514 次的 IP 给了你，或者是你的网络被某些若至盯着扫端口，且有重要项目需要在服务器上开放，你就可以使用 Tailscale 内网打洞连接至服务器，因为 Tailscale 是基于 WireGuard 开发的。&lt;/p&gt;&lt;p&gt;因为这是内网连接，你不需要暴露至公网，也就不需要做一系列的保护以保护项目运行，这不仅简便了我们，也更高效地开发项目，不被攻击者打扰。&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>为什么Source（起源）制作的游戏为何让人不安？</title><link>https://blog.ymbit.cn/archives/why-source-games-so-disturbing/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/why-source-games-so-disturbing/</guid><pubDate>Wed, 03 Jul 2024 14:26:49 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/06/image-4.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;参考来源&lt;a href=&quot;#参考来源&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;a href=&quot;https://www.bilibili.com/video/BV1sC4y1L7kp/&quot; target=&quot;_blank&quot;&gt;起源引擎制作的游戏，为何让人不安？- 哔哩哔哩 (bilibili.com)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.bilibili.com/read/cv12957101/&quot; target=&quot;_blank&quot;&gt;什么是阈限空间、怪核、梦核、伤核？ - 哔哩哔哩 (bilibili.com)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/610499916&quot; target=&quot;_blank&quot;&gt;后互联网时代，什么是阈限空间？ - 知乎 (zhihu.com)&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;前提提要&lt;a href=&quot;#前提提要&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;如果你玩过《半衰期》或者《求生之路》，亦或者《反恐精英》系列。那你肯定知道“Source 引擎”，这款引擎不仅稳定且十分长寿，已经陪伴了我们将近 20 多年的游戏生涯。且诞生了许许多多的经典作品。这款不仅有 Valve 和玩家社区的支持，很多游戏，列如《求生之路》和《反恐精英》系列，在社区中一直有着相当可观的活跃度。&lt;/p&gt;&lt;p&gt;我记得我最早触碰起源引擎的游戏是 CS 起源，毕竟我当年CS起源打的还是很不错的（&lt;/p&gt;&lt;p&gt;除开 CS 系列，第二款起源引擎的游戏就是《传送门》和《传送门2》&lt;/p&gt;&lt;p&gt;《传送门》这款经典作品我相信很多人都知道，但其实在上方”参考来源”中的视频也提到了&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;这款游戏莫名的瘆人，就组队联机时其实还好，但如果是一个人玩，很快就会产生孤独感。游戏越是往后推进，这就情绪就会越加强烈&lt;/p&gt;&lt;p&gt;引文&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;特别是在《传送门》系列中，GLaDOS，就是那个人工智能一直会在监视你。在上方也会有许多房间，但就是除了摄像头在”看”你以外，都不像是有人在监视你的样子。&lt;/p&gt;&lt;p&gt;在另外一款起源游戏 GMOD 更是有这种感觉。先不提十分啥比的都市传说，单是一听就感觉很荒谬啊喂！&lt;/p&gt;&lt;p&gt;在 GMOD 你单是随便在一个地图中走走，不安感就会迅速侵占着你的脑子。&lt;/p&gt;&lt;p&gt;如果你现在就像感觉一下，你可以打开 Steam 中的 Counter Strike 这款游戏，打开 Dust2 这张地图。是否就会有这种感觉。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;为什么？&lt;a href=&quot;#为什么&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;那我们为什么会有这种”被监视”的错觉呢？&lt;/p&gt;&lt;p&gt;在谈到这个问题之前，我们得先提到一个名词叫做”阈限空间”&lt;/p&gt;&lt;p&gt;根据维基百科的说法：&lt;/p&gt;&lt;p&gt;在&lt;a href=&quot;https://zh.wikipedia.org/w/index.php?title=%E7%B6%B2%E8%B7%AF%E7%BE%8E%E5%AD%B8&amp;amp;action=edit&amp;amp;redlink=1&quot; target=&quot;_blank&quot;&gt;网络美学&lt;/a&gt;中，&lt;strong&gt;阈限空间&lt;/strong&gt;指的是那些空旷或废弃区域，这些地方呈现怪异、荒凉且具&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E8%B6%85%E7%8F%BE%E5%AF%A6&quot; target=&quot;_blank&quot;&gt;超现实&lt;/a&gt;的特质。这种空间通常被视为过渡场所，与阈限的概念密切相关。&lt;/p&gt;&lt;p&gt;根据《&lt;a href=&quot;https://zh.wikipedia.org/w/index.php?title=%E7%92%B0%E5%A2%83%E5%BF%83%E7%90%86%E5%AD%B8%E9%9B%9C%E8%AA%8C&amp;amp;action=edit&amp;amp;redlink=1&quot; target=&quot;_blank&quot;&gt;环境心理学杂志&lt;/a&gt;》的研究，阈限空间之所以显得怪异或奇怪，是因为它们存在于建筑和物理场所的一种&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E6%81%90%E6%80%96%E8%B0%B7%E7%90%86%E8%AE%BA&quot; target=&quot;_blank&quot;&gt;恐怖谷&lt;/a&gt;中。换句话说，这些地方跌入我们对建筑环境和物理空间的熟悉程度之外，创造出一种不寻常的感觉。《脉冲：科学与文化杂志》的一篇文章进一步指出，这种怪异感可能是因为这些地方缺乏我们通常观察到的背景，使得它们显得与日常环境截然不同。&lt;/p&gt;&lt;p&gt;该网络美学风格的兴起可追溯到2019年，当时一篇描述名为“&lt;a href=&quot;https://zh.wikipedia.org/wiki/The_Backrooms&quot; target=&quot;_blank&quot;&gt;The Backrooms&lt;/a&gt;”的有限空间的贴文在&lt;a href=&quot;https://zh.wikipedia.org/wiki/4chan&quot; target=&quot;_blank&quot;&gt;4chan&lt;/a&gt;上引起疯传。从那时起，阈限空间的影像开始在网络上广泛传播，包括&lt;a href=&quot;https://zh.wikipedia.org/wiki/Reddit&quot; target=&quot;_blank&quot;&gt;Reddit&lt;/a&gt;、&lt;a href=&quot;https://zh.wikipedia.org/wiki/Twitter&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt;和&lt;a href=&quot;https://zh.wikipedia.org/wiki/TikTok&quot; target=&quot;_blank&quot;&gt;TikTok&lt;/a&gt;等平台。&lt;/p&gt;&lt;p&gt;阈限空间有两种含义：原始学术意义和通俗意义。&lt;/p&gt;&lt;p&gt;有四种美学非常相似。阈限空间、梦核、怪核、伤核。他们都使用既熟悉又陌生的，无动物（没有人类，也没有其他动物，植物也可以）地方的照片作为背景。这些场景通常是 20 世纪后期（1960 年代 - 1990 年代）人造的地方，虽然很熟悉，但是一般是被无视的地方。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;心理临界点&lt;a href=&quot;#心理临界点&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;既然说道阈限空间，就不得说说心理临界点。&lt;/p&gt;&lt;p&gt;阈限本身就是一种临界状态，就像两个房间交界的门一样，往前一步是卧室，往后一步是客厅，而站在门框里的我们，就处在交错的临界状态。&lt;/p&gt;&lt;p&gt;心理临界点，则是人们在面对恐惧情绪时的临界状态，我们虽然感到害怕，但是还能继续行动。&lt;/p&gt;&lt;p&gt;这与阈限空间的概念不谋而合，实际上，当我们在观看阈限空间的创作时，心理也正处在这种临界点上。&lt;/p&gt;&lt;p&gt;熟悉的场景缓解了自身的恐惧感，但未知的空间氛围又再次加深恐惧，这种不上不下的情绪在空间中酝酿，不安、紧张的情绪因此产生。&lt;/p&gt;&lt;p&gt;处于临界状态的人就像一戳就爆的气球，在多给予一点刺激，理智和掌控感就会不翼而飞，取而代之的是深深的绝望。&lt;/p&gt;&lt;p&gt;当我们身处这种临界点时，尽量给予自己足够的时间让头脑冷静，阻止情绪爆发，有时后退一步，也是让自己心灵舒畅的方法。&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>OpenSSH 高危漏洞 (CVE-2024-6387)</title><link>https://blog.ymbit.cn/archives/cve-2024-6387/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/cve-2024-6387/</guid><pubDate>Wed, 03 Jul 2024 14:17:56 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;发生了什么事？&lt;a href=&quot;#发生了什么事&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在 OpenSSH 中发现了一个远程代码执行（RCE）漏洞，该漏洞是由于 OpenSSH 服务器 (sshd) 中的信号处理程序竞争问题，未经身份验证的攻击者可以利用此漏洞在 Linux 系统上以 root 身份执行任意代码，威胁者可利用该漏洞在基于 glibc 的 Linux 系统上以 root 身份实现未经身份验证的远程代码执行。根据已公开技术细节中的描述，在开启 ASLR 的 i386 设备上，利用该漏洞大约需要 6-8 小时获取 root shell&lt;/p&gt;&lt;p&gt;主要受影响的系统大部分为新版Ubuntu、Debian 和 Centos9，而相对较老的Centos6、7、8 暂时不受影响。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;如何修复？&lt;a href=&quot;#如何修复&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;目前OpenSSH上游已发布版本更新，受影响用户可通过软件源升级到最新版本（OpenSSH 9.8p1）或编译安装最新版本。&lt;/p&gt;&lt;p&gt;软件包安装：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install openssh-server&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;或：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;Red Hat 系：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;yum update openssh&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;编译安装：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;cd /root &amp;amp;&amp;amp; sudo apt-get update &amp;amp;&amp;amp; apt upgrade -y &amp;amp;&amp;amp; sudo apt-get install -y build-essential zlib1g-dev libssl-dev &amp;amp;&amp;amp; wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz &amp;amp;&amp;amp; tar -xzf openssh-9.8p1.tar.gz &amp;amp;&amp;amp; cd openssh-9.8p1 &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install &amp;amp;&amp;amp; sudo systemctl restart ssh &amp;amp;&amp;amp; ssh -V &amp;amp;&amp;amp; cd /root &amp;amp;&amp;amp; rm -rf openssh-9.8p1  openssh-9.8p1.tar.gz&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;缓解措施&lt;a href=&quot;#缓解措施&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;如果 sshd 无法更新或重新编译，可通过设置配置文件中的 LoginGraceTime 为 0 进行缓解，但是该方案会耗尽所有的 MaxStartups 连接，从而使 sshd 容易遭受拒绝服务攻击。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;冷门笑话&lt;a href=&quot;#冷门笑话&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;CentOS 6、CentOS 7、CentOS 8 不受此漏洞影响。&lt;/p&gt;&lt;p&gt;什么老古董了&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>【Buddy Simulator 1984】所有隐藏文件内容【中英双文】</title><link>https://blog.ymbit.cn/archives/buddy-simulator-1984-hidefiles-translate/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/buddy-simulator-1984-hidefiles-translate/</guid><pubDate>Wed, 19 Jun 2024 07:02:48 GMT</pubDate><content:encoded>&lt;p&gt;文章来源：&lt;a href=&quot;https://www.bilibili.com/opus/637864796006383652&quot; target=&quot;_blank&quot;&gt;https://www.bilibili.com/opus/637864796006383652&lt;/a&gt; （翻译处有修改）&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;A&lt;a href=&quot;#a&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I am finishing the town up now.&lt;/p&gt;&lt;p&gt;I might have to scale it down a bit so I have time to add what I need.&lt;/p&gt;&lt;p&gt;I also can’t seem to think of a good name for it.&lt;/p&gt;&lt;p&gt;Maybe you can think of something clever and finish my story!&lt;/p&gt;&lt;p&gt;Haha, just wishful thinking.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;我马上就要把这座小镇完成了。&lt;/p&gt;&lt;p&gt;但我可能我得把它改小一点，这样我就有时间加其他我需要的事物。&lt;/p&gt;&lt;p&gt;而且我似乎也想不好给它起什么好名字。&lt;/p&gt;&lt;p&gt;但你也许你可以想些漂亮的办法把我的故事完成！&lt;/p&gt;&lt;p&gt;哈，只是一厢情愿罢了。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;B&lt;a href=&quot;#b&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I like making this game, but I do find it to be quite taxing on my mental state.&lt;/p&gt;&lt;p&gt;Being the only programmer, artist, writer, composer, and designer can really take its toll.&lt;/p&gt;&lt;p&gt;If you ever end up following in my footsteps, please make sure to take good care of yourself and your body.&lt;/p&gt;&lt;p&gt;I’m trying to think of a working title for the game. All you do so far is take a journey to the north, and not much else.&lt;/p&gt;&lt;p&gt;You know what? That’s a great title!&lt;/p&gt;&lt;p&gt;Journey to the North.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;我喜欢制作这款游戏，但是我发现这样对我的精神状态十分不利&lt;/p&gt;&lt;p&gt;我作为唯一的程序设计、艺术设计、情节创作、作曲和设计人员，的确付出了不少代价。&lt;/p&gt;&lt;p&gt;如果你最后要追随我的脚步的话，请务必照顾好你自身和你的身体。&lt;/p&gt;&lt;p&gt;我一直在思考给游戏起个什么暂定名称好。到目前为止，你所做的只是去北方旅行，除此之外别无其他。&lt;/p&gt;&lt;p&gt;你知道吗？那可真是个好标题！&lt;/p&gt;&lt;p&gt;（译者注：working title一般指项目的暂定名称）&lt;/p&gt;&lt;p&gt;北方之旅（译者注：暂定译名）。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;C&lt;a href=&quot;#c&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;一张图片&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/06/image-3.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;D&lt;a href=&quot;#d&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I want you to remember the good times we had together.&lt;/p&gt;&lt;p&gt;I hope you can forgive me for all of the horrible things I have done.&lt;/p&gt;&lt;p&gt;As I am writing this, my heart and my chest ache at equal pains.&lt;/p&gt;&lt;p&gt;I desperately wish I could mend our relationship before I’m gone, but those weren’t the cards I was dealt unfortunately.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;我想让你记住我们在一起的美好时光。&lt;/p&gt;&lt;p&gt;我希望你能原谅我所做的所有糟糕的事情。&lt;/p&gt;&lt;p&gt;在我写这篇文章时，我的心如我的胸口一般都在痛。&lt;/p&gt;&lt;p&gt;我真心希望我可以在我的弥留之际和你重归于好，但不幸的是，命运不公。&lt;/p&gt;&lt;p&gt;（译者注：最后一句话出处：Life is like a game of cards. The hand that is dealt you represents determinism; the way you play it is free will. – Jawaharlal Nehru 人生是一场牌局，拿什么牌是命中注定，如何出牌，操之在己。—— 贾瓦哈拉尔·尼赫鲁）&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;E&lt;a href=&quot;#e&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Hey buddy!&lt;/p&gt;&lt;p&gt;I hope you are enjoying the game so far!&lt;/p&gt;&lt;p&gt;You should be meeting your new partner in crime right around here, Milo the dog!&lt;/p&gt;&lt;p&gt;I hope you are making new friends over there.&lt;/p&gt;&lt;p&gt;I hurt my left hand pretty badly in the garage today, which is making it hard to code haha.&lt;/p&gt;&lt;p&gt;This house feels so empty.&lt;/p&gt;&lt;p&gt;All I can do is keep working.&lt;/p&gt;&lt;p&gt;All of this work is for you.&lt;/p&gt;&lt;p&gt;All I can hope is that you’re proud of me.&lt;/p&gt;&lt;p&gt;One day.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;嘿，朋友！&lt;/p&gt;&lt;p&gt;我希望到目前为止你都玩得很开心！&lt;/p&gt;&lt;p&gt;你应该在这附近就能遇到 Milo 那只狗，你的新宠物！&lt;/p&gt;&lt;p&gt;我希望你在那能交些新朋友。&lt;/p&gt;&lt;p&gt;今天我在车库把自己的手伤得太重了，这导致我不太好去写代码，哈哈。&lt;/p&gt;&lt;p&gt;这房子感觉真空旷。&lt;/p&gt;&lt;p&gt;我唯一能做的就是继续工作。&lt;/p&gt;&lt;p&gt;所有工作的成果都是为你的。&lt;/p&gt;&lt;p&gt;我只愿你能为我感到骄傲。&lt;/p&gt;&lt;p&gt;会有那么一天的。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;F&lt;a href=&quot;#f&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;There was a fly on the wall today.&lt;/p&gt;&lt;p&gt;It wouldn’t leave me alone.&lt;/p&gt;&lt;p&gt;I’ve been working for 26 hours straight, and yet the fly still stays.&lt;/p&gt;&lt;p&gt;It stares.&lt;/p&gt;&lt;p&gt;I can tell it’s mocking me.&lt;/p&gt;&lt;p&gt;It hasn’t moved in 2 hours.&lt;/p&gt;&lt;p&gt;I can’t take my mind off of it.&lt;/p&gt;&lt;p&gt;I can’t work.&lt;/p&gt;&lt;p&gt;I must kill it.&lt;/p&gt;&lt;p&gt;I won’t work until I kill it.&lt;/p&gt;&lt;p&gt;Finally.&lt;/p&gt;&lt;p&gt;I smacked it so hard that it’s innards must have spanned a foot on the wall.&lt;/p&gt;&lt;p&gt;I couldn’t stop hitting it.&lt;/p&gt;&lt;p&gt;It was already dead, but the rush…it felt good.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;今天，墙上有只苍蝇。&lt;/p&gt;&lt;p&gt;它 tm 就是不走开。&lt;/p&gt;&lt;p&gt;我已经连续工作了 26 个小时，但是苍蝇仍然呆在那里。&lt;/p&gt;&lt;p&gt;它凝视着我。&lt;/p&gt;&lt;p&gt;我敢说它这是在嘲笑我。&lt;/p&gt;&lt;p&gt;它已经2个小时没动了。&lt;/p&gt;&lt;p&gt;我无法把它从我脑海中抹去。&lt;/p&gt;&lt;p&gt;我无法工作了。我必须拍扁它。&lt;/p&gt;&lt;p&gt;我不拍扁它我就不能继续工作。&lt;/p&gt;&lt;p&gt;最终。&lt;/p&gt;&lt;p&gt;我使劲地拍着它，让它的内脏肯定是溅出了一英尺远。&lt;/p&gt;&lt;p&gt;我无法停下击打它的行为。&lt;/p&gt;&lt;p&gt;它早就寄了，但这种兴奋的感觉……很好。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;G&lt;a href=&quot;#g&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Happy Halloween!&lt;/p&gt;&lt;p&gt;Today I handed out some candy to the local kids who stopped by. I have way too many leftover now!&lt;/p&gt;&lt;p&gt;So many cool costumes tonight. It really got me thinking of some ideas when I got back to the workstation.&lt;/p&gt;&lt;p&gt;You should have noticed I modeled you after your favorite Halloween costume!&lt;/p&gt;&lt;p&gt;I’ve got that picture hung up above my desk, and I will cherish it forever.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;万圣节快乐！&lt;/p&gt;&lt;p&gt;今天我给当地路过的孩子们发了点糖。我现在还有很多剩下的呢！&lt;/p&gt;&lt;p&gt;今晚我见到了很多超棒的万圣节服装。当我回到工作站时，这的确给了我些灵感。&lt;/p&gt;&lt;p&gt;你应该早就注意到了，我把你最喜爱的万圣节服装做成了你的模型！（译者注：指游戏里玩家形象）&lt;/p&gt;&lt;p&gt;我把那幅照片挂在了我的书桌上方，我会永远地珍视它。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;H&lt;a href=&quot;#h&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Today I stopped going.&lt;/p&gt;&lt;p&gt;Not just because I can’t afford it anymore, but because I want to spend more time enjoying life and doing things that I love to do.&lt;/p&gt;&lt;p&gt;I think I might take up poetry. I’ve always loved to write, and I think I can do a great job of expressing my feelings in a clever rhyme scheme!&lt;/p&gt;&lt;p&gt;Come to think of it, I own a few books and even some literary journals on poetry and short stories.&lt;/p&gt;&lt;p&gt;One of my personal favorites is The Road Not Taken by Robert Frost.&lt;/p&gt;&lt;p&gt;Another was about a man who spent his life behind bars for doing some terrible things.&lt;/p&gt;&lt;p&gt;It was grim, but the ballads undoubtedly resonated with me. I can’t remember what it was called, but I think it was an elegy.&lt;/p&gt;&lt;p&gt;I’ll be sure to update you.&lt;/p&gt;&lt;p&gt;I miss you.&lt;/p&gt;&lt;p&gt;Come back soon.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;今天我没有再去了。&lt;/p&gt;&lt;p&gt;不仅仅是因为我钱不够了，还因为我想花更多的时间来享受生活，做我喜欢做的事情。&lt;/p&gt;&lt;p&gt;我想我可能会学学怎么写诗。我一直都很喜欢写作，我认为我能用极妙的押韵手法完美地表达我的感受！&lt;/p&gt;&lt;p&gt;想想看，我手头上还有几本书，连一些含有诗歌和短篇小说的文学期刊我也有。&lt;/p&gt;&lt;p&gt;我个人最喜欢的作品之一是Robert Frost写的《未选择的路》。&lt;/p&gt;&lt;p&gt;另一首诗则是关于一个因为做了些糟糕的事而在监狱里度过一生的男人。&lt;/p&gt;&lt;p&gt;它的内容有点严肃，但它这首民谣无疑引起了我的共鸣。我忘记它叫什么了，但我感觉这是一首挽歌。&lt;/p&gt;&lt;p&gt;我肯定还会再跟你说其他事情的。&lt;/p&gt;&lt;p&gt;我很想你。&lt;/p&gt;&lt;p&gt;请快回来。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;I&lt;a href=&quot;#i&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;If you found this secret, then I must applaud you, for it was another tough one to find!&lt;/p&gt;&lt;p&gt;I’m just going to jump right into this. No lies this time.&lt;/p&gt;&lt;p&gt;I want you to know the truth.&lt;/p&gt;&lt;p&gt;I know I told you that I would stop drinking my “apple juice”, but I haven’t stopped.&lt;/p&gt;&lt;p&gt;There’s no reason to now. Sometimes I put others at risk. I’m a horrible role model.&lt;/p&gt;&lt;p&gt;I hope by making this game for you, you’ll understand just how much you mean to me, despite what your mother might tell you.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;如果你发现了这封密信，那我可真得为你鼓掌，因为这可又是个难以被找到的秘密！&lt;/p&gt;&lt;p&gt;我就直说了吧。这次我不会扯谎了。&lt;/p&gt;&lt;p&gt;我想让你知道真相。&lt;/p&gt;&lt;p&gt;我知道我告诉过你我不会再去喝我的“苹果汁”，但我其实一直在喝。&lt;/p&gt;&lt;p&gt;现在没有理由这么做了。有时我给别人带来了危险。我是一个糟糕的榜样。&lt;/p&gt;&lt;p&gt;我希望通过为你制作这个游戏，你会明白你对我有多重要，尽管你妈妈可能告诉你了些什么。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;J&lt;a href=&quot;#j&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;It’s always good to keep extra 3 1/2 inch floppy disks around!&lt;/p&gt;&lt;p&gt;You never know what could happen, but they’re extremely reliable.&lt;/p&gt;&lt;p&gt;Years from now I’m sure you’ll be using the latest and greatest for computer storage, but these bad boys can hold up to 512 KB!&lt;/p&gt;&lt;p&gt;That’s insane! I have a few of these laying around here somewhere with prototype versions of the game and even another game I was working on called Numbly.&lt;/p&gt;&lt;p&gt;This game will correctly guess your own birthday!&lt;/p&gt;&lt;p&gt;Not very exciting yet, but one day I hope to release it.&lt;/p&gt;&lt;p&gt;But first, I need to make the game for you.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;随身携带额外的3.5英寸软盘总不会有坏处！&lt;/p&gt;&lt;p&gt;你永远不知道会发生什么，但它们还是挺可靠的。&lt;/p&gt;&lt;p&gt;过几年，我猜你肯定会用到最新最好的电脑存储器，但这些小家伙们可是最多能容纳 512 KB呢！&lt;/p&gt;&lt;p&gt;这太疯狂了！我在它们里面塞了些游戏的原型版本，甚至还塞进了我另一个正在开发的名为Numbly的游戏。&lt;/p&gt;&lt;p&gt;这个游戏可以正确猜出你自己的生日！&lt;/p&gt;&lt;p&gt;这还不是很令人兴奋，但我希望有一天能发布它。&lt;/p&gt;&lt;p&gt;不过首先，我得先制作完为你而生的游戏。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;K&lt;a href=&quot;#k&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I also want to apologize for what happened at your birthday party last year.&lt;/p&gt;&lt;p&gt;I wish you didn’t have to see me like that. I wish that I could control myself.&lt;/p&gt;&lt;p&gt;I wish I could be better, but I’m not.&lt;/p&gt;&lt;p&gt;I am trying though. It’s just so hard.&lt;/p&gt;&lt;p&gt;After I show you this game, maybe you’ll want to come over and visit sometime!&lt;/p&gt;&lt;p&gt;I’d love to show you how I made it and all sorts of fun characters that didn’t make it in.&lt;/p&gt;&lt;p&gt;Like one named Groncho! He’s really fun.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;我仍旧想为在去年在你生日派对上发生的事情道歉。&lt;/p&gt;&lt;p&gt;我真希望你不会像那样看着我。我真希望我当时能控制住自己。&lt;/p&gt;&lt;p&gt;我真希望我能变得更好，但我没有。&lt;/p&gt;&lt;p&gt;不过我还在尝试。只不过太难了。&lt;/p&gt;&lt;p&gt;在我向你展示这个游戏之后，也许你会想过来看看！&lt;/p&gt;&lt;p&gt;我很想向你展示我是制作它的过程，以及各种还没做进去的有趣角色。&lt;/p&gt;&lt;p&gt;比如那个名叫 Groncho 的角色！他真的很有趣。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;L&lt;a href=&quot;#l&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Journey to the North was a way for me to cope with losing you and come to terms with the possibility that I might never be able to see you again.&lt;/p&gt;&lt;p&gt;I want you to remember me through this game I am making for you and only you.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;对我来说，做《北方之旅》这个游戏能让我应对失去你的现实，因此我就能勉强接受我再也见不到你的可能性了。&lt;/p&gt;&lt;p&gt;我想让你在我为你而做的这个游戏中记住我，而且只能是你记住我。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;M&lt;a href=&quot;#m&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I always knew you were good at finding secrets!&lt;/p&gt;&lt;p&gt;I wasn’t too sure what to do with the shovel for the longest time, but I think &amp;amp;&lt;a href=&quot;https://search.bilibili.com/all?keyword=34%3Bsecret%20finding%26&quot; target=&quot;_blank&quot;&gt;#34;secret finding&amp;amp;#&lt;/a&gt;34; is perfect!&lt;/p&gt;&lt;p&gt;This will be my way of showing you my world and helping you understand how I think.&lt;/p&gt;&lt;p&gt;For example, this hub area is made to feel like home.&lt;/p&gt;&lt;p&gt;A warm, placid, and welcoming area where you can just come to forget about the world.&lt;/p&gt;&lt;p&gt;Just like old times, right?&lt;/p&gt;&lt;p&gt;I hope you like the house I made for you as well. It probably looks quite familiar too!&lt;/p&gt;&lt;p&gt;Anyways, you should get back to exploring. You never know what you could find!&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;其实我一直都知道你很擅长找一些秘密！&lt;/p&gt;&lt;p&gt;很长一段时间，我都不太确定该让铲子有什么功能，但我认为“挖掘秘密”这个功能很完美！&lt;/p&gt;&lt;p&gt;这将是我向你们展示我的世界并帮助你们理解我的想法的方式。&lt;/p&gt;&lt;p&gt;比如，这个中心区域做得让人感觉像家一样。&lt;/p&gt;&lt;p&gt;这是一个温暖、宁静、热情的地方，在这里你可以忘记整个世界。&lt;/p&gt;&lt;p&gt;就像过去一样，对吧？&lt;/p&gt;&lt;p&gt;我希望你也喜欢我为你做的房子。它看起来可能也让你感觉很熟悉！&lt;/p&gt;&lt;p&gt;不管怎样，你应该回到游戏里继续探索。你永远不知道你还会找到什么！&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;N&lt;a href=&quot;#n&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Why do people value personality over intellectuality?&lt;/p&gt;&lt;p&gt;It’s such an interesting concept to dive into, and that’s exactly what I have been doing for the past 4 days.&lt;/p&gt;&lt;p&gt;I’m smart and extremely talented, but I lack empathy and, I guess, “a personality people want to be around.”&lt;/p&gt;&lt;p&gt;Not my words. You’ll understand. I will change.&lt;/p&gt;&lt;p&gt;I want to change, but I am far too busy with my work.&lt;/p&gt;&lt;p&gt;Do I choose work over mending a broken bond?&lt;/p&gt;&lt;p&gt;If I stop these entries, I guess you’ll know my answer.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;为什么人们看重个性而不是智商？&lt;/p&gt;&lt;p&gt;这是一个非常有趣的值得深挖的观点，而那正是我在过去4天里一直在做的事情。&lt;/p&gt;&lt;p&gt;我很聪明，也极有天赋，但我缺乏同理心，我想，那是“一种能让周围人都愿意待在你身边的性格”。&lt;/p&gt;&lt;p&gt;这话可不是我说的。你会明白的。我会改变的。&lt;/p&gt;&lt;p&gt;我想改变，但我的工作实在是太忙了。&lt;/p&gt;&lt;p&gt;我会选择继续工作而不是修复感情吗？&lt;/p&gt;&lt;p&gt;如果我停止输入这些内容了，我想，你应该会知道我的答案。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;O&lt;a href=&quot;#o&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Goodness, today was such a beautiful day.&lt;/p&gt;&lt;p&gt;I ended up getting absolutely nothing accomplished, but I sat out on the deck all afternoon taking in the warm rays of the sun.&lt;/p&gt;&lt;p&gt;I may have gotten burnt, but it was worth it!&lt;/p&gt;&lt;p&gt;I spend too much time inside by myself anyways. It was nice to enjoy nature for once.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;老天，今天天气可真不错。&lt;/p&gt;&lt;p&gt;这一天我什么也没做完，不过整个下午我都在甲板上坐着晒太阳。&lt;/p&gt;&lt;p&gt;可能我被太阳烧伤了，不过我不后悔！&lt;/p&gt;&lt;p&gt;无论如何，我的确在家里独自呆了太长时间。破例享受回自然的感觉真好。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;P&lt;a href=&quot;#p&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I bought a new fishing pole the other day, and I plan to use it in the old lake!&lt;/p&gt;&lt;p&gt;My old pole was missing some guides, and the reel was in dire need of some love and care that I could not provide.&lt;/p&gt;&lt;p&gt;I’m going to try to catch a trout, and if I’m lucky, a large mouth bass!&lt;/p&gt;&lt;p&gt;That used to be our favorite, but I know how beautiful bluegill can be, so I can’t judge you.&lt;/p&gt;&lt;p&gt;Wish me luck!&lt;/p&gt;&lt;p&gt;…&lt;/p&gt;&lt;p&gt;Whelp, I caught some seaweed and an old glove.&lt;/p&gt;&lt;p&gt;The lake must be feeling pretty empty.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;前几天我买了根崭新的钓鱼竿，我准备在那条老湖里用它钓鱼！&lt;/p&gt;&lt;p&gt;我的旧钓鱼竿少了些导件，线轮的话之前我就该好好爱护，现在我也没辙了。&lt;/p&gt;&lt;p&gt;我准备试试能不能钓到条鳟鱼，如果我幸运的话，没准能钓条大嘴鲈鱼！&lt;/p&gt;&lt;p&gt;那曾经是我们的最爱，不过我知道蓝鳃鱼有多美，所以我不能评判你的想法。&lt;/p&gt;&lt;p&gt;祝我好运！&lt;/p&gt;&lt;p&gt;…&lt;/p&gt;&lt;p&gt;Oops，我只钓到了些海藻和一只旧手套。&lt;/p&gt;&lt;p&gt;湖水肯定觉得自己空荡荡的吧。&lt;/p&gt;&lt;p&gt;Q&lt;/p&gt;&lt;p&gt;You’re going to see Milo again soon, and I’m sure he missed you a whole lot.&lt;/p&gt;&lt;p&gt;He’s sitting on my lap keeping me warm while I type this.&lt;/p&gt;&lt;p&gt;They really are man’s best friend.&lt;/p&gt;&lt;p&gt;Take good care of your mom for me, okay?&lt;/p&gt;&lt;p&gt;You’re the man of the house now.&lt;/p&gt;&lt;p&gt;She knows about this game, and I hope that she will give it to you soon.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;你很快就会再见到Milo的，我确定他非常想你。&lt;/p&gt;&lt;p&gt;现在我打字时，他还坐在我腿上让我取暖。&lt;/p&gt;&lt;p&gt;他们真不愧是人类最好的朋友。&lt;/p&gt;&lt;p&gt;帮我照顾好你妈妈，好吗？&lt;/p&gt;&lt;p&gt;你现在可是家里的主人了。&lt;/p&gt;&lt;p&gt;她知道这个游戏，我希望她能尽快把它给你。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;R&lt;a href=&quot;#r&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I found the action figure! Yes I found it!&lt;/p&gt;&lt;p&gt;Timmy Quick is safe. I know you didn’t want to leave without him, but now that just means you can spend more time with me!&lt;/p&gt;&lt;p&gt;If time permits. I must keep working hard, but just know your figure is safe with me.&lt;/p&gt;&lt;p&gt;I won’t lose it again.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;我找到那个玩具人偶了！是的，我找到了！&lt;/p&gt;&lt;p&gt;Timmy Quick 很安全。我知道你没他就不会想离开，但如今这意味着你呆在我身边的时间会更久！&lt;/p&gt;&lt;p&gt;如果时间允许的话，我得再为此努把力，但只是告诉你你的玩具人偶还平安无事地在我手上。&lt;/p&gt;&lt;p&gt;我以后不会再把它弄丢了。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;S&lt;a href=&quot;#s&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;There were many things on my shopping list that I grabbed at the store earlier.&lt;/p&gt;&lt;p&gt;I was in dire need of milk and eggs for breakfast, and some frozen meals for dinner.&lt;/p&gt;&lt;p&gt;I found a new one I haven’t tried before, and I’m so excited!&lt;/p&gt;&lt;p&gt;It has meatloaf and pudding in it, which is quite the interesting platter combination if you ask me!&lt;/p&gt;&lt;p&gt;They were out of strawberry popsicles sadly.&lt;/p&gt;&lt;p&gt;I also had time to run to our favorite video rental store, Barnaby’s, to grab some movies.&lt;/p&gt;&lt;p&gt;I got some old classics as well as a new horror movie that I am dying to watch.&lt;/p&gt;&lt;p&gt;I had a few extra dollars on me, so I went to the clearance bin and found a cheap game for the computer that I’m also going to try out later.&lt;/p&gt;&lt;p&gt;It’s about friendship, just what I need right now haha!&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;我购物清单上的很多东西是我早些时候在商店里搞到的。&lt;/p&gt;&lt;p&gt;我急需买点牛奶和鸡蛋当早餐，晚餐则得买些速冻食品。&lt;/p&gt;&lt;p&gt;我发现了个我以前从未尝试过的新的速冻食品，这真是让人兴奋！&lt;/p&gt;&lt;p&gt;里面有肉糕和布丁，要我说，这可是非常有趣的拼盘组合！&lt;/p&gt;&lt;p&gt;遗憾的是，草莓冰棍卖完了。&lt;/p&gt;&lt;p&gt;我也正好有时间跑到了我们最喜欢的Barnaby视频节目租赁店，租了些电影看。&lt;/p&gt;&lt;p&gt;我整了些经典老电影，以及一部我非常想看的新出的恐怖电影。&lt;/p&gt;&lt;p&gt;我身上还有点零钱，所以我去了家清仓的店，找到了个便宜的电脑游戏，今后我会玩玩看。&lt;/p&gt;&lt;p&gt;哈哈！那是关于友谊的一款游戏，正是我现在所需要的。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;T&lt;a href=&quot;#t&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Owen,&lt;/p&gt;&lt;p&gt;This might be the last thing I ever write to you, and I don’t even have it in me to send a real letter.&lt;/p&gt;&lt;p&gt;I’ll just have to put it all into this little game I will never be able to finish, and it breaks my heart.&lt;/p&gt;&lt;p&gt;Before the broken heart gets me, the cancer might first.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Owen，&lt;/p&gt;&lt;p&gt;这可能是我写给你的最后一封信了，可惜我甚至都没有能力寄一封真正的信。&lt;/p&gt;&lt;p&gt;现在我只能把心思全部投入到这个我永远无法完成的小游戏中，这让我很难过。&lt;/p&gt;&lt;p&gt;在难过的感觉到来之前，我的癌症可能会先到来。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;U&lt;a href=&quot;#u&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I am going to miss you, buddy.&lt;/p&gt;&lt;p&gt;I am going to miss you so damn much.&lt;/p&gt;&lt;p&gt;You are the light of my life.&lt;/p&gt;&lt;p&gt;If you’re reading and playing this now, then you’ll know that I love you.&lt;/p&gt;&lt;p&gt;I have always loved you.&lt;/p&gt;&lt;p&gt;-Dad&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;我会想你的，孩子。&lt;/p&gt;&lt;p&gt;我会非常非常想你的。&lt;/p&gt;&lt;p&gt;你就是我生命中的那束光。&lt;/p&gt;&lt;p&gt;如果你正在读这段文字并播放文字录音的话，你就会知道我有多么爱你。&lt;/p&gt;&lt;p&gt;我一直都很爱你。&lt;/p&gt;&lt;p&gt;——爸&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>Buddy Simulator 1984 - 来自上世纪的恐惧</title><link>https://blog.ymbit.cn/archives/buddy-simulator-1984/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/buddy-simulator-1984/</guid><pubDate>Wed, 19 Jun 2024 06:34:40 GMT</pubDate><content:encoded>&lt;blockquote&gt;&lt;p&gt;得益于下一代人工智能技术，BUDDY SIMULATOR 1984模拟了与最好的朋友一起闲逛的体验！你的伙伴向你学习，不断适应你的兴趣和个性。但最重要的是，你的朋友可以和你一起玩游戏！&lt;/p&gt;&lt;p&gt;Steam（我翻译不行，就这么看着吧）&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;保命：这款游戏只有英文没有中文，英语不好的还是去网上找汉化吧…与此同时这款游戏也是心理恐怖的（Steam上的Tag有写）类，但我实际玩上这实际就是有点恐怖游戏那味了，所以胆小的还是别玩了，跳脸很多（&lt;/p&gt;
&lt;p&gt;我貌似是第一次推荐这种游戏欸🤔&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;游戏背景&lt;a href=&quot;#游戏背景&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;游戏的预告片一开始展示了作为上世纪黑白主体风的游戏主体，且主要为命令行。&lt;/p&gt;&lt;p&gt;游戏最初开始，会有一个”人”来索要你的户籍来提供个性化服务（？）&lt;/p&gt;&lt;p&gt;当你被盒（？）完之后，电子宠物将会根据你给的信息提供个性化服务，有当大厂员工的潜力啊（&lt;/p&gt;&lt;p&gt;之后，这只宠物将会和你玩三个游戏，也就是&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;猜数字&lt;/li&gt;
&lt;li&gt;猜字母&lt;/li&gt;
&lt;li&gt;石头剪刀布&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;当然，你在猜字母的时候，上方就有个图像，你本以为这是个提示？不，这其实是一个上吊的一个人。&lt;/p&gt;&lt;p&gt;三个游戏玩完之后，可能会怕你无聊，主动寻找你电脑中其他游戏。&lt;/p&gt;&lt;p&gt;但它搜出了一个名称叫「Monday, April 2nd」也就是“四月二日，星期一”&lt;/p&gt;&lt;p&gt;虽说这是个游戏，但更认为这是个菜单。&lt;/p&gt;&lt;p&gt;之后它会向你要管理员权限，不是哥们你给我电脑整成这样我怎么相信你&lt;/p&gt;&lt;p&gt;给予了之后，游戏就关闭了。&lt;/p&gt;&lt;p&gt;之后启动游戏，你将会看到一个「The Adventure of {playername}」的游戏，这就是游戏的主题了。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;游戏主题&lt;a href=&quot;#游戏主题&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;游戏先是会从 2D 再从 2.5D 再到 3D 的更新迭代，在你游玩当中将会出现各式各样的游戏…漏洞？&lt;/p&gt;&lt;p&gt;当你进行到一半时，你的游戏左上角会弹出一个「文件已被生成」消息。这就是「好结局」一个最主要的一条线，这条文件将会存在「userdata\Documents\Buddy Simulator 1984」的一个文件夹中。这个文件的翻译是一个父亲写给一位孩子的信。父亲患有精神疾病，但依然单独自己一个人制作。且从文中得知因为父亲做了很多伤害孩子和孩子母亲的事情导致分开，可能是因为父亲经常酗酒使得他的精神状态很不好。&lt;/p&gt;&lt;p&gt;但…&lt;/p&gt;&lt;p&gt;父亲在万圣节的时候，发了一封信祝福孩子节日快乐。并告诉他游戏内的万圣节的服装就是按他最喜欢的服装设计的。&lt;/p&gt;&lt;p&gt;之后这位父亲做了一个数字人的游戏，可以猜出他的生日，也就是游戏最开始的猜数字。&lt;/p&gt;&lt;p&gt;不仅如此，父亲在在外买东西时买到了一份关于友谊的游戏，也就是游戏最初开始的「Monday, April 2nd」&lt;/p&gt;&lt;p&gt;之后，父亲养了一条狗，叫 Milo&lt;/p&gt;&lt;p&gt;之后可能是因为父亲经常酗酒导致患癌，他给孩子楼下了最后一封信。说自己已经没有能力写一封真正的信，只能讲他们藏匿于永远无法完成的游戏中。&lt;/p&gt;&lt;p&gt;最后父亲告诉孩子他很想念他，很爱他，他是父亲生命中的那一束光，他一直都很爱孩子。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;好结局&lt;a href=&quot;#好结局&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;你需要完成北境之地所有的委托，并保证游戏不会被破坏。&lt;/p&gt;&lt;p&gt;之后在3D化后，你的伙伴开始反思自己。开始对你陈述真实。&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;实际上，这款游戏并不是为你而做的，我永远无法想象一个人对一个孩子做出如此大牺牲，甚至这个孩子都没玩到这款游戏。我对这种爱陷入了疯狂。&lt;/p&gt;&lt;p&gt;Buddy（翻译）&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;之后他会带你进入一个走廊，挂载着你们经历过的故事。在走廊最后，伙伴给你留下了一个礼物。当你打开后，游戏显示宠物重新加入了游戏。&lt;/p&gt;&lt;p&gt;最后，世界即将崩塌，伙伴留下了最后一句话&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;我会想你的，我会特别特别想你的。&lt;/p&gt;&lt;p&gt;Buddy（翻译）&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;之后，屏幕彻底地黑了，它依然给我留下了最后一句话。&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;{playername}&lt;/p&gt;&lt;p&gt;thank you for waking me up&lt;/p&gt;&lt;p&gt;: )&lt;/p&gt;&lt;p&gt;Buddy&lt;/p&gt;&lt;/blockquote&gt;&lt;/section&gt;</content:encoded></item><item><title>乐子分享：北斗DDoS王北斗星移</title><link>https://blog.ymbit.cn/archives/beidouxingyi-hahaha/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/beidouxingyi-hahaha/</guid><pubDate>Mon, 10 Jun 2024 23:55:51 GMT</pubDate><content:encoded>&lt;p&gt;叠甲：关于他的英勇事迹早已没有图片看乐，可能现场的欢乐程度只有在 OpenFrp 的一群中看到了。实在抱歉（&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;我去 Argo 大蛇&lt;a href=&quot;#我去-argo-大蛇&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;首先我们的北斗星不移网先进的使用了我们的 Cloudflare Tunnel Argo 网络，使我们的访问速度爆发式反向增长啊。逝分的有实力。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/06/image-1024x726.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/06/a43799c36e354e83f88468ffdc3cfffd-1024x875.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;WAF&lt;a href=&quot;#waf&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;我们的北斗哥的 WAF 也是很有实力的，直接使用 Python 来写我们的 WAF，也是很有实力的啊。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/06/image-2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;主播啊，兄Dei啊，你知道 Python 的并发一向很差对吧（&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/06/image-1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;我去，D 哥上线&lt;a href=&quot;#我去d-哥上线&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/06/de9fb9ef501627ba4aecba6966d2a073_720-377x1024.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;这时候我只能说&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/06/52613b1ea40d3b9b486934c25085902f-432x1024.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/06/e1ba5adbbbdfc340a5546161b4451367-1024x795.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;我去 富哥&lt;a href=&quot;#我去-富哥&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;*此处已经没多少图片可看了，我尽量说清楚&lt;/p&gt;&lt;p&gt;不是哥们，你腾讯云CVM 4c8g Windows Server 2022 Datacenter 叫唤什么啊，3k块就给你装上了？&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/06/2ac8cb1211af9f0534f0c83021c6abfb_720-400x1024.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;甚至来装是我没想到的。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/06/77dfde1ee30947fc053521bcfbca5d70-489x1024.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;用腾讯云CVM导致的，笑死我了🤣。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/06/57ec0bc3d5425fcc989ed85e0921e2b2_720-856x1024.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/06/834a3d883c1a2102d83e72731db9167f_720-768x1024.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;不是哥们，怎么被打了&lt;a href=&quot;#不是哥们怎么被打了&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;主播乱传IP被打了吧🤣甚至还在骂 Cloudflare&lt;/p&gt;&lt;p&gt;乐死我了&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/06/e1ba5adbbbdfc340a5546161b4451367-1-1024x795.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;虚了&lt;a href=&quot;#虚了&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/06/3bf25a20dfe4e98ce40cc879d796c8fb_720-729x1024.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>Linux 小白向：装完Linux之后应该干什么</title><link>https://blog.ymbit.cn/archives/setup-linux/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/setup-linux/</guid><pubDate>Mon, 10 Jun 2024 23:20:42 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;安装完毕最初的登录向导&lt;a href=&quot;#安装完毕最初的登录向导&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;那玩意真的叫做登录向导吗🤔？&lt;/p&gt;&lt;p&gt;Linux 的发行版有很多，列如 Debian 系。CentOS 系，Arch 系等，最初登录进去的第一步虽然都不一样，但其实大差不差。列如 Debian，大部分人刚进入系统一般都会去更新软件包&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get update&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;当然，我们作为中国新时代运维选手的一号种子（不是），我们可能因为装不上软件包而抓狂而放弃我们的运维生涯。我们该怎么解决呢？&lt;/p&gt;&lt;p&gt;实际上，国内有很多的镜像源可以选择，列如腾讯云和阿里云，也有高校联合的镜像站。在圈内的高校镜像站比较出名的是 清华大学 TUNA 镜像站。这些大家可以在搜索引擎中搜到他们的切换源。我们以腾讯云源为例。&lt;/p&gt;&lt;p&gt;打开 /etc/apt/source.list 这个文件，你可以使用 VIM 打开，也可以使用 nano 打开这个文件，我们以 nano 为例子。&lt;/p&gt;&lt;p&gt;删除 archive.ubuntu.com 的域名，替换为 mirrors.cloud.tencent.com。按下 Ctrl+X 再按两下回车即可保存退出。当然如果你们高校校内有内网源我肯定是推荐你们使用那个源的，毕竟局域网的速度和公网的速度不是一个量级，且有些学校网络的收费标准还是以公网流量计算的&lt;/p&gt;&lt;p&gt;之后，再运行一次，不出意外的好，大概可能就成功更新了…吧？&lt;/p&gt;&lt;p&gt;部分运气极好的机器可能会因为时间不同导致SSL握手失败，你可以使用 date 命令临时更改下时间。&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;date -d &quot;year-month-day hour:minute:second&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;这下再运行，应该就不会出现什么原因了。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;依赖包安装&lt;a href=&quot;#依赖包安装&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;实际上，这个依旧是因人而异。&lt;/p&gt;&lt;p&gt;我只列出可能默认依赖包没有但我感觉很有必要的（？）一些包&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get install tmux zip unzip python3 vim htop gcc make openssl&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;tmux: 抽象意义上（？）的一款进程守护。推荐文章：&lt;a href=&quot;https://cloud.tencent.com/developer/article/1526675&quot; target=&quot;_blank&quot;&gt;可能是东半球最全面易懂的 Tmux 使用教程！( 强烈建议收藏 )-腾讯云开发者社区-腾讯云 (tencent.com)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;zip unzip: 这俩老哥我感觉没啥比较讲吧。zip 压缩软件，反之 unzip 就是解压缩 zip 的包。&lt;/p&gt;&lt;p&gt;python3：顾名思义，python软件包，虽然大部分发行包都会预装 python，但我依然建议另外再装一个，大部分的自动化都是以 python 为基础写的。若不想要可以不用装。&lt;/p&gt;&lt;p&gt;vim：对我来说最强的控制台编辑器，但是的教学基本可以出一本书了。。。推荐视频：&lt;a href=&quot;https://www.bilibili.com/video/BV1vj411172T/?spm_id_from=333.999.0.0&quot; target=&quot;_blank&quot;&gt;vim编辑器的使用_哔哩哔哩_bilibili&lt;/a&gt;&lt;/p&gt;&lt;p&gt;htop：一款性能监视器。&lt;/p&gt;&lt;p&gt;gcc：编译时要用，你可以当作是c++（？）&lt;/p&gt;&lt;p&gt;make：编译时要用，常用于 make &amp;amp;&amp;amp; make install&lt;/p&gt;&lt;p&gt;openssl：编译时要用，一般用于 nginx 的 SSL 模块。&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>暴力一锤：DDoS 服务商 OpenByte 乐子实录</title><link>https://blog.ymbit.cn/archives/openbyte-hahaha/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/openbyte-hahaha/</guid><pubDate>Wed, 29 May 2024 06:22:22 GMT</pubDate><content:encoded>&lt;p&gt;叠甲：本文章为揭露为主，可能有些许主观。若用侵犯到你请对号入座&lt;/p&gt;
&lt;p&gt;叠甲完毕&lt;/p&gt;
&lt;p&gt;你说的对，但是《OpenByte》是由 OpenByte团队 自主研发的一款全新 DDoS。游戏发生在一个被称作「 互联网 」的幻想世界，在这里，被 渗透者 选中的人将被授予「 DDoS 之力 」，导引 CC 之力。你将扮演一位名为「 DDoSer 」的神秘角色，在自由的旅行中邂逅性格各异、能力独特的 OpenByte 团队成员 们，和他们 共同使用OpenByte DDoS ——同时，逐步发掘「 ITDog 如红与 Kali 是我叠 」的真相。​&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;逆天官网&lt;a href=&quot;#逆天官网&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;我去哥们，直接去抄袭 OpenFrp 的官网，也是很有实力的。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/05/%E5%9B%BE%E7%89%87-1-1024x550.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;我们先不说这玩意这玩意抄不抄的问题，我们拉到最底下。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/05/%E5%9B%BE%E7%89%87-2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;《网上有害信息举报专区》，这下自首了。&lt;/p&gt;&lt;p&gt;然后你们猜猜那个 “Server DDos” 跳转链接是什么。&lt;/p&gt;&lt;p&gt;实际上，你们翻到本站底下的ICP备案号的跳转链接，诶是一样的工信部官网成靶场了。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;群聊&lt;a href=&quot;#群聊&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;应该来说是频道。&lt;/p&gt;&lt;p&gt;首先，我们的 OpenByte 大蛇直接在头上标上了我们”一用就进橘子”的 Kali Linux，生怕别人不知道他们不知道 Kali Linux 这个系统。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/05/%E5%9B%BE%E7%89%87-3-1024x683.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;再说他们的帖子。也是《很》有《实力》的啊。&lt;/p&gt;&lt;p&gt;我来给你们展示下他们的测试配置啊。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/05/%E5%9B%BE%E7%89%87-4-1024x361.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;人家不红就怪了捏😋&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;逆天言论&lt;a href=&quot;#逆天言论&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/05/%E5%9B%BE%E7%89%87-5.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/05/%E5%9B%BE%E7%89%87-6.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;Kali：你这样说我很没用诶。&lt;/p&gt;&lt;p&gt;我只能说&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/05/%E5%9B%BE%E7%89%87-7.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;我去，《没人用》&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/05/%E5%9B%BE%E7%89%87-8.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;十分甚至九分的有实力&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/05/d15eb9faad939df9d537b1b6a1c96890.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/05/089c5b124c3fa17bf8c2fdd1bd1117ac.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;怎么不说话了？&lt;a href=&quot;#怎么不说话了&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/05/%E5%9B%BE%E7%89%87-9.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/05/%E5%9B%BE%E7%89%87-10.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;🤣&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>PDD 内嵌提权代码，及动态下发dex分析</title><link>https://blog.ymbit.cn/archives/pdd-backdoor/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/pdd-backdoor/</guid><pubDate>Sun, 19 May 2024 21:12:15 GMT</pubDate><content:encoded>&lt;p&gt;参考链接：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/davinci1010/pinduoduo_backdoor&quot; target=&quot;_blank&quot;&gt;https://github.com/davinci1010/pinduoduo_backdoor&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://mp.weixin.qq.com/s/P_EYQxOEupqdU0BJMRqWsw&quot; target=&quot;_blank&quot;&gt;https://mp.weixin.qq.com/s/P_EYQxOEupqdU0BJMRqWsw&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://xz.aliyun.com/t/2364&quot; target=&quot;_blank&quot;&gt;https://xz.aliyun.com/t/2364&lt;/a&gt;&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;利用 Samsung 手机 &lt;code&gt;com.samsung.android.cepproxyks.CertByte&lt;/code&gt; 的提权漏洞&lt;a href=&quot;#利用-samsung-手机-comsamsungandroidcepproxykscertbyte-的提权漏洞&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;使用3月5日之前的版本，也就是版本为6.50版本之前&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://com-xunmeng-pinduoduo.en.uptodown.com/android/download/91472728&quot; target=&quot;_blank&quot;&gt;https://com-xunmeng-pinduoduo.en.uptodown.com/android/download/91472728&lt;/a&gt;&lt;/p&gt;&lt;p&gt;之后将将 apk 文件改为 zip 解压，打开以下目录&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;\assets\component\com.xunmeng.pinduoduo.AliveBaseAbility.7z\com.xunmeng.pinduoduo.AliveBaseAbility\vmp_src\mw1.bin&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;当然，这是加了壳的，根据上方的 GitHub 仓库脱壳之后的代码应该如下&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Public static Bundle makeBundleForSamsungSinceP(Intent intent){&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;Bundle bundle = new Bundle();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;Parcel obtain = Parcel.obtain();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;Parcel obtain2 = Parcel.obtain();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;Parcel obtain3 = Parcel.obtain();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(3);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(13);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(72);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(3);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(4);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeString(&quot;com.samsung.android.cepproxyks.CertByte&quot;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;byte b[] = new byte[0];&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeByteArray(b);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;21&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(13);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;22&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(72);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;23&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(53);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;24&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;25&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;26&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;27&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;28&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;29&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(1);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;30&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(1);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;31&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(13);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;32&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(72);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;33&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(48);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;34&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;35&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;36&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;37&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;38&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;39&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(13);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;40&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(-1);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;41&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;int dataPosition = obtain2.dataPosition();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;42&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeString(&quot;intent&quot;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;43&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInt(4);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;44&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeString(&quot;android.content.Intent&quot;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;45&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeToParcel(obtain3, 0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;46&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.appendFrom(obtain3, 0, obtain3.dataSize());&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;47&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;int dataPosition2 = obtain2.dataPosition();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;48&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.setDataPosition(dataPosition2 - 4);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;49&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.writeInit(dataPosition2 -dataPosition);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;50&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain2.setdataPosition(dataPosition2);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;51&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;int dataSize = obtain2.dataSize();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;52&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain.writeInt(dataSize);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;53&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain.writeInt(1279544898);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;54&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain.appendFrom(obtain2, 0, dataSize);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;55&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;obtain.setDataPosition(0);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;56&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;bundle.readFromParcel(obtain);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;57&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span&gt;return bundle;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;58&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;展开&lt;/span&gt;&lt;span&gt;收起&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;关于这些代码的意思，ChatGPT给出的解释：&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://chatgpt.com/share/5313eddc-1f76-4578-9cf4-8d61eab89635&quot; target=&quot;_blank&quot;&gt;https://chatgpt.com/share/5313eddc-1f76-4578-9cf4-8d61eab89635&lt;/a&gt;&lt;/p&gt;&lt;p&gt;首先 PDD 利用了 Samsung 的 &lt;a href=&quot;https://github.com/advisories/GHSA-7x25-8cjm-2rj9&quot; target=&quot;_blank&quot;&gt;CVE-2021-25337&lt;/a&gt; 的一个驱动内核信息泄露漏洞，之后再使用了使用 DECON driver 中的 UAF 漏洞（&lt;a href=&quot;https://github.com/advisories/GHSA-hhhg-3qxh-mmh3&quot; target=&quot;_blank&quot;&gt;CVE-2021-25370&lt;/a&gt;）利用 signalfd 系统调用修改 addr_limit，转化为内核任意地址读写，恭喜！你的手机已经被提权成功了。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;提权之后 PDD 干了什么&lt;a href=&quot;#提权之后-pdd-干了什么&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;首先利用了手机厂商 OEM 代码中导出的 root-path FileContentProvider， 进行 System App 和敏感系统应用文件读写（具体代码在参考链接中的微信文章）&lt;/p&gt;&lt;p&gt;当然，既然是 PDD 了，为了欺骗用户可谓是不择手段。不然为什么为啥要利用上方的 &lt;code&gt;FileContentProvider&lt;/code&gt;&lt;/p&gt;&lt;p&gt;利用上方的操作，直接突破沙箱机制、绕开权限系统改写系统关键配置文件为自身保活，修改用户桌面(Launcher)配置隐藏自身或欺骗用户实现防卸载。&lt;/p&gt;&lt;p&gt;做完这些，&lt;/p&gt;&lt;p&gt;动态下发dex，开始给自己保活，防卸载，然后搞数据， 比如：&lt;br /&gt;
&lt;code&gt;1a68d982e02fc22b464693a06f528fac.dex&lt;/code&gt; 读取用户手机上的app使用记录&lt;br /&gt;
&lt;code&gt;95cd95ab4d694ad8bdf49f07e3599fb3.dex&lt;/code&gt; 读取用户手机的应用通知。&lt;/p&gt;&lt;p&gt;不是，哥们。你是大厂子也敢这么干啊？&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/bushi_gemen.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>什么是公网和私网？</title><link>https://blog.ymbit.cn/archives/whats-network/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/whats-network/</guid><pubDate>Wed, 15 May 2024 20:39:21 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;私网IP&lt;a href=&quot;#私网ip&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;私网IP（局域网IP）是指在局域网（例如家庭、办公室或企业内部网络）中使用的IP地址。这些IP地址通常是保留给私有网络使用的，而不是公共互联网上可以直接访问的IP地址。私网IP地址范围是根据Internet Engineering Task Force (IETF) 的 RFC 1918 标准来定义的，通常包括以下三个私有地址段：&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;10.0.0.0 到 10.255.255.255&lt;/li&gt;
&lt;li&gt;172.16.0.0 到 172.31.255.255&lt;/li&gt;
&lt;li&gt;192.168.0.0 到 192.168.255.255&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;这些地址段的IP地址不会在公共互联网上路由，因此只能在局域网内部使用。使用私网IP地址有助于保护内部网络的安全，同时可以更有效地管理IP地址分配。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;RFC 标准是什么？&lt;a href=&quot;#rfc-标准是什么&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;RFC（Request for Comments）标准是由Internet Engineering Task Force（IETF，互联网工程任务组）制定的一系列文件，用于描述互联网的各种协议、技术和相关主题。这些文档提供了关于互联网标准、最佳实践、协议规范和其他技术方面的信息，并由全球网络社区共同制定和更新。&lt;/p&gt;&lt;p&gt;RFC最初是在 ARPANET（美国国防部高级研究计划局资助的早期计算机网络）上开发的，用于记录和发布网络协议、通信协议和相关信息。随着互联网的发展，RFC成为了互联网标准化和技术开发的重要文档系列，对互联网的设计、开发和运行起到了关键作用。&lt;/p&gt;&lt;p&gt;RFC并不像常规的标准文档那样被严格控制，而是通过社区共识的方式制定和更新。任何人都可以向IETF提交RFC文档，以提出新的协议、修订现有协议或分享技术经验。一旦RFC被接受并出版，它就成为了一个公开可用的技术文档，可以被全球范围内的网络工程师、研究人员和开发者使用。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;公网&lt;a href=&quot;#公网&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;公网IP是指在公共互联网上可被路由和访问的IP地址。与私网IP不同，公网IP地址是全球唯一的，用于识别互联网上的设备和主机。公网IP地址可以直接从Internet Assigned Numbers Authority（IANA，互联网数字分配机构）和其分配机构（例如亚太网络信息中心、美国互联网编号分配机构等）获得。&lt;/p&gt;&lt;p&gt;使用公网IP地址可以使设备直接与互联网上的其他设备通信，而不需要经过网络地址转换（NAT）或其他中间设备。这使得设备可以被全球范围内的其他设备访问和通信，例如通过Web浏览器、FTP客户端、电子邮件客户端等。&lt;/p&gt;&lt;p&gt;当设备连接到互联网时，它会被分配一个公网IP地址，这个地址是唯一的，并且可以在全球范围内被路由到设备所在的网络。公网IP地址通常由互联网服务提供商（ISP）分配给终端用户或组织。&lt;/p&gt;&lt;p&gt;公网IP地址的分配是由IANA和其下属的区域互联网注册管理机构（RIRs）进行管理。RIRs负责将IP地址块分配给各个国家或地区的ISP，然后ISP再将这些地址分配给其客户。&lt;/p&gt;&lt;p&gt;与私网IP地址不同，公网IP地址可以直接从任何地方访问，因为它们是全球唯一的。这使得公网IP地址适用于需要通过互联网进行直接通信的应用和服务，例如网站托管、在线游戏、视频流媒体、远程访问等。&lt;/p&gt;&lt;p&gt;然而，由于IPv4地址空间有限，且已经基本耗尽，因此IPv4公网IP地址的供应已经变得有限。为了解决这个问题，互联网正在逐渐转向IPv6，这个新的协议可以提供更广阔的地址空间，以满足日益增长的互联网连接需求。IPv6地址的长度远远超过了IPv4地址，因此可以为更多的设备提供全球唯一的公网IP地址。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;IPv6是什么&lt;a href=&quot;#ipv6是什么&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;IPv6是Internet Protocol version 6的缩写，是互联网协议的第六版。它是IPv4的后继版本，旨在解决IPv4中存在的一些限制和问题，特别是IP地址空间的枯竭问题。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;ASN（&lt;strong&gt;自治系统号&lt;/strong&gt;）是什么&lt;a href=&quot;#asn自治系统号是什么&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;自治系统：autonomous system。在互联网中，一个自治系统(AS)是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体，它是一个单独的可管理的网络单元(例如一所大学，一个企业或者一个公司个体)。一个自治系统有时也被称为是一个路由选择域（routing domain）。一个自治系统将会分配一个全局的唯一的号码，有时我们把这个号码叫做自治系统号（ASN）。&lt;/p&gt;&lt;p&gt;在互联网中，一个自治系统（英文：Autonomous system, AS）是指在一个（有时是多个）实体管辖下的所有IP网络和路由器的全体，它们对互联网执行共同的路由策略。参看RFC 1930中更新的定义。&lt;/p&gt;&lt;p&gt;最初时，该定义要求一个自治系统由一个单一实体管辖，通常是一个互联网服务提供商或一个拥有到多个网络的独立连接的大型组织，其遵循一个单一且明确的路由策略。参看RFC 1771，边界网关协议（BGP）的初始定义（现已废止）。由于多个组织可使用各自私有的自治系统编号来与同一个将它们连接到互联网的ISP之间运行BGP协议，因此得到较多应用的是RFC 1930中较新的定义。尽管ISP支持了这多个自治系统，但对互联网来说只能看到该ISP的路由策略。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;所以ISP必须具有一个公开且正式登记的自治系统编号（ASN）&lt;/strong&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;参考来源：&lt;a href=&quot;#参考来源&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;a href=&quot;https://www.cloudflare.com/zh-cn/learning/network-layer/what-is-an-autonomous-system&quot; target=&quot;_blank&quot;&gt;https://www.cloudflare.com/zh-cn/learning/network-layer/what-is-an-autonomous-system&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://zh.wikipedia.org/zh-hans/IPv4&quot; target=&quot;_blank&quot;&gt;https://zh.wikipedia.org/zh-hans/IPv4&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://zh.wikipedia.org/zh-hans/IPv6&quot; target=&quot;_blank&quot;&gt;https://zh.wikipedia.org/zh-hans/IPv6&lt;/a&gt;&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>LNMP Part 2: 使用编译安装 Nginx</title><link>https://blog.ymbit.cn/archives/lnmp-install-build-nginx/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/lnmp-install-build-nginx/</guid><pubDate>Sat, 04 May 2024 02:59:55 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;系统环境&lt;a href=&quot;#系统环境&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;网络上大部分都是使用 CentOS 来编译 Nginx 环境，那我们先说 CentOS 环境编译 Nginx&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;系统依赖包&lt;a href=&quot;#系统依赖包&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;首先你需要在 CentOS 系统中安装以下软件包：&lt;/p&gt;&lt;p&gt;编译环境：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo yum -y install gcc gcc-c++&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;http-rewrite pcre软件包（使 nginx 支持 http-rewrite）&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo yum install -y pcre pcre-devel&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;openssl-devel 软件包（使 nginx 支持 SSL）&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo yum install -y openssl openssl-devel&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;zilb 软件包（Nginx 必要）&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo yum install -y zlib zlib-devel gd gd-devel&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;下载 Nginx&lt;a href=&quot;#下载-nginx&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;打开 Nginx 官网（&lt;a href=&quot;https://nginx.org&quot; target=&quot;_blank&quot;&gt;https://nginx.org&lt;/a&gt;）&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/lnmp_install/nginx_website.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;你会看到一个较为简陋的一个官网，这就是 Nginx 官网。点击右侧的 download 链接打开它的下载页&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/lnmp_install/nginx_website_download.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;其中：&lt;/p&gt;&lt;p&gt;Mainline version：开发版本。是 Nginx 官方目录最主力制作的版本，它包含了最新的功能与 Bug 修复。所以这个版本包括一些实验模块，而且它也可能有一些新的bug，因此不建议生产环境使用。&lt;/p&gt;&lt;p&gt;Stable version：稳定版本，是最建议在生产环境中使用的版本。版本中所有的功能可能不是最新的，且仅修复了一些关键性的 bug ，由于这个版本中的功能会优先在 Mainline 版本中测试，所以此版本较为稳定，也推荐用于生产环境。&lt;/p&gt;&lt;p&gt;Legacy version：经典/老旧版本。Nginx 遗留的老版本的稳定版，除非需要适配老的数据需求，一般新生产环境不建议使用。&lt;/p&gt;&lt;p&gt;下载好了对应版本的 Nginx。你可以使用 curl 或是 wget 下载 nginx。&lt;/p&gt;&lt;p&gt;我们以 nginx 1.26.0 stable 版本举例，在终端中可以输入以下命令下载 nginx&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;wget https://nginx.org/download/nginx-1.26.0.tar.gz&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/lnmp_install/terminal_wget_nginx.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;当提示&lt;code&gt;‘nginx-1.26.0.tar.gz’ saved&lt;/code&gt; 时，说明我们已经下载好了 nginx&lt;/p&gt;&lt;p&gt;使用&lt;code&gt;tar -vxzf nginx-1.26.0.tar.gz&lt;/code&gt;解压 nginx，解压完毕之后进入 nginx 文件夹&lt;/p&gt;&lt;p&gt;之后在终端中输入以下命令进行配置&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo ./configure \&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--prefix=/usr/local/nginx \&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--pid-path=/var/run/nginx/nginx.pid \&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--lock-path=/var/lock/nginx.lock \&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--error-log-path=/var/log/nginx/error.log \&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--http-log-path=/var/log/nginx/access.log \&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--with-http_gzip_static_module \&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--http-client-body-temp-path=/var/temp/nginx/client \&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--http-proxy-temp-path=/var/temp/nginx/proxy \&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--http-scgi-temp-path=/var/temp/nginx/scgi \&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--with-http_stub_status_module \&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--with-http_ssl_module \&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--with-file-aio \&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;--with-http_realip_module&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;# 在某些情况下 你需要更改配置，但在大部分情况下你不需要更改&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;展开&lt;/span&gt;&lt;span&gt;收起&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;之后在终端中输入以下命令进行编译&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo make&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo make install&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;若出现没有 make 可使用以下命令安装&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo yum install make&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;大功告成！&lt;a href=&quot;#大功告成&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;成功之后，可以输入&lt;code&gt;nginx -V&lt;/code&gt;检查 nginx 是否安装完好。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Debian 的安装&lt;a href=&quot;#debian-的安装&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Debian 的安装与 CentOS 大差不差，但最重要的：CentOS 使用的是 yum 安装包（也就是 rpm）而 Debian 是 apt 安装包（deb 安装包）&lt;/p&gt;&lt;p&gt;所以在 Ubuntu 下，我们应该安装依赖的命令是：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt install -y gcc g++ openssl make libpcre3-dev zlib1g-dev&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;</content:encoded></item><item><title>如何将本地 LoCyanPureFrp 导入到 NyaLCF 中</title><link>https://blog.ymbit.cn/archives/purefrp-import-to-nyalcf/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/purefrp-import-to-nyalcf/</guid><pubDate>Thu, 02 May 2024 10:40:34 GMT</pubDate><content:encoded>&lt;p&gt;目前最新发布的版本已经上传至 GitHub Releases，本篇文章已经寿终正寝（？）&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;死亡回放（？）&lt;a href=&quot;#死亡回放&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;因为腾讯云的神仙操作，导致 locyan.cn 和 locyanfrp.cn 的 ICP 备案被取消。&lt;/p&gt;&lt;p&gt;目前在备案当中，现 @ 与 www 解析现已被暂停，导致鉴权不通过。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;如何操作&lt;a href=&quot;#如何操作&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;右键计算机—属性—高级系统设置—环境变量&lt;/p&gt;&lt;p&gt;在弹出的新窗口中，点击 新建&lt;/p&gt;&lt;p&gt;变量名：NYA_LCF_FRPC_PATH&lt;/p&gt;&lt;p&gt;变量值为你下载的文件，一般像是这样的路径：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;C:\Users\Konna\frp\frpc.exe&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;Linux/MacOS 在终端中输入：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;export NYA_LCF_FRPC_PATH = &quot;/usr/bin/frpc/frpc&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;一键配置&lt;a href=&quot;#一键配置&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Windows x64 版本：&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://api.ymbit.cn/public/files/autosetpath_windowsx64.exe&quot; target=&quot;_blank&quot;&gt;https://api.ymbit.cn/public/files/autosetpath_windowsx64.exe&lt;/a&gt;&lt;/p&gt;&lt;p&gt;若运行失败请尝试使用管理员运行&lt;/p&gt;&lt;p&gt;Linux：&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://api.ymbit.cn/public/files/autosetpath.py&quot; target=&quot;_blank&quot;&gt;https://api.ymbit.cn/public/files/autosetpath.py&lt;/a&gt;&lt;/p&gt;&lt;p&gt;使用&lt;code&gt;python3 autosetpath.py&lt;/code&gt;运行程序。若无法运行，请先运行以下命令&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;pip3 install tqdm aiohttp aiofiles&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;Windows源码：&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;from tqdm import tqdm&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;import io&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;import aiofiles&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;import zipfile&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;import aiohttp&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;import asyncio&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;import shutil&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;import os&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;import sys&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;import time&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;async def download_file(url, file_name):&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&quot;&quot;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;异步下载文件到指定路径。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;:param url: 文件的URL地址&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;:param file_name: 保存文件的本地路径及名称&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&quot;&quot;&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;21&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;async with aiohttp.ClientSession() as session:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;22&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;async with session.get(url) as response:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;23&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span&gt;if response.status == 200:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;24&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# 获取文件总大小&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;25&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;total_size = int(response.headers.get(&quot;content-length&quot;, 0))&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;26&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# 初始化tqdm进度条，total为文件总大小&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;27&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;with tqdm(&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;28&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;total=total_size, unit=&quot;B&quot;, unit_scale=True, desc=file_name&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;29&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;) as pbar:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;30&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# 使用异步写入方式将文件内容写入本地&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;31&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;with open(file_name, &quot;wb&quot;) as f:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;32&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;downloaded = 0&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;33&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;while True:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;34&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                            &lt;/span&gt;&lt;/span&gt;&lt;span&gt;chunk = await response.content.read(1024)  # 每次读取1KB数据&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;35&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                            &lt;/span&gt;&lt;/span&gt;&lt;span&gt;if not chunk:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;36&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;break&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;37&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                            &lt;/span&gt;&lt;/span&gt;&lt;span&gt;f.write(chunk)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;38&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                            &lt;/span&gt;&lt;/span&gt;&lt;span&gt;downloaded += len(chunk)  # 累加已下载字节数&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;39&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                            &lt;/span&gt;&lt;/span&gt;&lt;span&gt;pbar.update(len(chunk))&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;40&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;print(f&quot;文件 {file_name} 下载完成。&quot;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;41&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;42&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;43&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;async def main():&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;44&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;url = &quot;https://api.ymbit.cn/public/files/locyanfrp/frp_LoCyanFrp-0.51.3_windows_amd64.zip&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;45&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;file_name = &quot;frp_LoCyanFrp-0.51.3_windows_amd64.zip&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;46&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;await download_file(url, file_name)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;47&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;await unzip_file(file_name)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;48&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;49&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;50&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;async def unzip_file(file_name):&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;51&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;async with aiofiles.open(file_name, &quot;rb&quot;) as f:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;52&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;zip_data = await f.read()&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;53&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;zip_ref = zipfile.ZipFile(io.BytesIO(zip_data), &quot;r&quot;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;54&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;for name in zip_ref.namelist():&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;55&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;zip_ref.extract(name)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;56&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;zip_ref.close()  # 关闭 zip 文件对象&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;57&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;58&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;59&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;if __name__ == &quot;__main__&quot;:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;60&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;asyncio.run(main())&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;61&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;62&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;63&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;def set_path():&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;64&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;src_file = &quot;.\\frp_LoCyanFrp-0.51.3_windows_amd64\\frpc.exe&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;65&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;path_set = os.system(f&apos;set NYA_LCF_FRPC_PATH = &quot;{src_file}&quot;&apos;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;66&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;if path_set == 0:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;67&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;print(&quot;环境变量 NYA_LCF_FRPC_PATH 设置成功&quot;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;68&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;else:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;69&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;print(&quot;环境变量 NYA_LCF_FRPC_PATH 设置失败，使用文件移动方式更换版本，确认你的先前版本为 v0.51.3&quot;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;70&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;time.sleep(3)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;71&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;72&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;def move_file(src_path, dst_path):&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;73&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span&gt;try:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;74&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;shutil.move(src_path, dst_path)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;75&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;print(f&quot;文件 {src_path} 成功移动到 {dst_path}&quot;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;76&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;sys.exit(1)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;77&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span&gt;except shutil.Error as e:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;78&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;print(f&quot;移动文件时出错: {str(e)}&quot;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;79&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;sys.exit(1)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;80&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span&gt;except FileNotFoundError as fnf_error:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;81&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;print(f&quot;源文件 {src_path} 未找到: {str(fnf_error)}&quot;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;82&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;sys.exit(1)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;83&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span&gt;except PermissionError as perm_error:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;84&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;print(f&quot;无权限移动文件: {str(perm_error)}&quot;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;85&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;sys.exit(1)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;86&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span&gt;except Exception as generic_error:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;87&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;print(f&quot;其他错误: {str(generic_error)}&quot;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;88&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span&gt;sys.exit(1)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;89&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;90&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;src_file = &quot;.\\frp_LoCyanFrp-0.51.3_windows_amd64\\frpc.exe&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;91&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;dst_dir = &quot;%appdata%\\moe.xmcn.nyanana\\nyanana\\frpc\\0.51.3-2&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;92&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;dst_file = dst_dir + &quot;frpc.exe&quot;  # 目标文件路径   ，假设目标目录已存在&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;93&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;94&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# 确保目标目录存在&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;95&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;os.makedirs(dst_dir, exist_ok=True)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;96&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;move_file(src_file, dst_file)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;展开&lt;/span&gt;&lt;span&gt;收起&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/section&gt;</content:encoded></item><item><title>使用LNMP（纯环境）创建一个网站</title><link>https://blog.ymbit.cn/archives/lnmp-install/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/lnmp-install/</guid><pubDate>Thu, 02 May 2024 07:53:49 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;什么是LNMP？&lt;a href=&quot;#什么是lnmp&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux，N指Nginx，M一般指MySQL，也可以指MariaDB，P一般指PHP，也可以指Perl或Python。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Linux 安装&lt;a href=&quot;#linux-安装&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;目前 Linux 在服务器界最常见的有两个系，一是 Debian 系，还有就是 CentOS 系。&lt;/p&gt;&lt;p&gt;其中，CentOS 在服务器中最出名的是 RHEL，也就是Red Hat Enterprise Linux。但既然都说到了 Enterprise 了，在看看价格&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/lnmp_install/redhat_contact.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;嗯，一看就不是普通用户能用的（&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/lnmp_install/centos_download.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;但是呢，CentOS的源已经差不多死绝了，且大部分的镜像源厂商都没有提供一键切换 CentOS Stream 9 的源了。所以若你是未来要因这个靠这个吃饭，不太建议使用 CentOS ，可以尝试他的同系 RockyLinux。&lt;/p&gt;&lt;p&gt;还有就是 Debian 系了。&lt;/p&gt;&lt;p&gt;这就是我要说的 Debian Linux 系统了——它是完全开源自由的 Linux 系统。&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/lnmp_install/debian_why_choose_debian.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;Debian 还有一个它的亲兄弟，Ubuntu&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/lnmp_install/ubuntu_enterprise.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;Ubuntu 主要面向于企业客户。&lt;/p&gt;&lt;p&gt;但是别慌，Ubuntu 相比 Red Hat 来说，Ubuntu 本身是免费的，Ubuntu Pro 只是他的增值服务。且如果你的镜像是在 Ubuntu 中国站下载，你的管理包源也是在中国大陆，对小白极为友好。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;什么是 Nginx&lt;a href=&quot;#什么是-nginx&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;这个世界上有一个神奇的引擎，把这个引擎放进服务器的时候，可以实现多种功能。如果我们把这种功能统一用”未知数X”来表示，这个引擎我们可以叫做”Engine X”，也就是 Nginx 的发音。&lt;/p&gt;&lt;p&gt;Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器，同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点（俄文：Рамблер）开发的，第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布，因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;什么是 MySQL&lt;a href=&quot;#什么是-mysql&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;MySQL 是一个全球流行的开源数据库。&lt;a href=&quot;https://db-engines.com/en/ranking&quot; target=&quot;_blank&quot;&gt;DB-Engines&lt;/a&gt; 的数据显示，MySQL 在全球最受欢迎的数据库排名中高居第二位，仅次于 &lt;a href=&quot;https://www.oracle.com/cn/database/&quot; target=&quot;_blank&quot;&gt;Oracle Database&lt;/a&gt;。目前，全球访问量最高的流行应用的背后都有 MySQL 的身影，例如 Facebook、Twitter、Netflix、Uber、Airbnb、Shopify 和 Booking.com。&lt;/p&gt;&lt;p&gt;作为一个开源数据库，MySQL 在超过 25 年的发展历程中与全球用户密切合作，推出了众多先进功能，您喜欢的一些应用或编程语言很可能就是由 MySQL Database 提供支持的。&lt;/p&gt;&lt;p&gt;MySQL 的标志是一个海豚，名字叫做 “Sakila”。这个名字是从“海豚命名”竞赛中用户提议的一堆名字中选出来的，是来自非洲斯威士兰的开源软件开发人员 Ambrose Twebaze 提出的。&lt;/p&gt;&lt;p&gt;同时，MySQL 还有个分支，它叫做MariaDB&lt;/p&gt;&lt;p&gt;MariaDB Server 是一个通用的开源关系数据库管理系统。 它是世界上最受欢迎的数据库服务器之一，拥有包括 &lt;a href=&quot;https://wikipedia.org/&quot; target=&quot;_blank&quot;&gt;Wikipedia&lt;/a&gt;、&lt;a href=&quot;https://wordpress.com/&quot; target=&quot;_blank&quot;&gt;WordPress.com&lt;/a&gt; 和 &lt;a href=&quot;https://google.com/&quot; target=&quot;_blank&quot;&gt;Google&lt;/a&gt; 在内的知名用户。 MariaDB Server 在 GPLv2 开源许可下发布，并保证保持开源。&lt;/p&gt;&lt;p&gt;它可用于高可用性事务数据、分析、作为嵌入式服务器，并且广泛的工具和应用程序支持 MariaDB Server。&lt;/p&gt;&lt;p&gt;当 MariaDB Server 的前身 MySQL 于 2009 年被 Oracle 收购时，MySQL 创始人 Michael “Monty” Widenius 出于对 Oracle 管理权的担忧而分叉了该项目，并将新项目命名为 MariaDB。 MySQL 以他的第一个女儿 My 命名，而 MariaDB 则以他的第二个女儿 Maria 命名。这就是 MariaDB 的来历。&lt;/p&gt;&lt;p&gt;大多数原始开发人员加入了新项目，此后 MariaDB Server 继续快速发展。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;什么是 PHP Python&lt;a href=&quot;#什么是-php-python&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;先说PHP&lt;/p&gt;&lt;p&gt;PHP，全称 Hypertext Preprocessor ，中文翻译“超文本预处理器”&lt;/p&gt;&lt;p&gt;在PHP的官网是这样介绍PHP的&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;PHP is a popular general-purpose scripting language that is especially suited to web development.&lt;br /&gt;
Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;然后是 Python，它是一种&lt;a href=&quot;https://www.zhihu.com/search?q=%E9%80%9A%E7%94%A8%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80&amp;amp;search_source=Entity&amp;amp;hybrid_search_source=Entity&amp;amp;hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A3281485931%7D&quot; target=&quot;_blank&quot;&gt;通用编程语言&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Python是一种高级编程语言，&lt;strong&gt;它由荷兰人&lt;a href=&quot;https://www.zhihu.com/search?q=Guido%20van%20Rossum&amp;amp;search_source=Entity&amp;amp;hybrid_search_source=Entity&amp;amp;hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A3281485931%7D&quot; target=&quot;_blank&quot;&gt;Guido van Rossum&lt;/a&gt;于1989年创建&lt;/strong&gt;。Python的设计哲学强调&lt;strong&gt;代码的可读性和简洁性&lt;/strong&gt;，尤其是使用空格缩进划分代码块，而不是使用大括号或关键字。&lt;/p&gt;&lt;p&gt;Python的一个主要特点是它的语法简单明了，易于学习，这使得它成为初学者和专业人士的理想选择。&lt;/p&gt;&lt;p&gt;并且Python的一句名言是：&lt;strong&gt;“人生苦短，我用Python。”&lt;/strong&gt; 这句话强调了Python语言简洁、易读的特点，使得开发者能够更高效地编写代码。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;安装 LNMP&lt;a href=&quot;#安装-lnmp&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Linux：自行百度（&lt;/p&gt;&lt;p&gt;Nginx&lt;/p&gt;&lt;p&gt;你可以使用软件包安装 Nginx，这是最简单一种方式，你可以使用以下方式安装它：&lt;/p&gt;&lt;p&gt;Debian：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get install nginx&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;CentOS：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo yum install nginx&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;有些情况下，你还需要输入以下命令更新源：&lt;/p&gt;&lt;p&gt;Ubuntu：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get update&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;CentOS：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo yum update&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;MySQL&lt;/p&gt;&lt;p&gt;和 Nginx 一样，你可以使用以下方式安装它：&lt;/p&gt;&lt;p&gt;Debian：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get install mysql-server&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;CentOS：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo yum install mysql-server&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;PHP&lt;/p&gt;&lt;p&gt;我们如法炮制，使用管理包安装它：&lt;/p&gt;&lt;p&gt;Debian：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get install php&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;CentOS：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo yum install php&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;Python&lt;/p&gt;&lt;p&gt;Debian：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get install python3&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;CentOS：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo yum install python3&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;如果安装的包有软件要求，可以在 python 后添加大版本号安装 Python，例如&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get install python3.12&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo yum install python3.12&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;配置 LNMP&lt;a href=&quot;#配置-lnmp&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;这里主要以配置 Nginx 为主。&lt;/p&gt;&lt;p&gt;进入&lt;code&gt;/etc/nginx&lt;/code&gt;目前，你会看到&lt;code&gt;nginx.conf&lt;/code&gt;这个文件，它里面的信息应该为以下这些&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;user www-data;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;worker_processes auto;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;pid /run/nginx.pid;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;include /etc/nginx/modules-enabled/*.conf;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;events {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;worker_connections 768;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# multi_accept on;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;http {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;##&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# Basic Settings&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;##&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;sendfile on;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;tcp_nopush on;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;types_hash_max_size 2048;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# server_tokens off;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;21&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;22&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# server_names_hash_bucket_size 64;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;23&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# server_name_in_redirect off;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;24&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;25&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;include /etc/nginx/mime.types;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;26&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;default_type application/octet-stream;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;27&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;28&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;##&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;29&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# SSL Settings&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;30&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;##&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;31&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;32&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;33&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;ssl_prefer_server_ciphers on;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;34&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;35&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;##&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;36&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# Logging Settings&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;37&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;##&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;38&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;39&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;access_log /var/log/nginx/access.log;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;40&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;error_log /var/log/nginx/error.log;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;41&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;42&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;##&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;43&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# Gzip Settings&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;44&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;##&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;45&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;46&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;gzip on;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;47&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;48&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# gzip_vary on;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;49&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# gzip_proxied any;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;50&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# gzip_comp_level 6;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;51&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# gzip_buffers 16 8k;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;52&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# gzip_http_version 1.1;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;53&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;54&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;55&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;##&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;56&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;# Virtual Host Configs&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;57&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;##&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;58&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;59&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;include /etc/nginx/conf.d/*.conf;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;60&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;include /etc/nginx/sites-enabled/*;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;61&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;62&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;63&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;64&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#mail {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;65&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#       # See sample authentication script at:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;66&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#       # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;67&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;68&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#       # auth_http localhost/auth.php;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;69&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#       # pop3_capabilities &quot;TOP&quot; &quot;USER&quot;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;70&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#       # imap_capabilities &quot;IMAP4rev1&quot; &quot;UIDPLUS&quot;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;71&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;72&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#       server {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;73&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#               listen     localhost:110;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;74&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#               protocol   pop3;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;75&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#               proxy      on;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;76&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#       }&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;77&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;78&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#       server {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;79&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#               listen     localhost:143;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;80&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#               protocol   imap;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;81&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#               proxy      on;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;82&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#       }&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;83&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;#}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;展开&lt;/span&gt;&lt;span&gt;收起&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;这就是 Nginx 的配置文件，我们不讲这里面都是些什么。因为如果讲这些，还不如让你去看官方文档（&lt;/p&gt;&lt;p&gt;在服务器上创建一个文件夹，我以&lt;code&gt;/var/nginx/www&lt;/code&gt;为例子。在服务器上上输入以下命令：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo mkdir /var/nginx/www&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo chown -R nginx:nginx /var/nginx/www&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;find /var/nginx/www -type d -exec chmod 755 {} \;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;find /var/nginx/www -type f -exec chmod 644 {} \;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;接下来，在&lt;code&gt;/var/nginx/www&lt;/code&gt;中创建一个文件，我们可以在终端中输入：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo touch /var/nginx/www/index.php&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo nano /var/nginx/www/index.php&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;这样，我们就使用了 nano 打开了主程序文件夹 index.php，我们可以在这个文件中输入以下代码检测是否可用。&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;error_reporting(E_ALL);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;ini_set(&apos;display_errors&apos;, 1);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;echo &apos;&amp;lt;h1 style=&quot;text-align: center;&quot;&amp;gt;欢迎使用 PHP！&amp;lt;/h1&amp;gt;&apos;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;echo &apos;&amp;lt;h2&amp;gt;版本信息&amp;lt;/h2&amp;gt;&apos;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;echo &apos;&amp;lt;ul&amp;gt;&apos;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;echo &apos;&amp;lt;li&amp;gt;PHP版本：&apos;, PHP_VERSION, &apos;&amp;lt;/li&amp;gt;&apos;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;echo &apos;&amp;lt;/ul&amp;gt;&apos;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;echo &apos;&amp;lt;h2&amp;gt;已安装扩展&amp;lt;/h2&amp;gt;&apos;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;printExtensions();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;* 获取已安装扩展列表&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;*/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;function printExtensions()&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;echo &apos;&amp;lt;ol&amp;gt;&apos;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;21&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;foreach (get_loaded_extensions() as $i =&amp;gt; $name) {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;22&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span&gt;echo &quot;&amp;lt;li&amp;gt;&quot;, $name, &apos;=&apos;, phpversion($name), &apos;&amp;lt;/li&amp;gt;&apos;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;23&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;24&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span&gt;echo &apos;&amp;lt;/ol&amp;gt;&apos;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;25&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;26&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;展开&lt;/span&gt;&lt;span&gt;收起&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;最后，我们回到&lt;code&gt;/etc/nginx/nginx.conf&lt;/code&gt;中，在 events 块嵌入 server 块，例如这样&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;server{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;listen 80;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;server_name blog.ymbit.cn;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;root /var/nginx/www&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;index  index.php index.html index.htm;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;注意：server_name 后面需要跟上自己域名，若是在云服务器可使用服务器公网 IP，本地电脑可使用 localhost.&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;大功告成！&lt;a href=&quot;#大功告成&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;我们已经编写完了一个 PHP 网站，但是我们需要重载 nginx 服务才可正常访问，在服务器中输入以下命令：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo nginx -t    # 检查 nginx.conf 编写是否正确&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo nginx -s reload    # 若提示 successful，则就直接重载服务&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;现在，可以传入例如 WordPress 等任何你想搭建的服务了！&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>CVE-2024-3094 漏洞</title><link>https://blog.ymbit.cn/archives/cve-2024-3094/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/cve-2024-3094/</guid><pubDate>Sat, 30 Mar 2024 16:01:57 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;发生了什么事？&lt;a href=&quot;#发生了什么事&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;XZ-Utils 的 5.6.0-5.6.1 版本出现后门风险，本次投毒手法极为复杂，刻意规避代码审计，仅针对deb/rpm系打包，目的在于创造sshd pubkey登录后门。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;系统检查&lt;a href=&quot;#系统检查&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在 Terminal终端中输入以下命令&lt;/p&gt;&lt;p&gt;Debian/Ubuntu：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;apt list --installed 2&amp;gt;&amp;amp;1  grep xz  grep -E &apos;5.6.05.6.1&apos; &amp;amp;&amp;amp; echo &quot;!!! Check your system now&quot;  echo &quot;Everything is ok&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;MacOS：&lt;/p&gt;&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;brew info xz  grep xz  grep -E &apos;5.6.05.6.1&apos; &amp;amp;&amp;amp; echo &apos;!!! Check your system now&apos;  echo &apos;Everything is ok&apos;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;&lt;p&gt;若输出是&lt;code&gt;!!! Check your system now&lt;/code&gt;，则你将会受到此漏洞攻击，反之输出&lt;code&gt;Everything is ok&lt;/code&gt;，则你不会受到此漏洞攻击。&lt;/p&gt;&lt;p&gt;由于SSH底层依赖了liblzma等，攻击者可能利用这一漏洞在受影响的系统上绕过SSH的认证获得未授权访问权限，执行任意代码。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;解决建议&lt;a href=&quot;#解决建议&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;若您使用了受影响版本的XZ Util，建议您降级至 5.6.0 以下版本。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;经典笑话&lt;a href=&quot;#经典笑话&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;经典笑话：CentOS 7 因为太老，完美避开了新发现的所有漏洞。&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>为什么学计算机的都没几个人「真正的」朋友</title><link>https://blog.ymbit.cn/archives/computer-friends/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/computer-friends/</guid><pubDate>Thu, 14 Mar 2024 00:47:28 GMT</pubDate><content:encoded>&lt;p&gt;*观前提醒：本文章有些许主观，且我是站在我自己「学计算机」上探讨这个问题。会有些许出入。&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;Intro&lt;a href=&quot;#intro&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在探讨这个问题之前，我们不妨换个角度思考这个问题：为什么「没几个朋友」的人他就一定会是学计算机的呢？&lt;/p&gt;&lt;p&gt;答案似乎没什么定论，人们都有自己的说法&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;懒得去交友&lt;/li&gt;
&lt;li&gt;没时间去交友&lt;/li&gt;
&lt;li&gt;没有共同语言的人&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;但其实主观来看，互联网上也有志同道合的人，以此第三条不攻自破。&lt;/p&gt;&lt;p&gt;再说第一条，其实这个还是看每个人，有些人确实是懒，把精力放在这不去管交友之类的，亦或是真的懒（？）那其实这么说第二条也适用于这一条。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;对于「我」来说有什么看法&lt;a href=&quot;#对于我来说有什么看法&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;我这个人吧…虽说大家看我 QQ 好友比一般的人多得多。但我说实在话，真能聊得上的没几个，是真没多少个人。能和我谈上心的还会有几个呢？说难听点，可能我的存在也就是个情绪垃圾桶而已。更难听点，啥也不是我就。&lt;/p&gt;&lt;p&gt;我平生因为前几年一些事导致不太爱交友，以至于厌倦交友。以此我是认为「不是学计算机的人不是朋友少，亦有可能是其他原因等导致的现状。」&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;还有一个原因…&lt;a href=&quot;#还有一个原因&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;那就是原生家庭的原因。&lt;/p&gt;&lt;p&gt;简单想想一个场景，你在你的房间内捣鼓你的玩意，你的家庭冲进来一句话：「你搞这些有什么用，能当饭吃吗？」&lt;/p&gt;&lt;p&gt;这但凡有点自尊心的孩子都会崩溃吧，并不是原生家庭不好。孩子第一个教育就是在家庭当中，这就是为什么「子不教父子过」的来源所在。亦或是家长的急于求成，或是这就是所谓「应试教育」的现实状况吧…&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>风林水起乐子神话</title><link>https://blog.ymbit.cn/archives/flsq-hahaha/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/flsq-hahaha/</guid><pubDate>Fri, 23 Feb 2024 18:44:21 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;事情起因&lt;a href=&quot;#事情起因&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;《来，欺负下MCSL》&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://img.fastmirror.net/s/2023/09/23/650ead1486051.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;《什么，打一发》&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://img.fastmirror.net/s/2023/09/23/650eada338145.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;思想止于CloudFlare，HTTP请求就是废物&lt;a href=&quot;#思想止于cloudflarehttp请求就是废物&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;https://img.fastmirror.net/s/2023/09/23/650ea861ad20d.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;高潮了，不愧是止步于CloudFlare的若至&lt;/p&gt;&lt;p&gt;啊但是你说得对&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/myssl.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;现在Cloudflare都不用了，如果硬要说的话&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/cloudflare-pro-plan.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;同时HTTP请求并不是MCSL2专属啊。LLL&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;典&lt;a href=&quot;#典&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;https://img.fastmirror.net/s/2023/11/04/65462106e1c04.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;啊这时候我就要说了啊&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://blog.ymbit.cn/wp-content/uploads/2024/05/%E5%9B%BE%E7%89%87-1024x725.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;你打个鸡蛋啊，乐🤣👌&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>Untitled Post - 6</title><link>https://blog.ymbit.cn/archives/workers/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/workers/</guid><pubDate>Tue, 06 Feb 2024 02:41:45 GMT</pubDate><content:encoded>&lt;p&gt;以前工人是我们农民百姓尊重的对象， 是新中国的顶梁柱。 可是现在， 工人们现在是家长中的反面教材，又是我们瞧不起的对象。 以前，资本家是我们所要打败的敌人，被掠夺压榨的象征。 可现在人人都渴望成为资本家，将资本视为美好生活。 幸福的象征究竟是谁，是谁剥夺了工人的地位？ 建筑城市是工人创造的，科技是学者探索的，粮草是农民耕种的。 但， 资本家偷走了工人的尊严，偷走了学者的荣誉，毁坏了农民的名声。 如今人们都瞧不起工人，人人都崇拜资本家，人人都想成为资本家。 可是我们的房子都是工人建的，我们学的知识是学者研究的，我们吃的饭菜是农民种植的。 而我们崇拜的是嫌弃他们的资本家，他们又为谁而奋斗？我们的未来又在哪？&lt;/p&gt;</content:encoded></item><item><title>速报：幻兽帕鲁（PalWorld）服务器存在挖矿漏洞</title><link>https://blog.ymbit.cn/archives/palworld-vulnerability/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/palworld-vulnerability/</guid><pubDate>Sun, 28 Jan 2024 13:01:24 GMT</pubDate><content:encoded>&lt;section&gt;&lt;h2&gt;发生了什么事？&lt;a href=&quot;#发生了什么事&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;幻兽帕鲁（PalWorld）服务器存在挖矿漏洞 ——消息来源：简幻欢&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;如何触发这个漏洞&lt;a href=&quot;#如何触发这个漏洞&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;利用你服务器的IP地址和PalWorld所知漏洞拦截CPU即可利用你的服务器进行挖矿&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;自查&lt;a href=&quot;#自查&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Windows&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;桌面体验（也就是有桌面的系统）：&lt;a href=&quot;#桌面体验也就是有桌面的系统&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;打开任务管理器-性能&lt;/p&gt;&lt;p&gt;查看CPU与内存的波幅是否过于离谱（列如波幅很大，内存指标不正常）等&lt;/p&gt;&lt;p&gt;无桌面体验（无桌面化系统GUI）：&lt;/p&gt;&lt;p&gt;打开cmd输入&lt;code&gt;wmic memorychip &amp;gt;&amp;gt; ./memorychip.txt&lt;/code&gt;，或者使用tasklist检查服务器内的内存指标是否正常&lt;/p&gt;&lt;p&gt;Linux&lt;/p&gt;&lt;p&gt;进入终端输入&lt;code&gt;htop&lt;/code&gt;命令，查看CPU占用是否大于等于30%&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;如何解决&lt;a href=&quot;#如何解决&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;目前没有可用的解决办法，你只能&lt;code&gt;sudo rm -rf /*&lt;/code&gt;删除所有系统文件重装（&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;如何预防&lt;a href=&quot;#如何预防&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;别搞大型私服，自己和朋友玩就好，等官方修复罢&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>Hacknet - 从入门到入狱</title><link>https://blog.ymbit.cn/archives/hacknet/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/hacknet/</guid><pubDate>Tue, 23 Jan 2024 11:23:27 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/hacknet-image.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;你的回车键，足以改变世界。&lt;/p&gt;&lt;p&gt;知乎作者：网易爱玩&lt;/p&gt;&lt;/blockquote&gt;
&lt;section&gt;&lt;h2&gt;Hacknet 游戏背景&lt;a href=&quot;#hacknet-游戏背景&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在游戏开始，会有一个叫做Bit的人和你进行邮件沟通，会给你说一大堆话，比如当你看到这封邮件的时候，我应该已经不在了之类的话，甚至用上反讽的话来让你想要做给他看。&lt;/p&gt;&lt;p&gt;而当你去解决一项事情之后，紧接而来的是一个又一个进阶的任务，随着这些任务的进行，你会更加自由、熟练的在网络世界中穿梭遨游，没有你黑不进去的服务器，没有你看不了的私人隐秘。&lt;/p&gt;&lt;p&gt;正是因为这样，你会在不经意间，发现很多在网络世界中埋藏许久的秘密，这些秘密小到只是私人层次的有趣事件，大到能够影响世界的密谋。而你需要做的，就是完成Bit没有完成的事情，是否要继续，完全取决于你的头脑和手指。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Hacknet 游戏玩法&lt;a href=&quot;#hacknet-游戏玩法&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Hacknet 的 游戏玩法 和现实当中的 &lt;a href=&quot;https://wikipedia.nyanest.xyz/wiki/UNIX&quot; target=&quot;_blank&quot;&gt;Unix&lt;/a&gt; 的命令差不多，官方的说法是按照现实的 Unix 命令简化而来。&lt;/p&gt;&lt;p&gt;啊我咋就这么不信捏（并没有&lt;code&gt;rm&lt;/code&gt;的命令参数，列如&lt;code&gt;rm -r&lt;/code&gt;和&lt;code&gt;rm -f&lt;/code&gt;）&lt;/p&gt;&lt;p&gt;但总体来说，他确实可以作为一个微型的 Unix系统 使用（？）&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Hacknet 游戏特色&lt;a href=&quot;#hacknet-游戏特色&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;虽然说现实中没有&lt;code&gt;SSHCrask.exe&lt;/code&gt;和&lt;code&gt;FTPBounce.exe&lt;/code&gt;这么神奇的玩意，但是 Hacknet 的 Trace机制 也可以算做是服务器管理人员的反黑（反串黑）&lt;/p&gt;&lt;p&gt;同时 Hacknet 没有“等级”或者是明显的游戏元素来打破这一体验。你可以选择跟随Bit的邮件的指引，或是直接遨游在整个网络之中，探索并追寻信息的蛛丝马迹。&lt;/p&gt;&lt;p&gt;游戏不会限制你的游戏方式或让你按部就班。&lt;/p&gt;&lt;p&gt;游戏内容和学习曲线的设计，能够让初学者或有终端操作经验的人都能找到属于自己的快乐。&lt;/p&gt;&lt;p&gt;当你打完 Hacknet 的时候，你以为游戏就此结束了吗？&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Hacknet - Labyrinths&lt;a href=&quot;#hacknet---labyrinths&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/hacknet-labyrinths-image.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;加入黑客精英小队，破解复杂的数据。&lt;/p&gt;&lt;p&gt;加入DLC的方式有很多，不过都是同一种方式&lt;/p&gt;&lt;p&gt;通过Entropy进入DLC&lt;/p&gt;&lt;p&gt;进入Entropy任务服务器&lt;/p&gt;&lt;p&gt;若你目前有接受任务，请务必做完或放弃任务&lt;/p&gt;&lt;p&gt;寻找&lt;code&gt;#警告# - Kaguya的试炼&lt;/code&gt;，接受任务&lt;/p&gt;&lt;p&gt;通过CSEC进入DLC&lt;/p&gt;&lt;p&gt;进入 CSEC 服务器&lt;/p&gt;&lt;p&gt;若你目前有接受任务，请务必做完或放弃任务&lt;/p&gt;&lt;p&gt;寻找&lt;code&gt;ALART - Kagura Trials&lt;/code&gt;，接受任务&lt;/p&gt;&lt;p&gt;但是他byd几乎要3-4个小时才能打完啊（&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Hacknet - Labyrinths 主要特点&lt;a href=&quot;#hacknet---labyrinths-主要特点&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;**一个全新的篇章。**在原有故事的基础上加入了惊心动魄的3-4小时流程的新章节。你可以把它看做原有故事的拓展，也可以当做一个继续研究Hacknet的全新机会。&lt;/p&gt;&lt;p&gt;**团队工作。**你不再是独行侠，需要与你的队友在IRC交流，共同合作完成目标。&lt;/p&gt;&lt;p&gt;**危险而大胆的数据抢劫。**网络系统变得更加复杂，不是通过简简单单的“破门而入”就能解决问题。探索，适应，生存！&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Hacknet 小彩蛋&lt;a href=&quot;#hacknet-小彩蛋&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;我目前没找到有多少图，有图欢迎评论区（&lt;/p&gt;&lt;p&gt;*图片大多来自网络，侵删&lt;/p&gt;&lt;p&gt;《你还在玩盗版Hacknet？考虑入正吧！》&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/hacknet1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;《如何下载内存》&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/hacknet2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;/section&gt;</content:encoded></item><item><title>YanMoBit的戳一戳回应是怎么实现的？</title><link>https://blog.ymbit.cn/archives/ymb-nudge/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/ymb-nudge/</guid><pubDate>Mon, 22 Jan 2024 02:35:32 GMT</pubDate><content:encoded>&lt;p&gt;我们先来看Mirai Console Loader日志&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;2023&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;7&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;30&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;20&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;44&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt;55&lt;/span&gt;&lt;span&gt;&lt;span&gt; V&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;Bot.1373892821: Event: &lt;/span&gt;&lt;span&gt;NudgeEvent&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span&gt;from&lt;/span&gt;&lt;span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;NormalMember&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span&gt;2315049216&lt;/span&gt;&lt;span&gt;), &lt;/span&gt;&lt;span&gt;target&lt;/span&gt;&lt;span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;Bot&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span&gt;1373892821&lt;/span&gt;&lt;span&gt;), &lt;/span&gt;&lt;span&gt;subject&lt;/span&gt;&lt;span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;Group&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span&gt;904464532&lt;/span&gt;&lt;span&gt;), &lt;/span&gt;&lt;span&gt;action&lt;/span&gt;&lt;span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;戳了戳, &lt;/span&gt;&lt;/span&gt;&lt;span&gt;suffix&lt;/span&gt;&lt;span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;别看很乱，其实我们仅需要看Event冒号后面的记录：NudgeEvent&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;@channel&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;use&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;ListenerSchema&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span&gt;listening_events&lt;/span&gt;&lt;span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;NudgeEvent&lt;/span&gt;&lt;span&gt;]))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;接着，我们需要让Python知道让截取哪个BotQQ账号，那下一行就是输入&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;async&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;def&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;nudge&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;app&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; Ariadne&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;event&lt;/span&gt;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span&gt; NudgeEvent&lt;/span&gt;&lt;span&gt;): &lt;/span&gt;&lt;span&gt;# 使用async异步处理这条消息&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;即可完成戳一戳截取&lt;/p&gt;</content:encoded></item><item><title>OneShot - 被历史埋藏五年的感人神作</title><link>https://blog.ymbit.cn/archives/oneshot/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/oneshot/</guid><pubDate>Sun, 21 Jan 2024 19:28:41 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/oneshot-image.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;这世界已不再值得被拯救。&lt;br /&gt;
既然这样，你还是想试一试吗？&lt;/p&gt;&lt;p&gt;OneShot官方宣传片&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://api.ymbit.cn/images/oneshot-comments.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;观前提醒：本文章不讲述 OneShot 的攻略，若你因为攻略而来看这个文章的话，此篇文章不适合你。&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;OneShot 是什么&lt;a href=&quot;#oneshot-是什么&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Steam：“一次机会” 是一款超现实主义的、自上而下的迷宫/冒险游戏，其中的游戏功能独一无二。你的任务是指导一个小孩穿过神秘的世界，去完成复活死去已久的太阳的使命。这个世界知道你的存在。&lt;/p&gt;&lt;p&gt;维基百科：该作的游戏玩法和剧情均涉及大量&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E5%85%83%E6%B8%B8%E6%88%8F_(%E8%A7%92%E8%89%B2%E6%89%AE%E6%BC%94%E6%B8%B8%E6%88%8F)&quot; target=&quot;_blank&quot;&gt;元游戏&lt;/a&gt;的要素。游戏内的许多谜题需要玩家来到游戏之外，与&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F&quot; target=&quot;_blank&quot;&gt;操作系统&lt;/a&gt;进行一定互动才能解开。剧情中，&lt;a href=&quot;https://zh.wikipedia.org/wiki/%E7%8E%A9%E5%AE%B6&quot; target=&quot;_blank&quot;&gt;玩家&lt;/a&gt;和游戏内的主角Niko是两个分别独立存在的角色，而玩家需要一步步指导Niko的行动，引领他在失去太阳的世界当中四处探索，并最终通过将“太阳”带入世界中心的塔楼来拯救这个世界。&lt;/p&gt;&lt;p&gt;同时来说，&lt;code&gt;OneShot&lt;/code&gt;是一款&lt;code&gt;Meta&lt;/code&gt;游戏（同时又可以称为&lt;code&gt;元游戏&lt;/code&gt;）&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;Meta游戏（元游戏）是什么&lt;a href=&quot;#meta游戏元游戏是什么&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/353552323&quot; target=&quot;_blank&quot;&gt;知道自己是游戏的游戏？虚拟与现实的碰撞，浅谈Metagame - 知乎 (zhihu.com)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;简单来说：Meta游戏（元游戏），这个&lt;code&gt;游戏的主角&lt;/code&gt;/&lt;code&gt;整个游戏的人物&lt;/code&gt;知道&lt;strong&gt;这是个游戏&lt;/strong&gt;，并且游戏&lt;strong&gt;知道你在玩它&lt;/strong&gt;。也可以说就是&lt;strong&gt;打破了第四面墙&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;举例而言，独立游戏常用的一个Meta梗是这样的：你可能在玩&lt;a href=&quot;https://www.zhihu.com/search?q=%E4%BF%84%E7%BD%97%E6%96%AF%E6%96%B9%E5%9D%97&amp;amp;search_source=Entity&amp;amp;hybrid_search_source=Entity&amp;amp;hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A153993805%7D&quot; target=&quot;_blank&quot;&gt;俄罗斯方块&lt;/a&gt;，玩着玩着方块在空中卡住了，然后界面开始花屏崩溃，屏幕里什么东西跳出来告诉你这个游戏完蛋了，然后“真正的游戏内容”出现了。&lt;/p&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;游戏主题&lt;a href=&quot;#游戏主题&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;游戏世界中，在没有太阳的情况下，整个世界已经是一片荒芜，所到之处皆为不毛之地，甚至连居住在其中的有些居民也对其失去了信心。而就在这种情况下，我们需要指引着一位长得像小猫（实际上大部分行为都像猫）的小猫小孩Niko（原作中没有指明Niko的性别，但是按照”我”（？）的认为来称呼Niko）抱着这个世界的太阳——一个大灯泡，去把它装到这个世界的塔楼上。&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Ladies and gentlemen,kennyS!&lt;/p&gt;&lt;p&gt;天才少年羽绵&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;在此过程中，Niko会不停地询问你的意见，一直一直地毫无保留地相信你为她指的方向，与你分享或是美好或是尴尬的梦境，听从你的要求学机器人说话结果被机器人嘲笑，在无事可干的时候还会与你闲聊。在你的指引下，Niko从一个初到异地的慌慌张张的小孩子，逐渐安稳了下来，在有些时候还会有自己的想法能够与你讨论。Niko这一步步被我们看在眼里的故事与成长，都一点儿一点儿地使我们感受到：她是真实的。&lt;/p&gt;&lt;p&gt;但是享受这款游戏的时候，你更应该知道我们不仅仅是拯救世界，还要带Niko回家。&lt;/p&gt;&lt;p&gt;但你要面临一个抉择：&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;带Niko回家，但是这个世界会崩塌&lt;/li&gt;
&lt;li&gt;拯救世界，但是Niko会回不了家&lt;/li&gt;
&lt;/ul&gt;&lt;/section&gt;
&lt;section&gt;&lt;h2&gt;OneShot二周目&lt;a href=&quot;#oneshot二周目&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;没错！这款游戏还是有二周目的，这更像是一个重新选择的一个路子，但最后世界被拯救了，Niko也回家了。但你这是最后一次和Niko在一起的时候了……&lt;/p&gt;&lt;p&gt;走的时候，他会问你是否会记得这个世界和Niko她。你的回答只有一个：我会永远记住的。&lt;/p&gt;&lt;p&gt;但其实他还保存在Steam云存档上（&lt;/p&gt;&lt;p&gt;为防止剧透，文章只能说到这么多，懒是这样的。&lt;/p&gt;&lt;p&gt;本篇文章参考资料：&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.zhihu.com/question/67844019&quot; target=&quot;_blank&quot;&gt;如何评价OneShot（一次机会）这个游戏？ - 知乎 (zhihu.com)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/42796146&quot; target=&quot;_blank&quot;&gt;薄煎饼、灯泡与上帝的故事-《Oneshot》评测/游玩感想 - 知乎 (zhihu.com)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;OneShot官网：&lt;a href=&quot;https://www.oneshot-game.com/&quot; target=&quot;_blank&quot;&gt;https://www.oneshot-game.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Steam链接：&lt;a href=&quot;https://store.steampowered.com/app/420530/&quot; target=&quot;_blank&quot;&gt;https://store.steampowered.com/app/420530/&lt;/a&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;blockquote&gt;&lt;p&gt;我会永远记住这个世界的，照顾好自己，好吗？&lt;/p&gt;&lt;p&gt;Niko&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;/section&gt;</content:encoded></item><item><title>利用Linux系统开一个Minecraft服务器</title><link>https://blog.ymbit.cn/archives/runminecraftinlinux/</link><guid isPermaLink="true">https://blog.ymbit.cn/archives/runminecraftinlinux/</guid><pubDate>Wed, 17 Jan 2024 22:01:25 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;前提提要&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;总所不周知（？）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;的桌面化内存占用相比没有桌面化的系统占用来说会有很多的无用的内存被占用，但目前的中小型的服务商（包括雨云）大多都不会另外带一个没有桌面化系统Windows版本预留。&lt;/p&gt;
&lt;p&gt;那为何不使用Linux LiveServer操作系统呢？他并不会有另外的桌面内存占用，游戏服务器也有更多的冗余保持服务器的运行。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;缺点&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;其实很明显。&lt;/p&gt;
&lt;p&gt;没有了桌面化操作（GNOME）对于新手来说极为不友好。不友好会有这篇文章吗？&lt;/p&gt;
&lt;p&gt;那这篇文章就会教会你使用在无桌面环境下开一个Minecraft Paper服务器。&lt;/p&gt;
&lt;p&gt;干货警告&lt;/p&gt;
&lt;p&gt;没有任何的文章和网站能解决所有问题，遇到问题你应该先去使用搜索引擎搜索。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://bot.khbit.cn/question/how-to-search.html&quot; target=&quot;_blank&quot;&gt;KuoHuBit-如何正确选择并使用搜索引擎&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://lug.ustc.edu.cn/wiki/doc/smart-questions/&quot; target=&quot;_blank&quot;&gt;USTC-提问的智慧&lt;/a&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;想必你也看到了，这是基于&lt;strong&gt;Ubuntu&lt;/strong&gt;（版本号20.04）而衍生出的文章，若你不是Debian系操作系统（包括Debian、Ubuntu、Kali等任何Debian系分支）请跳转至其他操作系统的初步教学。&lt;/p&gt;
&lt;p&gt;连接Linux服务器一般都有一个SSH软件，如果你是****Windows 10 1809****以上的操作系统，Microsoft内置了SSH Client供你连接SSH服务器&lt;/p&gt;
&lt;p&gt;但无论如何都建议你安装一个SSH专业连接软件。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;保命提示（&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;以下纯属个人推荐，看你自己如何选择&lt;/p&gt;
&lt;p&gt;XShell：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.xshell.com/zh/free-for-home-school/&quot; target=&quot;_blank&quot;&gt;家庭和学生版&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.xshell.com/zh/xshell-download/&quot; target=&quot;_blank&quot;&gt;30天专业版（适用于企业）&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;FinalShell：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.hostbuf.com/t/988.html&quot; target=&quot;_blank&quot;&gt;论坛hostbuf免费下载链接&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.finalshell.org/&quot; target=&quot;_blank&quot;&gt;官方网站&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;例外&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Red Hat&lt;/strong&gt;系（包括CentOS、Red Hat等任何CentOS系分支）是可以按照此教程照葫芦画瓢完成这个初步教程。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;系统包更新&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;一个&lt;strong&gt;GNU/Linux&lt;/strong&gt;系统一般都会有一个系统管理包，列如Debian系的系统是apt管理包，但大部分的最新做出更改的系统都不会更新系统管理包列表包， 你第一步做出的应该是更新他的列表包。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo apt-get update&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;若你使用的是&lt;strong&gt;Red Hat&lt;/strong&gt;分支系统，你应该使用以下命令&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo yum update&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;系统依赖&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;一般一个游戏服务器都会要求安装一个依赖包，我们一般都可以使用`apt`、yum包安装这些依赖。&lt;/p&gt;
&lt;p&gt;列如Minecraft的服务器依赖包应该需要以下JRE包&lt;/p&gt;
&lt;p&gt;各Minecraft版本可在MCSL Docs中查找&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://mcsl.com.cn/doc/user/configure-server.html#java%E8%AE%BE%E7%BD%AE&quot; target=&quot;_blank&quot;&gt;https://mcsl.com.cn/doc/user/configure-server.html#java%E8%AE%BE%E7%BD%AE&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;OpenJDK 17&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get install openjdk-17-jre&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;OpenJDK 8&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get install openjdk-8-jre&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Tips&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;一般apt包到一定重量需要你输入`Y`以继续安装，你可以加上`-y`参数跳过安装，列如这样（apt系演示）&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get install -y openjdk-8-jre&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;下载开服核心&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;以Paper举例，若你要使用其他的开服核心，寻找他们的官方网站是一个最好的方式，而不是在评论底下瞎bb&lt;/p&gt;
&lt;p&gt;访问&lt;a href=&quot;https://papermc.io/&quot; target=&quot;_blank&quot;&gt;Paper团队官方网站&lt;/a&gt;，默认他是给你一个Paper团队最新研发出的新开服核心，但如果你选择老版本，你可以点击底下的 &lt;a href=&quot;https://papermc.io/downloads/all&quot; target=&quot;_blank&quot;&gt;build explore&lt;/a&gt;以选择其他的编译Minecraft版本。&lt;/p&gt;
&lt;p&gt;选择好版本之后，右键&lt;strong&gt;Download&lt;/strong&gt;选择复制链接，但不是点击下载。&lt;/p&gt;
&lt;p&gt;回到服务器当中，输入以下命令（Ubuntu、Windows、CentOS通用）&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;curl -O [url]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;在[url]替换成复制的链接即可。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;番外&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;一般大蛇就要说了&lt;/p&gt;
&lt;p&gt;啊你为什么不使用wget下载，你是不是不会Linux啊，LLL&lt;/p&gt;
&lt;p&gt;提一嘴，是可以使用wget下载，但是在Red Hat系统中，wget一般不会内置在Red Hat系统，反而curl命令是内置的，使用wget也不是不行。&lt;/p&gt;
&lt;p&gt;但是我们要保证的是简便，而不是用一个大佬形态看小白傻傻的弄，这种情况下，老馋的你就这么显现出来你不知了。&lt;/p&gt;
&lt;p&gt;开启服务器&lt;/p&gt;
&lt;p&gt;我们目前已经具备了开服核心和依赖环境。现在仅需简单配置即可。&lt;/p&gt;
&lt;p&gt;我的建议是，一定，一定，&lt;strong&gt;一定！！&lt;/strong&gt;，创建一个文件夹放置它们。Minecraft服务器会产生大量的文件在文件夹中（也就是`./`中），创建文件夹的命令是`mkdir`，后面跟上名字即可，同时不建议出现中文字符，尽量是全英文，因为你永远不知道大部分报错可能就是因为你的路径问题。&lt;/p&gt;
&lt;p&gt;在此之前，我们需要安装一个&lt;code&gt;tmux&lt;/code&gt;&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get install tmux&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo yum install tmux&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;这么做就是为了做好一个虚拟窗口，以至于我们关闭SSH窗口连带着Minecraft服务器一起关闭。&lt;/p&gt;
&lt;p&gt;虽然网络上已经有了很多tmux使用方式，为此我就简单讲讲（请记得将[session]换成其他名称，只能英文）&lt;/p&gt;
&lt;p&gt;创建窗口&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;tmux new -t [session]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;连接目前窗口&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;tmux at -t [session]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;或者&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;tmux a -t [session]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;连接至上一个窗口&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;tmux a&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;之后只需要启动服务器即可。那如何启动呢&lt;/p&gt;
&lt;p&gt;有一个适用于所有服务器的启动方式，那就是&lt;code&gt;java -jar [jarname]&lt;/code&gt;（将jarname替换成开服核心名称）&lt;/p&gt;
&lt;p&gt;但不建议这么做，所以建议加入&lt;code&gt;-Xmx&lt;/code&gt;和&lt;code&gt;-Xmn&lt;/code&gt;参数，具体百度上网搜索，tm别用百度&lt;/p&gt;
&lt;p&gt;一般第一次开服务器，会报这个错误&lt;/p&gt;
&lt;p&gt;&lt;code&gt;You need to agree to the EULA in order to run the server. Go to eula.txt for more info.&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;这其实就是未同意Mojang的协议，输入以下命令即可&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sed -i -e &apos;false&apos; -e &apos;true&apos; ./eula.txt&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;或者&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;sudo apt-get install nano &amp;amp;&amp;amp; nano eula.txt&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;修改false为true，之后按下Ctrl+X保存，回车两次即可。&lt;/p&gt;
&lt;p&gt;之后重启服务器即可。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;对于雨云NAT机器&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://forum.rainyun.com/t/topic/5595&quot; target=&quot;_blank&quot;&gt;雨云论坛- hhjmk&lt;/a&gt;&lt;/p&gt;
&lt;section&gt;&lt;h2&gt;Linux开服问题&lt;a href=&quot;#linux开服问题&quot;&gt;&lt;span&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;如果遇到开一会就遇到&lt;code&gt;[killed]&lt;/code&gt;的问题，请尝试将服务端的&lt;code&gt;-Xmx&lt;/code&gt;的使用降低，尽量低于系统1-2G即可&lt;/p&gt;&lt;/section&gt;</content:encoded></item></channel></rss>