<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://blog.ikarox.cn/</id>
  <title type="text">世間的美好</title>
  <subtitle type="text">Demo site</subtitle>
  <updated>2026-09-09T00:00:00.000Z</updated>
  <author><name>世間的美好</name></author>
  <link rel="alternate" href="https://blog.ikarox.cn/"/>
  <link rel="self" href="https://blog.ikarox.cn/atom.xml"/>
  <generator uri="https://github.com/CuteLeaf/Firefly">Firefly v6.16.8</generator>
    <entry>
      <id>https://blog.ikarox.cn/posts/codex-%E6%AF%8F%E6%AC%A1%E9%83%BD%E9%87%8D%E8%BF%9E5%E6%AC%A1%E5%8F%AF%E8%83%BD%E6%98%AF-websocket-%E6%B2%A1%E8%B5%B0%E4%BB%A3%E7%90%86/</id>
      <title type="text">Codex 每次都重连5次——可能是 WebSocket 没走代理</title>
      <published>2026-09-09T00:00:00.000Z</published>
      <updated>2026-09-09T00:00:00.000Z</updated>
      <author><name>世間的美好</name></author>
      <link rel="alternate" href="https://blog.ikarox.cn/posts/codex-%E6%AF%8F%E6%AC%A1%E9%83%BD%E9%87%8D%E8%BF%9E5%E6%AC%A1%E5%8F%AF%E8%83%BD%E6%98%AF-websocket-%E6%B2%A1%E8%B5%B0%E4%BB%A3%E7%90%86/"/>
      <summary type="text">Codex 启动后反复显示 Reconnecting，通常是普通 HTTP 请求可以通过代理，但 WebSocket 没有正确走代理。本文介绍对应的代理配置和排查方法。</summary>
      <content type="html"><![CDATA[<p>每次打开 Codex，提交问题后都要先看一遍：</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>Reconnecting… 1/5</span></div></div><div><div><div>2</div></div><div><span>Reconnecting… 2/5</span></div></div><div><div><div>3</div></div><div><span>Reconnecting… 3/5</span></div></div><div><div><div>4</div></div><div><span>Reconnecting… 4/5</span></div></div><div><div><div>5</div></div><div><span>Reconnecting… 5/5</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>等上一两分钟，它又突然恢复正常，开始回答问题。</p>
<p>这种情况通常不是模型响应慢，也不一定是账号或服务出了问题。更常见的原因是：普通 HTTP 请求可以正常通过代理，但 WebSocket 连接没有走通。</p>
<section><h2>为什么失败几次后又能用了？<a href="#为什么失败几次后又能用了"><span>#</span></a></h2><p>Codex 的实时通信可能使用 WebSocket。OpenAI 的 Responses API 本身也支持通过 WebSocket 建立长连接。<a href="https://developers.openai.com/api/docs/guides/latest-model" target="_blank">OpenAI 官方文档</a></p><p>问题在于，一些代理软件只接管普通 HTTP/HTTPS 流量，没有正确处理 WSS，或者 Codex 没有读取到对应的代理配置。于是就出现了下面的过程：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>尝试建立 WebSocket 连接</span></div></div><div><div><div>2</div></div><div><span><span>        </span></span><span>↓</span></div></div><div><div><div>3</div></div><div><span>代理没有正确转发，连接超时</span></div></div><div><div><div>4</div></div><div><span><span>        </span></span><span>↓</span></div></div><div><div><div>5</div></div><div><span>连续重试多次</span></div></div><div><div><div>6</div></div><div><span><span>        </span></span><span>↓</span></div></div><div><div><div>7</div></div><div><span>放弃 WebSocket，回退到普通 HTTP</span></div></div><div><div><div>8</div></div><div><span><span>        </span></span><span>↓</span></div></div><div><div><div>9</div></div><div><span>HTTP 可以正常通过代理，Codex 恢复工作</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>所以它并非完全无法连接，而是在 WebSocket 重试阶段白白等了一段时间。具体的重试次数和超时时间可能随 Codex 版本变化，但“反复 Reconnecting，最后又能使用”是比较典型的代理链路问题。</p></section>
<section><h2>推荐解决办法：让 WebSocket 也走代理<a href="#推荐解决办法让-websocket-也走代理"><span>#</span></a></h2><p>如果不想关闭 WebSocket，可以在 Codex 的配置目录中创建 <code>.env</code> 文件，为它补上代理环境变量。</p><p>文件位置如下：</p>

<table><thead><tr><th>系统</th><th>文件路径</th></tr></thead><tbody><tr><td>macOS / Linux</td><td><code>~/.codex/.env</code></td></tr><tr><td>Windows</td><td><code>C:\Users\你的用户名\.codex\.env</code></td></tr></tbody></table><p>Windows 用户需要特别注意：文件名必须是 <code>.env</code>，不能是 <code>.env.txt</code>。如果资源管理器隐藏了扩展名，看起来叫 <code>.env</code> 的文件，实际可能仍然带有 <code>.txt</code> 后缀。</p><p>在文件中填写：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>HTTP_PROXY="http://127.0.0.1:你的代理端口"</span></div></div><div><div><div>2</div></div><div><span>HTTPS_PROXY="http://127.0.0.1:你的代理端口"</span></div></div><div><div><div>3</div></div><div><span>NO_PROXY="localhost,127.0.0.1,::1"</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>例如代理软件显示的 HTTP 或混合端口是 <code>7897</code>，配置可以写成：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>HTTP_PROXY="http://127.0.0.1:7897"</span></div></div><div><div><div>2</div></div><div><span>HTTPS_PROXY="http://127.0.0.1:7897"</span></div></div><div><div><div>3</div></div><div><span>NO_PROXY="localhost,127.0.0.1,::1"</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>这里的 <code>7897</code> 只是示例，必须换成代理软件实际提供的端口。通常应填写 HTTP 端口或混合端口，不要直接照搬 SOCKS 端口。</p><p>保存文件后，彻底退出 Codex，再重新打开。仅关闭窗口有时不够，最好确认后台进程也已经结束。</p></section>
<section><h2>怎么判断是否生效？<a href="#怎么判断是否生效"><span>#</span></a></h2><p>重新启动 Codex 后发送一条简单消息，观察连接过程：</p><ul>
<li>
<p>如果不再出现连续五次 <code>Reconnecting</code>，说明代理配置已经生效。</p>
</li>
<li>
<p>如果仍然重复重连，先检查端口是否正确，以及 <code>.env</code> 是否被保存成了 <code>.env.txt</code>。</p>
</li>
<li>
<p>如果普通 HTTP 代理仍无法承载 WebSocket，可以尝试代理软件的“系统代理”“增强模式”或 TUN 模式。</p>
</li>
<li>
<p>公司网络、证书检查软件和防火墙也可能拦截 WSS，此时需要检查网络策略，而不只是更换端口。</p>
</li>
</ul></section>
<section><h2>其他问题<a href="#其他问题"><span>#</span></a></h2><p>配置了.env之后，不挂代理似乎会导致回答变慢的问题</p></section>
<section><h2>总结<a href="#总结"><span>#</span></a></h2><p>Codex 反复显示 <code>Reconnecting… 1/5</code>，随后又能正常回答，通常意味着两条连接路径的表现不同：WebSocket 没有通过代理，普通 HTTP 却可以。</p><p>解决思路很直接：在 <code>~/.codex/.env</code> 或 Windows 用户目录下的 <code>.codex\.env</code> 中设置 <code>HTTP_PROXY</code>、<code>HTTPS_PROXY</code> 和 <code>NO_PROXY</code>，让 WebSocket 握手也通过正确的代理链路。</p><p>配置成功后，Codex 就不必先重试几轮再回退到 HTTP，启动后的等待时间也会明显缩短。</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.ikarox.cn/posts/lx-music-%E6%A1%8C%E9%9D%A2%E9%87%8D%E7%BD%AE%E7%89%88%E5%A4%9A%E5%B9%B3%E5%8F%B0%E6%8E%A8%E8%8D%90%E6%AD%8C%E5%8D%95%E7%AE%A1%E7%90%86%E4%B8%8E%E4%B8%AA%E4%BA%BA%E9%9F%B3%E4%B9%90%E5%BA%93/</id>
      <title type="text">LX Music 桌面重置版：多平台推荐、歌单管理与个人音乐库</title>
      <published>2026-09-08T00:00:00.000Z</published>
      <updated>2026-09-08T00:00:00.000Z</updated>
      <author><name>世間的美好</name></author>
      <link rel="alternate" href="https://blog.ikarox.cn/posts/lx-music-%E6%A1%8C%E9%9D%A2%E9%87%8D%E7%BD%AE%E7%89%88%E5%A4%9A%E5%B9%B3%E5%8F%B0%E6%8E%A8%E8%8D%90%E6%AD%8C%E5%8D%95%E7%AE%A1%E7%90%86%E4%B8%8E%E4%B8%AA%E4%BA%BA%E9%9F%B3%E4%B9%90%E5%BA%93/"/>
      <summary type="text">把不同平台的推荐和歌单，以及本地、云端的音乐收藏，放进同一个桌面播放器，让找歌、整理和播放都更方便。</summary>
      <content type="html"><![CDATA[<p>LX Music 桌面重置版——把不同平台的推荐和歌单，以及本地、云端的音乐收藏，放进同一个桌面播放器，让找歌、整理和播放都更方便。</p>
<p>项目基于 <a href="https://github.com/lyswhut/lx-music-desktop" target="_blank">LX Music Desktop</a> v2.12.1。在原项目的基础上进行定制开发，后续修改和版本发布由我独立维护，显示名称和图标继续使用 LX Music。感谢原作者和贡献者，下面介绍的功能包含原版能力与我在定制版中做的扩展。</p>
<section><h2>版本概览<a href="#版本概览"><span>#</span></a></h2><p>想快速了解这个版本，可以先看这张表：</p>

<table><thead><tr><th>功能</th><th>当前能做什么</th><th>对日常使用的帮助</th></tr></thead><tbody><tr><td>多平台推荐</td><td>接入网易云音乐、QQ 音乐和酷狗音乐的账号推荐</td><td>在一个播放器里浏览不同平台的推荐内容</td></tr><tr><td>平台歌单</td><td>读取已创建、已收藏的歌单，并提供刷新入口</td><td>集中访问已有收藏</td></tr><tr><td>个人列表</td><td>歌单分组、排序、歌曲去重、侧栏入口</td><td>歌单多了也方便整理和查找</td></tr><tr><td>本地音乐与 WebDAV</td><td>扫描本地目录、播放远端音乐、上传本地歌曲</td><td>把硬盘和个人云端收藏一起管理</td></tr><tr><td>播放与音源</td><td>自定义源、备用源顺序、音质偏好</td><td>减少手动切源，按需选择播放方式</td></tr><tr><td>界面与歌词</td><td>主题、背景、布局调整、桌面歌词</td><td>按屏幕和阅读习惯调整界面</td></tr><tr><td>一起听*（需要sync服务支持）*</td><td>房间播放同步、共享待播队列</td><td>和朋友共同选歌、同步收听</td></tr><tr><td>听歌统计</td><td>时长记录、最近七天概览、常听歌曲</td><td>随时回看自己的听歌习惯</td></tr><tr><td>数据管理</td><td>备份、导出、兼容设备同步、便携版</td><td>换设备时带走歌单与配置</td></tr></tbody></table></section>
<section><h2>多平台推荐<a href="#多平台推荐"><span>#</span></a></h2><p><strong>多平台推荐</strong>是这个版本的重点之一。登录对应账号后，就能在软件内访问平台提供的个性化内容：</p>

<table><thead><tr><th>平台</th><th>已接入的主要内容</th></tr></thead><tbody><tr><td>网易云音乐</td><td>每日推荐、私人 FM、雷达歌单、风格推荐、相似歌曲</td></tr><tr><td>QQ 音乐</td><td>猜你喜欢、每日 30 首、刷歌模式、专属推荐歌单</td></tr><tr><td>酷狗音乐</td><td>每日推荐、风格推荐、私人 FM、精选歌单和榜单</td></tr></tbody></table><p></p><figure><img src="https://img.ikarox.cn/i/2026/09/08/pqej5w.png" alt="LX Music 定制版的 QQ 音乐推荐页面，展示猜你喜欢、每日 30 首、刷歌模式和私荐歌单" /><figcaption>LX Music 定制版的 QQ 音乐推荐页面，展示猜你喜欢、每日 30 首、刷歌模式和私荐歌单</figcaption></figure><p></p><p><em>图 1：当前使用的 QQ 音乐推荐页，上方是常用推荐入口，下方是私荐歌单。截图保留了当前的背景主题。</em></p><p>这些入口对应几种常见的听歌方式：</p><ul>
<li><strong>有明确目标</strong>：直接搜索歌曲，或者打开已经收藏的歌单。</li>
<li><strong>想发现新歌</strong>：浏览每日推荐、风格推荐和推荐歌单。</li>
<li><strong>想连续听下去</strong>：打开私人 FM、猜你喜欢或刷歌模式，减少反复选歌的操作。</li>
<li><strong>已经积累了平台偏好</strong>：登录原有账号，继续浏览平台为这个账号生成的推荐。</li>
</ul><p>推荐内容由对应平台提供，个性化功能需要登录，实际可用性取决于平台接口和账号状态。</p></section>
<section><h2>歌单管理<a href="#歌单管理"><span>#</span></a></h2><p>在<strong>歌单管理</strong>上，我希望常听的收藏能随手找到，数量增加后也有办法整理。当前版本提供了这些功能：</p><ul>
<li><strong>读取平台歌单</strong>：支持网易云音乐、QQ 音乐和酷狗音乐中“我创建的”“我收藏的”歌单。</li>
<li><strong>刷新平台内容</strong>：提供歌单刷新入口，方便重新读取平台上的收藏。</li>
<li><strong>歌单分组</strong>：可以按用途整理成“工作背景音”“完整专辑”“最近发现”等分组。</li>
<li><strong>列表整理</strong>：个人列表支持拖拽排序、重命名和歌曲去重。</li>
<li><strong>侧栏访问</strong>：保留“我喜欢”、个人歌单分组和平台导入入口，切换页面时也能访问收藏。</li>
</ul><p></p><figure><img src="https://img.ikarox.cn/i/2026/09/08/pq5ucm.png" alt="从侧栏“我喜欢”打开的“我的收藏”歌单页面，展示歌曲封面、标题、歌手、专辑和时长" /><figcaption>从侧栏“我喜欢”打开的“我的收藏”歌单页面，展示歌曲封面、标题、歌手、专辑和时长</figcaption></figure><p></p><p><em>图 2：我的“我喜欢”歌单，打开后的页面标题是“我的收藏”。列表展示封面、歌曲、歌手、专辑和时长，左侧保留了歌单分组与平台入口。</em></p><p>平台歌单的读取、刷新与本地个人列表的编辑是不同功能。这里的重点是集中访问和整理，不代表所有本地编辑都会回写到平台账号。</p></section>
<section><h2>本地音乐和WebDAV<a href="#本地音乐和webdav"><span>#</span></a></h2><p>同时支持<strong>本地音乐和 WebDAV</strong>。在线推荐用来发现音乐，已经保存的文件也应该能方便地继续听：</p>

<table><thead><tr><th>音乐放在哪里</th><th>使用方式</th><th>适合的场景</th></tr></thead><tbody><tr><td>电脑硬盘</td><td>配置音乐目录，扫描后集中展示和播放</td><td>已经保存了专辑或本地音乐文件</td></tr><tr><td>WebDAV 服务</td><td>配置连接后，浏览和播放远端音乐</td><td>在 NAS 或个人存储服务上管理收藏</td></tr><tr><td>准备上传的本地文件</td><td>将本地歌曲上传至 WebDAV</td><td>把本地收藏逐步整理到自己的云端音乐库</td></tr></tbody></table><p>这部分功能的好处是，在线音乐、硬盘文件和自己的云端收藏都能在同一套界面中访问。在其他设备上配置相应的 WebDAV 访问后，也能读取远端文件。</p></section>
<section><h2>播放和音源<a href="#播放和音源"><span>#</span></a></h2><p><strong>播放和音源设置</strong>方面，我保留了按需配置的空间：</p><ul>
<li><strong>自定义源</strong>：支持导入本地源文件或在线源。</li>
<li><strong>备用播放源</strong>：可以设置备用源与尝试顺序，当前来源不可用时按配置尝试其他来源。</li>
<li><strong>音质偏好</strong>：可以设置优先播放的音质，播放栏提供音质信息展示。</li>
<li><strong>常用控制</strong>：支持循环、随机播放、快捷键和定时暂停。</li>
<li><strong>音效调整</strong>：提供均衡器、环境音效等设置。</li>
<li><strong>下载管理</strong>：启用后，可设置下载目录、文件命名，以及歌词、封面的保存选项。</li>
</ul><p>具体歌曲能否播放或下载、有哪些音质，仍由所配置的音源决定。备用源可以增加尝试机会，无法保证所有歌曲始终可用。</p></section>
<section><h2>界面设置<a href="#界面设置"><span>#</span></a></h2><p>界面是每天都会接触的部分，所以我在定制版里继续调整了<strong>布局与显示细节</strong>，也保留了原有的主题和歌词设置：</p>

<table><thead><tr><th>可调整的部分</th><th>具体选项</th></tr></thead><tbody><tr><td>整体外观</td><td>主题颜色、背景图片、背景透明度</td></tr><tr><td>字体与布局</td><td>字体大小、侧栏缩放、播放栏高度</td></tr><tr><td>播放详情</td><td>唱片转盘、歌曲封面、滚动歌词</td></tr><tr><td>桌面歌词</td><td>字体、颜色、透明度、置顶和锁定</td></tr><tr><td>扩展歌词</td><td>逐字歌词、翻译和罗马音，取决于歌词资源</td></tr></tbody></table><p>我希望不同屏幕尺寸、不同阅读习惯的用户，都能调出适合自己的布局。上面的两张截图就是当前软件的实际界面，可以看到背景主题、歌曲封面和侧栏列表的显示效果。</p></section>
<section><h2>一起听<a href="#一起听"><span>#</span></a></h2><p>除了自己听，还加入了**“一起听”**（但是需要单独的sync服务，暂时未发布），让几个人可以共同安排播放：</p><ul>
<li><strong>创建或加入房间</strong>：在具备可用的房间服务连接后，进入同一个收听空间。</li>
<li><strong>同步播放状态</strong>：支持切歌、暂停和调整播放进度。</li>
<li><strong>共同控制</strong>：房间默认允许成员控制播放，也支持仅房主可控的模式。</li>
<li><strong>共享待播队列</strong>：成员可以把想听的歌曲加入“稍后播放”，一起决定接下来听什么。</li>
</ul><p>比如朋友推荐了一首歌，就可以直接放进共享队列，听完当前这首接着听。</p></section>
<section><h2>听歌统计<a href="#听歌统计"><span>#</span></a></h2><p>还做了<strong>听歌统计</strong>，方便随时回看收听记录：</p><ul>
<li><strong>累计时长</strong>：查看已经记录的总听歌时间。</li>
<li><strong>近期概览</strong>：查看今日、最近七天的听歌记录。</li>
<li><strong>常听歌曲</strong>：按播放次数排列，看看哪些歌被反复播放。</li>
<li><strong>实际播放计时</strong>：按真正播放经过的时间累计，暂停和拖动进度不会被算成额外时长。</li>
</ul><p>不用等年度报告，平时就能打开看看自己的听歌习惯。</p></section>
<section><h2>其他<a href="#其他"><span>#</span></a></h2><p>对于长期使用，我也重视<strong>歌单和配置能否方便地保存、迁移</strong>。目前提供了以下方式：</p>

<table><thead><tr><th>功能</th><th>用途</th></tr></thead><tbody><tr><td>歌单与设置导入、导出</td><td>单独保存收藏或配置</td></tr><tr><td>完整备份</td><td>为换电脑、重装系统提前准备</td></tr><tr><td>文本与 CSV 导出</td><td>把歌单整理成可查看、可继续处理的文件</td></tr><tr><td>数据同步</td><td>通过服务端、客户端模式连接兼容设备</td></tr><tr><td>Windows 便携版</td><td>把用户数据保存在程序旁，便于一起管理</td></tr><tr><td>开放 API</td><td>为其他工具的对接提供入口</td></tr></tbody></table><p>当前定制版使用<strong>独立的同步身份</strong>，多设备连接需要使用兼容的客户端版本。</p><p>如果准备试用，我建议按这个顺序开始：</p><ol>
<li>从 Releases 下载适合自己系统的版本。</li>
<li>登录常用音乐平台，查看推荐内容和已有歌单。</li>
<li>按需配置播放源，或添加自己的本地音乐目录。</li>
<li>把常听歌单整理进分组，再调整字体、背景和播放栏。</li>
<li>有 NAS、多设备或共同听歌需求时，再配置 WebDAV、数据同步和一起听。</li>
</ol><p>关于版本获取和反馈，也集中说明一下：</p><ul>
<li><strong>项目维护</strong>：这个定制版由我独立维护和发布，与原版发布渠道分开。</li>
<li><strong>系统支持</strong>：仓库提供 Windows、macOS 和 Linux 构建配置，实际安装包以 Releases 页面为准。</li>
<li><strong>更新方式</strong>：当前没有内置更新检查，需要从 Releases 获取新版本。</li>
<li><strong>开源许可</strong>：代码继续使用 Apache License 2.0，并保留相关补充协议与第三方许可证。</li>
<li><strong>问题反馈</strong>：欢迎在 Issues 中反馈。附上软件版本、系统、操作步骤和报错信息，会更方便我定位问题。</li>
</ul><p>项目地址：<a href="https://github.com/starkyYourEyes/lx-music-desktop" target="_blank">starkyYourEyes/lx-music-desktop</a></p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.ikarox.cn/posts/%E9%98%BF%E9%87%8C%E4%BA%91%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF%E9%98%B2%E7%81%AB%E5%A2%99%E5%BC%80%E6%94%BE/</id>
      <title type="text">阿里云+宝塔面板防火墙开放</title>
      <published>2026-01-04T10:37:31.000Z</published>
      <updated>2026-01-04T10:37:31.000Z</updated>
      <author><name>世間的美好</name></author>
      <link rel="alternate" href="https://blog.ikarox.cn/posts/%E9%98%BF%E9%87%8C%E4%BA%91%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF%E9%98%B2%E7%81%AB%E5%A2%99%E5%BC%80%E6%94%BE/"/>
      <summary type="text">使用阿里云服务器安装了宝塔面板之后，如果宝塔面板也开启了防火墙，则需要在两边都设置端口的开放。 如果遇到要开通某个端口访问的情况，必须在对应的控制台中的安全组和宝塔面板的安全中都打开这个端口，只打开其中一个的话，这个端口对外仍然是无法访问的。 至于宝塔面板防火墙和云服务器安全组的区别和联系， 参考这个文章。 此外，还需…</summary>
      <content type="html"><![CDATA[<p>使用阿里云服务器安装了宝塔面板之后，如果宝塔面板也开启了防火墙，则需要在两边都设置端口的开放。</p>
<p>如果遇到要开通某个端口访问的情况，必须在对应的控制台中的安全组和宝塔面板的安全中都打开这个端口，只打开其中一个的话，这个端口对外仍然是无法访问的。</p>
<p>至于宝塔面板防火墙和云服务器安全组的区别和联系， 参考<a href="https://www.vpsss.net/21908.html" target="_blank">这个文章</a>。</p>
<p>此外，还需要确认自己的服务程序是否正在监听正确的IP和端口。</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>netstat</span><span> </span><span>-tuln</span><span> | </span><span>grep</span><span> </span><span>:&lt;端口号&gt;</span></div></div><div><div><div>2</div></div><div><span># 或者使用 ss 命令</span></div></div><div><div><div>3</div></div><div><span>ss</span><span> </span><span>-tuln</span><span> | </span><span>grep</span><span> </span><span>:&lt;端口号&gt;</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>比如检查23893端口:</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>ss</span><span> </span><span>-tuln</span><span> | </span><span>grep</span><span> </span><span>:23893</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<ul>
<li>如果输出类似 <code>*:23893</code>，说明服务在监听所有地址；</li>
<li>如果输出类似 <code>127.0.0.1:23893</code>，<strong>说明只监听本机，外部网络无法访问</strong>，需要修改服务配置文件（如 Nginx、Apache、Tomcat 等），使其监听 <code>0.0.0.0</code> 而不是 <code>127.0.0.1</code>。</li>
</ul>]]></content>
    </entry>
    <entry>
      <id>https://blog.ikarox.cn/posts/%E9%94%AE%E7%9B%98%E4%B8%8A%E4%B8%80%E4%BA%9B%E7%89%B9%E6%AE%8A%E6%A1%88%E4%BB%B6%E4%BB%A5%E5%8F%8Afn%E5%B1%82tab%E5%B1%82/</id>
      <title type="text">键盘上一些特殊案件以及FN层、Tab层</title>
      <published>2025-10-27T07:37:29.000Z</published>
      <updated>2025-10-27T07:37:29.000Z</updated>
      <author><name>世間的美好</name></author>
      <link rel="alternate" href="https://blog.ikarox.cn/posts/%E9%94%AE%E7%9B%98%E4%B8%8A%E4%B8%80%E4%BA%9B%E7%89%B9%E6%AE%8A%E6%A1%88%E4%BB%B6%E4%BB%A5%E5%8F%8Afn%E5%B1%82tab%E5%B1%82/"/>
      <summary type="text">由于本人笔记本上面按键有限，因此对于很多的特殊功能按键不太熟悉，下面总结一下： 六个自带的功能按键 Home &amp; End 1.光标锁定在编辑文字 Home键在编辑文字的时候可以跳转到行首，End则跳转到行末。 2.光标未锁定的时候 Home键跳转到网页或其他页面顶部， End跳转到底部。 PadgeUp &amp; PageD…</summary>
      <content type="html"><![CDATA[<p>由于本人笔记本上面按键有限，因此对于很多的特殊功能按键不太熟悉，下面总结一下：</p>
<section><h2>六个自带的功能按键<a href="#六个自带的功能按键"><span>#</span></a></h2><section><h3>Home &amp; End<a href="#home--end"><span>#</span></a></h3><section><h4>1.光标锁定在编辑文字<a href="#1光标锁定在编辑文字"><span>#</span></a></h4><p><code>Home</code>键在编辑文字的时候可以跳转到行首，<code>End</code>则跳转到行末。</p></section><section><h4>2.光标未锁定的时候<a href="#2光标未锁定的时候"><span>#</span></a></h4><p><code>Home</code>键跳转到网页或其他页面顶部， <code>End</code>跳转到底部。</p></section></section><section><h3>PadgeUp &amp; PageDown<a href="#padgeup--pagedown"><span>#</span></a></h3><p>功能如其名，上下翻页。</p></section><section><h3>Insert<a href="#insert"><span>#</span></a></h3><p>按下去之后，在记事本（或其他文字编辑的时候）会覆盖光标之后的文字，而不是在文字之前插入。没啥用的键</p></section><section><h3>Delete<a href="#delete"><span>#</span></a></h3><p>删除光标之后的一个字，而<code>BackSpace</code>是删除光标之前的一个字。</p></section></section>
<section><h2>键盘自定义层<a href="#键盘自定义层"><span>#</span></a></h2><p>最近入手了一个机械键盘，发现Fn加上其他按键实现不了原本在笔记本上的功能了。尤其是Fn+←实现跳转到行首，对于写代码十分的有用（这只是长时间的使用中无意发现的功能，此前并未发现有Fn层这种事） 研究了一番才发现，很多机械键盘可以实现自定义的默认层、FN1层、FN2层、Tap层等。</p><section><h3>默认层<a href="#默认层"><span>#</span></a></h3><p>默认层就是正常使用的案件，在键盘的设置中也可以修改对应的功能。由于我习惯了笔记本中的<code>Ctrl</code>右侧的<code>Fn</code>，于是把<code>Fn</code>和<code>Win键</code>对换了。</p></section><section><h3>FN1层<a href="#fn1层"><span>#</span></a></h3><p>按下<code>Fn</code>，然后再按下其他的键即可触发FN1层的功能，一般机械键盘都可以自定义FN1层的案件功能，比如我就把<code>Fn + ←</code>改成了<code>Home</code>，<code>Fn + →</code>改成了<code>End</code>，以及其他的一些设置，确实便捷了许多</p></section><section><h3>FN2层<a href="#fn2层"><span>#</span></a></h3><p>有些键盘会有两个<code>Fn</code>键，其中一个是<code>Fn1</code>，另一个就是<code>Fn2</code>了，当时也可以将其他的按键映射为<code>Fn2</code>。</p></section><section><h3>Tab层<a href="#tab层"><span>#</span></a></h3><p>可以修改<strong>长按</strong>一个按键映射到另外的按键。鸡肋</p><p><img src="https://img.ikarox.cn/i/2025/10/27/pd09kq.png" alt="" /></p></section></section>
<section><h2>历史评论<a href="#历史评论"><span>#</span></a></h2><blockquote><p><strong>hui-shao</strong> · <time>2026-02-11 10:24</time></p><p>Insert 没用， Shift + Insert 就有用啦哈哈哈。(连接服务器时，用来在终端中粘贴)
之前买的 98 配列没有 insert 键，后来又换了 87 配列。</p></blockquote></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.ikarox.cn/posts/2025-11408%E6%80%BB%E7%BB%93/</id>
      <title type="text">2025-11408总结</title>
      <published>2025-05-06T13:49:11.000Z</published>
      <updated>2025-05-06T13:49:11.000Z</updated>
      <author><name>世間的美好</name></author>
      <link rel="alternate" href="https://blog.ikarox.cn/posts/2025-11408%E6%80%BB%E7%BB%93/"/>
      <summary type="text">70 + 75 + 120 + 127 = 392。 整个复习过程： 3月中才开始，才决定开始考研，院校考试科目啥的还没了解。 先选择了408，因为可选择的院校多，后面就是决定考11408还是22408（我是后来才选择的院校，但是其实一开始已经有一点选择了，比如省内的东大、南大），后来感觉我比较倾向于11408的一些学…</summary>
      <content type="html"><![CDATA[<section><h3>70 + 75 + 120 + 127 = 392。<a href="#70--75--120--127--392"><span>#</span></a></h3></section>
<section><h2>整个复习过程：<a href="#整个复习过程"><span>#</span></a></h2><p>3月中才开始，才决定开始考研，院校考试科目啥的还没了解。 先选择了408，因为可选择的院校多，后面就是决定考11408还是22408（我是后来才选择的院校，但是其实一开始已经有一点选择了，比如省内的东大、南大），后来感觉我比较倾向于11408的一些学校和专业，于是决定11408。 三月中差不多才正式开始复习，一天大概六七八个小时，因为有时候还有课，而且用电脑看网课，忍不住摸鱼，三月到六月这段时间，差不多把数学和408基础过了一遍。 然后七月期末考试，加上妹妹高考完来南京玩，差不多就是没学。 七月八月放暑假，在家里就学了概率论，还有把剩下的操作系统的部分看了一下。 九月回学校，差多不就剩一百来天了，开始奋发图强。“拼搏一百天，我要上985。”每天八点多九点这样起床（实在起不来），学到晚上十一点多，回宿舍睡觉。</p></section>
<section><h2>政治-70：<a href="#政治-70"><span>#</span></a></h2><p>资料：徐涛马原，仓盾小程序刷题，肖四肖八，肖秀荣背诵手册。 大概是十月底开的，看了徐涛的马原，不到半个月看完，大致听一下就行，主要是理解概念。 然后买的肖秀荣的背诵手册，自己看了两遍，然后随便跟着相关的带背视频听了听，主要是在路上的时候听，感觉还是有一点用的，主要就是图个耳熟。 期间一直用仓盾小程序刷题，主要是吃饭的时候刷，一边吃一边刷，因为其他时候是在没有时间刷，午饭和晚饭的时候刷一下，刷个几十题，题感很重要。后面小程序里面出了各种模拟卷，吃饭的时候就刷一个模拟卷。 最后就是肖四肖八，肖八选择，大题没看，肖四选择+大题，背了三四遍，最后考试还是用上了好几题。 但是吧，考试的时候，倒数第二道大题写错了位置，写到最后一题了，导致最后一题只剩下了一丢丢的空，而且还浪费了时间。</p></section>
<section><h2>英语-75：<a href="#英语-75"><span>#</span></a></h2><p>资料：红宝书，墨墨背单词，黄皮书，晶婷老师作文。 首先背单词，红宝书背了好多遍，第一遍把简单词汇划掉，然后一遍一遍重复剩下的词汇，最后每一个单元基本上就剩十几个二十几个这样的了。 红宝书感觉没意思了，后面开始用小程序背，虽然小程序里面老是重复已经烂熟的词，但是点两下就能过一个单词的感觉挺爽的，用的墨墨背单词。 对了，初期还看了几期的外刊，感觉还是很有用的，可惜没坚持下来， 到后面时间也不允许了。 真题，用的黄皮书，用的同学的（已经保研，刚好送我了），只做了2015-2024的客观，翻译就看了最近几年的，其他的啥题目都没做过，不过今年感觉难度还是有的，感觉客观扣了十几分，以为最后可能就70分这样，结果75，还可以。 作文，这个准备的就比较晚了，而且今年考的图表作文，真是反常呢。作文拖了好久才准备，应该到11月这样才开始，买了一个晶婷老师的作文书，给了我不少启发，照着书里面的写了自己的模板。大作文，就主要分三段，每一段都有固定的套路，自己整理就行了；小作文，有好多种，都准备了一下，感觉很多都有共同之处。</p></section>
<section><h2>数学-120：<a href="#数学-120"><span>#</span></a></h2><p>资料：张宇基础，张宇强化（买了没看），660（概率论&amp;2阶没做），张宇1000，超越2025，2024，张8，张4，13-24的真题 基本上跟的张宇，但是实际上谁都看一下，武忠祥的每日一题，凯哥的各种视频，刷到就看一下，为了学习，我重新注册了个b站账号，所以每次刷的视频都是考研的学习的。 六月之前过完了高数和线代的基础，在家里学了概率论。 9月返校，忘得太多了，重新过了一遍基础，想开强化的，但是张宇的强化实在劝退，所以基本上没有强化。另外我觉得也不太需要强化，强化就是做题嘛，我干脆再复习一遍基础，有忘记的就把基础里面的那一章重新看一下，然后直接做题，就做了1000题的强化，之后由于实在没有时间，就直接开始做模拟卷以及真题，模拟卷和真题换着来，每天一套，做完对答案。最后不出所料考的也不高 （大题那个围绕斜线旋转我觉得不考就没看，没做出来，吐了。这里还是感觉不要那么早开始做模拟卷和真题，时间充足的话，最好还是至少做个两本习题册。</p></section>
<section><h2>408-127：<a href="#408-127"><span>#</span></a></h2><p>资料：王道408，王道模拟卷，近十年真题，胡科大的计网每日一题（没看完） 六月份之前基本过了一遍基础，就自己看书，有不懂的去网上查一下。 然后9月回学校又重新过了一遍，没办法，太久没学，遗忘太严重了，这里对着网上的资料逐章看的，期间整理了一些感觉比较重要的容易忘记的之类的内容，一直到十月底。后来又基本上过了一遍，一直到了十一月中这样，开始真题和模拟题，一天一套，写完对答案。其实408没有特别难理解的感念，但是主要是内容多，特别需要重复。</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.ikarox.cn/posts/%E6%88%91%E5%8E%BB%E5%9B%BE%E4%B9%A6%E9%A6%86%E8%BF%9C%E7%A8%8B%E8%93%9D%E7%89%99%E7%AD%BE%E5%88%B0/</id>
      <title type="text">我去图书馆远程蓝牙签到</title>
      <published>2025-01-03T16:11:05.000Z</published>
      <updated>2025-01-03T16:11:05.000Z</updated>
      <author><name>世間的美好</name></author>
      <link rel="alternate" href="https://blog.ikarox.cn/posts/%E6%88%91%E5%8E%BB%E5%9B%BE%E4%B9%A6%E9%A6%86%E8%BF%9C%E7%A8%8B%E8%93%9D%E7%89%99%E7%AD%BE%E5%88%B0/"/>
      <summary type="text">esp32实现我去图书馆远程蓝牙签到 背景 由于冬天非常寒冷，很容易把我们冻死 (bushi)，所以早上人与床往往难舍难分；但是另一方面又要早起去图书馆签到，因此我们很容易陷入两难的境地。 实现 刚好前些日子在小黄鱼上看到了一个我去图书馆远程签到的软件，当即给他买了下来，很快，啊。但是呢，有个缺点就是需要两个移动设备才…</summary>
      <content type="html"><![CDATA[<section><h1>esp32实现我去图书馆远程蓝牙签到<a href="#esp32实现我去图书馆远程蓝牙签到"><span>#</span></a></h1><section><h3>背景<a href="#背景"><span>#</span></a></h3><p>由于冬天非常寒冷，很容易把我们冻死 (bushi)，所以早上人与床往往难舍难分；但是另一方面又要早起去图书馆签到，因此我们很容易陷入两难的境地。</p></section><section><h3>实现<a href="#实现"><span>#</span></a></h3><p>刚好前些日子在小黄鱼上看到了一个我去图书馆远程签到的软件，当即给他买了下来，很快，啊。但是呢，有个缺点就是需要两个移动设备才能签到成功。</p><blockquote><p>这里简单介绍一下方法：</p><ol>
<li><code>两个移动设备(平板or手机)</code>确保都打开蓝牙，其中一个下载BrightBeacon，苹果: appstore下载，安卓: <a href="https://app.brtbeacon.com/d/brightbeacon" target="_blank">下载链接</a></li>
<li>底部导航栏中间蓝色选项 -&gt; 模拟Beacon -&gt; 分别填入 UUID: FDA50693-A4E2-4FB1-AFCF-C6EB07647825, Major: 10199, Minor: 42474</li>
<li>用另一个设备进行蓝牙签到就行了</li>
</ol></blockquote><p>刚好这两天又看到了一个关于esp32蓝牙模拟应用的视频(<a href="https://www.bilibili.com/video/BV1E54y137r3/?spm_id_from=333.880.my_history.page.click&amp;vd_source=946d91ef8e978d916f518f74017b6842" target="_blank">bilibili</a>)，于是去GitHub上面搜了一下，果然找到一个关于用<a href="https://github.com/zanjie1999/dingBle/tree/master" target="_blank">esp32模拟蓝牙签到</a>的项目，京东上面一看，一个esp32的板子才二十来块钱，直接就给他拿下了。等了三天，板子到货了，直接拿去跟着GitHub的教程跑了一遍，可惜并没有达到预期效果。</p><p>于是慢慢顺着问题寻找解决方案，第一次知道原来这个数据线还分充电线和数据线的！充电线只能充电，数据线还可以进行数据传输，但我一开始用的几根线都是充电线（这些usb线都是当时买的一些其他设备送的，也怪不得），导致电脑已知无法识别板子，哎 : ( 又花了十块钱买了根数据线（以前买东西都买的快递，现在发现有些东西直接外卖就行了~真的很快啊，半个小时就到了）</p><p>然后就开始各种找教程找方法，一开始都是问的chatgpt，但是chatgpt给的代码全都是错误，果然AI还是靠不住啊，关键时候还是得靠自己。网上找了一圈，又找不到相关的代码，最后没办法，干脆直接开始学习esp32蓝牙开发。这里找到一个<a href="https://blog.csdn.net/Naisu_kun/article/details/115958024" target="_blank">很详细的基础教程</a>。跟着教程一步一步，最后结合上面的GitHub的部分代码，经过在宿舍的测试，最后也是实现了远程签到。</p><p>和爬虫还是挺像的感觉，就是抓包+模拟的一个过程。</p></section><section><h3>代码<a href="#代码"><span>#</span></a></h3><p>以下是代码部分：</p><div><div><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>#include</span><span> </span><span>&lt;BLEDevice.h&gt;</span></div></div><div><div><div>2</div></div><div><span>#define</span><span> </span><span>SERVICE_UUID</span><span> </span><span>"FDA50693-A4E2-4FB1-AFCF-C6EB07647825"</span><span>  // 自己通过brightbeacon以及nRF Connect抓到的签到的UUID</span></div></div><div><div><div>3</div></div><div><span>uint8_t</span><span> </span><span>bleRaw</span><span>[] </span><span>=</span><span> {</span><span><span>0x</span><span>02</span></span><span>,</span><span><span>0x</span><span>01</span></span><span>,</span><span><span>0x</span><span>06</span></span><span>,</span><span><span>0x</span><span>1A</span></span><span>,</span><span><span>0x</span><span>FF</span></span><span>,</span><span><span>0x</span><span>4C</span></span><span>,</span><span><span>0x</span><span>00</span></span><span>,</span><span><span>0x</span><span>02</span></span><span>,</span><span><span>0x</span><span>15</span></span><span>,</span><span><span>0x</span><span>FD</span></span><span>,</span><span><span>0x</span><span>A5</span></span><span>,</span><span><span>0x</span><span>06</span></span><span>,</span><span><span>0x</span><span>93</span></span><span>,</span><span><span>0x</span><span>A4</span></span><span>,</span><span><span>0x</span><span>E2</span></span><span>,</span><span><span>0x</span><span>4F</span></span><span>,</span><span><span>0x</span><span>B1</span></span><span>,</span><span><span>0x</span><span>AF</span></span><span>,</span><span><span>0x</span><span>CF</span></span><span>,</span><span><span>0x</span><span>C6</span></span><span>,</span><span><span>0x</span><span>EB</span></span><span>,</span><span><span>0x</span><span>07</span></span><span>,</span><span><span>0x</span><span>64</span></span><span>,</span><span><span>0x</span><span>78</span></span><span>,</span><span><span>0x</span><span>25</span></span><span>,</span><span><span>0x</span><span>27</span></span><span>,</span><span><span>0x</span><span>D7</span></span><span>,</span><span><span>0x</span><span>A5</span></span><span>,</span><span><span>0x</span><span>EA</span></span><span>,</span><span><span>0x</span><span>C5</span></span><span>};</span><span>  // nRF Connect中抓到的广播数据</span></div></div><div><div><div>4</div></div><div><span>class</span><span> </span><span>MyServerCallbacks</span><span>: </span><span>public</span><span> </span><span>BLEServerCallbacks</span><span> {</span></div></div><div><div><div>5</div></div><div><span>    </span><span>void</span><span> </span><span>onConnect</span><span>(</span><span>BLEServer</span><span>*</span><span><span> </span><span>pServer</span><span>) {</span></span></div></div><div><div><div>6</div></div><div><span>      </span><span>Serial</span><span>.</span><span>println</span><span>(</span><span>"签到成功辽~"</span><span>);</span><span>  // 好像并没什么卵用</span></div></div><div><div><div>7</div></div><div><span>      </span><span>pServer</span><span>-&gt;</span><span>startAdvertising</span><span>();</span><span> // 有客户端连接后广播会停止，这里再次打开使其它设备可以搜索到</span></div></div><div><div><div>8</div></div><div><span><span>    </span></span><span>};</span></div></div><div><div><div>9</div></div><div><span>    </span><span>void</span><span> </span><span>onDisconnect</span><span>(</span><span>BLEServer</span><span>*</span><span><span> </span><span>pServer</span><span>) {}</span></span></div></div><div><div><div>10</div></div><div><span>};</span></div></div><div><div><div>11</div></div><div>
</div></div><div><div><div>12</div></div><div><span>void</span><span> </span><span>setup</span><span>() {</span></div></div><div><div><div>13</div></div><div><span>  </span><span>Serial</span><span>.</span><span>begin</span><span>(</span><span>115200</span><span>);</span></div></div><div><div><div>14</div></div><div><span>  </span><span>Serial</span><span>.</span><span>println</span><span>();</span></div></div><div><div><div>15</div></div><div><span><span>  </span></span><span>BLEDevice::</span><span>init</span><span>(</span><span>"ESP32-BLE"</span><span>);</span></div></div><div><div><div>16</div></div><div><span>  </span><span>BLEServer</span><span> </span><span>*</span><span>pServer</span><span> </span><span>=</span><span> BLEDevice::</span><span>createServer</span><span>();</span></div></div><div><div><div>17</div></div><div><span>  </span><span>pServer</span><span>-&gt;</span><span>setCallbacks</span><span>(</span><span>new</span><span> </span><span>MyServerCallbacks</span><span>());</span></div></div><div><div><div>18</div></div><div><span>  </span><span>BLEService</span><span> </span><span>*</span><span>pService</span><span> </span><span>=</span><span> </span><span>pServer</span><span>-&gt;</span><span>createService</span><span>(</span><span>SERVICE_UUID</span><span>);</span></div></div><div><div><div>19</div></div><div><span>  </span><span>pService</span><span>-&gt;</span><span>start</span><span>();</span></div></div><div><div><div>20</div></div><div><span>  </span><span>BLEAdvertising</span><span> </span><span>*</span><span>pAdvertising</span><span> </span><span>=</span><span> BLEDevice::</span><span>getAdvertising</span><span>();</span><span> // 获取Advertising对象</span></div></div><div><div><div>21</div></div><div><span><span>  </span></span><span>// 设备信息设置成空白的</span></div></div><div><div><div>22</div></div><div><span>  </span><span>BLEAdvertisementData</span><span> </span><span>oScanResponseData</span><span> </span><span>=</span><span> </span><span>BLEAdvertisementData</span><span>();</span></div></div><div><div><div>23</div></div><div><span>  </span><span>pAdvertising</span><span>-&gt;</span><span>setScanResponseData</span><span>(</span><span>oScanResponseData</span><span>);</span></div></div><div><div><div>24</div></div><div><span><span>  </span></span><span>// 里面有个 m_customScanResponseData = true; 和 m_customScanResponseData = true; 所以只能先随便设置一下</span></div></div><div><div><div>25</div></div><div><span>  </span><span>BLEAdvertisementData</span><span> </span><span>oAdvertisementData</span><span> </span><span>=</span><span> </span><span>BLEAdvertisementData</span><span>();</span></div></div><div><div><div>26</div></div><div><span>  </span><span>pAdvertising</span><span>-&gt;</span><span>setAdvertisementData</span><span>(</span><span>oAdvertisementData</span><span>);</span></div></div><div><div><div>27</div></div><div><span><span>    </span></span><span>// 简单粗暴直接底层api重新设置一下抓到的raw</span></div></div><div><div><div>28</div></div><div><span>  </span><span>esp_err_t</span><span> </span><span>errRc</span><span> </span><span>=</span><span> ::</span><span>esp_ble_gap_config_adv_data_raw</span><span>(</span><span>bleRaw</span><span>, </span><span>31</span><span>);</span></div></div><div><div><div>29</div></div><div><span>  </span><span>if</span><span> (</span><span>errRc</span><span> </span><span>!=</span><span> </span><span>ESP_OK</span><span>) {</span></div></div><div><div><div>30</div></div><div><span>    </span><span>Serial</span><span>.</span><span>printf</span><span>(</span><span>"esp_ble_gap_config_adv_data_raw: </span><span>%d</span><span>\n</span><span>"</span><span>, </span><span>errRc</span><span>);</span></div></div><div><div><div>31</div></div><div><span><span>  </span></span><span>}</span></div></div><div><div><div>32</div></div><div><span><span>  </span></span><span>// pAdvertising-&gt;setMaxInterval(30);</span></div></div><div><div><div>33</div></div><div><span>  </span><span>pAdvertising</span><span>-&gt;</span><span>addServiceUUID</span><span>(</span><span>SERVICE_UUID</span><span>);</span><span> // 广播Service的UUID</span></div></div><div><div><div>34</div></div><div><span><span>  </span></span><span>BLEDevice::</span><span>startAdvertising</span><span>();</span></div></div><div><div><div>35</div></div><div><span>}</span></div></div><div><div><div>36</div></div><div>
</div></div><div><div><div>37</div></div><div><span>void</span><span> </span><span>loop</span><span>() {}</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div></section><section><h3>TODO<a href="#todo"><span>#</span></a></h3><p>目前还是需要早上醒来手动进行签到，下一步打算开发一个手机上面的脚本，早上到时间就自动进行签到。</p></section><section><h2>历史评论<a href="#历史评论"><span>#</span></a></h2><blockquote><p><strong>1500302659</strong> · <time>2025-07-14 08:47</time></p><p>非常有用</p></blockquote><blockquote><p><strong>哈哈哈</strong> · <time>2025-09-16 22:35</time></p><p>大佬，我用了你的这个方法用iPad模拟手机签到在图书馆的话可以实现，在宿舍的话签到不上显示找不到设备，是不是因为定位的原因，有什么方法可以解决吗？</p></blockquote></section></section>]]></content>
    </entry>
</feed>
