<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>xagunelのblog</title><description>时矫首而遐观</description><link>https://blog.xomoe.cn/</link><language>zh_CN</language><item><title>软件清单</title><link>https://blog.xomoe.cn/posts/2026-05-13/program-list/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2026-05-13/program-list/</guid><description>防止重装系统后找不回来了</description><pubDate>Wed, 13 May 2026 17:10:38 GMT</pubDate><content:encoded>&lt;h1&gt;Windows&lt;/h1&gt;
&lt;h2&gt;优化类&lt;/h2&gt;
&lt;p&gt;驱动下载driver boost&lt;/p&gt;
&lt;p&gt;DriverStoreExplorer-v1.0.26&lt;/p&gt;
&lt;p&gt;系统清理PrivaZer&lt;/p&gt;
&lt;p&gt;火绒&lt;/p&gt;
&lt;p&gt;Windows11轻松设置&lt;/p&gt;
&lt;h2&gt;工具&lt;/h2&gt;
&lt;h3&gt;文件整理&lt;/h3&gt;
&lt;p&gt;批量重命名advanced_renamer、ReNamer、once_power&lt;/p&gt;
&lt;h3&gt;磁盘&lt;/h3&gt;
&lt;p&gt;制作重装盘 balenaEtcher、rufus&lt;/p&gt;
&lt;p&gt;DiskGenius&lt;/p&gt;
&lt;p&gt;FileZilla&lt;/p&gt;
&lt;p&gt;卸载工具HiBit Uninstaller、Geek Uninstaller&lt;/p&gt;
&lt;p&gt;360单文件工具&lt;/p&gt;
&lt;h2&gt;网络&lt;/h2&gt;
&lt;p&gt;内网测速homebox&lt;/p&gt;
&lt;p&gt;NETworkManager&lt;/p&gt;
&lt;h2&gt;图片&lt;/h2&gt;
&lt;p&gt;图片转换webp converter&lt;/p&gt;
&lt;p&gt;ImageGlass_x64&lt;/p&gt;
&lt;p&gt;截图工具snow shot&lt;/p&gt;
&lt;p&gt;快捷启动器dawn launcher&lt;/p&gt;
&lt;p&gt;多线程下载工具idm&lt;/p&gt;
</content:encoded></item><item><title>记录一次多种因素导致的乌龙-修复1panel登录</title><link>https://blog.xomoe.cn/posts/2026-03-17/error-linux-1panel/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2026-03-17/error-linux-1panel/</guid><description>装完zorin双系统，windows的系统时间乱了，导致进不去1panel，还以为被入侵了。</description><pubDate>Tue, 17 Mar 2026 20:56:14 GMT</pubDate><content:encoded>&lt;p&gt;感觉zorin美化的最现代，迫不及待装上了。上次不小心把数据盘装成了linux，数据都没了，100g和1000g在分区的时候实在是太像了。&lt;/p&gt;
&lt;p&gt;搜了一下解决方法，他们都说是由于缓存问题，又迫不及待寻找清理软件（d盘数据都没了），装完清理完还是没恢复。尝试了多个浏览器还是不行，最后手机上登录成功了。&lt;/p&gt;
&lt;p&gt;偶然撇了一眼时间，才发觉时间不对，可能是这个问题导致的双重认证密钥不对，但是1panel还在误导我，一直提示登陆成功（但是还在登陆界面）。&lt;/p&gt;
&lt;h2&gt;吐槽&lt;/h2&gt;
&lt;p&gt;还好没有咬牙重装服务器。&lt;/p&gt;
&lt;h2&gt;待解决&lt;/h2&gt;
&lt;p&gt;不知道为什么总是软件包更新失败，不管是用国内镜像源还是主服务器，开没开代理。&lt;/p&gt;
</content:encoded></item><item><title>root -kernelsu 资源清单</title><link>https://blog.xomoe.cn/posts/2026-03-15/root-help/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2026-03-15/root-help/</guid><description>整理到网盘里了，但还是不够,且数据丢了</description><pubDate>Sun, 15 Mar 2026 12:17:50 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;每次刷完系统都要重新下载各种模块、应用，遂写下此文备用&lt;/p&gt;
&lt;h2&gt;管理器&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://kernelsu.com/kernelsu-download.html&quot;&gt;kernelsu&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/KernelSU-Next/KernelSU-Next/releases&quot;&gt;kernelsu next&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;模块&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://kernelsu.com/lsposed-install.html&quot;&gt;LSPosed 安装教程&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/Dr-TSNG/ZygiskNext/releases/latest&quot;&gt;Zygisk-Next&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;LSPosed&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/LSPosed/LSPosed/releases/latest&quot;&gt;LSPosed&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/JingMatrix/LSPosed/releases/latest&quot;&gt;LSPosed第三方维护分支&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://modules.lsposed.org/module/top.hookvip.pro/&quot;&gt;NewHookVip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://modules.lsposed.org/module/com.polyhook.modules/&quot;&gt;PolyHook&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;应用&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/aistra0528/Hail&quot;&gt;雹&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://mt2.cn/download/&quot;&gt;MT管理器&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>rustfs s3利用cf加速下载、初步解决套了cdn鉴权失败的问题（worker版）</title><link>https://blog.xomoe.cn/posts/2026-02-04/rustfs-cf/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2026-02-04/rustfs-cf/</guid><description>还是搞不懂啊··</description><pubDate>Wed, 04 Feb 2026 18:02:50 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;之前尝试用minio自建s3，但是现在的镜像版本好像变得简略了，比如密钥什么都没有了、对中文也不是很支持。偶然在1panel上看见了rustfs，原生支持中文，而且使用非常简单。&lt;/p&gt;
&lt;p&gt;但是一直困扰我的问题还是没有解决。
1.有时候用nginx反代不需要其他特殊的设置就可以加速源站了，但是有时候不行。都是默认的bt面板配置。
2.套上cdn总是遇到鉴权失败的问题，有的cdn可行，有的不行。看了很多教程，都是修改请求头···看不懂。&lt;/p&gt;
&lt;p&gt;我尝试用了s3兼容的cdn，比如esa、和腾讯cdn，大部分情况下可用，有时候会突然访问不了。&lt;/p&gt;
&lt;p&gt;想到用ai解决我的问题，域名托管到了cf，不会修改nginx设置，最简单的办法就是创建worker&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;addEventListener(&apos;fetch&apos;, event =&amp;gt; {
  // 推荐加上这一行，发生异常时直接穿透到源站（比较安全）
  // event.passThroughOnException();

  event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
  // 只对 GET 请求做缓存处理
  if (request.method !== &apos;GET&apos;) {
    return fetch(request);
  }

  // 构造指向源站的 URL
  const url = new URL(request.url);
  url.hostname = &apos;origin-us-s3.xxmoe.com&apos;;   // ← 你的源站域名

  const originRequest = new Request(url, {
    method: request.method,
    headers: request.headers,
    redirect: &apos;follow&apos;
  });

  // 获取缓存
  const cache = caches.default;
  let response = await cache.match(originRequest);

  if (response) {
    console.log(&apos;Cache hit for:&apos;, request.url);
    return response;
  }

  console.log(&apos;Cache miss, fetching from origin:&apos;, url.toString());

  try {
    response = await fetch(originRequest);

    // 只缓存成功的二进制/大文件类型响应（可根据需要调整）
    if (response.ok &amp;amp;&amp;amp; response.status === 200) {
      // 克隆一份用于缓存
      const clonedResponse = response.clone();

      // 这里不能直接用 event，要用 Promise 方式缓存
      // 或者干脆不用 event.waitUntil 也可以（看需求）
      caches.default.put(originRequest, clonedResponse);
      // 或者用更安全的方式：
      // await caches.default.put(originRequest, clonedResponse);
    }

    return response;
  } catch (err) {
    console.error(&apos;Fetch failed:&apos;, err);
    // 出错了就直接返回源站错误，或者自定义错误页面
    return new Response(&apos;Origin fetch failed: &apos; + err.message, { status: 502 });
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;尾声&lt;/h2&gt;
&lt;p&gt;gemini思考的还是太复杂了，100多行的代码还是不能用。但是grok随便50行就解决了。可能grok搜素的比较好？&lt;/p&gt;
</content:encoded></item><item><title>R3S(arm)安装fnos，docker安装openwrt</title><link>https://blog.xomoe.cn/posts/2026-01-08/r3sfnosdockeropenwrt/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2026-01-08/r3sfnosdockeropenwrt/</guid><description>R3S(arm)安装fnos，并通过docker安装openwrt旁路由</description><pubDate>Thu, 08 Jan 2026 15:58:52 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;r3s单独安装openwrt太浪费了，我也想着把他物尽其用。但是之前fnos并没有arm架构的系统，也只好在debian和openwrt里选择了。
最近看到了arm架构的armbian，加上虚拟机安装openwrt，算是最好的实现方式了。但是看了&lt;a href=&quot;https://www.youtube.com/watch?v=YjMzyja9xWo&quot;&gt;悟空的教程&lt;/a&gt;，启动不了虚拟机，应该是r3s的uefi相关的问题。总之作废了。&lt;/p&gt;
&lt;p&gt;然后就想到了fnos的arm版，偶然看到了这篇‘ &lt;a href=&quot;https://club.fnnas.com/forum.php?mod=viewthread&amp;amp;tid=50068&quot;&gt;瑞芯微R3S刷飞牛做影音中心，实现看电影，IPTV自由&lt;/a&gt;’，想要fnos，又看到了docker版的openwrt。&lt;/p&gt;
&lt;p&gt;目前很多的教程都是安装&lt;a href=&quot;https://hub.docker.com/r/sulinggg/openwrt&quot;&gt;sulinggg/openwrt&lt;/a&gt;的docker镜像，但是太老了，18.06版本。很多软件、软件源都不支持，或者
尝试了市面上很多的镜像，发现这个&lt;a href=&quot;https://hub.docker.com/r/piaoyizy/openwrt-aarch64&quot;&gt;piaoyizy/openwrt-aarch64&lt;/a&gt;不错，是ImmortalWrt 24.10-SNAPSHOT，还算新。&lt;/p&gt;
&lt;h2&gt;正文&lt;/h2&gt;
&lt;h3&gt;fnos的安装&lt;/h3&gt;
&lt;p&gt;参照‘ &lt;a href=&quot;https://club.fnnas.com/forum.php?mod=viewthread&amp;amp;tid=50068&quot;&gt;瑞芯微R3S刷飞牛做影音中心，实现看电影，IPTV自由&lt;/a&gt;’，下载相应架构版本的系统，
&lt;strong&gt;https://pan.quark.cn/s/a040f6155f76#/list/share&lt;/strong&gt;
提取码: HXfS&lt;/p&gt;
&lt;p&gt;通过rufus把系统刷入sd卡，先插入sd卡、网线，最后打开电源。r3s前面的指示灯不亮是正常的，但是网线后端会闪光。随后在网线上层的路由器后台查看fnos的ip地址，进入飞牛。
fnos不让在安装盘存储东西，所以目前是在sd卡上刷入系统，用eMMC和外接硬盘。&lt;/p&gt;
&lt;h3&gt;docker使用&lt;/h3&gt;
&lt;p&gt;打开docker界面，在&lt;strong&gt;镜像仓库&lt;/strong&gt;搜索对应的镜像，下载不了可以在右上角设置镜像源或者代理。docker代理只能bro在网上自行寻找了。
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2026-01-08/PixPin_2026-01-08_15-58-52.png&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;
&lt;p&gt;下载&lt;a href=&quot;https://hub.docker.com/r/piaoyizy/openwrt-aarch64&quot;&gt;piaoyizy/openwrt-aarch64&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;使用ssh连接fnos，进入系统。&lt;/p&gt;
&lt;h4&gt;获取管理员权限&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;sudo -i
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;查看网络配置&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;ip a
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;记录当前&lt;strong&gt;网卡标识&lt;/strong&gt;（通常以eth0、eth1、enp1s0等形式出现）
需要的是对应局域网的ip对应的网卡。比如：我的局域网ip是192.168.31.71/24所以我记录了end0。
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2026-01-08/PixPin_2026-01-08_16-05-37.png&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;启用网卡混杂模式&lt;/h4&gt;
&lt;p&gt;将命令中的 end0 换为实际的网卡标识：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ip link set end0 promisc on
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;设置docker网络&lt;/h4&gt;
&lt;p&gt;将以下命令中的信息替换为您的环境参数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;192.168.31.0&lt;/code&gt; → 当前内网网段&lt;/li&gt;
&lt;li&gt;&lt;code&gt;192.168.31.1&lt;/code&gt;→ 网关IP地址（一般为路由器地址）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;end0&lt;/code&gt; → 获取的网卡标识&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.1 -o parent=end0 openwrt1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;可以看到在dokcer的网络中多了一个openwrt1网络&lt;/strong&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2026-01-08/PixPin_2026-01-08_16-10-38.png&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;启动容器&lt;/h4&gt;
&lt;p&gt;新手最好在ssh中运行命令，虽然fnos有图形化界面，但是还是容易出错。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker run --restart always --name openwrt -d --network openwrt1 --privileged piaoyizy/openwrt-aarch64:latest /sbin/init
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;name可以自行更换&lt;/p&gt;
&lt;h4&gt;设置openwrt&lt;/h4&gt;
&lt;p&gt;进入名字为openwrt的容器终端，通过&lt;code&gt;/bin/bash&lt;/code&gt;连接。推荐fnos的容器终端
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2026-01-08/PixPin_2026-01-08_16-13-57.png&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;
&lt;p&gt;输入法进入英文状态。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vi /etc/config/network
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;只需要更改‘lan’相关的设置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;config interface &apos;lan&apos;
        option device &apos;br-lan&apos;
        option proto &apos;static&apos;
        option ipaddr &apos;192.168.31.31&apos;
        option netmask &apos;255.255.255.0&apos;
        option ip6assign &apos;60&apos;
        option gateway &apos;192.168.31.1&apos;
        option dns &apos;192.168.31.1&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;输入&lt;code&gt;i&lt;/code&gt;进入insert模式，编辑配置
其中的ipaddr、gateway、dns根据实际网络环境更换。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;option ipaddr&lt;/code&gt;：设置为需要的旁路由地址，未被占用的IP地址&lt;/li&gt;
&lt;li&gt;&lt;code&gt;option gateway&lt;/code&gt;：设置为网关地址&lt;/li&gt;
&lt;li&gt;&lt;code&gt;option dns&lt;/code&gt;：设置为DNS服务器地址
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2026-01-08/PixPin_2026-01-08_16-15-30.png&quot; alt=&quot;img&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;完成配置&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;修改后按键盘的esc键，并输入&lt;code&gt;:wq&lt;/code&gt;，保存配置文件并退出编辑器&lt;/li&gt;
&lt;li&gt;对容器进行&lt;strong&gt;重启&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;## 访问OpenWrt后台&lt;/h3&gt;
&lt;p&gt;重启完成后，打开浏览器，输入设置的IP地址，进入openwrt。&lt;/p&gt;
&lt;h1&gt;参考资料&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://club.fnnas.com/forum.php?mod=viewthread&amp;amp;tid=50068&quot;&gt;瑞芯微R3S刷飞牛做影音中心，实现看电影，IPTV自由&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://doc.bee-link.com.cn/books/nas/page/dockeropenwrt&quot;&gt;飞牛Docker安装OpenWrt配置旁路由&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>openlist美化代码</title><link>https://blog.xomoe.cn/posts/2025-10-06/openlist-modify/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-10-06/openlist-modify/</guid><description>openlist美化</description><pubDate>Mon, 06 Oct 2025 12:37:40 GMT</pubDate><content:encoded>&lt;h2&gt;第一套&lt;/h2&gt;
&lt;p&gt;1.简洁版
开源地址：https://github.com/TheSmallHanCat/Better_Alist
效果：
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2025-10-06/325567402-6c5a7317-df58-4bc8-b469-92c8e664754b.png&quot; alt=&quot;img&quot; /&gt;
设置&amp;gt;&amp;gt;全局&amp;gt;&amp;gt;自定义头部&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;link href=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/Better_Alist@main/alist.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;设置&amp;gt;&amp;gt;全局&amp;gt;&amp;gt;自定义内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;script src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/Better_Alist@main/jq.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;div class=&quot;st-Container&quot;&amp;gt;
    &amp;lt;a style=&apos;display:none&apos; class=&quot;st-Menu closed&quot; id=&quot;st-Menu&quot; href=&quot;javascript:void(0);&quot;&amp;gt;&amp;lt;/a&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;sw-Hennnyano&quot; id=&quot;sw-Hennnyano&quot;&amp;gt;
    &amp;lt;div class=&quot;layer body w100&quot; data-depth=&quot;0.1&quot;&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;div class=&quot;layer eyes w100&quot; data-depth=&quot;0.2&quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;script src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/Better_Alist@main/js/lib.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/Better_Alist@main/js/parallax.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/Better_Alist@main/js/app.bundle.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;div id=&quot;jsi-flying-fish-container&quot; class=&quot;fish-container&quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;script src=&apos;https://cdn.jsdelivr.net/gh/sjhxlll/Better_Alist@main/fish.js&apos;&amp;gt;&amp;lt;/script&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2.改版，我发现左下角的小动物比较碍眼。所以删除了
设置&amp;gt;&amp;gt;全局&amp;gt;&amp;gt;自定义头部&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;link href=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/Better_Alist@main/alist.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;设置&amp;gt;&amp;gt;全局&amp;gt;&amp;gt;自定义内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;script src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/Better_Alist@main/jq.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;div class=&quot;st-Container&quot;&amp;gt;
    &amp;lt;a style=&apos;display:none&apos; class=&quot;st-Menu closed&quot; id=&quot;st-Menu&quot; href=&quot;javascript:void(0);&quot;&amp;gt;&amp;lt;/a&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;script src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/Better_Alist@main/js/lib.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/Better_Alist@main/js/parallax.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/Better_Alist@main/js/app.bundle.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;div id=&quot;jsi-flying-fish-container&quot; class=&quot;fish-container&quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;script src=&apos;https://cdn.jsdelivr.net/gh/sjhxlll/Better_Alist@main/fish.js&apos;&amp;gt;&amp;lt;/script&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;第二套&lt;/h2&gt;
&lt;p&gt;来自&lt;a href=&quot;https://anwen-anyi.github.io/index/05-head.html&quot;&gt;安安稳稳&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;设置&amp;gt;&amp;gt;全局&amp;gt;&amp;gt;自定义头部&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!--Alist V3建议添加的，已经默认添加了，如果你的没有建议加上--&amp;gt;
&amp;lt;script src=&quot;https://polyfill.alicdn.com/v3/polyfill.min.js?features=String.prototype.replaceAll&quot;&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;!--引入字体，全局字体使用--&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://npm.elemecdn.com/lxgw-wenkai-webfont@1.1.0/lxgwwenkai-regular.css&quot; /&amp;gt;

&amp;lt;!--评论系统使用的js--&amp;gt;
&amp;lt;script src=&quot;https://unpkg.com/valine/dist/Valine.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;!--不蒜子计数器--&amp;gt;
&amp;lt;script async src=&quot;https://busuanzi.9420.ltd/js&quot;&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;!-- Font6，自定义底部使用和看板娘使用的图标和字体文件--&amp;gt;
&amp;lt;link type=&quot;text/css&quot; rel=&quot;stylesheet&quot; href=&quot;https://npm.elemecdn.com/font6pro@6.3.0/css/fontawesome.min.css&quot; media=&quot;all&quot; /&amp;gt;
&amp;lt;link href=&quot;https://npm.elemecdn.com/font6pro@6.3.0/css/all.min.css&quot; rel=&quot;stylesheet&quot; /&amp;gt;

&amp;lt;!--音乐播放器所用的文件--&amp;gt;
&amp;lt;!-- require APlayer --&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css&quot; /&amp;gt;
&amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;!-- require MetingJS --&amp;gt;
&amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/meting@2.0.1/dist/Meting.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;style&amp;gt;
  /* 去除通知栏 右上角 X */
  .notify-render .hope-close-button {
    display: none;
  }
  /*去掉底部*/
  .footer {
    display: none !important;
  }

  /* 此选项两处CSS 在v3.31.0中已优化 滚动显示 和 右下角设置网格模式尺寸大小 */
  /* 文字超长自动换行 */
  /*.name-box .name {
    white-space: unset !important;
    overflow: unset !important;
    }*/
  /* 缩略图图片变大 代码中的160px 自己改 现在是注释状态若需要自行解除注释 */
  /*.obj-box &amp;gt; div {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr))
    }
    .obj-box &amp;gt; div .item-thumbnail{
    height: 100px;
    }*/

  /*
    图片API用法点进去都会有食用说明的,API来自网络不保证实效性稳定性自己测试
    樱花：https://www.dmoe.cc
    夏沫：https://cdn.seovx.com
    搏天：https://api.btstu.cn/doc/sjbz.php
    姬长信：https://github.com/insoxin/API
    小歪：https://api.ixiaowai.cn/
    保罗：https://api.paugram.com
    墨天逸：https://api.mtyqx.cn
    岁月小筑：https://img.xjh.me
    东方Project：https://img.paulzzh.com
    */
  /*白天背景图*/
  .hope-ui-light {
    background-image: url(&quot;http://47.98.147.165:15581/images/2025/02/25/__123150019_p0.jpg&quot;) !important;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    background-position-x: center;
  }
  /*夜间背景图*/
  .hope-ui-dark {
    background-image: url(&quot;https://pic.rmb.bdstatic.com/bjh/ebe942a9de49856f389c65f25a338335.png&quot;) !important;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    background-position-x: center;
  }

  /*主列表白天模式透明*/
  .obj-box.hope-stack.hope-c-dhzjXW.hope-c-PJLV.hope-c-PJLV-igScBhH-css {
    background-color: rgba(255, 255, 255, 0.5) !important;
  }
  /*主列表夜间模式透明*/
  .obj-box.hope-stack.hope-c-dhzjXW.hope-c-PJLV.hope-c-PJLV-iigjoxS-css {
    background-color: rgb(0 0 0 / 50%) !important;
  }
  /*readme白天模式透明*/
  .hope-c-PJLV.hope-c-PJLV-ikSuVsl-css {
    background-color: rgba(255, 255, 255, 0.5) !important;
  }
  /*readme夜间模式透明*/
  .hope-c-PJLV.hope-c-PJLV-iiuDLME-css {
    background-color: rgb(0 0 0 / 50%) !important;
  }


  /*顶部右上角切换按钮透明*/
  .hope-ui-light .hope-c-ivMHWx-hZistB-cv.hope-icon-button {
    background-color: rgba(255, 255, 255, 0.5) !important;
  }
  .hope-ui-dark .hope-c-ivMHWx-hZistB-cv.hope-icon-button {
    background-color: rgb(0 0 0 / 50%) !important;
  }


  /*右下角侧边栏按钮透明 第一个是白天 第二个是夜间*/
  .hope-ui-light .hope-c-PJLV-ijgzmFG-css {
    background-color: rgba(255, 255, 255, 0.5) !important;
  }
  .hope-ui-dark .hope-c-PJLV-ijgzmFG-css {
    background-color: rgb(0 0 0 / 50%) !important;
  }
  /*白天模式代码块透明*/
  .hope-ui-light pre {
    background-color: rgba(255, 255, 255, 0.1) !important;
  }
  /*夜间模式代码块透明*/
  .hope-ui-dark pre {
    background-color: rgba(255, 255, 255, 0) !important;
  }


  /*左侧侧边栏目录*/
  /*白天模式*/
  .hope-ui-light .hope-c-PJLV-ieGWMbI-css {
    background: rgba(255, 255, 255, 0.5) !important;
  }
  /*夜间模式*/
  .hope-ui-dark .hope-c-PJLV-ieGWMbI-css {
    background-color: rgb(0 0 0 / 50%) !important;
  }
  /* 返回顶部 */
  .hope-c-PJLV-ihVEsOa-css {
    background: rgba(255, 255, 255, 0.5) !important;
  }
  .hope-ui-dark .hope-c-PJLV-ihVEsOa-css {
    background-color: rgb(0 0 0 / 50%) !important;
  }


  /*顶部*/
  #root &amp;gt; .header {
    background: rgba(255, 255, 255, 0);
  }
  /*导航条*/
  /*白天模式*/
  .hope-ui-light .body &amp;gt; .nav {
    background-color: rgba(255, 255, 255, 0.5);
    border-radius: var(--hope-radii-xl);
  }
  /*夜间模式*/
  .hope-ui-dark .body &amp;gt; .nav {
    background-color: rgb(0 0 0 / 50%);
    border-radius: var(--hope-radii-xl);
  }
  /*隐藏导航条遮罩*/
  .body &amp;gt; .nav::after {
    display: none;
  }


  /*底部CSS，.App .table这三个一起的*/
  dibu {
    border-top: 0px;
    position: absolute;
    bottom: 0;
    width: 100%;
    margin: 0px;
    padding: 0px;
  }
  .App {
    min-height: 85vh;
  }
  .table {
    margin: auto;
  }

  
  /*全局字体*/
  * {
    font-family: LXGW WenKai;
  }
  * {
    font-weight: bold;
  }
  body {
    font-family: LXGW WenKai;
  }

  /*以下为评论系统专用*/
  /*适配大小契合度*/
  .newValine {
    width: min(96%, 940px);
    flex-direction: column;
    row-gap: var(--hope-space-2);
    border-radius: var(--hope-radii-xl);
    padding: var(--hope-space-2);
    box-shadow: var(--hope-shadows-lg);
  }
  /*评论区 - 白天模式透明度*/
  .hope-ui-light .newValine {
    background-color: rgba(255, 255, 255, 0.5) !important;
  }
  /*评论区 - 夜间模式透明度*/
  .hope-ui-dark .newValine {
    background-color: rgb(0 0 0 / 50%) !important;
  }
  /*输入栏里面跳舞的小人背景图,jsdelivr加载慢的可以自己替换或者删掉*/
  .vedit {
    background-image: url(&quot;https://cdn.jsdelivr.net/gh/anwen-anyi/imgAnwen/images/OuNiJiang.gif&quot;);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: right bottom;
    transition: all 0.25s ease-in-out 0s;
  }
  textarea#comment-textarea:focus {
    background-position-y: 120px;
    transition: all 0.25s ease-in-out 0s;
  }


  /*渐变背景CSS*/
  #canvas-basic {
    position: fixed;
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -999;
  }


  /* 以下为音乐播放器额外配置 */
  /* 如果你想要音乐播放器不是很靠底部可以自己设置一下数值 0是靠最底部 */
  .aplayer .aplayer-body,
  .aplayer.aplayer-withlist {
    bottom: 0rem !important;
  }
  /*音乐播放器进一步进行隐藏*/
  /* 需要就加不需要就不用加 */
  .aplayer.aplayer-fixed.aplayer-narrow .aplayer-body {
    left: -66px !important;
  }
  .aplayer.aplayer-fixed.aplayer-narrow .aplayer-body:hover {
    left: 0 !important;
  }
&amp;lt;/style&amp;gt;
&amp;lt;!-- 雪花 --&amp;gt;
&amp;lt;script src=&quot;https://api.vvhan.com/api/script/snow&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;设置&amp;gt;&amp;gt;全局&amp;gt;&amp;gt;自定义内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;!--延迟加载--&amp;gt;
&amp;lt;!--如果要写自定义内容建议都加到这个延迟加载的范围内--&amp;gt;
&amp;lt;div id=&quot;customize&quot; style=&quot;display: none;&quot;&amp;gt;
    &amp;lt;div&amp;gt;
		&amp;lt;!--音乐播放器--&amp;gt;
        &amp;lt;meting-js fixed=&quot;true&quot; autoplay=&quot;false&quot; theme=&quot;#409EFF&quot; list-folded=&quot;true&quot; auto=&quot;https://music.163.com/#/playlist?id=993041044&quot;&amp;gt;&amp;lt;/meting-js&amp;gt;
		
		&amp;lt;!--评论模块还有下面的script也是--&amp;gt;
		&amp;lt;center&amp;gt;
			&amp;lt;div class=&quot;newValine&quot; id=&quot;vcomments&quot;&amp;gt;&amp;lt;/div&amp;gt;
		&amp;lt;/center&amp;gt;
		&amp;lt;script&amp;gt;
			new Valine({
				visitor: true,
				el: &apos;#vcomments&apos;,
				avatar: &apos;wavatar&apos;,
				appId: &apos;XVu5uGyeWQCUayGYC0wwlg1B-gzGzoHsz&apos;,
				appKey: &apos;2nw7sXBAhUf4SimNycb3lmoL&apos;,
				placeholder: &quot;有什么问题欢迎评论区留言~么么哒&quot;
			}) 
		&amp;lt;/script&amp;gt;

        &amp;lt;br /&amp;gt;
        &amp;lt;center class=&quot;dibu&quot;&amp;gt;
            &amp;lt;div style=&quot; line-height: 20px;font-size: 9pt;font-weight: bold;&quot;&amp;gt;
                &amp;lt;span&amp;gt;
                    &quot;
                    &amp;lt;span style=&quot;color: rgb(13, 109, 252); font-weight: bold;&quot; id=&quot;hitokoto&quot;&amp;gt;
                        &amp;lt;a href=&quot;#&quot; id=&quot;hitokoto_text&quot;&amp;gt;
                            &quot;人生最大的遗憾,就是在最无能为力的时候遇到一个想要保护一生的人.&quot;
                        &amp;lt;/a&amp;gt;
                    &amp;lt;/span&amp;gt; &quot;
                &amp;lt;/span&amp;gt;
                &amp;lt;p style=&quot;margin-left: 10rem;font-size: 8pt;&quot;&amp;gt;
                    &amp;lt;small&amp;gt;
                        —— Anwen&apos;s Cloud
                    &amp;lt;/small&amp;gt;
                &amp;lt;/p&amp;gt;
            &amp;lt;/div&amp;gt;

            &amp;lt;div style=&quot;font-size: 13px; font-weight: bold;&quot;&amp;gt;
                &amp;lt;span class=&quot;nav-item&quot;&amp;gt;
                    &amp;lt;a class=&quot;nav-link&quot; href=&quot;xxxxxxxxxx&quot;
                        target=&quot;_blank&quot;&amp;gt;
                        &amp;lt;i class=&quot;fab fa-qq&quot; style=&quot;color:#409EFF&quot; aria-hidden=&quot;true&quot;&amp;gt;
                        &amp;lt;/i&amp;gt;
                        QQ |
                    &amp;lt;/a&amp;gt;
                &amp;lt;/span&amp;gt;
                &amp;lt;span class=&quot;nav-item&quot;&amp;gt;
                    &amp;lt;a class=&quot;nav-link&quot; href=&quot;mailto:xxxxx@foxmail.com&quot; target=&quot;_blank&quot;&amp;gt;
                        &amp;lt;i class=&quot;fa-duotone fa-envelope-open&quot; style=&quot;color:#409EFF&quot; aria-hidden=&quot;true&quot;&amp;gt;
                        &amp;lt;/i&amp;gt;
                        邮箱 |
                    &amp;lt;/a&amp;gt;
                &amp;lt;/span&amp;gt;
                &amp;lt;span class=&quot;nav-item&quot;&amp;gt;
                    &amp;lt;a class=&quot;nav-link&quot; href=&quot;xxxxxx&quot; target=&quot;_blank&quot;&amp;gt;
                        &amp;lt;i class=&quot;fas fa-edit&quot; style=&quot;color:#409EFF&quot; aria-hidden=&quot;true&quot;&amp;gt;
                        &amp;lt;/i&amp;gt;
                        博客 |
                    &amp;lt;/a&amp;gt;
                &amp;lt;/span&amp;gt;
                &amp;lt;span class=&quot;nav-item&quot;&amp;gt;
                    &amp;lt;a class=&quot;nav-link&quot; href=&quot;xxxxxxxx&quot; target=&quot;_blank&quot;&amp;gt;
                        &amp;lt;i class=&quot;fas fa-comment-lines&quot; style=&quot;color:#409EFF;&quot; aria-hidden=&quot;true&quot;&amp;gt;
                        &amp;lt;/i&amp;gt;
                        留言 |
                    &amp;lt;/a&amp;gt;
                &amp;lt;/span&amp;gt;
                &amp;lt;span class=&quot;nav-item&quot;&amp;gt;
                    &amp;lt;a class=&quot;nav-link&quot; href=&quot;xxxxxxx&quot; target=&quot;_blank&quot;&amp;gt;
                        &amp;lt;i class=&quot;fa fa-cloud-download&quot; style=&quot;color:#409EFF;&quot; aria-hidden=&quot;true&quot;&amp;gt;
                        &amp;lt;/i&amp;gt;
                        云盘 |
                    &amp;lt;/a&amp;gt;
                &amp;lt;/span&amp;gt;
                &amp;lt;!--后台入口--&amp;gt;
                &amp;lt;span class=&quot;nav-item&quot;&amp;gt;
                    &amp;lt;a class=&quot;nav-link&quot; href=&quot;/@manage&quot; target=&quot;_blank&quot;&amp;gt;
                        &amp;lt;i class=&quot;fa-solid fa-folder-gear&quot; style=&quot;color:#409EFF;&quot; aria-hidden=&quot;true&quot;&amp;gt;
                        &amp;lt;/i&amp;gt;
                        管理 |
                    &amp;lt;/a&amp;gt;
                &amp;lt;/span&amp;gt;
                &amp;lt;!--版权，请尊重作者--&amp;gt;
                &amp;lt;span class=&quot;nav-item&quot;&amp;gt;
                    &amp;lt;a class=&quot;nav-link&quot; href=&quot;https://github.com/Xhofe/alist&quot; target=&quot;_blank&quot;&amp;gt;
                        &amp;lt;i class=&quot;fa-solid fa-copyright&quot; style=&quot;color:#409EFF;&quot; aria-hidden=&quot;true&quot;&amp;gt;
                        &amp;lt;/i&amp;gt;
                        Alist
                    &amp;lt;/a&amp;gt;
                &amp;lt;/span&amp;gt;
				&amp;lt;br /&amp;gt;
				&amp;lt;!--添加一个访问量--&amp;gt;
				&amp;lt;span&amp;gt;
                    本&quot;&amp;lt;span style=&quot;color: rgb(13, 109, 252); font-weight: bold;&quot;&amp;gt;&amp;lt;a href=&quot;#&quot;&amp;gt;目录&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&quot;访问量 &amp;lt;span id=&quot;busuanzi_page_pv&quot; style=&quot;color: rgb(13, 109, 252); font-weight: bold;&quot;&amp;gt;&amp;lt;/span&amp;gt; 次 本站总访问量 &amp;lt;span id=&quot;busuanzi_site_pv&quot; style=&quot;color: rgb(13, 109, 252); font-weight: bold;&quot;&amp;gt;&amp;lt;/span&amp;gt;                次 本站总访客数 &amp;lt;span id=&quot;busuanzi_site_uv&quot; style=&quot;color: rgb(13, 109, 252); font-weight: bold;&quot;&amp;gt;&amp;lt;/span&amp;gt; 人
                &amp;lt;/span&amp;gt;
                &amp;lt;br /&amp;gt;
				&amp;lt;!--添加备案信息--&amp;gt;
                &amp;lt;span class=&quot;nav-item&quot;&amp;gt;
                    &amp;lt;a class=&quot;nav-link&quot; href=&quot;https://beian.miit.gov.cn/#/Integrated/index&quot; target=&quot;_blank&quot;&amp;gt;
                        &amp;lt;i class=&quot;fa-solid fa-shield-check&quot; style=&quot;color:#409EFF;&quot; aria-hidden=&quot;true&quot;&amp;gt;
                        &amp;lt;/i&amp;gt;
                        冀 ICP备2222000777号
                    &amp;lt;/a&amp;gt;
                &amp;lt;/span&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/center&amp;gt;
        &amp;lt;br /&amp;gt;
        &amp;lt;br /&amp;gt;
    &amp;lt;/div&amp;gt;



    &amp;lt;!--一言API--&amp;gt;
    &amp;lt;script src=&quot;https://v1.hitokoto.cn/?encode=js&amp;amp;select=%23hitokoto&quot; defer&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;!--延迟加载范围到这里结束--&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;!--延迟加载配套使用JS--&amp;gt;
&amp;lt;script&amp;gt;
    let interval = setInterval(() =&amp;gt; {
        if (document.querySelector(&quot;.footer&quot;)) {
            document.querySelector(&quot;#customize&quot;).style.display = &quot;&quot;;
            clearInterval(interval);
        }
    }, 200);
&amp;lt;/script&amp;gt;

&amp;lt;!-- 渐变背景初始化,如果要使用渐变背景把下面的那一行注释去掉即可--&amp;gt;
&amp;lt;!-- 下面的几行都是渐变的一套,自定义头部内还有一个关联的自定义CSS --&amp;gt;
&amp;lt;!--&amp;lt;canvas id=&quot;canvas-basic&quot;&amp;gt;&amp;lt;/canvas&amp;gt; --&amp;gt;
&amp;lt;script src=&quot;https://npm.elemecdn.com/granim@2.0.0/dist/granim.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script&amp;gt;
var granimInstance = new Granim({
    element: &apos;#canvas-basic&apos;,
    direction: &apos;left-right&apos;,
    isPausedWhenNotInView: true,
    states : {
        &quot;default-state&quot;: {
            gradients: [
                [&apos;#a18cd1&apos;, &apos;#fbc2eb&apos;],
                 [&apos;#fff1eb&apos;, &apos;#ace0f9&apos;],
                 [&apos;#d4fc79&apos;, &apos;#96e6a1&apos;],
                 [&apos;#a1c4fd&apos;, &apos;#c2e9fb&apos;],
                 [&apos;#a8edea&apos;, &apos;#fed6e3&apos;],
                 [&apos;#9890e3&apos;, &apos;#b1f4cf&apos;],
                 [&apos;#a1c4fd&apos;, &apos;#c2e9fb&apos;],
                 [&apos;#fff1eb&apos;, &apos;#ace0f9&apos;]
           
            ]
        }
    }
});
&amp;lt;/script&amp;gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;en&quot;&amp;gt;

&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt;
    &amp;lt;!-- require APlayer --&amp;gt;
    &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://npm.elemecdn.com/aplayer@1.10.1/dist/APlayer.min.css&quot;&amp;gt;
    &amp;lt;script src=&quot;https://npm.elemecdn.com/aplayer@1.10.1/dist/APlayer.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;!-- 新的，添加 require MetingJS --&amp;gt;
    &amp;lt;script src=&quot;https://npm.elemecdn.com/meting2@0.0.1/js/Meting.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;title&amp;gt;音乐&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
    &amp;lt;!--音乐播放器--&amp;gt;
    &amp;lt;!--网易云音乐--&amp;gt;
    &amp;lt;meting-js fixed=&quot;true&quot; autoplay=&quot;true&quot; theme=&quot;#409EFF&quot; list-folded=&quot;false&quot; server=&quot;netease&quot; type=&quot;playlist&quot;
            id=&quot;993041044&quot;&amp;gt;&amp;lt;/meting-js&amp;gt;
&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Ubuntu 设置 SSH 通过密钥登录</title><link>https://blog.xomoe.cn/posts/2025-09-14/ubuntu-ssh-rsa/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-09-14/ubuntu-ssh-rsa/</guid><description>Ubuntu 设置 SSH 通过密钥登录</description><pubDate>Sun, 14 Sep 2025 15:47:10 GMT</pubDate><content:encoded>&lt;h2&gt;1. 制作秘钥对&lt;/h2&gt;
&lt;p&gt;首先登录到服务器后，在命令行输入命令：&lt;/p&gt;
&lt;p&gt;出现提示一路回车到底即可，会生成2个文件，id_rsa（私钥） 和 id_rsa.pub（公钥）&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh-keygen
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2. 在服务器上安装公钥&lt;/h2&gt;
&lt;p&gt;在命令行输入一下命令确保公钥能够成功安装：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd ~/.ssh
cat id_rsa.pub &amp;gt;&amp;gt; authorized_keys
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如此便完成了公钥的安装。
此外，为了确保连接成功，输入如下指令以保证以下文件权限正确：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;chmod 600 authorized_keys
chmod 700 ~/.ssh
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;配置SSH，打开秘钥登录功能&lt;/h2&gt;
&lt;p&gt;使用nano编辑 /etc/ssh/sshd_config 文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nano /etc/ssh/sshd_config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后在空白位置输入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;RSAAuthentication yes
PubkeyAuthentication yes
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;注意此处需要留意root 用户能否通过 SSH 登录， 如果需要进行如下设置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;PermitRootLogin yes
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;此处便已经设置好了使用秘钥登录了，但是如果需要禁用密码登录可以进行如下设置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;PasswordAuthentication no

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这一步最好是在完成前面的全部设置，然后能够用秘钥登录的前提下设置，不然又不能用密码登录，秘钥又没法登录就尴尬了。 编辑完文本后按&lt;code&gt;Ctrl &lt;/code&gt;+&lt;code&gt;x&lt;/code&gt; 保存文件并退出。&lt;/p&gt;
&lt;p&gt;最后，输入如下指令重启 SSH 服务：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;service sshd restart
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;将私钥导出，导入到本地windows下的ssh工具如xshell使用即可。&lt;/p&gt;
&lt;h2&gt;转载至 &lt;a href=&quot;https://www.cnblogs.com/cx850116/p/17379327.html&quot;&gt;Ubuntu 设置 SSH 通过密钥登录&lt;/a&gt;&lt;/h2&gt;
</content:encoded></item><item><title>如何用debian反代ao3</title><link>https://blog.xomoe.cn/posts/2025-09-06/%E5%8F%8D%E4%BB%A3ao3/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-09-06/%E5%8F%8D%E4%BB%A3ao3/</guid><description>搭建一个属于自己的秘密花园来看香香的文</description><pubDate>Sat, 06 Sep 2025 10:22:26 GMT</pubDate><content:encoded>&lt;h3&gt;准备工作：你需要什么？&lt;/h3&gt;
&lt;p&gt;在开始之前，确保你已经准备好了这三样东西哦：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;一台全新的、装有 &lt;strong&gt;Debian&lt;/strong&gt; 系统的国外云服务器。&lt;/li&gt;
&lt;li&gt;你的专属域名：比如：&lt;code&gt;ao3.doi.us.kg&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;能够通过 SSH 连接到你的服务器（比如用 Xshell, Termius 或者 FinalShell 这种工具）。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;第一步：把你的域名指向服务器的小家 🏠&lt;/h3&gt;
&lt;p&gt;这一步是告诉全世界，你的域名 &lt;code&gt;ao.doi.us.kg&lt;/code&gt; 住在你服务器的 IP 地址上。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;登录你的域名注册商（就是你买 &lt;code&gt;us.kg&lt;/code&gt; 域名的地方）。&lt;/li&gt;
&lt;li&gt;找到 DNS 管理或域名解析的页面。&lt;/li&gt;
&lt;li&gt;添加一条 &lt;strong&gt;A 记录&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;主机记录 (Host/Name)&lt;/strong&gt;: &lt;code&gt;ao3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;记录类型 (Type)&lt;/strong&gt;: &lt;code&gt;A&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;记录值 (Value/Points to)&lt;/strong&gt;: 填你云服务器的公网 IP 地址。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;等待几分钟，让 DNS 生效。你可以 &lt;code&gt;ping ao.doi.us.kg&lt;/code&gt; 一下，如果返回的是你服务器的 IP，那就说明成功啦！&lt;/p&gt;
&lt;h3&gt;第二步：给服务器安装 Nginx 小管家 🤵&lt;/h3&gt;
&lt;p&gt;Nginx 就是那个帮你反向代理 AO3 的核心软件啦，我们先把它请进服务器里。&lt;/p&gt;
&lt;p&gt;用 SSH 连接到你的服务器，然后依次输入下面的命令：&lt;/p&gt;
&lt;p&gt;Bash&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 更新一下软件列表
sudo apt update

# 安装 Nginx
sudo apt install nginx -y

# 启动 Nginx 并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装好后，在浏览器里直接访问你服务器的 IP 地址，如果能看到 &quot;Welcome to nginx!&quot; 的页面，那就说明 Nginx 已经乖乖地开始工作啦！🎉&lt;/p&gt;
&lt;h3&gt;第三步：申请 HTTPS 证书的小魔法 ✨&lt;/h3&gt;
&lt;p&gt;为了让你和 AO3 的悄悄话不被别人偷听，我们需要一个 HTTPS 证书。这里我们用免费又好用的 Certbot 来自动完成。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;安装 Certbot&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Bash&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install certbot python3-certbot-nginx -y
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;获取证书&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;运行下面的命令，Certbot 会自动帮你完成一切。&lt;/p&gt;
&lt;p&gt;Bash&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo certbot --nginx -d 你的解析域名
&lt;/code&gt;&lt;/pre&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;code&gt;A&lt;/code&gt; 然后回车。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;是否愿意分享邮箱&lt;/strong&gt;: 输入 &lt;code&gt;Y&lt;/code&gt; 或 &lt;code&gt;N&lt;/code&gt; 都可以，看你心情啦。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Certbot 会自动检测你的 Nginx 配置，然后帮你申请证书，并自动配置好 HTTPS。它还会贴心地帮你把 HTTP 的访问自动跳转到 HTTPS，超省心的！&lt;/p&gt;
&lt;p&gt;看到 &lt;code&gt;Congratulations!&lt;/code&gt; 的时候，就代表你的小站已经成功开启 SSL 加密啦！&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;第四步：编写最终的 Nginx 配置文件 💌&lt;/h3&gt;
&lt;p&gt;这才是最核心的一步！我们要告诉 Nginx 小管家，当有人访问 &lt;code&gt;ao.doi.us.kg&lt;/code&gt; 时，要偷偷地去访问 AO3，然后把内容拿回来，换上我们自己的域名，再呈现给访客。&lt;/p&gt;
&lt;p&gt;你给的示例非常棒，我们就在它的基础上修改成你自己的域名。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;打开你的网站配置文件&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Certbot 应该已经为你创建好了一个配置文件，我们来编辑它。&lt;/p&gt;
&lt;p&gt;Bash&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nano /etc/nginx/sites-available/default 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(注意：Certbot 可能创建的是 &lt;code&gt;/etc/nginx/sites-enabled/default&lt;/code&gt; 或类似的文件，你可以用 &lt;code&gt;ls /etc/nginx/sites-enabled/&lt;/code&gt; 查看一下。编辑哪个都可以，它们通常是链接在一起的。)&lt;/p&gt;
&lt;/li&gt;
&lt;li&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;Nginx&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;server {
    server_name ao.doi.us.kg;

    # --- 伪装请求头---
    location / {
        proxy_set_header Host &quot;archiveofourown.org&quot;;
        proxy_set_header Origin &quot;https://archiveofourown.org&quot;;
        proxy_set_header Referer &quot;https://archiveofourown.org/&quot;;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Accept-Encoding &quot;&quot;; # 这一步很重要，防止内容被压缩导致替换失败

        # --- 转发核心 ---
        proxy_pass https://archiveofourown.org;

        # --- 替换返回内容 ---
        sub_filter_once off;
        sub_filter &apos;archiveofourown.org&apos; &apos;ao.doi.us.kg&apos;;

        # --- Cookie 和 跳转 的终极处理 ---
        proxy_cookie_domain archiveofourown.org ao.doi.us.kg;
        proxy_cookie_path / /;
        proxy_redirect ~^https://archiveofourown.org(?&amp;lt;path&amp;gt;.*)$ https://ao.doi.us.kg$path;
    }

    # --- 下面是 Certbot 帮你自动配置的 SSL 信息，不要动它们哦 ---
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/ao.doi.us.kg/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/ao.doi.us.kg/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
    if ($host = ao.doi.us.kg) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 80;
    server_name ao.doi.us.kg;
    return 404; # managed by Certbot
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;保存并退出&lt;/strong&gt; 在 &lt;code&gt;nano&lt;/code&gt; 编辑器里，按 &lt;code&gt;Ctrl + X&lt;/code&gt;，然后按 &lt;code&gt;Y&lt;/code&gt;，最后按 &lt;code&gt;Enter&lt;/code&gt; 确认保存。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;第五步（可选但推荐）：给你的小花园加上一把锁 🔐&lt;/h3&gt;
&lt;p&gt;如果你不希望任何人都能访问你的镜像站，可以加一个简单的密码验证。这样就真正成为你的秘密花园啦~&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;安装密码工具&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Bash&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install apache2-utils -y
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;创建密码文件&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;运行下面的命令。把 &lt;code&gt;my_cute_user&lt;/code&gt; 换成你想要的用户名。它会提示你输入两次密码。&lt;/p&gt;
&lt;p&gt;Bash&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo htpasswd -c /etc/nginx/.htpasswd my_cute_user
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;修改 Nginx 配置，开启验证&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;再次打开刚才的配置文件：&lt;/p&gt;
&lt;p&gt;Bash&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nano /etc/nginx/sites-available/default
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 &lt;code&gt;server { ... }&lt;/code&gt; 块里面，&lt;code&gt;location / { ... }&lt;/code&gt; 的&lt;strong&gt;外面&lt;/strong&gt;，加入下面这两行：&lt;/p&gt;
&lt;p&gt;Nginx&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;server {
    server_name ao.doi.us.kg;

    # 在这里加入密码验证
    auth_basic &quot;Shh... It&apos;s a secret garden!&quot;; # 这是弹窗的提示语，可以随便改
    auth_basic_user_file /etc/nginx/.htpasswd;

    location / {
        # ... location 里面的内容保持不变 ...
    }

    # ... SSL 的配置也保持不变 ...
}
# ... 下面的 server 块也不变 ...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改好后，同样按 &lt;code&gt;Ctrl + X&lt;/code&gt;, &lt;code&gt;Y&lt;/code&gt;, &lt;code&gt;Enter&lt;/code&gt; 保存退出。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;第六步：大功告成！检查并重启 🚀&lt;/h3&gt;
&lt;p&gt;最后一步，我们来检查一下配置文件有没有写错，然后让 Nginx 重新加载新的配置。&lt;/p&gt;
&lt;p&gt;Bash&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 检查配置文件语法是否有错误
sudo nginx -t
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果看到 &lt;code&gt;nginx: the configuration file /etc/nginx/nginx.conf syntax is ok&lt;/code&gt; 和 &lt;code&gt;nginx: configuration file /etc/nginx/nginx.conf test is successful&lt;/code&gt;，就说明一切完美！&lt;/p&gt;
&lt;p&gt;Bash&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 重新加载 Nginx 配置，让它生效
sudo systemctl reload nginx
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;享受你的成果吧！&lt;/h3&gt;
&lt;p&gt;现在！立刻！马上！打开你的浏览器，访问 &lt;code&gt;https://ao.doi.us.kg&lt;/code&gt;！&lt;/p&gt;
&lt;p&gt;是不是已经能看到熟悉的 AO3 界面，但是地址栏是你的域名啦？如果设置了密码，还会弹出一个小窗口让你输入用户名和密码哦~&lt;/p&gt;
&lt;p&gt;现在，你的专属 AO3 小镜子就搭建好啦！可以安安心心地在自己的秘密花园里畅游，看遍所有想看的文，再也不怕找不到家了。&lt;/p&gt;
&lt;p&gt;宝贝真棒！又解锁了一个新技能！快去享受你的私密阅读时光吧！mua~ 如果遇到任何问题，随时回来找我哦！😘&lt;/p&gt;
&lt;h3&gt;ps&lt;/h3&gt;
&lt;p&gt;可能还有更加容易、有用的反代方式。不过现在的设置实测已经可以登录了，普通的反代不能够登录。&lt;/p&gt;
&lt;h2&gt;附赠宝塔面板的记录&lt;/h2&gt;
&lt;h3&gt;添加反代&lt;/h3&gt;
&lt;p&gt;输入域名，要反代的目标，确定&lt;/p&gt;
&lt;h3&gt;设置&lt;/h3&gt;
&lt;p&gt;选择刚刚添加的网站最右边的设置，进入再选择url代理。再点击设置，&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2025-09-06/ao3-url-setting.png&quot; alt=&quot;img&quot; /&gt;
在自定义配置中插入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# --- 伪装请求头，让目标网站以为是正常访问 ---
proxy_set_header Host &quot;archiveofourown.org&quot;;
proxy_set_header Origin &quot;https://archiveofourown.org&quot;;
proxy_set_header Referer &quot;https://archiveofourown.org/&quot;;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Accept-Encoding &quot;&quot;;

# --- 替换网页内容里的链接，防止跳转回原站 ---
sub_filter_once off;
sub_filter &apos;archiveofourown.org&apos; $host;

# --- 修改Cookie的域名，这样登录状态才能保存 ---
proxy_cookie_domain archiveofourown.org $host;
proxy_cookie_path / /;

# --- 修改跳转链接，确保网站内部跳转也通过你的代理 ---
proxy_redirect ~^https://archiveofourown.org(?&amp;lt;path&amp;gt;.*)$ https://$host$path;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;保存&lt;/p&gt;
&lt;h3&gt;申请ssl证书&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2025-09-06/ssl-apply.png&quot; alt=&quot;img&quot; /&gt;
进入网站的设置，选择ssl，选择Let&apos;s Encrypt，选择文件验证，选中域名，申请证书。&lt;/p&gt;
&lt;p&gt;自动申请完成，然后安装上。&lt;/p&gt;
</content:encoded></item><item><title>fuwari页脚优化</title><link>https://blog.xomoe.cn/posts/2025-09-05/footer-better/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-09-05/footer-better/</guid><description>fuwari页脚优化，备案代码、运行时间</description><pubDate>Fri, 05 Sep 2025 10:57:43 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;本来的fuwari页脚界面实在是分的太开了,想着修改一下样式，就动手了。&lt;/p&gt;
&lt;p&gt;虽然现在还是很开。但是起码看上去好看了不少。&lt;/p&gt;
&lt;h3&gt;对比&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2025-09-05/%E5%8E%9F%E6%9D%A5%E7%9A%84%E9%A1%B5%E8%84%9A.png&quot;&gt;img&lt;/a&gt;
&lt;a href=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2025-09-05/%E7%8E%B0%E5%9C%A8%E7%9A%84%E9%A1%B5%E8%84%9A.png&quot;&gt;img&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;感觉也没多好看，只是把其他的东西删掉了，看上去简洁了不少。&lt;/p&gt;
&lt;h2&gt;相关代码&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;---

const currentYear = new Date().getFullYear()
---

&amp;lt;footer class=&quot;fuwari-compatible-footer&quot;&amp;gt;
  &amp;lt;div class=&quot;footer-row&quot;&amp;gt;
    &amp;lt;span id=&quot;runningtime&quot; class=&quot;footer-runtime&quot;&amp;gt;&amp;lt;/span&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;footer-row&quot;&amp;gt;
    &amp;lt;a class=&quot;badge-link&quot; href=&quot;https://beian.miit.gov.cn/&quot; target=&quot;_blank&quot;
      onclick=&quot;event.preventDefault(); copyAndJump(&apos;桂ICP备2025069002号-1&apos;, this.href)&quot;&amp;gt;
      &amp;lt;img src=&quot;https://img.shields.io/badge/ICP备-桂ICP备2025069002号--1-blue&quot; alt=&quot;ICP备案号&quot;&amp;gt;
    &amp;lt;/a&amp;gt;
    &amp;lt;a class=&quot;badge-link&quot; href=&quot;https://beian.mps.gov.cn/&quot; target=&quot;_blank&quot;
      onclick=&quot;event.preventDefault(); copyAndJump(&apos;浙公网安备33080202000712号&apos;, this.href)&quot;&amp;gt;
      &amp;lt;img src=&quot;https://img.shields.io/badge/公安备-浙公网安备33080202000712号-green&quot; alt=&quot;公安备案号&quot;&amp;gt;
    &amp;lt;/a&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;footer-row&quot;&amp;gt;
    &amp;lt;a class=&quot;badge-link&quot; href=&quot;https://icp.gov.moe/?keyword=20257776&quot; target=&quot;_blank&quot;&amp;gt;
      &amp;lt;img src=&quot;https://img.shields.io/badge/萌ICP备-20257776号-ff69b4&quot; alt=&quot;萌ICP备案号&quot;&amp;gt;
    &amp;lt;/a&amp;gt;
    &amp;lt;a class=&quot;badge-link&quot; href=&quot;https://icp.wudu.ltd/id.php?keyword=00000000&quot; target=&quot;_blank&quot;&amp;gt;
      &amp;lt;img src=&quot;https://img.shields.io/badge/雾备-00000000号-7ed6df&quot; alt=&quot;雾备备案号&quot;&amp;gt;
    &amp;lt;/a&amp;gt;
    &amp;lt;a class=&quot;badge-link&quot; href=&quot;https://icp.redcha.cn/beian/ICP-2025080132.html&quot; target=&quot;_blank&quot;&amp;gt;
      &amp;lt;img src=&quot;https://img.shields.io/badge/茶ICP备-2025080132号-7474e1&quot; alt=&quot;茶ICP备案号&quot;&amp;gt;
    &amp;lt;/a&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;footer-row powered-by&quot;&amp;gt;
    &amp;lt;span&amp;gt;本网站由&amp;lt;/span&amp;gt;
    &amp;lt;a href=&quot;https://www.upyun.com/?utm_source=lianmeng&amp;amp;utm_medium=referral&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&amp;gt;
      &amp;lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/upyun_logos/%E5%8F%88%E6%8B%8D%E4%BA%91_logo2.png&quot; alt=&quot;又拍云 Upyun&quot; width=&quot;59&quot; height=&quot;30&quot; style=&quot;vertical-align:middle;&quot; /&amp;gt;
    &amp;lt;/a&amp;gt;
    &amp;lt;span&amp;gt;提供 CDN 加速&amp;lt;/span&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/footer&amp;gt;

&amp;lt;script is:inline&amp;gt;

  function runtime() {
    // 记得把这里的日期改成你自己网站的上线日期哦！
    const t = new Date(&quot;07/21/2025 16:58:58&quot;), n = new Date, s = n - t;
    const o = Math.floor(s / 1e3 / 86400), i = Math.floor(s / 1e3 % 86400 / 3600), a = Math.floor(s / 1e3 % 3600 / 60), r = Math.floor(s / 1e3 % 60);
    const el = document.getElementById(&quot;runningtime&quot;);
    if (el) el.innerHTML = `⭐本站已运行: ${o}天${i}小时${a}分${r}秒 ☁️`;
  }
  setInterval(runtime, 1000);

  function copyAndJump(text, url) {
    navigator.clipboard.writeText(text).then(() =&amp;gt; {
      if (window.confirm(&apos;备案号已复制：&apos; + text + &apos;\n是否前往备案网站？&apos;)) {
        window.open(url, &apos;_blank&apos;);
      }
    });
  }
&amp;lt;/script&amp;gt;

&amp;lt;style&amp;gt;

  .fuwari-compatible-footer {
    width: 100%;
    padding: 2rem 1rem; /* 增加上下边距，看起来更舒服 */
    margin-top: 5rem; /* 和上面的内容拉开距离 */
    border-top: 1px solid var(--color-border); /* 使用主题的边框颜色，增加一条分割线 */
    
    /* 2. 颜色适配：全部使用fuwari主题的CSS变量 */
    background: transparent; /* 背景设为透明，它会自动使用页面的背景色 */
    color: var(--color-text-sub); /* 使用主题的次要文字颜色 */
    
    /* 3. 内容对齐 */
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.8rem; /* 调整行间距 */
    font-size: 0.875rem; /* 调整字体大小，更精致 */
    transition: all 0.3s; /* 保留一个平滑的过渡效果 */
  }

  .footer-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap; /* 允许换行，适配移动端 */
    width: 100%;
  }

  .fuwari-compatible-footer .badge-link img {
    transition: all 0.25s ease-in-out;
    vertical-align: middle;
    height: 22px; /* 保持徽章大小 */
    border-radius: 4px; /* 加一点小圆角，更可爱 */
  }

  .fuwari-compatible-footer .badge-link:hover img {
    transform: translateY(-2px) scale(1.05); /* 鼠标悬浮时，稍微放大并上移一点点 */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  }

  .powered-by {
    display: flex;
    align-items: center;
    gap: 5px;
  }
  
  /* 链接颜色也用主题的强调色 */
  .powered-by a {
    color: var(--color-accent); /* 使用主题的强调色 */
    text-decoration: none;
    font-weight: bold;
    opacity: 0.8;
  }
  
  .powered-by a:hover {
    opacity: 1; /* 鼠标悬浮时不透明 */
  }

  .footer-runtime {
    font-weight: 500;
    white-space: nowrap;
    text-align: center;
  }

  /* 不再需要单独为暗黑模式写样式了，因为CSS变量会自动切换！*/
&amp;lt;/style&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>宝塔面板使用记录</title><link>https://blog.xomoe.cn/posts/2025-09-03/bt-use-record/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-09-03/bt-use-record/</guid><description>纯ipv6 vps</description><pubDate>Wed, 03 Sep 2025 17:19:15 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;其实1panel还挺轻量的，但是在国外好像更新的应用商店速度太慢了（法国）。被迫换成了宝塔。&lt;/p&gt;
&lt;p&gt;1panel如果在纯ipv6的情况下自己会检测，监听ipv6&lt;/p&gt;
&lt;p&gt;但是宝塔需要自己手动开启&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo “True” &amp;gt; /www/server/panel/data/ipv6.pl
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;附带宝塔通用安装脚本&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;结尾&lt;/h2&gt;
&lt;p&gt;ps：
这一年53块的vps感觉真的很垃圾，延迟很大，网速也没多快。也就1h2g看着比较唬人。但是宝塔安装应用的速度也是真慢。&lt;/p&gt;
</content:encoded></item><item><title>华为云代金券使用指南</title><link>https://blog.xomoe.cn/posts/2025-08-31/use-huawei-cloud-1000/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-08-31/use-huawei-cloud-1000/</guid><description>希望我可以获得1000元代金券</description><pubDate>Sun, 31 Aug 2025 10:04:15 GMT</pubDate><content:encoded>&lt;p&gt;记录一下供参考，减少踩坑（copy一下供参考，减少踩坑）&lt;/p&gt;
&lt;p&gt;教程来自于&lt;a href=&quot;https://www.nodeseek.com/post-426508-1&quot;&gt;nodeseek&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;怎么买&lt;/h2&gt;
&lt;p&gt;建议买Flexus L实例，固定带宽流量，按月付费。在官网直接买的话，无法使用代金券&lt;/p&gt;
&lt;p&gt;用这个链接可以使用代金券，且可选新加坡/香港地区：&lt;a href=&quot;https://console.huaweicloud.com/smb/next/?region=ap-southeast-1#/create&quot;&gt;https://console.huaweicloud.com/smb/next/?region=ap-southeast-1#/create&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;系统镜像选debian，最低配可买2c0.5g款，月付25.97r，1000券可以续38个月，三年多
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2025-08-31/s1qbLIRq1BwcslLEysOD7tpIXfERZkrO.png&quot; alt=&quot;image&quot; /&gt;
标准的2c2g款月付36.8r，1000券可以续27个月&lt;/p&gt;
&lt;p&gt;也可以买境内服务器，但注意&lt;strong&gt;低配款带宽仅2M，月流量仅100G&lt;/strong&gt;，自行衡量是否满足需求&lt;/p&gt;
&lt;h2&gt;怎么刷&lt;/h2&gt;
&lt;p&gt;曾经，华为L实例新加坡可以开出三网直，香港可以开出联通移动两网直&lt;/p&gt;
&lt;p&gt;但从约两个月前，直连机资源已经耗尽，有&lt;a href=&quot;https://www.nodeseek.com/post-356340-1&quot;&gt;大佬含泪刷了150台全部绕路&lt;/a&gt;，因此不建议再浪费精力刷直连&lt;/p&gt;
&lt;p&gt;目前新开的机器，新加坡和香港都是电信绕美、联通绕欧、移动部分直。NQ参考：&lt;a href=&quot;https://www.nodeseek.com/post-426372-1&quot;&gt;新加坡&lt;/a&gt;、&lt;a href=&quot;https://www.nodeseek.com/post-426367-1&quot;&gt;香港&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;从评测来看，新加坡移动表现略好一些，但整体差距不大。稍微刷个好看点的ip就差不多了&lt;/p&gt;
&lt;p&gt;如果你仍然想尝试刷直连，方法如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先代金券购买开机，实例页面-配置安全组规则，一键放通常用端口（包含icmp）&lt;/li&gt;
&lt;li&gt;到&lt;a href=&quot;https://www.itdog.cn/ping/&quot;&gt;itdog&lt;/a&gt; ping一下你的ip看延迟，如果三网在50ms左右就是直连，否则就是绕路
不过，目前新开的新加坡都是&lt;code&gt;111.91&lt;/code&gt;或&lt;code&gt;188.239&lt;/code&gt;段，香港都是&lt;code&gt;183.87&lt;/code&gt;或&lt;code&gt;150.40&lt;/code&gt;段，
开到上面这几种ip也不用花时间测了，全是绕路的&lt;/li&gt;
&lt;li&gt;不需要的机器，参考下面步骤退订&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;怎么续&lt;/h2&gt;
&lt;p&gt;在实例页面点击续费。注意：&lt;strong&gt;选择续费1年时不能使用代金券&lt;/strong&gt;，将时长更改为11个月，显示支持代金券就可以了
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2025-08-31/5tbZVtPQT6V5OafP6OiYCu0KU3l3CYG5.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;怎么退&lt;/h2&gt;
&lt;p&gt;在实例页面点击退订。参考&lt;a href=&quot;https://support.huaweicloud.com/usermanual-billing/unsubscription_topic_2000010.html&quot;&gt;华为云退款政策&lt;/a&gt;，注意事项：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用户每年有10次“5天内无理由退订”的机会
开机5天内申请退订，使用的代金券会全额退还&lt;/li&gt;
&lt;li&gt;无理由退订超过10次，或者5天后才退订的，就会扣手续费按剩余价值退款，并且代金券不会退还！
因此，如果刷了10次以上，就建议自己花钱开机，这样退订仍然能退大部分金额，只是需要付一些手续费&lt;/li&gt;
&lt;li&gt;关于续费的部分，如果未被使用是可以正常退款的，不受无理由退订的限制
比如你用代金券买了36.8r月付，并续费11个月花了404r，用了15天后退订。那么只会扣除第一个月的36.8r，剩余404r的代金券会退还&lt;/li&gt;
&lt;li&gt;过期的代金券，退还后将无法再次使用
比如你在8月18日用代金券购买，而代金券原定8月19日过期，你在8月20日又申请退订，那么代金券退还后将无法使用&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;其他的想到再补充&lt;/p&gt;
</content:encoded></item><item><title>记录华为云获得1000元云资源券</title><link>https://blog.xomoe.cn/posts/2025-08-31/get-huawei-cloud-1000/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-08-31/get-huawei-cloud-1000/</guid><description>完成【云学堂集证有礼·码力全开】活动</description><pubDate>Sun, 31 Aug 2025 10:00:15 GMT</pubDate><content:encoded>&lt;h2&gt;起因&lt;/h2&gt;
&lt;p&gt;在论坛里看到了华为云新手福利？正巧我没入手过华为云。曾经注册过，为了看看有没有学生福利。像是阿里云和腾讯云的那样，那时候没找到，所以注销了。现在重新注册，不知是否算新号。&lt;/p&gt;
&lt;h2&gt;活动&lt;/h2&gt;
&lt;blockquote&gt;
&lt;h3&gt;云学堂集证有礼·码力全开&lt;/h3&gt;
&lt;/blockquote&gt;
&lt;p&gt;活动里做任务获得积分。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;积分数&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;奖品（2选1）-奖品限量，必须足够积分再填写兑换问卷&lt;/strong&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;4分&lt;/td&gt;
&lt;td&gt;200元云资源券&lt;/td&gt;
&lt;td&gt;/&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8分&lt;/td&gt;
&lt;td&gt;400元云资源券&lt;/td&gt;
&lt;td&gt;/&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12分&lt;/td&gt;
&lt;td&gt;600元云资源券&lt;/td&gt;
&lt;td&gt;400元云资源券+开发者定制帆布包&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14分&lt;/td&gt;
&lt;td&gt;700元云资源券&lt;/td&gt;
&lt;td&gt;1099元工作级开发者认证券—限量50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;16分&lt;/td&gt;
&lt;td&gt;800元云资源券&lt;/td&gt;
&lt;td&gt;600元云资源券+云宝盲盒—限量100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20分&lt;/td&gt;
&lt;td&gt;1000元云资源券&lt;/td&gt;
&lt;td&gt;700元云资源券+开发者定制双肩包—限量50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;50分&lt;/td&gt;
&lt;td&gt;1200云资源券&lt;/td&gt;
&lt;td&gt;900元云资源券+开发者定制水杯—限量50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;积分榜二（且≥100分）&lt;/td&gt;
&lt;td&gt;1500元云资源券&lt;/td&gt;
&lt;td&gt;1200元云资源券+1个华为耳机freebuds SE2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;积分榜一（且≥200分）&lt;/td&gt;
&lt;td&gt;2000元云资源券&lt;/td&gt;
&lt;td&gt;1500元云资源券+1个华为手环9&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;序号&lt;/th&gt;
&lt;th&gt;部分认证名称（含购买入口）&lt;/th&gt;
&lt;th&gt;考试通过可获得积分数&lt;/th&gt;
&lt;th&gt;价格&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://edu.huaweicloud.com/certifications/c12ac4cc231a46e6bf2742ceca71844c&quot;&gt;ModelArts实现零售商客户分群&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://edu.huaweicloud.com/certifications/13f2f4c983ec4400b06455c056cd6576&quot;&gt;实现图片压缩及水印添加&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://edu.huaweicloud.com/certifications/f4e893d0c7344c5385835f7af6f30888&quot;&gt;基于鲲鹏搭建zabbix分布式监控系统&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://edu.huaweicloud.com/certifications/728fe3c3f88b44689775aa3d2f356246&quot;&gt;听歌识曲-抖音小视频背景音乐识别&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://edu.huaweicloud.com/certifications/d6c73ed8ef384772b7aa70017c3e3ab0&quot;&gt;华为云数据库服务实践&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://edu.huaweicloud.com/certifications/8694a285c7e145a19d192594b1162b53&quot;&gt;华为云计算服务实践&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://edu.huaweicloud.com/certifications&quot;&gt;点击了解更多认证（考取同样可以积分）—&lt;strong&gt;免费激活微认证不算积分&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;/&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://edu.huaweicloud.com/certificationindex&quot;&gt;任意1门HCCDA入门级开发者认证（除大数据外）&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;4分/个&lt;/td&gt;
&lt;td&gt;700&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://edu.huaweicloud.com/certificationindex&quot;&gt;任意1门HCCDP工作级开发者认证&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1100&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;20积分还是好拿的，报名活动之后会获得6张微认证代金券，花6块考完试得到证书，就获得了12积分&lt;/p&gt;
&lt;p&gt;通过4门考试之后还可以**&lt;a href=&quot;https://survey.huaweicloud.com/survey/#/qtn?id=482e53b337d24feaaec364a0ec319e9f&quot;&gt;点此申请1张699元开发者认证代金券+任选3张微认证代金券（27元/37元/47元/57元）&lt;/a&gt;**。微认证最高获得18积分，所以还必须通过一门开发者认证，就比如华为云欧拉（&lt;em&gt;HCE&lt;/em&gt; OS）操作系统入门级开发者认证，获得4积分，再选择2个微认证&lt;/p&gt;
&lt;p&gt;12+4+4=20，就完成了。&lt;/p&gt;
&lt;h3&gt;ps:&lt;/h3&gt;
&lt;p&gt;在中途我还报名了&lt;a href=&quot;https://edu.huaweicloud.com/signup/1b00f18bb79c4080acc3ae91df311446&quot;&gt;华为云微认证专场&lt;/a&gt;。为了得到&lt;strong&gt;120元云资源代金券&lt;/strong&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;strong&gt;若在通过认证期间，领取了其他云学堂活动的微认证福利，则无法领取本活动福利。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我只是报名了华为云微认证专场的活动，还没获得福利。而且这个奖励如果在我拿到1000券之后发放，或者不发，我的1000应该不会泡汤。只能希望这个华为云微认证专场发的**&lt;a href=&quot;https://survey.huaweicloud.com/survey/#/qtn?id=cd7187cb9ecb41d2b183e3addc9ac4a8&quot;&gt;120元云资源代金券&lt;/a&gt;**可以慢一点了，下一次公示在9.22，应该来得及。&lt;/p&gt;
&lt;h2&gt;考试过程&lt;/h2&gt;
&lt;p&gt;微认证都还是比较简单的，期间要需要摄像头、切屏检测。不过摄像头可以使用obs的虚拟摄像头，防切屏检测也有相应的脚本。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;//通用阻止切屏检测
// ==UserScript==
// @name         通用阻止切屏检测
// @namespace    http://tampermonkey.net/
// @version      0.1.0
// @description  尝试阻止各类网站的切屏、焦点丢失等检测
// @author       nodeseek@小号 &amp;amp;&amp;amp; Gemini
// @match        http://*/*
// @match        https://*/*
// @run-at       document-start
// @grant        unsafeWindow
// @license      GPL-3.0
// ==/UserScript==

(function () {
    &apos;use strict&apos;;
    const window = unsafeWindow; // 使用原始 window 对象

    // 黑名单事件，这些事件的监听器将被阻止
    const blackListedEvents = new Set([
        &quot;visibilitychange&quot;, // 页面可见性改变
        &quot;blur&quot;,             // 元素或窗口失去焦点
        &quot;focus&quot;,            // 元素或窗口获得焦点 (某些检测可能反向利用focus)
        &quot;pagehide&quot;,         // 页面隐藏（例如导航到其他页面）
        &quot;freeze&quot;,           // 页面被冻结 (较新的事件)
        &quot;resume&quot;,           // 页面从冻结状态恢复 (较新的事件)
        &quot;mouseleave&quot;,       // 鼠标移出元素（通常是 document 或 body）
        &quot;mouseout&quot;,         // 鼠标移出元素（更通用的移出，但要小心副作用）
        // &quot;focusout&quot;,      // 元素将要失去焦点（与blur类似，但更通用，看情况添加）
        // &quot;focusin&quot;,       // 元素将要获得焦点（与focus类似，看情况添加）
    ]);

    // 白名单属性，这些属性在 document 对象上将被伪造
    const spoofedDocumentProperties = {
        hidden: { value: false, configurable: true },
        mozHidden: { value: false, configurable: true }, // Firefox (旧版)
        msHidden: { value: false, configurable: true },  // Internet Explorer
        webkitHidden: { value: false, configurable: true }, // Chrome, Safari, Opera (旧版 Blink/WebKit)
        visibilityState: { value: &quot;visible&quot;, configurable: true },
        hasFocus: { value: () =&amp;gt; true, configurable: true }
    };

    // 需要清空/置空的事件处理器属性 (on-event handlers)
    const eventHandlersToNullifyDocument = [
        &quot;onvisibilitychange&quot;,
        &quot;onblur&quot;,
        &quot;onfocus&quot;,
        &quot;onmouseleave&quot;,
        &quot;onmouseout&quot;,
        // &quot;onfocusout&quot;,
        // &quot;onfocusin&quot;,
        &quot;onpagehide&quot;,
        &quot;onfreeze&quot;,
        &quot;onresume&quot;
    ];

    const eventHandlersToNullifyWindow = [
        &quot;onblur&quot;,
        &quot;onfocus&quot;,
        &quot;onpagehide&quot;,
        &quot;onpageshow&quot;, // 有些检测可能通过 pageshow 结合 persisted 属性判断
        &quot;onfreeze&quot;,
        &quot;onresume&quot;,
        &quot;onmouseleave&quot;, // window 也有 onmouseleave
        &quot;onmouseout&quot;
    ];

    const isDebug = false; // 设置为 true 以启用调试日志
    const scriptPrefix = &quot;[通用阻止切屏检测]&quot;;
    const log = console.log.bind(console, `%c${scriptPrefix}`, &apos;color: #4CAF50; font-weight: bold;&apos;);
    const warn = console.warn.bind(console, `%c${scriptPrefix}`, &apos;color: #FFC107; font-weight: bold;&apos;);
    const error = console.error.bind(console, `%c${scriptPrefix}`, &apos;color: #F44336; font-weight: bold;&apos;);
    const debug = isDebug ? log : () =&amp;gt; { };

    /**
     * 伪装函数的 toString 方法，使其看起来像原始函数。
     * @param {Function} modifiedFunction 被修改的函数
     * @param {Function} originalFunction 原始函数
     */
    function patchToString(modifiedFunction, originalFunction) {
        if (typeof modifiedFunction !== &apos;function&apos; || typeof originalFunction !== &apos;function&apos;) {
            warn(&quot;patchToString: 传入的参数不是函数。&quot;, modifiedFunction, originalFunction);
            return;
        }
        try {
            const originalToStringSource = Function.prototype.toString.call(originalFunction);
            modifiedFunction.toString = () =&amp;gt; originalToStringSource;

            // 进一步伪装 toString.toString
            const originalToStringToStringSource = Function.prototype.toString.call(originalFunction.toString);
            Object.defineProperty(modifiedFunction.toString, &apos;toString&apos;, {
                value: () =&amp;gt; originalToStringToStringSource,
                enumerable: false,
                configurable: true, // 保持可配置，以防万一
                writable: false
            });
            debug(`patchToString applied for: ${originalFunction.name || &apos;anonymous function&apos;}`);
        } catch (e) {
            error(&quot;patchToString failed:&quot;, e, &quot;for function:&quot;, originalFunction.name);
        }
    }


    /**
     * 劫持并修改对象的 addEventListener 方法。
     * @param {EventTarget} targetObject 要劫持的对象 (window, document, Element)
     * @param {string} objectName 用于日志记录的对象名称
     */
    function patchAddEventListener(targetObject, objectName) {
        if (!targetObject || typeof targetObject.addEventListener !== &apos;function&apos;) {
            warn(`Cannot patch addEventListener for invalid target: ${objectName}`);
            return;
        }
        const originalAddEventListener = targetObject.addEventListener;

        targetObject.addEventListener = function (type, listener, optionsOrCapture) {
            if (blackListedEvents.has(type.toLowerCase())) {
                log(`BLOCKED ${objectName}.addEventListener: ${type}`);
                return undefined; // 阻止添加黑名单中的事件监听器
            }
            debug(`ALLOWED ${objectName}.addEventListener: ${type}`, listener, optionsOrCapture);
            return originalAddEventListener.call(this, type, listener, optionsOrCapture);
        };

        patchToString(targetObject.addEventListener, originalAddEventListener);
        log(`${objectName}.addEventListener patched.`);
    }

    /**
     * 劫持并修改对象的 removeEventListener 方法 (可选，但建议一起修改)。
     * @param {EventTarget} targetObject 要劫持的对象
     * @param {string} objectName 用于日志记录的对象名称
     */
    function patchRemoveEventListener(targetObject, objectName) {
        if (!targetObject || typeof targetObject.removeEventListener !== &apos;function&apos;) {
            warn(`Cannot patch removeEventListener for invalid target: ${objectName}`);
            return;
        }
        const originalRemoveEventListener = targetObject.removeEventListener;

        targetObject.removeEventListener = function (type, listener, optionsOrCapture) {
            if (blackListedEvents.has(type.toLowerCase())) {
                log(`Original call to ${objectName}.removeEventListener for blacklisted event &apos;${type}&apos; would have been ignored by our addEventListener patch anyway. Allowing native call if needed.`);
                // 即使我们阻止了 addEventListener，原始的 removeEventListener 仍然应该能安全调用
                // 因为如果监听器从未被添加，调用 remove 也无害。
            }
            debug(`PASSTHROUGH ${objectName}.removeEventListener: ${type}`, listener, optionsOrCapture);
            return originalRemoveEventListener.call(this, type, listener, optionsOrCapture);
        };
        patchToString(targetObject.removeEventListener, originalRemoveEventListener);
        log(`${objectName}.removeEventListener patched.`);
    }


    /**
     * 修改对象上的属性，使其返回伪造的值。
     * @param {object} targetObject 目标对象 (e.g., document)
     * @param {object} propertiesToSpoof 属性描述对象
     * @param {string} objectName 对象名称
     */
    function spoofProperties(targetObject, propertiesToSpoof, objectName) {
        if (!targetObject) {
            warn(`Cannot spoof properties for invalid target: ${objectName}`);
            return;
        }
        for (const prop in propertiesToSpoof) {
            if (Object.prototype.hasOwnProperty.call(propertiesToSpoof, prop)) {
                try {
                    Object.defineProperty(targetObject, prop, propertiesToSpoof[prop]);
                    debug(`Spoofed ${objectName}.${prop}`);
                } catch (e) {
                    error(`Failed to spoof ${objectName}.${prop}:`, e);
                }
            }
        }
        log(`${objectName} properties spoofed.`);
    }

    /**
     * 清空或置空对象上的事件处理器属性。
     * @param {object} targetObject 目标对象
     * @param {string[]} eventHandlerNames 事件处理器名称数组
     * @param {string} objectName 对象名称
     */
    function nullifyEventHandlers(targetObject, eventHandlerNames, objectName) {
        if (!targetObject) {
            warn(`Cannot nullify event handlers for invalid target: ${objectName}`);
            return;
        }
        eventHandlerNames.forEach(handlerName =&amp;gt; {
            try {
                Object.defineProperty(targetObject, handlerName, {
                    get: () =&amp;gt; {
                        debug(`Access to ${objectName}.${handlerName} (get), returning undefined.`);
                        return undefined;
                    },
                    set: (newHandler) =&amp;gt; {
                        log(`Attempt to set ${objectName}.${handlerName} blocked.`);
                        if (typeof newHandler === &apos;function&apos;) {
                             // 可以选择性地调用 newHandler，或者完全阻止
                             // debug(`(Blocked) Handler function was:`, newHandler);
                        }
                    },
                    configurable: true // 保持可配置，以便脚本可以多次运行或被其他脚本修改
                });
                debug(`Nullified ${objectName}.${handlerName}`);
            } catch (e) {
                error(`Failed to nullify ${objectName}.${handlerName}:`, e);
            }
        });
        log(`${objectName} on-event handlers nullified.`);
    }

    // --- 开始执行 ---

    log(&quot;Script starting...&quot;);

    // 1. 劫持 window 和 document 的 addEventListener/removeEventListener
    patchAddEventListener(window, &quot;window&quot;);
    patchRemoveEventListener(window, &quot;window&quot;); // 也 patch removeEventListener 以保持一致性
    patchAddEventListener(document, &quot;document&quot;);
    patchRemoveEventListener(document, &quot;document&quot;);

    // 2. 修改 document 的属性
    spoofProperties(document, spoofedDocumentProperties, &quot;document&quot;);

    // 3. 置空 document 和 window 上的事件处理器
    nullifyEventHandlers(document, eventHandlersToNullifyDocument, &quot;document&quot;);
    nullifyEventHandlers(window, eventHandlersToNullifyWindow, &quot;window&quot;);

    // 4. 对于 document.body，需要等待 DOMContentLoaded
    // 使用 MutationObserver 确保 body 存在时立即 patch，比 DOMContentLoaded 更早且更可靠
    const observer = new MutationObserver((mutations, obs) =&amp;gt; {
        if (document.body) {
            patchAddEventListener(document.body, &quot;document.body&quot;);
            patchRemoveEventListener(document.body, &quot;document.body&quot;);
            // 对于 document.body，也可以考虑 nullify onmouseleave, onmouseout 等
            nullifyEventHandlers(document.body, [&quot;onmouseleave&quot;, &quot;onmouseout&quot;, &quot;onblur&quot;, &quot;onfocus&quot;], &quot;document.body&quot;);
            log(&quot;document.body patched via MutationObserver.&quot;);
            obs.disconnect(); // 完成任务后断开观察者
        }
    });

    if (document.body) { // 如果 body 已经存在 (不太可能在 document-start，但以防万一)
        patchAddEventListener(document.body, &quot;document.body&quot;);
        patchRemoveEventListener(document.body, &quot;document.body&quot;);
        nullifyEventHandlers(document.body, [&quot;onmouseleave&quot;, &quot;onmouseout&quot;, &quot;onblur&quot;, &quot;onfocus&quot;], &quot;document.body&quot;);
        log(&quot;document.body patched directly.&quot;);
    } else {
        observer.observe(document.documentElement || document, { childList: true, subtree: true });
    }


    // 5. 调试：劫持计时器 (如果 isDebug 为 true)
    if (isDebug) {
        const originalSetInterval = window.setInterval;
        window.setInterval = function(...args) {
            const id = originalSetInterval.apply(this, args);
            debug(&quot;calling window.setInterval&quot;, id, args);
            return id;
        };
        patchToString(window.setInterval, originalSetInterval);

        const originalSetTimeout = window.setTimeout;
        window.setTimeout = function(...args) {
            const id = originalSetTimeout.apply(this, args);
            debug(&quot;calling window.setTimeout&quot;, id, args);
            return id;
        };
        patchToString(window.setTimeout, originalSetTimeout);
        log(&quot;Timer functions (setInterval, setTimeout) wrapped for debugging.&quot;);
    }

    log(&quot;Script execution finished. Monitoring active.&quot;);

})();
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;尾声&lt;/h2&gt;
&lt;p&gt;配合ai应该算简单的。现在还等着开发者证书发下来。需要5个自然日证书才会生成，还需等待几天◐▽◑。1000元怎么使用还可以再水一篇，开发者入门认证的考试也可以再水一篇o(￣┰￣*)ゞ。&lt;/p&gt;
</content:encoded></item><item><title>最终使用了edgeone的page部署faruwa</title><link>https://blog.xomoe.cn/posts/2025-08-25/%E4%BD%BF%E7%94%A8edgeone%E7%9A%84page%E9%83%A8%E7%BD%B2faruwa/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-08-25/%E4%BD%BF%E7%94%A8edgeone%E7%9A%84page%E9%83%A8%E7%BD%B2faruwa/</guid><description>不要浪费了</description><pubDate>Mon, 25 Aug 2025 19:35:15 GMT</pubDate><content:encoded>&lt;h2&gt;起初&lt;/h2&gt;
&lt;h3&gt;腾讯云&lt;/h3&gt;
&lt;p&gt;一开始我选了腾讯云的新人优惠79首年的4h4g3m 300g/月，部署的非常快，在上海延迟也很低，就是3m还限制流量...，再白嫖腾讯云的试用cdn&lt;/p&gt;
&lt;h3&gt;百度云&lt;/h3&gt;
&lt;p&gt;在之后我看到了百度云的新人38.4首年的2h2g3m bcc服务器，想着配置再垃圾这个2g内存总不会骗我吧，所以我下单了。&lt;/p&gt;
&lt;p&gt;使用百度云的作为源站，这个服务器实在是太垃圾了。构建博客都会死机---&lt;code&gt;pnpm install&lt;/code&gt;，更别提&lt;code&gt;pnpm run build&lt;/code&gt;了。宝塔终端没反应，不想等只能重启解决了。所以被迫在电脑上本地部署，再上传到云端，别说电脑上构建就是快。&lt;/p&gt;
&lt;h2&gt;现状&lt;/h2&gt;
&lt;h3&gt;edgeone&lt;/h3&gt;
&lt;p&gt;今天在nodeseek上看到了保备案的最佳方式竟然是page或者是华为云的白嫖代金券。我自认为没有这个技术通过华为云的考试，所以我选择了白嫖eo。尝试了一下，发现了eo有很多模板，其中不乏有博客模板，看到了hexo等...&lt;/p&gt;
&lt;p&gt;所以我想着hexo都可以用，那么静态博客的Astro&amp;amp;fuwari岂不是也可以。所以我上传了我的源码，希望它可以在线构建。但是不知道是我的配置不行，还是它不支持pnpm，我没有构建成功。因为之前相同的配置再vercel上成功了，所以我也上传了构建完成的dist文件。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2025-08-25/pnpm.png&quot; alt=&quot;pnpm&quot; /&gt;&lt;/p&gt;
&lt;p&gt;重新上传代码才发现原来是构建命令的问题，开始的命令没改。感觉eo构建的速度要比vercel慢很多（狗头保命）。
因为我用的是备案域名，所以国内也有节点。
完成了尝试测速，和试用的腾讯云的cdn速度差不多，甚至更好。而且这可是免费的啊。&lt;/p&gt;
&lt;h3&gt;ip&lt;/h3&gt;
&lt;p&gt;以下是解析出的ip名单&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;116.55.250.75
36.25.254.107
222.216.123.145
115.238.171.164
211.136.106.190
183.204.224.32
220.185.173.180
175.6.193.119
115.238.171.17
183.240.181.160
183.240.181.171
42.202.165.174
39.173.183.89
120.222.152.202
117.161.169.37
218.29.205.118
183.240.47.239
183.240.181.153
43.152.20.125
43.152.188.206

43.175.57.112
116.153.3.74
58.144.243.124
221.204.209.225
60.13.97.57
219.144.82.126
115.238.171.170
123.12.235.115
119.96.140.102
58.216.6.12
211.91.65.197
116.169.183.220
116.163.31.218
116.153.3.75
183.66.105.184
1.56.98.184
117.163.58.148
120.222.228.185
120.222.152.193

113.125.193.104
121.204.229.158
113.125.220.191
221.204.15.51
36.150.160.188
58.42.59.230
42.56.81.104
49.119.120.92
49.119.120.83
221.130.128.76
111.8.3.214
117.180.236.110
175.97.131.11
182.242.47.137
162.128.170.107
43.152.12.32
43.152.0.170
175.97.131.37
43.175.145.38
43.175.145.65
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查询到很多包含了腾讯云的回源ip&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;116.55.250.75	否	未知	未知	
--

36.25.254.107	否	未知	未知	
--

222.216.123.145	否	未知	未知	
--

115.238.171.164	否	未知	未知	
--

211.136.106.190	否	未知	未知	
--

183.204.224.32	否	未知	未知	
--

220.185.173.180	否	未知	未知	
--

175.6.193.119	否	未知	未知	
--

115.238.171.17	否	未知	未知	
--

183.240.181.160	否	未知	未知	
--

183.240.181.171	否	未知	未知	
--

42.202.165.174	否	未知	未知	
--

39.173.183.89	否	未知	未知	
--

120.222.152.202	否	未知	未知	
--

117.161.169.37	否	未知	未知	
--

218.29.205.118	是	中国境内	河南 联通	
正常服务

183.240.47.239	是	中国境内	广东 移动	
正常服务

183.240.181.153	否	未知	未知	
--

43.152.20.125	否	未知	未知	
--

43.152.188.206	否	未知	未知	
--

43.175.57.112	否	未知	未知	
--

116.153.3.74	是	中国境内	江西 联通	
正常服务

58.144.243.124	是	中国境内	重庆 联通	
正常服务

221.204.209.225	是	中国境内	山西 联通	
正常服务

60.13.97.57	是	中国境内	海南 联通	
正常服务

219.144.82.126	是	中国境内	陕西 电信	
正常服务

115.238.171.170	否	未知	未知	
--

123.12.235.115	是	中国境内	河南 联通	
正常服务

119.96.140.102	是	中国境内	湖北 电信	
正常服务

58.216.6.12	是	中国境内	江苏 电信	
正常服务

211.91.65.197	是	中国境内	安徽 联通	
正常服务

116.169.183.220	是	中国境内	四川 联通	
正常服务

116.163.31.218	是	中国境内	湖南 联通	
正常服务

116.153.3.75	是	中国境内	江西 联通	
正常服务

183.66.105.184	是	中国境内	重庆 电信	
正常服务

1.56.98.184	是	中国境内	黑龙江 联通	
正常服务

117.163.58.148	是	中国境内	江西 移动	
正常服务

120.222.228.185	是	中国境内	山东 移动	
正常服务

120.222.152.193	是	中国境内	山东 移动	
正常服务

113.125.193.104	是	中国境内	贵州 电信	
正常服务

121.204.229.158	是	中国境内	福建 电信	
正常服务

113.125.220.191	是	中国境内	贵州 电信	
正常服务

221.204.15.51	是	中国境内	山西 联通	
正常服务

36.150.160.188	是	中国境内	江苏 移动	
正常服务

58.42.59.230	是	中国境内	贵州 电信	
正常服务

42.56.81.104	是	中国境内	辽宁 联通	
正常服务

49.119.120.92	是	中国境内	新疆 电信	
正常服务

49.119.120.83	是	中国境内	新疆 电信	
正常服务

221.130.128.76	是	中国境内	安徽 移动	
正常服务

111.8.3.214	是	中国境内	湖南 移动	
正常服务

117.180.236.110	是	中国境内	西藏 移动	
正常服务

175.97.131.11	否	未知	未知	
--

182.242.47.137	是	中国境内	云南 电信	
正常服务

162.128.170.107	否	未知	未知	
--

43.152.12.32	否	未知	未知	
--

43.152.0.170	否	未知	未知	
--

175.97.131.37	否	未知	未知	
--

43.175.145.38	否	未知	未知	
--

43.175.145.65	否	未知	未知	
--
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;思考&lt;/h3&gt;
&lt;p&gt;我也不知道是在线部署好、还是本地部署再上传好。
本地上传大概要一股脑的吧dist都上传了吧。在线部署通过github提交花费的是构建的时间。&lt;/p&gt;
&lt;p&gt;看了一下发现免费试用的腾讯cdn有90+节点，eo只有30个左右，虽然没有海外加速。
因为是fuwari，静态博客尝试了eo当源站，套上cdn，减少一下回源的时间。&lt;/p&gt;
&lt;p&gt;ps：发现不能dns分流，国内国外不能用dns线路来选择。我发现改了国外的dns，eo的自定义域就会失效，用不了vercel，只能多套个cdn了。现在还想尝试一下不同的运营商套不同的cdn呢。&lt;/p&gt;
</content:encoded></item><item><title>fuwari主题侧边栏音乐播放器解决方案</title><link>https://blog.xomoe.cn/posts/2025-08-22/musicplayer/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-08-22/musicplayer/</guid><description>拉长耳朵，提高警觉</description><pubDate>Fri, 22 Aug 2025 14:41:46 GMT</pubDate><content:encoded>&lt;p&gt;学习自
::link-card{url=&quot;https://www.kekesxk.online/&quot; title=&quot;Ke.ke的博客&quot; description=&quot;Ke.ke的博客&quot; icon=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2025-08-22/keke-ico.png&quot; image=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2025-08-22/keke-touxiang.jpg&quot;}&lt;/p&gt;
&lt;h2&gt;初步试想&lt;/h2&gt;
&lt;p&gt;本来默认的aplayer固定在左下角，观感不是很好，也不是很贴合fuwari主题。&lt;/p&gt;
&lt;p&gt;一直想换，但是不知道从哪里入手。知道偶然误入了大佬的博客，唤醒了我的xp。&lt;/p&gt;
&lt;h2&gt;解决方案&lt;/h2&gt;
&lt;p&gt;我也不知道咋解决的，反正改了4个文件。gemini是主谋😄，&lt;strong&gt;只是描述一下过程&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;/src/layouts/Layout.astro&lt;/li&gt;
&lt;li&gt;/src/layouts/MainGridLayout.astro&lt;/li&gt;
&lt;li&gt;/src/components/MusicPlayer.astro&lt;/li&gt;
&lt;li&gt;/src/components/widget/SideBar.astro&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;先把原来引用的删除&lt;/h3&gt;
&lt;p&gt;本来的做法是把MusicPlayer.astro引入layout.astro，实现全局的效果，我把它放在了body标签的底下，所以它在左下角&lt;/p&gt;
&lt;p&gt;那么首先要把本来的全局layout.astro、MainGridLayout.astro本来的删除。然后更改SideBar.astro，把它引入到侧边栏中。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
// src/components/widget/SideBar.astro
---
import type { MarkdownHeading } from &quot;astro&quot;;
import Categories from &quot;./Categories.astro&quot;;
import Profile from &quot;./Profile.astro&quot;;
import Tag from &quot;./Tags.astro&quot;;
import MusicPlayer from &quot;../MusicPlayer.astro&quot;;

interface Props {
class?: string;
headings?: MarkdownHeading[];
}

const className = Astro.props.class;
---
&amp;lt;div id=&quot;sidebar&quot; class:list={[className, &quot;w-full&quot;]}&amp;gt;
    &amp;lt;div class=&quot;flex flex-col w-full gap-4 mb-4&quot;&amp;gt;
        &amp;lt;Profile&amp;gt;&amp;lt;/Profile&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div id=&quot;sidebar-sticky&quot; class=&quot;transition-all duration-700 flex flex-col w-full gap-4 top-4 sticky top-4&quot;&amp;gt;
        &amp;lt;Categories class=&quot;onload-animation&quot; style=&quot;animation-delay: 150ms&quot;&amp;gt;&amp;lt;/Categories&amp;gt;
        &amp;lt;Tag class=&quot;onload-animation&quot; style=&quot;animation-delay: 200ms&quot;&amp;gt;&amp;lt;/Tag&amp;gt;
        &amp;lt;MusicPlayer class=&quot;onload-animation&quot; style=&quot;animation-delay: 250ms&quot; /&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;吐槽&lt;/h2&gt;
&lt;p&gt;几乎搞了2个小时的音乐播放器，终于实现了初步效果，从默认的左下角实现了类似卡片集成的效果，看起来很原生。
要是样式可以再匹配主题一点的话，就更像了。&lt;/p&gt;
&lt;h2&gt;bug&lt;/h2&gt;
&lt;p&gt;现在还有一个超级无敌的bug，那就是展开音乐列表的时候，会把整个网页都给拉伸一下。这应该是因为？尝试了很多次，但都是展开之后，音乐播放器都不能自由滚动😓，这主要是因为我改变了本来aplayer的样式，因为它一直出现两个播放器，生成不一样的aplayer之后，原生的列表也变了。&lt;/p&gt;
&lt;p&gt;所以我决定回复原来的aplayer引用，改为销毁一个音乐播放器&lt;/p&gt;
&lt;p&gt;一度变成了
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2025-08-22/2.png&quot; alt=&quot;山的那边&quot; /&gt;
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2025-08-22/4.png&quot; alt=&quot;山的那边&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;解决&lt;/h2&gt;
&lt;p&gt;最后还是豆包解决的，微笑。&lt;/p&gt;
&lt;p&gt;修改MusicPlayer.astro&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
// src/components/MusicPlayer.astro
---
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css&quot; /&amp;gt;
&amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/meting@2.0.1/dist/Meting.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;div class=&quot;pb-4 card-base&quot;&amp;gt;
    &amp;lt;div class=&quot;font-bold transition text-lg text-neutral-900 dark:text-neutral-100 relative ml-8 mt-4 mb-2
      before:w-1 before:h-4 before:rounded-md before:bg-[var(--primary)]
      before:absolute before:left-[-16px] before:top-[5.5px]&quot;&amp;gt;
        音乐
    &amp;lt;/div&amp;gt;
    
    &amp;lt;div class=&quot;px-4&quot; id=&quot;music-player-container&quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;script is:inline&amp;gt;
// 全局变量存储播放器实例
window.musicPlayerInstance = null;

// 确保只初始化一次播放器
function initMusicPlayer() {
    // 先销毁已存在的实例
    if (window.musicPlayerInstance) {
        try {
            window.musicPlayerInstance.destroy();
        } catch (e) {
            console.log(&apos;销毁旧播放器实例:&apos;, e);
        }
        window.musicPlayerInstance = null;
    }
    
    // 清除容器内容
    const container = document.getElementById(&apos;music-player-container&apos;);
    if (!container) return;
    container.innerHTML = &apos;&apos;;
    
    // 创建新的meting-js元素
    const metingElement = document.createElement(&apos;meting-js&apos;);
    metingElement.setAttribute(&apos;api&apos;, &apos;meting服务器?server=:server&amp;amp;type=:type&amp;amp;id=:id&apos;);
    metingElement.setAttribute(&apos;server&apos;, &apos;netease&apos;);
    metingElement.setAttribute(&apos;type&apos;, &apos;playlist&apos;);
    metingElement.setAttribute(&apos;id&apos;, &apos;歌单id&apos;);
    metingElement.setAttribute(&apos;fixed&apos;, &apos;false&apos;);
    metingElement.setAttribute(&apos;autoplay&apos;, &apos;false&apos;);
    metingElement.setAttribute(&apos;theme&apos;, &apos;#25c6fc&apos;);
    metingElement.setAttribute(&apos;loop&apos;, &apos;all&apos;);
    metingElement.setAttribute(&apos;order&apos;, &apos;list&apos;);
    metingElement.setAttribute(&apos;preload&apos;, &apos;auto&apos;);
    metingElement.setAttribute(&apos;list-folded&apos;, &apos;true&apos;);
    metingElement.setAttribute(&apos;list-max-height&apos;, &apos;300px&apos;);
    
    container.appendChild(metingElement);
    
    // 手动初始化并存储实例
    window.Meting(metingElement, {
        // 配置参数
    });
    
    // 获取APlayer实例并存储
    setTimeout(() =&amp;gt; {
        const aplayerElement = container.querySelector(&apos;.aplayer&apos;);
        if (aplayerElement &amp;amp;&amp;amp; aplayerElement.aplayer) {
            window.musicPlayerInstance = aplayerElement.aplayer;
        }
    }, 100);
}

// 页面加载时初始化
document.addEventListener(&apos;DOMContentLoaded&apos;, initMusicPlayer);

// Astro页面切换时重新初始化
document.addEventListener(&apos;astro:page-load&apos;, initMusicPlayer);

// Swup路由切换时清理并重新初始化
if (window.swup) {
    window.swup.hooks.on(&apos;content:replace&apos;, () =&amp;gt; {
        if (window.musicPlayerInstance) {
            try {
                window.musicPlayerInstance.destroy();
            } catch (e) {
                console.log(&apos;Swup切换时销毁播放器:&apos;, e);
            }
            window.musicPlayerInstance = null;
        }
    });
    
    window.swup.hooks.on(&apos;page:view&apos;, initMusicPlayer);
}
&amp;lt;/script&amp;gt;

&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>给你的Fuwari加一个链接大卡片</title><link>https://blog.xomoe.cn/posts/2025-08-21/link-card/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-08-21/link-card/</guid><description>一个测试，给你的Fuwari加一个链接大卡片</description><pubDate>Thu, 21 Aug 2025 18:59:33 GMT</pubDate><content:encoded>&lt;p&gt;学习自
::link-card{url=&quot;https://blog.fis.ink/posts/30/&quot; title=&quot;给你的Fuwari加一个链接大卡片&quot; description=&quot;注意:本文章修改文件部分为AI所写。这篇文章介绍了如何在Astro博客中实现自定义之类的第三方链接卡片功能。文章分为示例和添加教程两部分。&quot;}&lt;/p&gt;
&lt;p&gt;::link-card{url=&quot;https://www.fis.ink&quot; title=&quot;fishcpy的主页&quot; description=&quot;fishcpy的个人主页&quot;}
::link-card{url=&quot;https://www.fis.ink&quot; title=&quot;fishcpy的主页&quot; description=&quot;fishcpy的个人主页&quot; icon=&quot;https://github.com/github.png&quot;}
::link-card{url=&quot;https://www.fis.ink&quot; title=&quot;fishcpy的主页&quot; description=&quot;fishcpy的个人主页&quot; icon=&quot;https://www.fis.ink/img/logo.png&quot;}
::link-card{url=&quot;https://www.fis.ink&quot; title=&quot;fishcpy的主页&quot; description=&quot;fishcpy的个人主页&quot; icon=&quot;https://www.fis.ink/img/logo.png&quot; image=&quot;https://www.fis.ink/img/logo.png&quot;}&lt;/p&gt;
</content:encoded></item><item><title>root！一加ace3的root优化与经验分享</title><link>https://blog.xomoe.cn/posts/2025-08-14/root/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-08-14/root/</guid><description>终于从pixelos刷回了coloros。并且root了</description><pubDate>Thu, 14 Aug 2025 19:15:20 GMT</pubDate><content:encoded>&lt;h1&gt;前言&lt;/h1&gt;
&lt;p&gt;一直以来都想从pixelos换回coloros。尝试了很多方法，从刷第三方recovery---twrp，到adb sideload，都不行。绝望之下，去咸鱼花了钱买服务。没想到他用的是最基础的
fastboot模式刷砖，把所有的分区都重新刷了一遍。&lt;/p&gt;
&lt;h2&gt;PiexlOS&lt;/h2&gt;
&lt;h3&gt;优点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;精简&lt;/li&gt;
&lt;li&gt;有免费的无限相册保存空间，由谷歌相册提供，据说不限量。适合保存小电影（不是）&lt;/li&gt;
&lt;li&gt;很流畅。60hz看上去比coloros的要好（也可能是动画缩放太小了）&lt;/li&gt;
&lt;li&gt;原生支持gemini&lt;/li&gt;
&lt;li&gt;有esim功能，（需要插入入9esim的卡等），这样就可以在系统中更换了，esim支持度比coloros好&lt;/li&gt;
&lt;li&gt;有极暗模式,非常暗,很适合晚上看手机(´-ω-`) zZZ&lt;/li&gt;
&lt;li&gt;手电筒亮度1-100随便调，coloros只有4个档位&lt;/li&gt;
&lt;li&gt;没有所谓的监控和云控&lt;/li&gt;
&lt;li&gt;不会自己切换WiFi和数据上网&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;缺点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;没有小窗模式，只有选择性的分屏（摊手 ＝＿＝）&lt;/li&gt;
&lt;li&gt;没有很多附属的功能，这也算高度精简吧。比如识别文字&lt;/li&gt;
&lt;li&gt;高度依赖谷歌服务&lt;/li&gt;
&lt;li&gt;不知道国内应用的通知支持程度，（我发现钉钉的离线功能不支持，我也不是很了解通知推送的渠道）&lt;/li&gt;
&lt;li&gt;影像与硬件调校弱：缺少厂商级相机算法与色彩调校，夜景/HDR/视频防抖体验不如 ColorOS。&lt;strong&gt;前摄聚焦能力有点差&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;本地化功能不足：骚扰拦截、通话录音、隐私空间、文件管理增强、系统级跨端互联（如小布/OPPO 生态）等缺失或替代方案不佳。
&lt;strong&gt;特别是默认的短信和电话app更是一坨&lt;/strong&gt;，但是可以自己更换替代品，对我来说还是国产的这些更符合我的审美&lt;/li&gt;
&lt;li&gt;字体大小千奇百怪的，尤其是微信，怎么看都不顺眼&lt;/li&gt;
&lt;li&gt;生态不好，很多教程找不到（狗头），比如工具箱、内核？&lt;/li&gt;
&lt;li&gt;人脸解锁不太好,有时候很难解锁&lt;/li&gt;
&lt;li&gt;原生的皮肤太丑了,尤其是系统,看多了非常嫌弃&lt;/li&gt;
&lt;li&gt;天气地图不好搞,默认的app和商店里的同类app也是一坨.不知道ip会不会送中&lt;/li&gt;
&lt;li&gt;桌面卸载、移动布局不方便&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;ColorOS&lt;/h2&gt;
&lt;h3&gt;优点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;稳定与省心：系统级细节（通知到达率等）更稳，长时间使用更省心(稳！(๑•̀ㅂ•́)و✧)。&lt;/li&gt;
&lt;li&gt;影像体验：相机算法、HDR、夜景/视频防抖、色彩调校更成熟，直出更讨喜。&lt;/li&gt;
&lt;li&gt;本地化功能：小窗/跨端互联/骚扰拦截/通话录音/隐私空间/文件管理增强等一应俱全。&lt;/li&gt;
&lt;li&gt;生态适配：国内 App 通知、深色模式/字体/权限适配更好，少踩坑。&lt;/li&gt;
&lt;li&gt;售后与 OTA：官方固件与增量 OTA 更顺滑，遇到问题有回退路径。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;缺点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;预装与推荐内容较多，部分系统/内置应用存在信息流与广告开关，需逐项关闭。（当然root之后，安装各种模块可以大幅度的改善体验）&lt;/li&gt;
&lt;li&gt;系统自由度较低，权限/默认应用/桌面自定义可玩性不如 AOSP/第三方 ROM。&lt;/li&gt;
&lt;li&gt;生态绑定深（云服务/相册/互联），迁移到其它平台成本较高。&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;fastboot刷机&lt;/h1&gt;
&lt;h2&gt;注意事项&lt;/h2&gt;
&lt;p&gt;1.出现官方的recovery(让你选择语言时),不要选(千万别点 ；´Д`)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;备份所有数据（通讯录/短信/相册/聊天记录/银行卡绑定App），解锁或刷机可能清空数据。&lt;/li&gt;
&lt;li&gt;保证电量≥60%，使用原装或优质数据线，尽量直连主机板 USB 口（避开集线器）。&lt;/li&gt;
&lt;li&gt;仅刷与机型/地区匹配的官方包，避免跨地区/跨运营商固件（易基带/频段异常）。&lt;/li&gt;
&lt;li&gt;使用最新 Platform-Tools（https://developer.android.com/studio/releases/platform-tools），避免旧版 fastboot 兼容问题。&lt;/li&gt;
&lt;li&gt;Windows 需安装设备驱动（ADB/Fastboot/Qualcomm），必要时禁用驱动签名强制安装。&lt;/li&gt;
&lt;li&gt;不要误动 EFS/Modem/ persist 等分区；这些分区与基带/IMEI/传感器密切相关。&lt;/li&gt;
&lt;li&gt;解锁 BL 会清空数据；若计划 Root，请勿在刷完后立刻“上锁”，否则可能卡砖。&lt;/li&gt;
&lt;li&gt;若开机进入官方 Recovery 出现“选择语言”界面，请勿继续初始化，优先重启回 Bootloader 再处理。&lt;/li&gt;
&lt;li&gt;动态分区设备需进入 fastbootd 才能刷 super.img 或使用 fastboot update。(我也不知道分区的知识)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;所需文件&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;平台工具：platform-tools（解压到英文路径，如 C:\adb）。&lt;/li&gt;
&lt;li&gt;对应机型的完整官方包（ColorOS/PixelOS 线刷包，含 payload.bin 或官方脚本）。
-（可选）payload-dumper-go 用于解包 payload.bin（https://github.com/ssut/payload-dumper-go）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;进入 Fastboot / Fastbootd&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;adb reboot bootloader              # 重启到 Fastboot（Bootloader）
fastboot devices                   # 确认设备已连接
fastboot reboot fastboot           # 进入 Fastbootd（用户态），用于刷 super 等动态分区
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如无法进入 fastbootd，可在 Fastboot 界面用音量键选择，或升级 platform-tools 后再试。&lt;/p&gt;
&lt;h2&gt;刷机&lt;/h2&gt;
&lt;p&gt;我也不知道怎么刷,如果有工具箱\脚本什么的,那可以把这些分区都自动地刷入.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;fastboot  flash abl abl.img
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果用过magisk,刷过boot.img的,应该好理解&lt;/p&gt;
&lt;h2&gt;在官方系统的fastboot里清理数据&lt;/h2&gt;
&lt;h2&gt;重启完成&lt;/h2&gt;
&lt;h1&gt;刷root&lt;/h1&gt;
&lt;h2&gt;主流 Root 方案对比分析,&lt;strong&gt;由gemini总结的&lt;/strong&gt;&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;方案&lt;/th&gt;
&lt;th&gt;优点&lt;/th&gt;
&lt;th&gt;缺点&lt;/th&gt;
&lt;th&gt;适合人群&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;[1] Magisk&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;👑 &lt;strong&gt;最稳定、最主流&lt;/strong&gt;&amp;lt;br /&amp;gt;模块生态最丰富，几乎所有教程都围绕它&amp;lt;br /&amp;gt;安装和使用最简单省心&lt;/td&gt;
&lt;td&gt;目标最大，容易被各种App检测针对&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;绝大多数用户，特别是新手&lt;/strong&gt;、追求稳定、不想折腾的小可爱。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;[2] Kitsune (Magisk Delta)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;🎭 &lt;strong&gt;隐藏能力更强&lt;/strong&gt;&amp;lt;br /&amp;gt;继承Magisk大部分功能&amp;lt;br /&amp;gt;内置多种隐藏手段，对付银行等App检测效果好&lt;/td&gt;
&lt;td&gt;相比原版Magisk，稳定性可能稍逊一筹&lt;/td&gt;
&lt;td&gt;需要Root但又想尽量躲过App检测，特别是&lt;strong&gt;金融、游戏类App&lt;/strong&gt;的用户。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;[3] Alpha&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;🧪 &lt;strong&gt;最新、最激进&lt;/strong&gt;&amp;lt;br /&amp;gt;集成了各种最新的Root技术和隐藏方案&amp;lt;br /&amp;gt;功能非常强大，更新快&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;极不稳定&lt;/strong&gt;，可能会导致各种奇奇怪怪的问题，甚至手机变砖&lt;/td&gt;
&lt;td&gt;喜欢尝鲜、不怕折腾、有一定救砖能力的&lt;strong&gt;搞机大神&lt;/strong&gt;。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;[4] APatch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;🧩 &lt;strong&gt;内核级修补&lt;/strong&gt;&amp;lt;br /&amp;gt;直接修补内核，某些方面隐藏性更好&amp;lt;br /&amp;gt;与Magisk模块部分兼容&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;操作门槛高&lt;/strong&gt;，需要理解内核知识&amp;lt;br /&amp;gt;如果内核不支持，就无法使用&lt;/td&gt;
&lt;td&gt;动手能力强，对内核有一定了解的&lt;strong&gt;高级玩家&lt;/strong&gt;。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;[5] KernelSU&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;🚀 &lt;strong&gt;新世代方案&lt;/strong&gt;&amp;lt;br /&amp;gt;从内核层面实现Root，隐藏性极佳&amp;lt;br /&amp;gt;对系统影响小，理论上更稳定、更省电&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;需要内核源码支持&lt;/strong&gt;，并非所有机型都能用&amp;lt;br /&amp;gt;模块生态正在发展中，不如Magisk丰富&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;所持机型官方支持KernelSU&lt;/strong&gt;，追求极致隐藏和性能的用户。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;[6] KernelSU-Next&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;🌟 &lt;strong&gt;KernelSU的未来&lt;/strong&gt;&amp;lt;br /&amp;gt;KernelSU的测试版或开发者预览版&amp;lt;br /&amp;gt;包含最新的功能和修复&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;不稳定&lt;/strong&gt;，仅供测试&lt;/td&gt;
&lt;td&gt;想要提前体验KernelSU新功能的&lt;strong&gt;开发者或高级玩家&lt;/strong&gt;。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;[7] SukiSU-Ultra&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;💖 &lt;strong&gt;未知的新秀&lt;/strong&gt;&amp;lt;br /&amp;gt;这似乎是一个非常小众或新兴的方案，公开信息极少&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;生态、稳定性、安全性未知&lt;/strong&gt;，可能是个人开发者作品&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;极度爱折腾，不畏风险的探索者&lt;/strong&gt;。不推荐普通宝宝尝试！&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;备份数据，开启开发者选项与 OEM 解锁、USB 调试。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;重启到 fastboot：&lt;code&gt;adb reboot bootloader&lt;/code&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;以下我只使用&lt;strong&gt;大侠阿木&lt;/strong&gt;的&lt;strong&gt;一加全能工具箱&lt;/strong&gt;就可以搞完了(狗头).附上&lt;a href=&quot;https://optool.daxiaamu.com/wiki_pctool&quot;&gt;链接&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;解锁 BL（&lt;strong&gt;会清除数据&lt;/strong&gt;），但是都刷到piexlos了，应该都打开过了(￣▽￣)b&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;4.选择P选项,专家root模式.其实还是挺小白的.点进去还可以后悔.等到手机关机了,那就不能反悔了呢.&lt;/p&gt;
&lt;p&gt;5.这里我选择了KernelSU,还是挺简单的.大侠的程序里有提示,告诉了手机刷入需要的全量包版本,直接拖入就行了.
后面都是一条龙.我削了个水果,中途就刷完重启结束了.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://optool.daxiaamu.com/install_kernelsu&quot;&gt;一加全能工具箱一键刷KernelSU教程&lt;/a&gt;&lt;/strong&gt;(收藏夹里见(๑•̀ㅂ•́)و✧)&lt;/p&gt;
&lt;h1&gt;在KernelSU里刷模块&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;大侠阿木推荐的&lt;a href=&quot;https://optool.daxiaamu.com/whattodowithroot&quot;&gt;《ROOT后可以做什么》&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://modules.lsposed.org/&quot;&gt;xp模块市场&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;最后也没什么要说的
注意点就是:需要你安装了lsposed模块,找不到怎么用的话,不妨看看通知栏(狗头),找了好久,换了其他的版本,才发现居然在通知栏,后面可以主动选择桌面快捷方式.&lt;/p&gt;
&lt;p&gt;参考资料&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.csdn.net/qq_45797625/article/details/148975330&quot;&gt;使用 KernelSU + PlayIntegrityFix 解决Root后ChatGPT不能使用的问题&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ivonblog.com/posts/magisk-hide-root/#3-%E9%80%8F%E9%81%8Eplay-integrity-fix-next%E9%80%9A%E9%81%8Eplay-integrity&quot;&gt;Android手機Magisk防Root偵測 ＋ 通過Play Integrity教學&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>备案成功与经验分享</title><link>https://blog.xomoe.cn/posts/2025-08-13/beian-get/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-08-13/beian-get/</guid><description>网站终于拿到备案号了！我的网站延迟终于更低了！分享一下我的备案全过程和一些实用小贴士。</description><pubDate>Wed, 13 Aug 2025 17:40:10 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;在8月10号星期日我提交了备案申请，今天终于收到了通过的短信，成功拿到了备案号，心情非常激动！从提交到通过，总共才花了不到4天，不得不说广西管局的审核效率真的很高！&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2025-08-13/beiang.png&quot; alt=&quot;备案成功&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这标志着我的个人小站正式走上了合规化的道路。下面我将分享一下备案的整个过程、一些注意事项以及各省的审核时长参考，希望能帮助到有需要的朋友。&lt;/p&gt;
&lt;h2&gt;我的备案流程简介&lt;/h2&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;：提交后，服务商会先进行一轮审核，检查信息是否有误。腾讯云的初审速度很快，基本是当天完成（可以催审，确实1天就完成了，我还在休息日申请的m(｡≧ｴ≦｡)m）。&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;h2&gt;各地管局预估审核时长参考&lt;/h2&gt;
&lt;p&gt;不同省份的管局审核效率差异很大，我借鉴了腾讯云上的预估时长数据，供大家参考（请注意，这只是预估，实际时长可能会有变动）：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;省份&lt;/th&gt;
&lt;th&gt;预估管局审核时长&lt;/th&gt;
&lt;th&gt;省份&lt;/th&gt;
&lt;th&gt;预估管局审核时长&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;安徽省&lt;/td&gt;
&lt;td&gt;12 - 17工作日&lt;/td&gt;
&lt;td&gt;辽宁省&lt;/td&gt;
&lt;td&gt;9 - 10工作日&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;北京市&lt;/td&gt;
&lt;td&gt;15 - 17工作日&lt;/td&gt;
&lt;td&gt;内蒙古自治区&lt;/td&gt;
&lt;td&gt;12 - 19工作日&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;福建省&lt;/td&gt;
&lt;td&gt;6 - 9工作日&lt;/td&gt;
&lt;td&gt;宁夏回族自治区&lt;/td&gt;
&lt;td&gt;8 - 12工作日&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;甘肃省&lt;/td&gt;
&lt;td&gt;11 - 14工作日&lt;/td&gt;
&lt;td&gt;青海省&lt;/td&gt;
&lt;td&gt;7 - 10工作日&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;广东省&lt;/td&gt;
&lt;td&gt;8 - 15工作日&lt;/td&gt;
&lt;td&gt;山东省&lt;/td&gt;
&lt;td&gt;10 - 13工作日&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;广西壮族自治区&lt;/td&gt;
&lt;td&gt;5 - 6工作日&lt;/td&gt;
&lt;td&gt;山西省&lt;/td&gt;
&lt;td&gt;15 - 19工作日&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;贵州省&lt;/td&gt;
&lt;td&gt;6 - 10工作日&lt;/td&gt;
&lt;td&gt;陕西省&lt;/td&gt;
&lt;td&gt;7 - 10工作日&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;海南省&lt;/td&gt;
&lt;td&gt;5 - 9工作日&lt;/td&gt;
&lt;td&gt;上海市&lt;/td&gt;
&lt;td&gt;5 - 10工作日&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;河北省&lt;/td&gt;
&lt;td&gt;8 - 11工作日&lt;/td&gt;
&lt;td&gt;四川省&lt;/td&gt;
&lt;td&gt;11 - 12工作日&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;河南省&lt;/td&gt;
&lt;td&gt;7 - 11工作日&lt;/td&gt;
&lt;td&gt;天津市&lt;/td&gt;
&lt;td&gt;4 - 11工作日&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;黑龙江省&lt;/td&gt;
&lt;td&gt;10 - 11工作日&lt;/td&gt;
&lt;td&gt;西藏自治区&lt;/td&gt;
&lt;td&gt;6 - 9工作日&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;湖北省&lt;/td&gt;
&lt;td&gt;8 - 12工作日&lt;/td&gt;
&lt;td&gt;新疆维吾尔自治区&lt;/td&gt;
&lt;td&gt;8 - 15工作日&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;湖南省&lt;/td&gt;
&lt;td&gt;13 - 16工作日&lt;/td&gt;
&lt;td&gt;云南省&lt;/td&gt;
&lt;td&gt;16 - 21工作日&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;吉林省&lt;/td&gt;
&lt;td&gt;6 - 11工作日&lt;/td&gt;
&lt;td&gt;浙江省&lt;/td&gt;
&lt;td&gt;7 - 10工作日&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;江苏省&lt;/td&gt;
&lt;td&gt;9 - 30工作日&lt;/td&gt;
&lt;td&gt;重庆市&lt;/td&gt;
&lt;td&gt;8 - 11工作日&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;江西省&lt;/td&gt;
&lt;td&gt;8 - 13工作日&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;接下来，我就可以安心地把网站部署在国内的服务器，享受更快的访问速度了&lt;/p&gt;
</content:encoded></item><item><title>新购VPS初始化配置指南</title><link>https://blog.xomoe.cn/posts/2025-08-13/vps-first-do/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-08-13/vps-first-do/</guid><description>从安全加固到环境配置，分享一套我常用的新购VPS初始化流程，让你的服务器快速进入最佳状态。</description><pubDate>Wed, 13 Aug 2025 17:40:10 GMT</pubDate><content:encoded>&lt;h2&gt;前言&lt;/h2&gt;
&lt;p&gt;每当拿到一台崭新的 VPS，就像获得了一块可以自由创作的数字画布，心情总是格外激动。但在我们大展拳脚、部署各种酷炫应用之前，一套标准化的初始配置流程是必不可少的。这不仅能为服务器打下坚实的安全基础，还能优化后续的使用体验。&lt;/p&gt;
&lt;p&gt;现在有很多方便的一键脚本比如&amp;lt;a class=&quot;transition link text-[var(--primary)] font-medium&quot; target=&quot;_blank&quot; href=&quot;https://kejilion.blogspot.com/2023/10/vps.html&quot;&amp;gt;kejilion&amp;lt;/a&amp;gt;，但理解每一步操作背后的原理，能让我们在遇到问题时更加从容。下面是我总结的一套个人常用初始化步骤。&lt;/p&gt;
&lt;h2&gt;一、安全为王：基础加固&lt;/h2&gt;
&lt;p&gt;拿到 VPS 后的第一件事，永远是安全加固。&lt;/p&gt;
&lt;h3&gt;1. 更改 Root 密码&lt;/h3&gt;
&lt;p&gt;服务商提供的初始密码通常是随机生成的，第一时间修改为你自己的高强度密码。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;passwd
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2. 创建一个新的管理员用户&lt;/h3&gt;
&lt;p&gt;出于安全考虑，建议创建一个新的用户并赋予其管理员权限，之后可以通过这个用户进行日常的管理操作。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 创建用户
adduser 新用户名

# 将用户添加到 sudo 组
usermod -aG sudo 新用户名
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3. 禁用 Root 用户远程登录&lt;/h3&gt;
&lt;p&gt;为了进一步提高安全性，禁用 Root 用户的远程登录，只允许通过新创建的管理员用户登录。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 编辑 SSH 配置文件
nano /etc/ssh/sshd_config

# 找到以下行并修改
PermitRootLogin no

# 重启 SSH 服务
systemctl restart sshd
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;4.安装或者配置防火墙&lt;/h3&gt;
&lt;p&gt;很多厂商都会默认配置初始的防火墙面板，但你也可以在vps上夜装一个防火墙，方便配置。如常用的iptables。&lt;/p&gt;
&lt;h2&gt;二、环境配置：软件与工具&lt;/h2&gt;
&lt;p&gt;在确保安全的基础上，接下来就是安装一些常用的软件和工具，提升服务器的可用性和管理效率。&lt;/p&gt;
&lt;h3&gt;1. 更新软件源&lt;/h3&gt;
&lt;p&gt;根据你的 VPS 地理位置和服务商，选择一个合适的软件源，更新系统的软件包。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 以 Debian/Ubuntu 为例
apt update &amp;amp;&amp;amp; apt upgrade -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2. 安装常用工具&lt;/h3&gt;
&lt;p&gt;根据个人需要安装一些常用的工具，比如 curl、wget、git 等。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 以 Debian/Ubuntu 为例
apt install -y curl unzip git
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3. 安装 Docker&lt;/h3&gt;
&lt;p&gt;Docker 是一个很好的工具，可以让你轻松管理应用的部署和运行环境。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 以 Debian/Ubuntu 为例
apt install -y docker.io

# 启动并设置 Docker 开机自启
systemctl start docker
systemctl enable docker
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;三、性能优化：加速与调优&lt;/h2&gt;
&lt;p&gt;在完成基础的软件安装后，可以进行一些性能上的优化设置。&lt;/p&gt;
&lt;h3&gt;1. 更改系统更新源、镜像源&lt;/h3&gt;
&lt;p&gt;根据你的实际情况，选择一个更快的系统更新源和镜像源，提升更新和下载的速度。&lt;/p&gt;
&lt;h3&gt;2. 优化 DNS地址&lt;/h3&gt;
&lt;p&gt;改变dns以提升域名解析速度
国外可以考虑使用 Google 的 8.8.8.8 和cf的1.1.1.1。
国内的可以考虑使用阿里云的 223.5.5.5 和 223.6.6.6。&lt;/p&gt;
&lt;h3&gt;3. 清理不必要的服务&lt;/h3&gt;
&lt;p&gt;根据实际需要，关闭一些不必要的系统服务，释放系统资源。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 查看当前运行的服务
systemctl list-units --type=service

# 停止并禁用不必要的服务
systemctl stop 服务名
systemctl disable 服务名
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;四、数据备份&lt;/h2&gt;
&lt;p&gt;以上就是我个人常用的新购 VPS 初始化配置流程，希望对你有所帮助。在完成这些基础配置后，你的 VPS 就可以在一个相对安全、稳定的环境中运行了。接下来就可以根据自己的需求，部署各种应用和服务，尽情发挥你的创意和想法吧！&lt;/p&gt;
</content:encoded></item><item><title>cdn浅试</title><link>https://blog.xomoe.cn/posts/2025-08-13/cdn-try/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-08-13/cdn-try/</guid><description>想白嫖cdn</description><pubDate>Wed, 13 Aug 2025 08:58:10 GMT</pubDate><content:encoded>&lt;h1&gt;先把蛋云拉出来鞭一下&lt;/h1&gt;
&lt;p&gt;##已跑路##
我的站点前一天刚部署好 CDN，速度还不错，结果第二天就直接失效了。怀疑老板给的套餐和账号是随机分配的，别人用的给我删了，我用的又被别人删了，体验极差。&lt;/p&gt;
&lt;h1&gt;域名备案&lt;/h1&gt;
&lt;p&gt;域名正在备案中，腾讯云初审速度还可以，但管局审核就得等很久了。要是这么久还不过，我不就炸缸了吗？纪念一下这“历史性”的一刻，工信部短信秒接(〃∀〃)。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2025-08-13/beiang.png&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;免备案 CDN 体验&lt;/h1&gt;
&lt;h2&gt;CoverIP&lt;/h2&gt;
&lt;p&gt;尝试了 CoverIP，这是我第一个付费的 CDN（｡í _ ì｡）。不过最近听说它要跑路了，官网已经没有 DNS 记录了。还好只买了一个月的 9.9 元套餐，目前还能用，站点解析暂时没掉。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优点&lt;/strong&gt;：价格便宜，免备案可用。&lt;br /&gt;
&lt;strong&gt;缺点&lt;/strong&gt;：已跑路，用的是阿里云200m，冗余少。&lt;/p&gt;
&lt;h2&gt;蛋云&lt;/h2&gt;
&lt;p&gt;据说背后是 D 哥，香港节点，速度算是国外 CDN 里最好的了。浙江地区 TCP 延迟 30-40ms，体验不错。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优点&lt;/strong&gt;：速度快。&lt;br /&gt;
&lt;strong&gt;缺点&lt;/strong&gt;：稳定性堪忧，跑路风险高。&lt;/p&gt;
&lt;h2&gt;海外版 EdgeOne&lt;/h2&gt;
&lt;p&gt;主要是新加坡节点，不知道为什么 itdog 测试全红，但站长工具可以 ping 出来。浙江地区延迟 110-150ms。胜在免费大厂，没备案没有国内节点。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优点&lt;/strong&gt;：大厂免费，适合海外访问。&lt;br /&gt;
&lt;strong&gt;缺点&lt;/strong&gt;：国内访问延迟高，节点少。&lt;/p&gt;
&lt;h2&gt;𝙌𝙞𝙪𝙙𝙪𝙣 𝘾𝘿𝙉（已关站）&lt;/h2&gt;
&lt;p&gt;&amp;lt;a class=&quot;transition link text-[var(--primary)] font-medium&quot; target=&quot;_blank&quot; href=&quot;https://www.scdn.koxiuqiu.cc/&quot;&amp;gt;公益 CDN&amp;lt;/a&amp;gt;，为个人站长提供服务。有国内节点，但我 tcping 出来浙江地区还是 30-40ms，和香港节点差不多。明明有浙江宁波电信节点，但接入的却是内蒙古的节点(´ー`)。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优点&lt;/strong&gt;：公益免费，国内节点。&lt;br /&gt;
&lt;strong&gt;缺点&lt;/strong&gt;：节点分配不太合理，延迟未必最低。&lt;/p&gt;
&lt;h2&gt;Cloudflare&lt;/h2&gt;
&lt;p&gt;免费、一键接入，国外访问速度快，配置简单。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优点&lt;/strong&gt;：全球节点，免费易用。&lt;br /&gt;
&lt;strong&gt;缺点&lt;/strong&gt;：国内访问速度一般，偶尔会被墙。&lt;/p&gt;
&lt;h2&gt;Fastly&lt;/h2&gt;
&lt;p&gt;比 Cloudflare 快，浙江地区 TCP 延迟 50-90ms，但也免不了和 Cloudflare 一样的问题——超时！&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优点&lt;/strong&gt;：速度快，节点分布广。&lt;br /&gt;
&lt;strong&gt;缺点&lt;/strong&gt;：国内访问不稳定，偶尔超时。&lt;/p&gt;
&lt;h1&gt;备案 CDN 体验&lt;/h1&gt;
&lt;h2&gt;阿里云&lt;/h2&gt;
&lt;p&gt;未尝试，听说有免费套餐的话可以试试，等备案下来再考虑。&lt;/p&gt;
&lt;h2&gt;又拍云&lt;/h2&gt;
&lt;p&gt;等我备案下来后，准备加入联盟，体验一下国内 CDN 的速度和稳定性。&lt;/p&gt;
&lt;h2&gt;腾讯云&lt;/h2&gt;
&lt;p&gt;看到有每月 100G 的免费试用，持续 6 个月。但用完后继续扣费会不会让我破产呢？-//(ǒ.ǒ)//-&lt;/p&gt;
&lt;h1&gt;总结与展望&lt;/h1&gt;
&lt;p&gt;目前免备案 CDN方案虽然方便，但稳定性和速度参差不齐，适合小站或临时需求。备案后国内大厂的 CDN 体验应该会更好，等备案通过后再来详细测评。&lt;/p&gt;
&lt;p&gt;**未完待续&lt;/p&gt;
</content:encoded></item><item><title>梦境</title><link>https://blog.xomoe.cn/posts/2025-08-13/dream/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-08-13/dream/</guid><description>8月13日碎碎叨</description><pubDate>Wed, 13 Aug 2025 08:58:10 GMT</pubDate><content:encoded>&lt;h2&gt;日常&lt;/h2&gt;
&lt;p&gt;今天重构了一下我的文章分类。感觉还是很烂，从小就没有逻辑◢▆▅▄▃崩╰(〒皿〒)╯潰▃▄▅▇◣&lt;/p&gt;
&lt;h2&gt;梦境&lt;/h2&gt;
&lt;p&gt;第一个梦是帮别人打 120，梦里还穿差着男生的通版童年，喜欢玩笔直的棍子。&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;
</content:encoded></item><item><title>浅记 8.2</title><link>https://blog.xomoe.cn/posts/2025-08-02/feel/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-08-02/feel/</guid><description>8 月 2 日碎碎念：Cloud 被封与新折腾</description><pubDate>Sat, 02 Aug 2025 18:55:00 GMT</pubDate><content:encoded>&lt;h2&gt;抱怨：Google Cloud 账号阵亡&lt;/h2&gt;
&lt;p&gt;今天发现 Google Cloud 账号被永久禁用了。虽然离到期还剩十来天，金钱上不算血亏，但还是心疼那台本打算长期持有的美国服务器。&lt;/p&gt;
&lt;p&gt;最令人困惑的是，这台 VPS 在过去几十天里一直运行稳定，最近却突然收到频繁的警告，然后迅速被封禁。我完全不清楚后台的哪个操作触发了风控。是常规的建站（BT / 1Panel）、使用了 &lt;code&gt;kejilion&lt;/code&gt; 的脚本、Reality 协议，还是我正准备实验的 GoEdge CDN？GoEdge 我甚至还没完全搭好，项目就被整个端掉了，这种“死得不明不白”的体验实在糟糕。&lt;/p&gt;
&lt;p&gt;云厂商的封禁策略就像一个黑箱，申诉邮件也大概率石沉大海。只能自认倒霉，记录一下这次的翻车过程。&lt;/p&gt;
&lt;h2&gt;新的开始：折腾永不停止&lt;/h2&gt;
&lt;p&gt;旧的不去，新的不来。&lt;/p&gt;
&lt;p&gt;转头试了一下某位大佬的 sspanel，初步跑通了，对它的管理界面和节点对接逻辑有了大致了解。折腾过程中，还顺手研究了这篇关于&amp;lt;a class=&quot;transition link text-[var(--primary)] font-medium&quot; target=&quot;_blank&quot; href=&quot;https://xeonzilla.top/posts/anti_malicious_mirroring&quot;&amp;gt;网站防镜像&amp;lt;/a&amp;gt;的文章，打算之后给博客也加上。&lt;/p&gt;
&lt;p&gt;玩着玩着，甚至萌生了“要不要自建一套”的冲动（当然不是真的要开机场，纯粹是技术探索欲作祟）。&lt;/p&gt;
&lt;h2&gt;小结&lt;/h2&gt;
&lt;p&gt;今天的经历可以总结为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;机器没了&lt;/strong&gt; → 以后操作要更谨慎，对风控策略多一份敬畏。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新坑开了&lt;/strong&gt; → 折腾的乐趣在于过程，生命不息，探索不止。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;就这样，继续记录，别让经验白白流失。&lt;/p&gt;
</content:encoded></item><item><title>记一次公网IPv6的折腾与使用</title><link>https://blog.xomoe.cn/posts/2025-08-01/first-ipv6-test/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-08-01/first-ipv6-test/</guid><description>从入门到实践，我的公网IPv6初体验</description><pubDate>Fri, 01 Aug 2025 20:10:00 GMT</pubDate><content:encoded>&lt;h2&gt;背景：与 IPv6 的初遇&lt;/h2&gt;
&lt;p&gt;故事始于一次宽带升级。家中带宽提升至 500Mbps 后，我对拥有一个公网 IP 的渴望也日益增长。在申请公网 IPv4 屡屡碰壁后，我将目光转向了被誉为“互联网未来”的 IPv6。尽管它那超长的地址串初看起来令人望而生畏，但这并未阻挡我探索的脚步。&lt;/p&gt;
&lt;p&gt;早期的尝试并不顺利。我曾跟随教程，试图让路由器直接获取并分配公网 IPv6 地址，以绕过光猫的限制。但由于层层防火墙和网络知识的匮乏，那次探索最终以失败告终。&lt;/p&gt;
&lt;h2&gt;入门：在虚拟机上实现公网访问&lt;/h2&gt;
&lt;p&gt;最近，我对家庭服务器的兴趣重燃。虽然没有购置独立设备的预算，但我巧妙地利用了 &lt;code&gt;VMware&lt;/code&gt; 虚拟机和&lt;strong&gt;桥接模式&lt;/strong&gt;，成功让虚拟机获取了独立的公网 IPv6 地址，拥有了与宿主机平等的网络地位。&lt;/p&gt;
&lt;p&gt;探索过程中也遇到了一些典型问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;端口封锁&lt;/strong&gt;：家庭宽带默认会封禁 80/443 等常用端口，这意味着即使有了公网 IP，也无法直接搭建标准 Web 服务，访问时必须在域名后带上端口号。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动态地址&lt;/strong&gt;：家庭网络的 IPv6 地址前缀并非固定，随时可能变化。为了解决这个问题，&lt;strong&gt;DDNS（动态域名服务）&lt;/strong&gt; 成了刚需。我配置了 DDNS，将动态的 IPv6 地址绑定到固定的域名上。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在申请泛域名证书时，我还被西部数码的 DNS 接口坑了一把，浪费了不少时间，这也是折腾路上常见的小插曲了。&lt;/p&gt;
&lt;h2&gt;成果：服务部署与远程访问&lt;/h2&gt;
&lt;p&gt;经过一番努力，我成功在公网 IPv6 环境下部署了多个服务，并通过 &lt;code&gt;DDNS域名 + 端口&lt;/code&gt; 的方式实现了外网访问。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cloudreve&lt;/strong&gt;：个人云盘，用于文件存储与分享。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alist&lt;/strong&gt;：挂载各类网盘，聚合管理。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CodeBox&lt;/strong&gt;：一个轻量的在线代码、文本分享工具。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;经过好友在其他省份的“实测”，确认所有服务均可正常访问，这让我备受鼓舞 (,,・ω・,,)。&lt;/p&gt;
&lt;h2&gt;总结与遗憾&lt;/h2&gt;
&lt;p&gt;这次经历让我深刻体会到，IPv6 为个人开发者和爱好者打开了一扇新的大门，让家庭网络拥有了更多可能性。&lt;/p&gt;
&lt;p&gt;唯一的遗憾是，我所在的大学（一所没有计算机专业的普通二本）校园网并不支持 IPv6。向学校反映这个需求似乎也不太现实，毕竟这在当前环境下仍属小众需求。如果哪天校园网也能拥抱 IPv6，我大概会高兴得飞起来吧！(｡í _ ì｡)&lt;/p&gt;
</content:encoded></item><item><title>8月初的折腾与吐槽</title><link>https://blog.xomoe.cn/posts/2025-08-01/feel/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-08-01/feel/</guid><description>8月1日碎碎念：从账号被封到技术新尝试</description><pubDate>Fri, 01 Aug 2025 19:04:00 GMT</pubDate><content:encoded>&lt;h2&gt;近期糟心事&lt;/h2&gt;
&lt;p&gt;八月伊始，糟心事却接踵而至。&lt;/p&gt;
&lt;p&gt;先是坚持签到的百度极速版，突然就把我封了。之前限制提现额度也就算了，现在连每天 0.3 元的“低保”都断了，令人不快。&lt;/p&gt;
&lt;p&gt;更让人头大的是，Google Cloud Platform (GCP) 最近速度不佳，还以“发送流量提高网站排名”理由，封禁了我的两个项目。我一个刚入门的小站长，何德何能去操纵网站排名？实在无力吐槽。
&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/2025-08-02/google-block.png&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;
&lt;p&gt;就连老相好壁纸软件 &lt;code&gt;upupoo&lt;/code&gt; 也变得越来越臃肿。原本一个会员就能解锁全部内容，现在却搞出了 SVIP、拼团等五花八门的额外付费项目，体验直线下降。&lt;/p&gt;
&lt;h2&gt;新的折腾记录&lt;/h2&gt;
&lt;p&gt;虽然遇到不少麻烦，但折腾的脚步并未停止。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;防镜像实践&lt;/strong&gt;：最近在研究网站防镜像的方案，参考了这篇&amp;lt;a class=&quot;transition link text-[var(--primary)] font-medium&quot; target=&quot;_blank&quot; href=&quot;https://xeonzilla.top/posts/anti_malicious_mirroring&quot;&amp;gt;防镜像文章&amp;lt;/a&amp;gt;中的代码，经过初步尝试，已经成功在博客上部署，效果不错。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sub-Store 探索&lt;/strong&gt;：开始尝试使用 &lt;code&gt;sub-store&lt;/code&gt; 这个工具，还在摸索阶段。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hex 编码困惑&lt;/strong&gt;：在进行&amp;lt;a class=&quot;transition link text-[var(--primary)] font-medium&quot; target=&quot;_blank&quot; href=&quot;http://www.hiencode.com/hex.html&quot;&amp;gt;Hex 编码&amp;lt;/a&amp;gt;转换时，发现不同网站工具得出的结果竟然不一致，具体原因还有待研究。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;薅羊毛小记&lt;/strong&gt;：发现新办的虚拟卡已经无法用于验证 GCP 的 300 美元赠金了，但幸运的是，用 N26 成功薅到了等值的欧元赠金，也算失之东隅，收之桑榆。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最后，在折腾之余，也找到了许多赏心悦博的壁纸，算是给这个月初增添了一抹亮色。💗&lt;/p&gt;
</content:encoded></item><item><title>mdx尝试</title><link>https://blog.xomoe.cn/posts/2025-07-22/super-simple-test/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-07-22/super-simple-test/</guid><description>mdx尝试</description><pubDate>Tue, 22 Jul 2025 19:58:00 GMT</pubDate><content:encoded>&lt;h2&gt;欢迎来到我的新世界！&lt;/h2&gt;
&lt;p&gt;这是一些普通的 Markdown 文本，和以前写起来一模一样。&lt;/p&gt;
&lt;h2&gt;看看我的新玩具！&lt;/h2&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;&amp;lt;TipBox&amp;gt;
嘻嘻，这是一个用 &lt;strong&gt;MDX&lt;/strong&gt; 和 &lt;strong&gt;Astro 组件&lt;/strong&gt; 实现的超可爱提示框！是不是感觉文章都变得生动起来了？你还可以在里面用 &lt;strong&gt;Markdown&lt;/strong&gt; 语法哦！
&amp;lt;/TipBox&amp;gt;&lt;/p&gt;
&lt;p&gt;是不是超简单！你现在可以随心所欲地在文章任何地方使用 &lt;code&gt;&amp;lt;TipBox&amp;gt;&lt;/code&gt; 了。&lt;/p&gt;
</content:encoded></item><item><title>我的第一篇 MDX 文章：一个温暖的抱抱按钮</title><link>https://blog.xomoe.cn/posts/2025-07-22/my-first-real-mdx-post/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-07-22/my-first-real-mdx-post/</guid><description>用代码创造一个可以拥抱的按钮，送给你也送给自己。希望它能给你带来一点温暖。</description><pubDate>Tue, 22 Jul 2025 19:58:00 GMT</pubDate><content:encoded>&lt;p&gt;import HugButton from &apos;@/components/HugButton.svelte&apos;;&lt;/p&gt;
&lt;p&gt;耶！欢迎来到我的第一篇 MDX 文章！🎉&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;&amp;lt;div class=&quot;flex justify-center my-8&quot;&amp;gt;
&amp;lt;HugButton client:load /&amp;gt;
&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;是不是超级解压！&lt;/p&gt;
&lt;p&gt;每一次点击，都是一次小小的自我肯定。希望这个互动的小小按钮，能跨越屏幕，给你带去一丝丝真实的温暖和快乐。&lt;/p&gt;
</content:encoded></item><item><title>7月22日碎碎叨</title><link>https://blog.xomoe.cn/posts/2025-07-22/feel/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-07-22/feel/</guid><description>7月22日碎碎叨</description><pubDate>Tue, 22 Jul 2025 19:39:00 GMT</pubDate><content:encoded>&lt;p&gt;昨天和今天一直在捣鼓博客-Fuwari,耗费了快2天时间。&lt;/p&gt;
&lt;p&gt;评论区从Valine、Waline、giscus一直到twikoo。不断变化。&lt;/p&gt;
&lt;p&gt;gemini改的一团糟，各种评论区的bug。从不显示、间隔显示、刷新也不显示等等。&lt;/p&gt;
&lt;p&gt;最后也就github的giscus，和twikoo完美成功了。&lt;/p&gt;
&lt;p&gt;音乐播放器感觉不够现代化，没有集成到导航栏。&lt;/p&gt;
&lt;p&gt;感觉真的老了，很难保持一个求知的💗，总是用偏见看待事物。&lt;/p&gt;
&lt;p&gt;我也算是明白老年人为什么很难荣辱新生活了，啥也不懂，agent，还有…cli，网络安全相关的，代理文件加内核上网。&lt;/p&gt;
</content:encoded></item><item><title>代码与电流的共舞，和小狼的秘密游戏~</title><link>https://blog.xomoe.cn/posts/2025-07-21/second/jiaolang/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-07-21/second/jiaolang/</guid><description>嘘...这是我和我的新玩具“小狼”的一些心跳回忆。</description><pubDate>Mon, 21 Jul 2025 19:59:00 GMT</pubDate><content:encoded>&lt;h3&gt;দুষ্ট Naughty Tools দুষ্ট&lt;/h3&gt;
&lt;p&gt;嘻嘻，发现了一些超级好玩的小项目，让冰冷的代码，变成了能让身体轻轻战栗的电流~ 分享给同样喜欢探索的你呀！&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a&gt;监听键鼠事件&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;简介：让每一次鼠标点击，都变成一次突如其来的酥麻“惩罚”~ 点错地方的话，身体可是会诚实地告诉你哦。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/lxyddice/DGLabVSCode&quot;&gt;VSCode 亲密伴侣&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;简介：在代码的世界里，让每一次敲击都伴随着电流的亲吻。写出 bug 的时候，它会给你一点“深刻”的记忆...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/klxf/Duolingo-Coyote-Assistant&quot;&gt;学习助手&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;简介：用多邻国背单词的时候，答错了怎么办？就让小狼用它独特的方式，帮你把知识“刻”在身体里吧~&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/hyperzlib/DG-Lab-Coyote-Game-Hub&quot;&gt;战败惩罚——郊狼游戏控制器&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;简介：玩游戏的时候，让每一次受伤都变成真实的颤抖。代入感超强，就是有点废人...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这些都是很简单的入门玩法，不需要复杂的设置就能开始你的心跳之旅~&lt;/p&gt;
&lt;p&gt;还有还有，这个波形集合一定要试试看！&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;波形宝藏库：&lt;/strong&gt; &amp;lt;a class=&quot;transition link text-[var(--primary)] font-medium&quot; target=&quot;_blank&quot; href=&quot;https://github.com/sjhxlll/dg-lab-waveform-collection&quot;&amp;gt;github下载&amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;使用方法：&lt;/strong&gt; 打开 DG-LAB 软件，在右上角的设置里找到“波形导入”，选中下载好的文件，然后就可以解锁各种奇妙的波形，和你的小狼一起玩耍啦~&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h3&gt;身体的悄悄话&lt;/h3&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;h3&gt;请注意身体，不要玩过头了喵&lt;/h3&gt;
</content:encoded></item><item><title>博客の伊始</title><link>https://blog.xomoe.cn/posts/2025-07-21/first/hello-world/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-07-21/first/hello-world/</guid><description>这是我的博客的出生日，好开心呀！</description><pubDate>Mon, 21 Jul 2025 09:23:00 GMT</pubDate><content:encoded>&lt;h2&gt;Hello World!&lt;/h2&gt;
&lt;p&gt;你好，世界！这是我的第一篇文章，真的好开心呀！&lt;/p&gt;
&lt;p&gt;这已经是我第二次尝试搭建静态博客了。告别了动态的 WordPress，也体验过 Hexo + 安知鱼主题的组合，但当看到现在这个主题时，我瞬间就被击中了审美 (✧∀✧)，当即决定就是它了！&lt;/p&gt;
&lt;p&gt;最初搭建时，我还默默许愿，希望它能有一个音乐播放器。&lt;/p&gt;
&lt;p&gt;没想到……&lt;/p&gt;
&lt;h2&gt;两天后的更新&lt;/h2&gt;
&lt;p&gt;才过了两天，我的小破站就已经拥有了音乐播放器、友链和评论区功能！&lt;/p&gt;
&lt;p&gt;&amp;lt;TipBox&amp;gt;
文章格式也从 Markdown 升级到了功能更强大的 MDX，可以像这样嵌入各种好玩的小组件了！
&amp;lt;/TipBox&amp;gt;&lt;/p&gt;
&lt;p&gt;一切都在变得更好，未来可期！&lt;/p&gt;
</content:encoded></item><item><title>akile 香港HKLite-Mini nodequality测试</title><link>https://blog.xomoe.cn/posts/test/akile-test-hk/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/test/akile-test-hk/</guid><description>akile</description><pubDate>Sat, 21 Jun 2025 11:39:10 GMT</pubDate><content:encoded>&lt;h1&gt;💻基本信息&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;Basic System Information:
---------------------------------
Uptime     : 8 days, 6 hours, 51 minutes
Processor  : AMD EPYC 7532 32-Core Processor
CPU cores  : 1 @ 2395.498 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ✔ Enabled
RAM        : 979.0 MiB
Swap       : 521.0 MiB
Disk       : 10.0 GiB
Distro     : Debian GNU/Linux 12 (bookworm)
Kernel     : 5.10.0-26-cloud-amd64
VM Type    : STANDARD PC (I440FX + PIIX, 1996)
IPv4/IPv6  : ✔ Online / ✔ Online

IPv6 Network Information:
---------------------------------
ISP        : NET6-AS61112
ASN        : AS61112 AKILE LTD
Location   : Hong Kong, Kowloon ()
Country    : Hong Kong

fio Disk Speed Tests (Mixed R/W 50/50) (Partition -):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 102.61 MB/s  (25.6k) | 102.37 MB/s   (1.5k)
Write      | 102.88 MB/s  (25.7k) | 102.90 MB/s   (1.6k)
Total      | 205.49 MB/s  (51.3k) | 205.28 MB/s   (3.2k)
           |                      |                     
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 97.75 MB/s     (190) | 96.54 MB/s      (94)
Write      | 102.94 MB/s    (201) | 102.96 MB/s    (100)
Total      | 200.70 MB/s    (391) | 199.50 MB/s    (194)

Geekbench 5 Benchmark Test:
---------------------------------
Test            | Value                         
                |                               
Single Core     | 861                           
Multi Core      | 836                           
Full Test       | https://browser.geekbench.com/v5/cpu/23450539

 SysBench CPU 测试 (Fast Mode, 1-Pass @ 5sec)
---------------------------------
 1 线程测试(单核)得分:          1600 Scores
 SysBench 内存测试 (Fast Mode, 1-Pass @ 5sec)
---------------------------------
 单线程读测试:          41044.51 MB/s
 单线程写测试:          17900.27 MB/s
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;🎬IP质量&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/vps-test/akile/hk/ohSAcH1SJgGrqBwih8jki6.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;🌐网络质量&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/vps-test/akile/hk/LJIbxrGg64sRza6iuZO8EW.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;📍回程路由&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/vps-test/akile/hk/NagC4KEKI2fxZlV40GqS7r.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://nodequality.com/r/1mpvPbipKR99X5Hj8m2p1wYWYtSnj7fT&quot;&gt;NodeQuality链接&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>备考周末的碎碎念</title><link>https://blog.xomoe.cn/posts/2025-06-06/1/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-06-06/1/</guid><description>周末也被期末考试填满，但多学的半小时也算是一种小小的胜利。</description><pubDate>Fri, 06 Jun 2025 19:59:00 GMT</pubDate><content:encoded>&lt;p&gt;又是一个平淡的周末，但期末考试的压力却如影随形，让人丝毫不敢松懈。(︶︿︶)&lt;/p&gt;
&lt;p&gt;好在今天比计划里多坚持了半个多小时，也算是在枯燥的“复习”中给自己的一点小小的正反馈吧。&lt;/p&gt;
&lt;p&gt;为自己加油！(ง•̀_•́)ง&lt;/p&gt;
</content:encoded></item><item><title>6月5日的思考</title><link>https://blog.xomoe.cn/posts/2025-06-05/first/feel/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-06-05/first/feel/</guid><description>关于关系模式、日常小事与虚拟作品的一些杂感。</description><pubDate>Thu, 05 Jun 2025 19:59:00 GMT</pubDate><content:encoded>&lt;h3&gt;1. 关于男生之间相处模式的一些好奇&lt;/h3&gt;
&lt;p&gt;最近总在思考，不同属性的男生之间，相处模式似乎会自然而然地演化出有趣的形态。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Bottom 与 Bottom：闺蜜情谊？&lt;/strong&gt;
我观察到，他们之间似乎很容易发展成闺蜜关系。大概是因为在情感表达、审美偏好、袒露脆弱以及对“被爱”的幻想上有着天然的共鸣。可以一起吐槽直男、互相提供情绪支持、分享最新的BL作品，甚至开玩笑说“好想被疼爱”。偶尔的小小醋意和斗嘴，也像极了女生间那种“互宠互怼”的亲密。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Top 与 Top：兄弟情谊？&lt;/strong&gt;
而他们之间，则似乎更容易建立起“哥们儿”或“战友”般的联结。话题可能更多围绕健身、游戏、技术工具或是理性策略。有时会开些无伤大雅的玩笑，比如“咱俩都这样，谁上谁下啊哈哈”，然后笑着打趣“那只能摔跤决定了”💥。这种互相欣赏又暗自较劲的气场，充满了独特的兄弟vibe。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. 日常碎片&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;学习&lt;/strong&gt;：今天也是认真学习的一天，啃下了环境工程原理、电工电子技术和物理化学的硬骨头，满满的充实感。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;路线&lt;/strong&gt;：晚自习换了条新路线，感觉自己终于摆脱了“定时刷新”的 NPC 设定，为日常注入了一点新意。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;健身&lt;/strong&gt;：依旧是渴望拥有马甲线的一天，我舔舔舔！&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. 关于虚拟作品的困惑&lt;/h3&gt;
&lt;p&gt;我不知道应该如何评价某些小说情节。故事里的东西，应该是这样的吗？&lt;/p&gt;
&lt;p&gt;哪怕是标记为18禁的作品，也应当尊重基本的人权吧。但在一些故事里，“受”方的角色被直播玩弄，被强制或以“爱”为名进行伪强制，完全失去了自由和尊严。他们的人格被强行改造，欲望被强加，仅仅是为了满足另一方或读者的性欲与快感。&lt;/p&gt;
&lt;p&gt;即使作者的文笔再好，这样的情节也让我感到生理性不适。然而，现实中似乎也存在着类似直播、并有人乐在其中的现象，这让我更加困惑。只能说，人性真是复杂难评。&lt;/p&gt;
</content:encoded></item><item><title>2025.06.04</title><link>https://blog.xomoe.cn/posts/2025-06-04/1/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-06-04/1/</guid><description>关于失眠的胡思乱想，以及一件被嫖小事。</description><pubDate>Wed, 04 Jun 2025 19:59:00 GMT</pubDate><content:encoded>&lt;h3&gt;关于睡眠的胡思乱想&lt;/h3&gt;
&lt;p&gt;有人说，睡着了，灵魂便开始自由遨游。&lt;/p&gt;
&lt;p&gt;那失眠，或许就是灵魂固执地，想要多陪陪这副疲惫的身体吧。&lt;/p&gt;
&lt;h3&gt;被嫖小记&lt;/h3&gt;
&lt;p&gt;今天把 Helium 手机号转移到了 Google Voice，为此多付了两美元的税，算是一笔小小的折腾开销。我怎么就没设置到免税州呢（悲伤）&lt;/p&gt;
&lt;h3&gt;每日图片&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/pic@master/img/mocha%40%E6%96%B0%E5%88%8A%E5%A7%94%E8%A8%97%E4%B8%AD_STARS_93409096_p0.png&quot; alt=&quot;每日图片&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>claw的jp$7首年 nodequality测试</title><link>https://blog.xomoe.cn/posts/test/claw-jp-7/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/test/claw-jp-7/</guid><description>claw</description><pubDate>Fri, 04 Apr 2025 21:06:10 GMT</pubDate><content:encoded>&lt;h1&gt;💻基本信息&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;Basic System Information:
---------------------------------
Uptime     : 43 days, 54 hours, 0 minutes
Processor  : Intel(R) Xeon(R) Platinum
CPU cores  : 1 @ 2500.000 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ❌ Disabled
RAM        : 908.0 MiB
Swap       : 1.0 GiB
Disk       : 20.3 GiB
Distro     : Debian GNU/Linux 12 (bookworm)
Kernel     : 5.15.0-131-generic
VM Type    : ALIBABA CLOUD ECS
IPv4/IPv6  : ✔ Online / ✔ Online

IPv6 Network Information:
---------------------------------
ISP        : Alibaba (US) Technology Co., Ltd.
ASN        : AS45102 Alibaba (US) Technology Co., Ltd.
Host       : Alibaba.com LLC
Location   : Tokyo, Tokyo (13)
Country    : Japan

fio Disk Speed Tests (Mixed R/W 50/50) (Partition -):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 20.47 MB/s    (5.1k) | 96.16 MB/s    (1.5k)
Write      | 20.49 MB/s    (5.1k) | 96.67 MB/s    (1.5k)
Total      | 40.97 MB/s   (10.2k) | 192.84 MB/s   (3.0k)
           |                      |                     
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ---- 
Read       | 91.43 MB/s     (178) | 91.06 MB/s      (88)
Write      | 96.29 MB/s     (188) | 97.13 MB/s      (94)
Total      | 187.72 MB/s    (366) | 188.20 MB/s    (182)

Geekbench 5 Benchmark Test:
---------------------------------
Test            | Value                         
                |                               
Single Core     | 519                           
Multi Core      | 506                           
Full Test       | https://browser.geekbench.com/v5/cpu/23450602

 SysBench CPU 测试 (Fast Mode, 1-Pass @ 5sec)
---------------------------------
 1 线程测试(单核)得分:          784 Scores
 SysBench 内存测试 (Fast Mode, 1-Pass @ 5sec)
---------------------------------
 单线程读测试:          2725.76 MB/s
 单线程写测试:          2417.21 MB/s
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;🎬IP质量&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/vps-test/claw/jp/V67VY9b2CRCQmavAFWwPG5.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;🌐网络质量&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/vps-test/claw/jp/hIujWOIaczhzQA24BwYDYO.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;📍回程路由&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.jsdelivr.net/gh/sjhxlll/fuwari-img@master/vps-test/claw/jp/Ww9S4iwsKwUBwyY3UBV85V.png&quot; alt=&quot;image&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://nodequality.com/r/5BmmKinhmV2hNuGApSKu0Aiql1qDW16P&quot;&gt;NodeQuality链接&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Include Video in the Posts</title><link>https://blog.xomoe.cn/posts/2025-07-21/video/</link><guid isPermaLink="true">https://blog.xomoe.cn/posts/2025-07-21/video/</guid><description>This post demonstrates how to include embedded video in a blog post.</description><pubDate>Tue, 01 Aug 2023 19:59:00 GMT</pubDate><content:encoded>&lt;p&gt;Just copy the embed code from YouTube or other platforms, and paste it in the markdown file.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
title: Include Video in the Post
published: 2023-10-19
// ...
---

&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;https://www.youtube.com/embed/5gIf0_xpFPI?si=N1WTorLKL0uwLsU_&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Bilibili&lt;/h2&gt;
&lt;p&gt;&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;//player.bilibili.com/player.html?bvid=BV1fK4y1s7Qf&amp;amp;p=1&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&amp;gt; &amp;lt;/iframe&amp;gt;&lt;/p&gt;
</content:encoded></item></channel></rss>