[{"content":"按你的目标选择对应文章：通过 CC Switch 统一管理 API 密钥并登录 Codex，或使用 CC Switch 在 Codex 中接入 DeepSeek API。\n1. API 密钥管理与 Codex 登录 使用 CC Switch 管理 Faro API 密钥并登录 Codex 桌面版 2. 模型接入 使用 CC Switch 在 Codex 中接入 DeepSeek API 3. 仍未解决 如果在 CC Switch 中配置 API 后 Codex 没有生效、测速失败或模型不可用，请先查看对应子文章中的常见问题。若仍未解决，请提供：CC Switch 版本、供应商配置截图、Codex 版本，以及具体的报错文字或日志。\n","date":"2026-08-04T00:00:00Z","permalink":"https://ysy.fan/p/ccswitch-guide/","title":"CC Switch 使用指南：管理 API 密钥并接入 Codex"},{"content":"本文记录 Windows 电脑端 Clash Verge 开启 TUN 后，一元机场节点全部超时的排查与解决过程：订阅能正常更新、自建节点也能使用，唯独机场节点在 TUN 模式下几乎全部 Timeout。最终根因与 TUN 堆栈、DNS、IPv6 以及机场节点的 XHTTP 传输方式共同相关。\n1. 故障现象 使用环境：Windows + Clash Verge 2.5.2 + Mihomo v1.19.29，规则模式，TUN 虚拟网卡接管，机场节点为 VLESS + TLS + XHTTP（stream-up 模式，端口 443）。\n故障表现：\nClash Verge 正常启动，机场订阅正常更新，流量、到期时间正常显示，节点完整加载。 代理页面测速时几乎所有节点都显示 Timeout 或 Error，自动选择与故障转移也无法找到可用节点。 同一订阅在朋友电脑上正常；同一台电脑使用自建节点则正常。 由此可排除：机场整体宕机、订阅链接过期、流量耗尽、节点全部失效、账号被封、客户端版本差异。\n节点测速页面截图\n2. 关键判断：问题出在 TUN 接管后的链路 订阅更新与节点连接是两条独立的网络路径：能更新订阅只说明订阅服务器可访问，不代表节点能连上。\n初步验证时关闭 TUN、改用系统代理（同时关闭 IPv6）后，日本、香港等大量节点立刻恢复延迟。这说明：\n机场节点并没有失效，账号和订阅参数基本正常； 电脑可以直接连接机场服务器； 故障主要出现在 TUN 接管流量之后，集中在 TUN 堆栈、路由、DNS 劫持、IPv6 或虚拟网卡环节。 自建节点在 TUN 下正常而机场节点超时也不矛盾：机场 XHTTP 节点同时涉及主连接域名和 download-settings 中的下载域名，需要维持多条 TCP/TLS/XHTTP 长连接，对 TUN 协议栈和 DNS 解析的敏感度远高于普通自建节点。\n3. 解决办法 3.1. 先用系统代理验证问题范围 将设置调整为：\nTUN 虚拟网卡模式：关闭 系统代理：开启 IPv6：关闭 DNS 覆写：关闭 代理模式：规则 如果节点恢复延迟，即可确认故障在 TUN 接管链路，而不是节点或账号问题。\n3.2. 将 TUN 堆栈切换为 Mixed Clash Verge 的 TUN 设置中有三种堆栈：\nGVisor：TCP 和 UDP 都由 Mihomo 内置的用户态协议栈处理 System：TCP 和 UDP 都走 Windows 原生协议栈 Mixed：TCP 走 Windows 原生协议栈，UDP 走 GVisor 用户态协议栈 机场 XHTTP 的 TLS 长连接主要依赖 TCP，从 GVisor 切换为 Mixed 后，TCP 连接改由 Windows 原生协议栈处理，兼容性更好。\n注意：仅切换堆栈只是短暂恢复，一段时间后节点会再次全部超时，说明根因不只是协议栈，还需要配合下一步修正 DNS 配置。\n3.3. 修正 DNS 覆写配置（核心） 原 DNS 覆写配置存在几个问题：\n主设置已关闭 IPv6，但 DNS 覆写中 ipv6: true 且配置了 IPv6 DNS，DNS 返回 AAAA 记录后 Mihomo 尝试走不稳定的 IPv6 出口，导致连接超时。 default-nameserver 混用 system、阿里 DNS、Google DNS、IPv6 DNS，不同来源解析结果不一致。 proxy-server-nameserver 使用 DoH 域名，解析链路复杂。 listen: ':53' 可能与 TUN 的 dns-hijack: any:53 或 Windows 上其他占用 53 端口的服务冲突。 修正要点：\nipv6: false，去掉 IPv6 DNS 条目 listen 改为 0.0.0.0:1053，避开 53 端口 default-nameserver 统一为国内公共 DNS（如 223.5.5.5） 开启 use-hosts 和 use-system-hosts fake-ip-filter 保留本地域名、NTP 和系统连通性探测域名 将 DNS 覆写配置整体替换为：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 dns: enable: true listen: \u0026#39;0.0.0.0:1053\u0026#39; enhanced-mode: \u0026#39;fake-ip\u0026#39; fake-ip-range: \u0026#39;198.18.0.1/16\u0026#39; fake-ip-range6: \u0026#39;fdfe:dcba:9876::1/64\u0026#39; fake-ip-filter-mode: \u0026#39;blacklist\u0026#39; prefer-h3: false respect-rules: false use-hosts: true use-system-hosts: true ipv6: false fake-ip-filter: - \u0026#39;*.lan\u0026#39; - \u0026#39;*.local\u0026#39; - \u0026#39;*.arpa\u0026#39; - \u0026#39;time.*.com\u0026#39; - \u0026#39;ntp.*.com\u0026#39; - \u0026#39;+.market.xiaomi.com\u0026#39; - \u0026#39;localhost.ptlogin2.qq.com\u0026#39; - \u0026#39;*.msftncsi.com\u0026#39; - \u0026#39;www.msftconnecttest.com\u0026#39; default-nameserver: - \u0026#39;223.5.5.5\u0026#39; - \u0026#39;119.29.29.29\u0026#39; nameserver: - \u0026#39;https://doh.pub/dns-query\u0026#39; - \u0026#39;https://dns.alidns.com/dns-query\u0026#39; direct-nameserver-follow-policy: false fallback-filter: geoip: true geoip-code: \u0026#39;CN\u0026#39; ipcidr: - \u0026#39;240.0.0.0/4\u0026#39; - \u0026#39;0.0.0.0/32\u0026#39; domain: - \u0026#39;+.google.com\u0026#39; - \u0026#39;+.facebook.com\u0026#39; - \u0026#39;+.youtube.com\u0026#39; fallback: [] proxy-server-nameserver: - \u0026#39;223.5.5.5\u0026#39; - \u0026#39;119.29.29.29\u0026#39; direct-nameserver: - \u0026#39;https://doh.pub/dns-query\u0026#39; - \u0026#39;https://dns.alidns.com/dns-query\u0026#39; 4. 验证结果 按上述步骤调整后（TUN 开启、堆栈 Mixed、IPv6 关闭、DNS 覆写使用修正后的配置），一元机场节点恢复稳定延迟，TUN 模式下可正常访问网络。\n5. 总结 遇到\u0026quot;订阅能更新、节点却全部超时\u0026quot;时，不要急着怀疑节点失效，按以下顺序排查：\n关闭 TUN、开启系统代理验证，确认问题是否出在 TUN 接管链路。 将 TUN 堆栈切换为 Mixed，让 TCP 走 Windows 原生协议栈，改善 XHTTP 长连接兼容性。 修正 DNS 覆写：关闭 IPv6、统一 default-nameserver、监听端口避开 53、开启 hosts 支持。 机场的 XHTTP 节点链路复杂，对 TUN 堆栈和 DNS 解析更敏感，以上三项需要配合调整才能彻底解决。\n","date":"2026-08-04T00:00:00Z","permalink":"https://ysy.fan/p/clash-verge-yiyuan-airport-timeout-fix/","title":"Clash Verge 开启 TUN 后一元机场节点全部超时的解决办法"},{"content":"本文记录 GitHub Pages 博客的站点地图在 Google Search Console 中长期显示“无法抓取”的排查过程与最终解决方案，供遇到同样问题的朋友参考。\n1. 问题现象 自从搭建博客以来，我一直希望文章能被更多人看到，但 Google Search Console 始终无法读取我的站点地图。期间尝试了网络上各种方法都没有成功，前后耗时几个月，最终通过更换域名解决了问题。\n2. 排查过程 我先后排查了站点地图格式、文件内容等，均未发现问题。后来在论坛中发现，这是 GitHub Pages 与 Google Search Console 之间的长期平台问题，并非个例。既然问题不在站点地图本身，我决定从外部入手——更换域名。\n3. 解决方案 3.1. 购买域名 首先需要购买一个域名，购买渠道不限。我这里是在阿里云购买的；国内外渠道都可以，国外购买后可直接使用，但在国内访问效果一般；国内购买则需要注意实名认证与审核流程，需要一定时间，看个人能否接受。\n3.2. 配置 DNS 解析 进入域名的解析设置：\n如果域名之前绑定过其他服务器，需要先移除旧记录，或者换一个新域名，否则可能导致解析冲突。我的域名下还有一条过期服务器的记录，所以直接删除。\n然后添加 GitHub Pages 的四个服务器 IP：\n记录类型 主机记录 记录值 A @ 185.199.108.153 A @ 185.199.109.153 A @ 185.199.110.153 A @ 185.199.111.153 点击右侧的 ⋮（更多操作），选择 快速添加网站解析：\n按图中所示填写四个 IP，点击 确定：\n随后点击 添加记录：\n记录类型选择 CNAME，主机记录填 www，记录值填你的原域名（例如 sign-river.github.io）：\n添加成功后，解析记录列表应包含 4 条 A 记录和 1 条 CNAME 记录：\n3.3. 在 GitHub Pages 绑定域名 接下来到 GitHub 仓库中绑定域名：打开 GitHub → 进入你的博客仓库 → Settings（设置）：\n在左侧菜单找到 Pages（页面），在 Custom domain（自定义域） 输入框中填写你的域名（例如我的 ysy.fan），勾选 Enforce HTTPS，点击 Save（保存）。保存后会显示 DNS Check in Progress，通常需要等待十几分钟才能配置完成，可以先去做别的事情：\n配置成功后显示 DNS check successful（DNS 检查成功）：\n3.4. 在 Google Search Console 提交站点地图 打开 Google Search Console，点击 添加资源（Add property）：\n选择 添加网站：\n选择 网址前缀（URL prefix）：\n填写 https:// + 你的域名 + /，例如我的 https://ysy.fan/，点击 继续：\n选择 前往资源界面：\n在左侧菜单依次进入 索引编制 → 站点地图（Sitemaps），提交站点地图，例如我的 https://ysy.fan/sitemap.xml：\n提交成功后：\n可以看到抓取几乎瞬间成功，发现了 380 个页面，所有页面都被找到了：\n4. 拓展阅读 在 Bing Webmaster Tools 提交站点地图 ","date":"2026-08-04T00:00:00Z","permalink":"https://ysy.fan/p/github-pages-google-sitemap-fix/","title":"解决 Google Search Console 无法抓取 GitHub Pages 站点地图"},{"content":"本文以 Windows 和 CC Switch v3.18.0 为例，介绍如何使用 CC Switch 在 Codex 中接入 DeepSeek API，让 Codex 使用 DeepSeek 提供的模型进行对话与编程。\n1. 准备工作 开始前需要准备：\n已安装的 Codex 桌面版 从 DeepSeek 开放平台获取的可用 API 密钥 能够访问 GitHub 和 DeepSeek API 的网络环境 2. 下载并安装 CC Switch 2.1. 下载 Windows 安装包 打开 CC Switch Releases，进入最新版本的下载列表。普通 Windows 电脑选择文件名以 Windows.msi 结尾的安装包；ARM64 设备则选择对应的 Windows-arm64.msi。不要误下 .sig 文件，它只是签名文件，不能直接安装。\n截图中的最新版本为 v3.18.0，实际下载时版本号可能已经更新。\n2.2. 完成安装并启动 双击下载的 .msi 文件运行安装程序。在安装向导中点击 Next，按提示完成安装。\n安装完成后打开 CC Switch。程序首次启动时可能停留在 Claude Code 页面，这是正常现象。\n3. 获取 DeepSeek API 密钥 进入 DeepSeek 开放平台的 API Keys 页面，点击 创建 API Key 后复制保存。\nAPI Key 只会完整显示一次；如果第一次生成后不小心丢失，也不用着急，把之前创建的密钥删除，重新创建一个即可。\n4. 在 Codex 中配置 DeepSeek API 4.1. 在 CC Switch 中添加 DeepSeek 供应商 在 Codex 中配置 DeepSeek 需要用到刚刚下载的 CC Switch。首先打开 CC Switch，在顶部选择 Codex。\n点击右上角的 添加新账户。\n选择 DeepSeek。\n4.2. 填写 API 配置 在 API Key 中填写刚刚创建的 API 密钥。\n为了使用 DeepSeek 专门适配 Codex 的功能，上游格式选择 Responses。\nDeepSeek V4 Pro 目前尚未适配 Codex，可以将其删除。 全部设置完成后点击 添加。\n返回主页面，选择启用 DeepSeek。\n4.3. 应用配置并重启 Codex 彻底退出 Codex 后重新打开。\n重新打开后，即可在 Codex 中成功使用 DeepSeek。\n5. 总结 注意：如果 Codex 显示需要配置路由，说明在 CC Switch 的 上游格式 中没有选择 Responses，回到配置中修改并重新应用即可。 ","date":"2026-08-04T00:00:00Z","permalink":"https://ysy.fan/p/codex-deepseek-api/","title":"使用 CC Switch 在 Codex 中接入 DeepSeek API"},{"content":"本文介绍如何将 GitHub Pages 博客提交到 Bing Webmaster Tools，几分钟即可完成站点验证与站点地图提交，让 Bing 快速收录你的内容。\n本文是《解决 Google Search Console 无法抓取 GitHub Pages 站点地图》的姊妹篇，记录 Bing 侧的提交流程。\n1. 打开并登录 浏览器打开 Bing Webmaster Tools，使用微软账号登录：\n2. 从 Google Search Console 导入 在欢迎页面选择 从 Google Search Console 导入：\n3. 授权 Google 账号 点击 继续，选择你的 Google 账号，接下来一路点击 继续 即可；在授权页面记得勾选 允许访问 Google Search Console 的数据：\n4. 导入网站 点击 导入网站：\n看到「网站添加成功」的提示即完成导入：\n5. 确认站点地图 点开 站点地图（Sitemaps），一般会自动导入；如果没有，手动提交 https://ysy.fan/sitemap.xml 即可：\n","date":"2026-08-04T00:00:00Z","permalink":"https://ysy.fan/p/bing-webmaster-sitemap-submit/","title":"在 Bing Webmaster Tools 提交站点地图"},{"content":" 适用机型：本文以实拍的联想 LJ2400 黑白激光打印机为例。图中硒鼓型号为 LD2441，粉盒型号为 LT2441；购买耗材前请以设备和耗材标签为准。\n1. 部件速览 LJ2400 通过 USB 连接电脑，纸张由前方纸盒送入，并从顶部出纸口输出。日常使用时，主要会接触状态灯、前盖、后盖、电源开关和 USB 接口。\n1.1. 出纸口与状态灯 顶部为出纸口。面板上的四个指示灯从左至右分别表示碳粉、硒鼓、错误和就绪状态；正常待机时，Ready 灯会亮起。\n1.2. 电源与 USB 接口 背面的电源开关中，I 表示开机，O 表示关机。USB-B 方形接口用于连接电脑；接通电源并连接数据线后，等待 Ready 灯亮起即可。\n1.3. 前盖、硒鼓与后盖 打开前盖后，可取出粉盒和硒鼓组件。请握住组件把手，平稳地向外抽出，避免触摸感光鼓表面。绿色滑块用于清洁电晕丝，使用后务必推回原始标记位置。\n后盖主要用于处理出纸端卡纸。打开后请避开高温警示区域，待机器充分冷却后再取出卡纸。\n2. 硒鼓灯和错误灯同时亮 当 Drum 灯亮黄、Error 灯亮红时，可先尝试清洁硒鼓上的电晕丝。操作前请关闭打印机电源，然后打开前盖并取出硒鼓组件。\n找到硒鼓上的绿色滑块。 将滑块来回滑动约 10 次。 将滑块推回原来的标记位置，再把硒鼓组件装回机器。 装回硒鼓组件并关好前盖，开机后确认 Ready 灯恢复正常。 若仍然报错，请确认硒鼓组件已完全推入、前盖已关严；若问题持续，再考虑更换硒鼓。\n3. Windows 安装驱动 3.1. 先确认电脑识别到打印机 按 Win + X，打开“设备管理器”，再展开“通用串行总线控制器”。确认其中显示 Lenovo LJ2400 后，再继续安装驱动；若未显示该设备，请先检查 USB 数据线和接口。\n3.2. 下载并准备驱动 打开 联想打印机驱动下载页，搜索 LJ2400，下载与系统版本对应的驱动包并解压。\n建议将解压后的文件夹移至全英文路径，例如 C:\\LJ2400，以免旧版安装程序因路径包含中文而无法启动。\n3.3. 运行安装程序 右键 start.exe，选择“以管理员身份运行”。 在启动界面选择 LJ2400，再点击“安装程序”。 选择“打印机驱动程序”，在许可证协议提示中选择“是”。 按安装向导提示点击“下一步”，等待安装完成；注册页面可直接跳过。 安装完成后点击“完成”，然后退出安装程序。\n3.4. 打印测试页 依次打开“设置 → 蓝牙和设备 → 打印机和扫描仪”，选择 Lenovo LJ2400，点击“打印测试页”。测试页能正常输出，即表示驱动已安装完成。\n4. WPS 手动双面打印 LJ2400 需要通过驱动提供的手动双面功能完成双面打印。重新放纸的方向至关重要：已打印的一面朝上，纸张顶部朝向远离打印机的一侧。\n在 WPS 中打开“打印”，选择 Lenovo LJ2400。 设置打印页码范围，勾选“双面打印”，并选择“长边翻页”。 点击“打印”，在第一个提示框中点击“确定”。打印机将先输出奇数页。 全部奇数页输出完毕后，再处理第二个提示框。取出纸张时请保持整叠纸的顺序不变。 打开纸盒，将纸张以已打印面朝上的方向放回；纸张顶部应朝向远离打印机的一侧。调整导轨后，将纸盒推回打印机。 确认纸张方向无误后，点击第二个提示框中的“确定”，开始打印另一面。 若首次操作时不确定放纸方向，建议先用两页测试文档验证；确认正反面方向正确后，再打印正式文件。\n","date":"2026-08-01T00:00:00Z","permalink":"https://ysy.fan/p/lenovo-lj2400-printer-guide/","title":"联想 LJ2400 打印机部件功能与使用指南"},{"content":"上一篇已经完成了 LM Studio 和本地模型的部署。本文继续使用同一批本地模型，借助 Bionic 读取项目上下文、执行修改，并检查改动是否符合预期。\n一、为什么要使用 Bionic 在 LM Studio 中，本地模型可以回答问题、解释代码和生成代码片段；不过，聊天内容默认不会直接作用于电脑中的项目文件。\nBionic 为本地模型提供了项目工作区。将项目目录加入工作区并授予相应权限后，模型便能结合项目上下文分析问题、修改文件，必要时还可以运行命令辅助完成任务。\n这类能力也意味着更高的操作风险。建议先在可回退的小项目中练习，或为现有项目创建独立分支；不要直接让模型修改唯一的生产副本。\n二、下载并安装 Bionic 打开 LM Studio 下载页面，在 Download LM Studio Bionic 区域选择适用于当前系统的安装包。\n下载完成后运行安装程序，按提示完成安装即可。Bionic 与 LM Studio 会竞争本机的模型和 GPU 资源，因此开始使用 Bionic 前，建议先退出 LM Studio。\n三、创建项目工作区 启动 Bionic 后，点击左侧的 New Project，为项目填写名称并选择本地工作区目录。\n如需让 Bionic 修改文件或运行项目命令，开启 Allow coding，然后点击 Create 创建项目。此权限允许工具在所选目录中执行命令，只应对自己信任、且已备份或受版本控制保护的目录开启。\n四、选择本地模型并提出任务 进入新建的项目后，在输入框右下角打开模型选择器，选择上一篇已下载的本地模型。首次尝试建议优先使用能够稳定运行的较小模型；确认流程无误后，再根据显存和任务复杂度切换到更大的模型。\n接着用清晰、可验证的方式描述任务。除了说明要实现什么，还应限定修改范围，并写明完成条件。例如：\n请阅读这篇文章，优化语言表达和标题层级。保留原有技术结论与图片，不修改文章以外的文件；完成后列出修改摘要，并检查 Markdown 链接和图片路径是否正确。\n任务范围越明确，模型越不容易进行无关改动。对于复杂任务，也可以先让它分析并给出修改计划，确认方向后再要求执行。\n五、检查改动并完成验证 任务执行完成后，Bionic 会列出修改过的文件及其增删行数。先阅读修改摘要，再逐个检查实际变更，重点确认模型是否只改动了预期文件，且没有删除必要内容。\n最后仍需由人工完成验证：文本或配置类项目可检查格式、链接和构建结果；代码项目则应运行测试、构建或启动流程。只有在验证通过后，再提交版本控制记录。\n至此，本地模型已经不再局限于聊天窗口，而是可以在受控的项目工作区中协助完成实际修改。下一步可以继续练习如何拆分任务、审查模型改动，并将本地模型纳入日常开发流程。\n","date":"2026-07-31T00:00:00Z","permalink":"https://ysy.fan/p/bionic-project-editing/","title":"从零开始玩转本地模型（二）：用 Bionic 修改项目文件"},{"content":"本文演示如何借助本地 Codex 和 Git 工作树，让多个对话同时推进同一个项目中的不同任务。核心原则是先划分清楚任务边界，再分别开发、提交和合并。\n本文介绍两种工作流：临时工作树适合一次性的并行任务；永久工作树适合需要持续维护同一条开发线的场景。无论采用哪一种，都应避免多个任务同时修改同一批文件。\n1. 临时工作树：适合一次性并行任务 临时工作树的特点是每次新建对话时创建一个分支和对应的工作树。任务完成并合并后，这个工作树通常不再继续使用，适合功能开发、测试补充或独立问题排查等短期任务。\n1.1 创建工作树并分配任务 首先新建一个对话。\n然后将本地环境切换到新的工作树。\n接下来，为第一个工作树分配任务。重复“新建对话、创建工作树、分配任务”的过程，就可以让多个对话并行修改同一个项目。\n在开始前，建议明确每个任务负责的模块和文件范围。例如，一个任务负责接口实现，另一个任务负责测试，第三个任务负责前端页面。任务说明中最好同时写清目标、涉及目录、验收方式和不应修改的文件，避免后续合并时出现冲突或重复工作。\n多个任务并行执行后的效果如下：\n1.2 要求每个任务完成收尾 当某个工作树中的任务完成后，可以向对应对话发送下面这段提示，确保它在提交前完成必要的检查：\n1 2 3 4 5 6 请停止继续扩展范围，完成当前任务的收尾： 1. 运行本任务相关测试、Ruff、Python 编译和 git diff --check。 2. 只提交你自己修改的文件，不要更新 docs/任务书.md、docs/完成记录.md。 3. 创建一个清晰的 Git 提交。 4. 回复提交哈希、修改文件列表、测试结果和已知风险。 这样可以让每个并行任务都产出独立、可审查的提交，也便于后续定位问题。\n1.3 将各工作树的改动合并到主线 当各工作树完成 Git 提交后，回到主工作区的终端，按提交间的依赖关系依次执行 cherry-pick。例如：\n1 2 3 4 git cherry-pick \u0026lt;A 的提交哈希\u0026gt; git cherry-pick \u0026lt;C 的提交哈希\u0026gt; git cherry-pick \u0026lt;E 的提交哈希\u0026gt; git cherry-pick \u0026lt;D 的提交哈希\u0026gt; 这些命令会将各工作树中的提交复制到主线。每次执行 cherry-pick 后，都应检查当前工作区状态和补丁格式：\n1 2 git status --short git diff --check 如果发生冲突，应在主工作区统一处理，不要回到原工作树反复修改同一处代码。处理完成后继续执行 cherry-pick，并在所有提交合并完成后运行完整测试。\n2. 永久工作树：适合持续维护的任务 如果某个任务需要跨多次对话持续推进，或你希望长期保留它的独立开发环境，可以创建永久工作树。它不需要在每次开始新对话时重复创建分支，更适合持续迭代的功能或长期维护的模块。\n2.1 创建永久工作树 在项目右侧的三个点菜单中，选择创建永久工作树。\n创建完成后，先向 AI 发送一条只读检查指令，确认当前工作树的根目录和 Git 状态：\n1 请只执行 git rev-parse --show-toplevel 和 git status --short，不修改任何文件，并报告输出结果。 确认工作树状态无误后，再为它创建对应的分支。\n后续可以持续在这个工作树中推进同一类任务。需要将成果并入主线时，仍然应遵循独立提交、审查差异和集中处理冲突的原则。\n3. 如何选择工作树方式 临时工作树：适合目标明确、完成后即可合并的一次性任务。 永久工作树：适合跨多个阶段持续迭代，或需要长期保留上下文和开发环境的任务。 无论使用哪种方式，任务之间的文件边界越清晰，最终合并就越顺畅。\n4. 小结 使用本地 Codex 并行开发的重点不在于同时开启多少个对话，而在于任务边界清晰、每项改动独立提交，并在主工作区集中完成合并与验证。这样既能提升并行效率，也能控制集成风险。\n","date":"2026-07-31T00:00:00Z","permalink":"https://ysy.fan/p/codex-parallel-development/","title":"用本地 Codex 并行开发同一个项目"},{"content":"本指南汇总在 Windows 上从零开始部署和使用本地大语言模型的完整学习路径。内容按实际操作顺序组织：先让模型稳定运行，再将它用于项目协作，最后进入微调、评估与部署等进阶主题。\n当前内容 1. 部署并运行第一个本地模型 Windows 本地部署流程：安装 LM Studio、下载模型并完成首次对话 适合第一次接触本地模型的读者。文章覆盖硬件准备、LM Studio 安装、模型下载、显卡设置和基础加载参数。\n2. 用本地模型修改项目文件 用 Bionic 修改项目文件：创建工作区、授权、提出任务与验证改动 在模型能够稳定运行后，使用 Bionic 将模型带入受控的项目工作区，完成文件修改并审查实际变更。\n后续计划 本地模型的基础使用与管理 微调环境与数据集准备 本地模型微调实践 模型评估、量化与部署 建议按上述顺序阅读。每一篇分篇都可以单独访问或通过站内搜索找到；阅读分篇时，页面顶部的“返回专题”链接可回到本指南。\n","date":"2026-07-30T00:00:00Z","permalink":"https://ysy.fan/p/local-llm-from-zero-guide/","title":"从零开始玩转本地模型：Windows 本地部署与使用指南"},{"content":"这篇文章以 LM Studio 为例，记录如何在 Windows 上下载并运行第一个本地大语言模型。完成后，你可以直接在本机与模型对话；后续文章会在此基础上继续介绍 API 服务和更多使用方式。\n一、开始前的准备 先确认电脑的内存、显存和磁盘空间。LM Studio 官方建议 Windows 设备至少具备 16GB 内存和 4GB 独立显存。显存越充足，可运行的模型越大，能够设置的上下文也越长。\n磁盘建议至少预留 20GB。单个 4B 量化模型通常不需要这么多空间，但实际使用时很容易继续下载不同规模或不同量化版本的模型，例如：\nQwen3.5-4B、Qwen3.5-9B 等不同参数规模的模型； 同一模型的不同量化版本； 微调后导出的模型文件。 模型文件建议存放在空间充足的 SSD 上，例如 D 盘。这样既能避免系统盘很快被占满，也能缩短模型加载时间。\n二、下载安装 LM Studio 前往 LM Studio 官方下载页面，选择 Windows 版本：\n下载完成后运行安装程序，通常按默认选项安装即可。LM Studio 支持 Windows x64；处理器需要支持 AVX2，近年的 Intel 与 AMD 桌面处理器一般都满足这一要求。\n安装时若选择“为所有用户安装”后安装程序异常退出，可以改为“仅为我安装”。安装完成后启动 LM Studio。首次启动时如果提示下载模型，可以先跳过，稍后在应用内选择模型更方便。\n建议在初始设置中开启以下两项：\nTurn on Developer Mode：开启开发者模式，为后续调用本地服务做准备。 Start local LLM service on login：登录 Windows 后在后台自动启动 LM Studio 的本地模型服务。 切换为简体中文 LM Studio 已提供简体中文界面。点击左下角的 Settings：\n在 General 中将语言改为“简体中文”：\n部分界面暂未完成汉化，属于正常情况，并非设置没有生效。\n三、下载第一个模型 点击右侧的模型下载入口：\n以 8GB 显存的 RTX 5070 Laptop GPU 为例，推荐先下载 qwen/qwen3.5-4b 的 GGUF / Q4_K_M 版本。该量化文件约为 3.75GB，支持中文、图片输入和推理模式；对于 8GB 显存来说，它能为上下文缓存和桌面显示预留一定空间，适合作为首次部署的起点。\n在搜索框输入模型名称，选择列表中推荐的第一个量化文件并点击下载：\n如果磁盘空间和下载时间允许，也可以同时下载其他模型进行比较，例如 9B 模型或不同微调版本。模型越大，对显存、内存和加载参数的要求也越高；建议先确认 4B 模型可以稳定运行，再尝试更大的模型。\n右上角的下载列表会显示下载进度、速度和剩余时间：\n四、确认硬件设置 打开 Settings -\u0026gt; Hardware：\n确认 LM Studio 已识别到显卡，并开启图中标出的三项：\n启用 NVIDIA GPU：允许 LM Studio 使用 CUDA 在显卡上推理； 限制模型卸载使用的 GPU 内存：让 LM Studio 按可用显存与内存评估模型加载，降低资源不足时卡死或加载失败的概率； 将 KV 缓存卸载到 GPU 内存：把上下文缓存尽量放到显存中，通常能提升生成速度。 如果没有识别到 CUDA 显卡，请先检查 NVIDIA 驱动是否正常安装。此时仍可使用 CPU 运行模型，但速度会慢很多。\n五、加载模型并完成首次对话 点击顶部的模型选择器，选择刚刚下载的模型：\n首次加载建议勾选手动设置模型参数，先使用最基础的预设确认模型是否可以正常运行：\n对于前面的 Qwen3.5-4B 示例，可使用以下设置：\n上下文长度：保持 8192； GPU 卸载：保持 32。滑到最右侧表示尽可能将模型层放入显卡； 预计显存占用：约 3.73GB，可作为是否适配当前设备的参考； Remember settings for qwen3.5-4b：勾选后，下次加载该模型无需重复设置； Show advanced settings：首次验证运行时不必开启。 设置完成后点击加载模型：\n如果顶部模型选择器没有切换成功，点击图中的按钮重新选择一次：\n随后输入一条简单的测试消息，例如：\n请用中文介绍你自己，并说明你能完成哪些任务。\n能够正常生成中文回复，就说明本地模型已经成功运行。\n六、8GB 显存尝试 9B 模型 8GB 显存运行 9B 模型属于较紧张的配置。若加载失败、显存不足或生成不稳定，可以在加载页面适当降低参数：\n上下文长度：8192 调整为 4096； 在高级设置中，将 Max Concurrent Predictions 从 4 改为 1。个人对话通常只需要同时生成一个回复； 将 评估批处理大小 从 2048 降至 512。稳定后可以再尝试提升到 1024； 将 Physical Batch Size 从 512 降至 256。 这些调整会牺牲一部分吞吐量，换取更低的峰值显存占用和更好的稳定性。不同模型、量化版本和后台程序的资源占用并不相同，应以 LM Studio 显示的预计显存占用与实际运行情况为准。\n至此，Windows 上的本地模型运行环境已经准备完成。下一步可以继续配置本地 API 服务，让其他工具也能调用这个模型。\n","date":"2026-07-30T00:00:00Z","permalink":"https://ysy.fan/p/windows-local-model-deployment/","title":"从零开始玩转本地模型（一）：Windows 本地部署流程"},{"content":"第一步：下载安装 IDM 访问 IDM 官方网站，点击页面上的绿色按钮开始下载。\n双击运行下载的安装程序，按照提示一路点击\u0026quot;下一步\u0026quot;直至安装完成。\n💡 提示：如果您想让 IDM 在安装完成后立刻接管浏览器的下载任务，请在继续安装前关闭所有的浏览器窗口。同时，安装结束后您需要重新打开浏览器。\n第二步：启用 IDM 浏览器扩展程序 打开 Chrome 浏览器，点击右上角的扩展程序图标（拼图形状），选择\u0026quot;IDM Integration Module\u0026quot;并点击\u0026quot;启用扩展程序\u0026quot;按钮。\n第三步：下载激活脚本 前往 IDM 激活脚本 GitHub 项目 的 Release 页面，点击右侧\u0026quot;Releases\u0026quot;区域的最新版本（v1.4.2）。\n在 Release 页面右侧的 Assets（资源）区域，点击下载 IDM-Activation-Script.zip 压缩包：\n第四步：运行激活脚本 下载并解压压缩包后，您会看到以下两个核心命令文件（原 Release 中还包含其他文档，但这两个是必需的）：\n双击运行 开始激活.cmd 文件，当系统提示授予权限时点击\u0026quot;是\u0026quot;，进入命令行菜单界面：\n第五步：执行激活操作 在菜单中输入 2（激活模式），系统将自动处理激活流程，进入如下界面显示激活结果：\n⚠️ 警告：对某些用户而言（设置），IDM 可能会显示假阳性序列号提示。如果你遇到这种情况，请使用冻结激活选项（输入 1）。\n继续执行直到如下界面：\n第六步：禁用 IDM 自动更新 返回主菜单，选择 4（禁用 IDM 更新）选项：\n💡 提示：停留在当前版本可避免更新后激活失效，但也不再获得官方修复。如需恢复更新检查，请在主菜单选择 5（恢复 IDM 更新提示）。\n第七步：验证激活状态 激活完成后，重新启动 IDM 软件即可看到授权信息弹窗，确认激活成功：\n激活完成！ 现在您可以正常使用 IDM 的所有功能了。\n","date":"2026-07-28T00:00:00Z","permalink":"https://ysy.fan/p/idm-free-trial-install-guide/","title":"IDM 破解安装指南"},{"content":"根据你的目标选择对应文章：首次了解 Cursor、调整界面与插件、配置模型服务，或排查 Agent 卡死问题。\n1. 入门与界面 Cursor 使用心得：AI 编程助手的初体验 Cursor 新旧界面切换：编辑器模式与 Agents 模式 2. 插件与模型配置 Cursor 手动安装插件：中英文自动空格插件 在 Cursor 中接入阿里云百炼 API 3. 常见问题 Cursor Agent 模式频繁卡死的排查方案 ","date":"2026-07-27T00:00:00Z","permalink":"https://ysy.fan/p/cursor-troubleshooting-guide/","title":"Cursor 使用指南：入门、界面、插件、模型与常见问题"},{"content":"本指南汇总本站 Hugo Theme Stack 的搭建与维护文章。根据你所处的阶段选择对应内容：首次部署、调整主题显示、封装内容组件、优化文章推荐，或解决搜索引擎收录问题。\n1. 从零搭建与部署 Hugo Theme Stack 入门：GitHub 个人博客搭建全流程 2. 主题与内容显示 控制图片大小与点击效果 用 Shortcodes 封装常用 HTML 组件 3. 内容推荐优化 相关文章推荐配置指南 4. 搜索引擎收录 解决 Google Search Console 无法抓取 GitHub Pages 站点地图 在 Bing Webmaster Tools 提交站点地图 ","date":"2026-07-27T00:00:00Z","permalink":"https://ysy.fan/p/blog-site-maintenance-guide/","title":"Hugo 博客搭建与维护指南：部署、主题与内容优化"},{"content":"遇到 P 社启动器报错时，请先记录完整的中文或英文提示，再按下方目录进入对应方案。相近的错误可能由不同原因引起，优先选择与提示文字最一致的文章。\n1. 安装与更新 P 社启动器总是更新失败 安装启动器时提示“User installations are disabled via policy on the machine” 启动器安装报错 2503 Windows Installer 打开安装日志文件时发生错误 安装程序写入安装信息时发生错误 安装启动器报错“Could not open key” 安装时提示网络资源不可用 无法删除旧版本的 Paradox Launcher v2 Paradox Launcher v2 安装向导提前结束 安装时发生严重错误 提示另一个安装正在进行中 2. 启动器无法打开或运行异常 打开启动器时报错无法找到配置文件 启动器打开时报错 Steam 运行时通讯错误 启动器数据库错误，数据库迁移失败 缺少 .NET Framework 等，游戏崩溃或意外终止 找不到有效的 Paradox Launcher 安装 Bootstrapper 无法启动启动器 主进程发生 JavaScript 错误 无法找到有效的 P 社启动器文件 安装完成后点击无反应，但任务管理器中正在运行 检测到启动器安装但无法正常工作，提示重新安装 无法启动 Paradox Launcher，提示具体路径 3. 游戏目录、MOD 与 DLC DLC 列表出现“无法确认此 DLC 的拥有者”警告 游戏数据访问错误，没有游戏数据目录的读写权限 启动游戏时报错无法创建图形设备 无法添加已下载的群星游戏，所选目录中没有已安装的游戏 无法找到 Documents 文件夹，无法修改 DLC、MOD 和游戏设置 浏览 MOD 时启动器崩溃，提示“生成错误” 4. 仍未解决 请保留完整错误文字、复现步骤、截图以及相关日志。不要仅凭相似的界面或按钮文字判断问题，错误提示中的路径、错误代码和英文原文通常是定位问题的关键。\n","date":"2026-07-27T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-troubleshooting-guide/","title":"P 社启动器报错解决指南：安装、启动、MOD 与 DLC 问题汇总"},{"content":"请先确认问题发生在启动游戏、游戏运行中还是关闭游戏后，再选择对应方案。\n1. 启动游戏异常 Steam 启动游戏特别慢 点击开始游戏后无法打开，停止按钮又变回开始游戏 游戏无法打开，Steam 库中却显示正在运行 2. 游戏状态无法结束 关闭游戏后 Steam 库一直显示正在停止 3. 游戏激活异常 删除 Steam 中假入库的游戏，并使用正版 CDK 重新激活覆盖 ","date":"2026-07-27T00:00:00Z","permalink":"https://ysy.fan/p/steam-troubleshooting-guide/","title":"Steam 常见问题解决指南：启动、游戏状态与激活异常"},{"content":"请保留 SteamCMD 的完整英文报错和执行命令。网络、登录和下载问题的提示文字相似，但对应处理方式不同。\n1. 启动、更新与磁盘空间 打开 SteamCMD 后直接闪退 不断重复下载更新，但进度条不变 提示需要 250MB 可用磁盘空间用于更新 2. 下载异常 每次下载都会重复下载之前已下载的内容 下载时报错 Download item failed 下载到一半命令行窗口突然闪退 3. 网络与 HTTPS 错误 httpclient.cpp (91) HTTPS 错误 httpclient.cpp (72) HTTPS 错误 Steam needs to be online to update 4. 登录输入异常 下载时报错 Not logged on 登录时无法输入密码或不显示字符 ","date":"2026-07-27T00:00:00Z","permalink":"https://ysy.fan/p/steamcmd-troubleshooting-guide/","title":"SteamCMD 常见问题解决指南：下载、更新、网络与登录异常"},{"content":"联机加速器问题通常分为虚拟网卡、客户端网络和自建节点三个层面。请按实际提示或发生步骤选择文章。\n1. 虚拟网卡安装与识别 网卡安装过程卡死，无法安装虚拟网卡 已安装网卡，仍提示未检测到虚拟网卡 2. 客户端网络异常 打开时报错读取数据失败，请检查网络或 DNS 打开后乱码 适配器显示网络电缆被拔出，无法连接服务器 3. 自建节点无法连接 创建加速器节点后无法通过 TCP 或 UDP 连接 ","date":"2026-07-27T00:00:00Z","permalink":"https://ysy.fan/p/multiplayer-accelerator-troubleshooting-guide/","title":"联机加速器常见问题解决指南：虚拟网卡、网络与节点连接"},{"content":"请先确认异常发生在哪一步：解压补丁包、安装后检查 DLC、启动器列表显示，还是进入游戏或启动游戏时。根据现象进入对应文章，避免因为相似的问题描述而重复操作。\n1. 解压补丁包后文件异常 解压后文件夹里只有 DLC，没有补丁 解压后 DLC 序号不连续 2. DLC 没有正常激活或显示不一致 启动器显示有 DLC，但进入游戏后没有 其他 DLC 正常激活，但部分旧 DLC 没有激活 其他 DLC 正常激活，但最新的一个或几个 DLC 没有激活 启动器列表和游戏内都没有 DLC 3. 启动游戏时报错 [SmokeAPI] Panic! Failed to hook function ISteamClient_GetISteamInventory 4. 仍未解决 记录补丁包的目录结构、启动器和游戏内的 DLC 显示状态、完整错误提示以及截图。DLC 问题经常与文件路径、解压层级或当前游戏版本相关，完整信息能显著缩小排查范围。\n","date":"2026-07-27T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-dlc-troubleshooting-guide/","title":"群星 DLC 异常解决指南：补丁包、未激活与启动报错汇总"},{"content":"请按闪退发生的阶段选择方案：启动时、加载时、主界面或进入存档后。不同阶段对应的日志与排查方向不同。\n1. 启动与加载阶段 最常见的闪退后白框报错 点击开始游戏时直接闪退，没有任何报错 游戏加载到 100% 后闪退 打开游戏时报错缺少 DLL 打开游戏黑屏但音乐正常播放 游戏加载到 5% 固定卡死 2. 进入游戏后的闪退与界面异常 进入游戏后在主界面闪退 进入游戏后点击新游戏闪退 进入游戏后在自定义国家界面闪退 选择国家并进入地图时闪退 游玩一两分钟后闪退 界面过大，不显示按钮 退出游戏时卡死，只能强制关闭 3. 联机异常 校验码与其他玩家不同，无法加入联机房间 ","date":"2026-07-27T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-troubleshooting-guide/","title":"群星常见报错解决指南：闪退、加载、界面与联机问题汇总"},{"content":"按问题出现的操作步骤进入对应文章：启动游戏、设置语言、修改语言文件或加载 MOD。\n1. 启动与语言 离线版群星一打开就闪退 离线版群星无法调中文 修改语言文件后启动游戏闪退报错 2. MOD 未生效 使用 JSGME 添加 MOD 后没有生效 ","date":"2026-07-27T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-offline-troubleshooting-guide/","title":"群星离线版常见问题解决指南：闪退、语言与 MOD"},{"content":" 本文以电脑远程协助 Android 手机为例。仅应在设备所有者知情并同意的情况下发起连接；涉及验证码、支付和隐私信息时，建议由手机持有人自行操作。\n本次使用 TeamViewer 的“会话”功能实现远程控制：电脑端创建会话并生成会话码，Android 手机端加入会话、完成授权后，即可由电脑操作手机。\n1. 下载所需客户端 先打开 TeamViewer 下载页面。\n电脑端选择并下载 TeamViewer Full Client 64 位版。不要下载 TeamViewer QuickSupport，QuickSupport 用于被协助端，无法按本文流程在电脑上创建会话。\n然后切换到 Android 下载页面，下载 TeamViewer QuickSupport 的 APK，并将安装包发送到需要被控制的手机上安装。\n为便于下载，本文也提供了对应文件的国内下载地址：\nTeamViewer Full Client 64 位版 TeamViewer QuickSupport APK 从第三方渠道下载 APK 时，请自行核对文件来源和安全性；Android 可能会要求允许浏览器或文件管理器安装未知来源应用。\n2. 在电脑端创建会话 安装完成后，在电脑上打开 TeamViewer Full Client 并登录或注册账号。创建会话码需要登录账号；若界面与下图差异很大，请确认电脑端没有误装成 TeamViewer QuickSupport。\n点击“创建新会话”，再点击“开始”创建本次远程协助会话。\n会话创建后，复制生成的会话码，并通过可信渠道发送给手机持有人。\n3. 在 Android 端安装插件并授权 在手机上打开 TeamViewer QuickSupport，先进入“设置”。\n进入“权限”。\n打开“远程控制”功能。\n首次启用时，需要按提示安装 TeamViewer 的控制插件。点击“安装”下载并安装插件，完成后选择打开 Universal Add-On。\n在系统页面中选择“已下载的应用”。\n找到并打开 TeamViewer Universal Add-On 的授权项。\n部分手机会提示该应用的权限受到限制。这通常是系统针对侧载应用或无障碍服务的安全保护。请根据手机品牌和系统提示，进入应用权限管理页解除限制，再返回此处完成启用。\n接着返回 QuickSupport 的权限页，进入“存储空间”。\n授予所需权限。如果再次出现权限受限提示，按系统页面给出的步骤解除限制后重试即可。\n4. 加入会话并开始控制 返回 QuickSupport 首页，点击“加入会话”。\n输入电脑端发送的会话码，点击“加入”。\n此时回到电脑端，点击“加入会议”。\n手机端会要求确认身份或允许本次连接。确认协助者身份无误后，点击允许。\n连接建立后，电脑端即可显示并控制手机画面。\n5. 使用结束后 协助完成后，在电脑端结束会话，或由手机端退出 QuickSupport。若仅为临时协助，建议同时关闭 Universal Add-On 的无障碍授权，或卸载 QuickSupport 及其插件，避免设备在无人知情时被再次远程访问。\n","date":"2026-07-27T00:00:00Z","permalink":"https://ysy.fan/p/teamviewer-remote-control-phone/","title":"使用 TeamViewer 远程控制手机：Android 连接流程与注意事项"},{"content":" 本文记录一次实际办理过程，页面入口、受理条件和退款时限可能因地区、套餐或运营商规则调整而变化，请以 App 页面和官方客服答复为准。\n这次没有前往线下营业厅，而是直接通过中国广电 App 完成了业务退订和销户。线上办理的核心顺序是：先退订全部业务，再提交自助销户申请。\n1. 登录并查看已订业务 使用需要注销的手机号登录中国广电 App，进入“分类 -\u0026gt; 查询”，然后点击“已订业务”。\n2. 逐项退订产品和营销套餐 已订业务页通常包含“我的产品”和“营销套餐”两个分页。两个分页中的有效条目都需要分别退订，否则可能无法继续销户。\n每次退订都需要通过手机接收验证码确认。实测中验证码存在发送间隔限制，大约一分钟只能接收一条；如果项目较多，需要预留几分钟逐项完成。\n3. 遇到异常条目时先核对状态 我在退订“奎马体验金”时遇到了报错，页面提示关联主体不存在。结合其他条目的状态判断，这个项目可能已被此前的退订操作一并取消，只是 App 状态尚未及时刷新。\n遇到类似情况时，建议先刷新页面并确认该条目是否仍然生效；如无法判断，不要反复操作，可保留截图并通过官方客服确认。\n4. 提交自助销户申请 确认全部业务均已退订后，进入“分类 -\u0026gt; 服务 -\u0026gt; 自助销户”。随后按照页面提示完成身份验证、签字等流程即可提交申请。\n5. 余额退还结果 本次销户完成后，App 内剩余的可退余额进入退款流程。我的退款在提交销户后的第二天到账。\n到账时间和可退金额会受余额性质、套餐协议和受理规则影响。建议在提交前截图保留余额信息，并保存销户受理记录；若超过页面或客服承诺的时限仍未到账，可凭记录向官方客服查询处理进度。\n6. 注意事项 先检查“我的产品”和“营销套餐”两个分页，避免遗漏有效业务。 退订验证码可能存在发送间隔，不要连续重复提交。 遇到异常提示时先核对业务状态，必要时通过官方渠道确认。 销户前后保留余额截图、退订记录和受理凭证，便于跟进退款。 ","date":"2026-07-25T00:00:00Z","permalink":"https://ysy.fan/p/china-broadcast-card-cancellation-refund/","title":"广电流量卡在线注销与余额退还记录"},{"content":" 关闭手机令牌会降低账户保护强度，并可能影响交易、社区市场或其他账户功能。操作前请确认仍可访问绑定邮箱，并妥善保存恢复代码。\n1. 打开手机令牌页面 打开 Steam 手机版 App，点击底部中间的令牌入口，进入 Steam Guard 手机令牌页面。\n2. 选择移除令牌 在令牌页面中选择“移除令牌”，然后按页面提示完成确认。\n3. 确认交易限制提示 确认前，Steam 会提示移除令牌后可能产生的限制。我的页面提示交易会在 15 天内受到影响；具体限制范围和时长应以账户当前显示的说明为准。\n如果账户中有需要保护的库存、余额或交易权限，建议保留手机令牌。只有在确认不再需要该验证方式，并且能够承担相应限制时再继续移除。\n确认移除后，操作即完成。建议重新登录或返回账户安全设置，确认 Steam Guard 状态符合预期。\n","date":"2026-07-25T00:00:00Z","permalink":"https://ysy.fan/p/steam-mobile-authenticator-disable/","title":"如何关闭 Steam 手机版令牌"},{"content":"本文以 Windows 和 CC Switch v3.18.0 为例，介绍如何将 Faro API 提供的 API 密钥添加到 CC Switch，并让 Codex 桌面版使用这套配置。后续需要更换接口或密钥时，也可以直接在 CC Switch 中统一管理。\n本文所说的“登录”是指通过第三方兼容接口进行 API 密钥登录，并不是登录 OpenAI 或 ChatGPT 账号。API 密钥相当于账号凭据，请勿公开、转发或以明文形式放入截图。\n1. 准备工作 开始前需要准备：\n已安装的 Codex 桌面版 从 Faro API 获取的可用 API 密钥 能够访问 GitHub 和 Faro API 的网络环境 2. 下载并安装 CC Switch 2.1. 下载 Windows 安装包 打开 CC Switch Releases，进入最新版本的下载列表。普通 Windows 电脑选择文件名以 Windows.msi 结尾的安装包；ARM64 设备则选择对应的 Windows-arm64.msi。不要误下 .sig 文件，它只是签名文件，不能直接安装。\n截图中的最新版本为 v3.18.0，实际下载时版本号可能已经更新。\n2.2. 完成安装并启动 双击下载的 .msi 文件运行安装程序。在安装向导中点击 Next，按提示完成安装。\n安装完成后打开 CC Switch。程序首次启动时可能停留在 Claude Code 页面，这是正常现象。\n3. 添加 Faro API 配置 3.1. 进入 Codex 配置页 点击顶部的 Codex 标签，切换到 Codex 配置页面。\n然后点击右上角的 + 按钮，进入“添加新供应商”页面。\n3.2. 填写供应商信息 按照 Faro API 提供的信息填写表单：\n字段 填写内容 供应商名称 Faro API，也可以填写其他便于识别的名称 备注 可选，用于区分不同接口或密钥 官网链接 https://faroapi.com API Key 粘贴从 Faro API 获取的 API 密钥 API 请求地址 https://faroapi.com/v1 完整 URL 按照截图保持关闭 默认模型 填写 Faro API 当前提供的模型 ID，截图示例为 gpt-5.6-sol 上游格式 选择 Responses（原生） 其余高级选项没有特殊需求时保持默认即可。模型 ID 可能会随服务端调整，不要把截图中的 gpt-5.6-sol 当作固定值。\n3.3. 测试请求地址 填写完成后，点击 API 请求地址右侧的 管理与测速。\n进入“请求地址管理”页面后，确认列表中显示 https://faroapi.com/v1，再点击右上角的 测速。\n测速的主要目的是确认接口端点可以连接。出现延迟数值说明测试已得到响应；数值较高不代表配置失败，但可能影响实际使用时的响应速度。如果显示连接错误，应先检查请求地址和本机网络。\n3.4. 保存配置 返回“添加新供应商”页面，再次确认 API Key、请求地址、默认模型和上游格式无误，然后点击右下角的 添加。\n4. 应用配置并重启 Codex 返回 Codex 配置列表，选中刚刚添加的 Faro API，将其设为当前使用的配置。当右侧按钮变为 使用中 时，说明 CC Switch 已经应用该配置。\nCodex 桌面版可能仍在使用启动时读取的旧配置，因此应用供应商后需要彻底退出并重新启动 Codex。不要只关闭主窗口，应从 Windows 系统托盘退出 Codex，确保它不再驻留后台。\n5. 验证 API 密钥登录状态 重新打开 Codex 桌面版，展开左下角的账号菜单。如果顶部显示 已通过 API 密钥登录，并且底部模型选择器中出现对应模型，就说明 Faro API 配置已经生效。\n6. 常见问题 6.1. 应用配置后 Codex 没有变化 返回 CC Switch，确认 Faro API 右侧显示 使用中。随后彻底退出 Codex 后重新打开，仅关闭窗口可能不会让新配置立即生效。\n6.2. 测速显示连接失败 检查 API 请求地址是否完整填写为 https://faroapi.com/v1，同时确认网络可以访问 Faro API。如果地址可以连接但实际请求仍失败，还需要检查 API 密钥是否有效。\n6.3. 模型不可用或模型名称错误 默认模型必须填写 Faro API 当前支持的模型 ID。服务端模型发生变化时，应以 Faro API 提供的最新模型列表为准，再回到 CC Switch 修改配置并重新应用。\n使用第三方 API 时，请自行留意请求内容的隐私、密钥安全、用量费用和相关服务条款。\n","date":"2026-07-25T00:00:00+08:00","permalink":"https://ysy.fan/p/ccswitch-faroapi-codex-login/","title":"使用 CC Switch 管理 Faro API 密钥并登录 Codex 桌面版"},{"content":" 不是考证，也不是合集。就是网上找到的旧照片，看看还能不能认出来。\n","date":"2026-07-21T00:00:00+08:00","permalink":"https://ysy.fan/p/wangri-zhongzhong/","title":"往日种种。你说的……可是往日？"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 P 社启动器总是更新失败。\n2. 解决方法 到官网下启动器安装包，或者直接下群里的安装包，如果群里的安装包跟不上时代了记得提醒群主更新\n官网链接：\nhttps://www.paradoxinteractive.com/our-games/launcher\n安装教程：\nhttps://www.bilibili.com/video/BV1tEJmz5EVk/?share_source=copy_web\u0026vd_source=04becf7d20fdc437d804d92aa7ca4370\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-01/","title":"P 社启动器总是更新失败"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 Paradox Launcher v2 安装向导提前结束:Paradox Launcher v2 Setup Wizard ended prematurely。\n2. 解决方法 这一串报错是最近最常出现的报错小连招，一般情况下，在玩盗版游戏后，补票正版游戏并重新安装启动器时;或者以不合适的方式删除旧启动器时会出现该报错。该报错的原因是旧启动器的文件没有删除干净，残留的文件影响了新启动器的下载，解决方法如下。\n最优先的方法是下载 Windows Installer 修复工具（疑难解答工具）并进行修复，下载网址为\nhttps://support.microsoft.com/zh-cn/topic/2438651\n或者直接在网盘下载\nhttps://pan.quark.cn/s/a05bf32ce69b\n或\nhttps://pan.baidu.com/s/1VqVdd-65iQxVZlphttl-rQ?pwd=9a9b\n提取码：9a9b\n打开程序安装和卸载疑难解答程序后点下一步\n选择安装\n找到 Paradox Launcher v2 点击下一步\n点击是，尝试卸载\n之后重新进行启动器的安装，访问官网 https://www.paradoxinteractive.com/our-games/launcher 下载最新的启动器安装程序。如果无法打开官网，也可以在群文件中的“P 社最新启动器”文件夹中找到下载文件。之后右键点击属性。\n在兼容性选项卡中勾选以管理员身份运行此程序，点击应用，之后重新运行安装程序安装启动器。\n如果问题没有解决，请手动删除以下文件夹：\nC:/users/(用户名)/AppData/Local/Programs/Paradox Interactive/\nC:/users/(用户名)/AppData/Local/Paradox Interactive/\nC:/users/(用户名)/AppData/Roaming/Paradox Interactive/launcher-v2/\n之后再重新运行安装程序，如果有修复或卸载选项，选择 uninstall(卸载),等待卸载完成后再重新安装。\n注意安装路径没事不要改，改了路径出问题以后不好修\n如果成功解决了启动器无法下载或卸载的问题，并成功安装了启动器，但点击启动器图标后无法打开启动器：比如出现双击启动器图标，但是启动器无反应的情况，虽然在任务管理器中可以看到启动器正在运行，但是实际上并没有打开启动器。另一种情况是在 Steam 中直接启动游戏时，点击“开始游戏”并等待一段时间后，启动器未能打开，且按钮又恢复为“开始游戏”,或者干脆卡在那里不动了。遇到这两种情况，请跳转启动器安装完成后无法打开，点击无任何反应，但在任务管理器中可以看到启动器正在运行。如果一切正常就不用管这段，可以直接去游玩了。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-19/","title":"Paradox Launcher v2 安装向导提前结束:Paradox Launcher v2 Setup Wizard ended prematurely"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 steam 点开始游戏按钮后打不开游戏，过一会后停止按钮又变成了开始游戏。\n2. 解决方法 这其实是一个启动器相关问题，访问官网 https://www.paradoxinteractive.com/our-games/launcher 下载最新的启动器安装程序。运行安装程序后，先卸载旧版启动器，再安装新版启动器即可。如果无法打开官网，也可以在群文件中的“P 社最新启动器”文件夹中找到下载文件。如果没有卸载旧启动器的选项，可以直接进行安装。安装过程中无需更改路径，因为启动器占用空间非常小，且更改安装路径可能会导致不必要的问题，因此无需将其安装到其他位置以节省 C 盘空间。一次重装可能无法解决问题，如果一次不行可以多尝试几次。\n如果上述方法无法解决你的问题，请跳转启动器安装完成后无法打开，点击无任何反应，但在任务管理器中可以看到启动器正在运行。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steam-error-02/","title":"steam 点开始游戏按钮后打不开游戏，过一会后停止按钮又变成了开始游戏"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 安装启动器报错无法打开密钥:Could not open key。\n2. 解决方法 提示：该解决方案为互联网搜罗整合而来，未经实际操作验证，如果您使用该方案成功解决了问题，请将细节反馈给 3217344726，以便完善报错指南\n解决方案：\nwin+R，输入 cmd 后回车，复制以下字段粘贴到至 cmd 后再次回车即可，之后重新尝试安装启动器\nsecedit /configure /cfg %windir%\\inf\\defltbase.inf /db defltbase.sdb /verbose\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-15/","title":"安装启动器报错无法打开密钥:Could not open key"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 安装启动器时报错”Windows Installer 打开安装日志文件时发生错误。请检查指定的日志文件位置是否存在并且可以写入”。\n2. 解决方法 首先找到你安装 p 社启动器的位置，比如我安装启动器时没有改过默认的下载路径，那么启动器的日志路径就为\nC:\\Users(你的用户名)\\AppData\\Local\\Paradox Interactive\\launcher-v2\\logs\n其中 AppData 为隐藏文件夹，需要在查看-\u0026gt;显示中勾选显示隐藏文件才能看到，操作如下图所示：\n找到日志文件夹后回退到 Local 文件夹，右键刚才进入的 Paradox Interactive 文件夹，点击属性\n切换到“安全”选项卡，点击编辑\n选择当前使用的账户或“Everyone”。如果不确定使用的是哪个账户，也不必担心，可以逐一修改所有账户的权限，简单来说就是全改。然后勾选“完全控制”下的“允许”单选框，勾选后其他“允许”框会自动选中。最后点击“确定”。我的电脑上由于文档权限继承自上级文件夹，所以选项是灰色的。如果你是根据报错条目找到这个解决方案的，那你的情况应该是单选框没有勾选，勾选后会显示绿色，和图片中的颜色不同，但不用担心，按照前面说的操作即可。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-11/","title":"安装启动器时报错”Windows Installer 打开安装日志文件时发生错误。请检查指定的日志文件位置是否存在并且可以写入”"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 安装启动器遇到报错由于机器上的策略限制，用户安装已被禁用。”User installations are disabled via policy on the machine.”。\n2. 解决方法 解决方法一：\n1、win+R 后在运行里输入 gpedit.msc\n2、计算机配置管理\u0026raquo;管理模板\u0026raquo;windows 组件\u0026raquo;windows Installer\u0026raquo;禁止用户安装;\n3、打开它禁用此项就可以了。\n若方法一不行，请使用方法二：\nwin+R 后在运行里输入 regedit\n进入注册表目录：\nHKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\Installer，将 DisableUserlnstalls 的值改为 0 再安装即可\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-04/","title":"安装启动器遇到报错由于机器上的策略限制，用户安装已被禁用。”User installations are disabled via policy on the machine.”"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 安装时发生严重错误。\n2. 解决方法 这一串报错是最近最常出现的报错小连招，一般情况下，在玩盗版游戏后，补票正版游戏并重新安装启动器时;或者以不合适的方式删除旧启动器时会出现该报错。该报错的原因是旧启动器的文件没有删除干净，残留的文件影响了新启动器的下载，解决方法如下。\n最优先的方法是下载 Windows Installer 修复工具（疑难解答工具）并进行修复，下载网址为\nhttps://support.microsoft.com/zh-cn/topic/2438651\n或者直接在网盘下载\nhttps://pan.quark.cn/s/a05bf32ce69b\n或\nhttps://pan.baidu.com/s/1VqVdd-65iQxVZlphttl-rQ?pwd=9a9b\n提取码：9a9b\n打开程序安装和卸载疑难解答程序后点下一步\n选择安装\n找到 Paradox Launcher v2 点击下一步\n点击是，尝试卸载\n之后重新进行启动器的安装，访问官网 https://www.paradoxinteractive.com/our-games/launcher 下载最新的启动器安装程序。如果无法打开官网，也可以在群文件中的“P 社最新启动器”文件夹中找到下载文件。之后右键点击属性。\n在兼容性选项卡中勾选以管理员身份运行此程序，点击应用，之后重新运行安装程序安装启动器。\n如果问题没有解决，请手动删除以下文件夹：\nC:/users/(用户名)/AppData/Local/Programs/Paradox Interactive/\nC:/users/(用户名)/AppData/Local/Paradox Interactive/\nC:/users/(用户名)/AppData/Roaming/Paradox Interactive/launcher-v2/\n之后再重新运行安装程序，如果有修复或卸载选项，选择 uninstall(卸载),等待卸载完成后再重新安装。\n注意安装路径没事不要改，改了路径出问题以后不好修\n如果成功解决了启动器无法下载或卸载的问题，并成功安装了启动器，但点击启动器图标后无法打开启动器：比如出现双击启动器图标，但是启动器无反应的情况，虽然在任务管理器中可以看到启动器正在运行，但是实际上并没有打开启动器。另一种情况是在 Steam 中直接启动游戏时，点击“开始游戏”并等待一段时间后，启动器未能打开，且按钮又恢复为“开始游戏”,或者干脆卡在那里不动了。遇到这两种情况，请跳转启动器安装完成后无法打开，点击无任何反应，但在任务管理器中可以看到启动器正在运行。如果一切正常就不用管这段，可以直接去游玩了。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-20/","title":"安装时发生严重错误"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 按照创建加速器节点教程创建加速器节点后无法连接至节点，不管是 TCP 还是 UDP 都不行。\n2. 解决方法 记得开放服务器的对应端口，不只是虚拟机里要开，你买服务器用的云平台上也要开，云平台也会限制服务器的端口。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/multiplayer-accelerator-error-06/","title":"按照创建加速器节点教程创建加速器节点后无法连接至节点，不管是 TCP 还是 UDP 都不行"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 不断重复正在下载更新，但是进度条不变。\n2. 解决方法 使用 SteamCMD 时也需要加速器，就像使用 Steam 客户端一样。不过，如果你使用 Steam++ 进行加速，不能直接开启 Steam 的加速模式，而是需要在加速设置中将模式切换为 PAC 模式。或者，如果你有其他梯子，也可以直接使用全局加速模式。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steamcmd-error-04/","title":"不断重复正在下载更新，但是进度条不变"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 出现报错 ERROR！Download item xxxxxxxxxx failed(Failure).。\n2. 解决方法 该报错常见于两种情况：\n第一种情况：如果你在输入指令 workshop_download_item 255710 2428316487 (这里取一个不支持匿名用户下载的样例指令) 并按回车后立即报错，说明该 Mod 不支持匿名用户下载，必须使用拥有该游戏的账号登录 SteamCMD 才能正常下载。\n第二种情况：如果指令执行后等待一段时间才报错，可能是因为 SteamCMD 的超时机制所致。它在设定时间内未完成下载任务会自动判定为失败。此类问题多发生在网络较慢或 Mod 文件较大的情况下，即使实际仍在下载过程中，也可能因未在时限内完成而中断。\n解决方法：对于第二种情况，可以反复执行相同的下载命令（如：workshop_download_item 255710 2428316487）。每次执行都会在上次中断处继续下载。根据网络状况，可能需要重复多次（如十几次甚至二十次）才能成功完成下载。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steamcmd-error-03/","title":"出现报错 ERROR！Download item xxxxxxxxxx failed(Failure)."},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 出现报错 Fatal Error: Steam needs to be online to update. Please confirm your network connection and try again。\n2. 解决方法 开个 VPN 即可，或者开 steam++,细节看报错指南七 -4;\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steamcmd-error-09/","title":"出现报错 Fatal Error: Steam needs to be online to update. Please confirm your network connection and try again"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 出现报错:httpclient.cpp (72) : Assertion Failed: Can\u0026rsquo;t use HTTPS because steamcommon was compiled without ENABLE_OPENSSLCONNECTION。\n2. 解决方法 可能是你的版本过旧或者配置文件出了问题，比较简单的解决方案就是，卸载原 steamcmd 并删除残余文件，重新下载 steamcmd 并安装，下载链接：\nhttps://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steamcmd-error-07/","title":"出现报错:httpclient.cpp (72) : Assertion Failed: Can't use HTTPS because steamcommon was compiled without ENABLE_OPENSSLCONNECTION"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 出现报错:httpclient.cpp (91) : Assertion Failed: Can\u0026rsquo;t use HTTPS because steamcommon was compiled without ENABLE_OPENSSL_CONNECTIO。\n2. 解决方法 该报错常见于两种情况：\n开启了加速器，但加速模式不当，例如未正确配置为全局或指定代理，可能导致连接异常。此时可尝试关闭加速器并重启 SteamCMD，通常报错会消失。\n未开启加速器时出现报错，在启用加速器后问题得到解决。这种情况下，建议使用 Steam++ 并启用 PAC 模式进行加速，或使用其他梯子开启全局代理。有关 Steam++ 的具体配置方法，请参考本报错指南中的条目 七 -4。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steamcmd-error-06/","title":"出现报错:httpclient.cpp (91) : Assertion Failed: Can't use HTTPS because steamcommon was compiled without ENABLE_OPENSSL_CONNECTIO"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 出现报错!!! Fatal Error: Steamcmd 需要 250MB 可用磁盘空间用于更新。\n2. 解决方法 有时权限问题可能阻止正确写入磁盘，尝试以管理员身份运行 steamcmd.exe。不过每次重启都需要重新选择以管理员身份运行，想一劳永逸可以右键图标，在属性中勾选以管理员身份运行。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steamcmd-error-05/","title":"出现报错!!! Fatal Error: Steamcmd 需要 250MB 可用磁盘空间用于更新。"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 打开 steamcmd 后直接闪退。\n2. 解决方法 当前 SteamCMD 的存放路径中包含中文字符，建议将整个 steamcmd 文件夹移动到不含中文的路径中，例如直接放在 D 盘或 E 盘的根目录下，以避免下载或运行时出现错误。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steamcmd-error-02/","title":"打开 steamcmd 后直接闪退"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 打开启动器报错启动程序错误：无法启动启动器:bootstrapper error :couldn\u0026rsquo;t start launcher。\n2. 解决方法 如果在启动启动器时看到这样的错误，则说明防病毒程序发挥了作用，这意味着您的防病毒程序将文件 bootstrapper.exe 标记为潜在病毒并将其隔离。\n要解决此问题，请执行以下操作：\n打开防病毒程序并查看隔离列表（某些程序称之为病毒箱）。如果文件在那里，请恢复它并将其标记为安全，然后启动游戏，它应该可以正常工作。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-14/","title":"打开启动器报错启动程序错误：无法启动启动器:bootstrapper error :couldn't start launcher"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 打开启动器时报错无法找到配置文件。”Unable to locate the configuration file”。\n2. 解决方法 很大概率因为是启动器版本更新了，生成了新的文件夹，你之前打的启动器 dlc 补丁还在旧文件夹里。这个问题按照教程重新在新文件里打一遍补丁就好了，比如之前在 2023.12 文件夹里打了补丁，启动器更新后在 2023.13.1 文件夹里重新打一遍即可，如果最新版本的文件夹里没有 resource 文件夹，说明你的启动器还没有更新到这个版本，按照日期找第二新的文件夹即可，如果分不清哪个是最新的就把能打补丁的文件都打一遍补丁。不过从 2024 版本的启动器开始这个报错可能移除了，改为了本节第 3 条报错。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-02/","title":"打开启动器时报错无法找到配置文件。”Unable to locate the configuration file”"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 打开游戏黑屏但音乐正常播放。\n2. 解决方法 在电脑设置 \u0026gt; 系统 \u0026gt; 屏幕中关闭 HDR 并重启游戏，如果未生效重启电脑后重试。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-error-05/","title":"打开游戏黑屏但音乐正常播放"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 打开游戏时报错缺少某某 dll。\n2. 解决方法 方法一：去下一个驱动修复软件，或者下载群里的 DirectX 修复一下\n方法二：到网上搜索并下载对应的 dll，把下载的 dll 复制后放在 C:\\Windows\\System32 和 C:\\Windows\\SysWOW64 中。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-error-04/","title":"打开游戏时报错缺少某某 dll"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 打开游戏以后界面过大，不显示按钮。\n2. 解决方法 分辨率问题，退出重进看看有没有效果，如果没有可以参考下面链接的视频删掉指定文件，让系统重新创建一个默认的 (你是佬的话直接改文件也行),如果是正版可以直接去启动器里调整分辨率，或者看显示模式是不是窗口，如果是的话调成全屏。\n文件位置：\nC:\\Users(你的用户名)\\Documents\\Paradox Interactive\\Stellaris\\settings.txt\n参考视频：\nhttps://www.bilibili.com/video/BV1q14y1v7Jg/?share_source=copy_web\u0026vd_source=04becf7d20fdc437d804d92aa7ca4370\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-error-11/","title":"打开游戏以后界面过大，不显示按钮"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 打完 dlc 补丁包后其他 dlc 正常激活，但一部分旧的 dlc 没有被激活。\n2. 解决方法 去游戏根目录，找到 dlc 文件夹，进去把所有 dlc 文件全删掉，然后下载 dlc 一键安装程序一键安装一下。\n记得只删里面的文件，不要把文件夹也删了\ndlc 一键安装程序下载地址：\nhttps://gitlink.org.cn/signriver/file-warehouse/releases/download/v/Stellaris-DLC-Helper-v1.0.5.zip\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-dlc-error-04/","title":"打完 dlc 补丁包后其他 dlc 正常激活，但一部分旧的 dlc 没有被激活"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 打完 dlc 补丁包后其他 dlc 正常激活，但最新的一个或几个 dlc 没有被激活。\n2. 解决方法 确认下你下载的补丁包对不对的上版本，如果你 4.0 游戏下载 3.14 版本的补丁包，肯定会缺失 4.0 才出的新 dlc.群文件有全 dlc+ 补丁包，升级包和单独 dlc 包，如果你不清楚该下哪个包，下当前游戏版本对应的全 dlc 补丁包即可。\n另外如果你确实下载的是当前版本对应的补丁包，那就去游戏根目录下的 dlc 文件夹里看看各个 dlc 子文件夹是否存在文件夹嵌套现象，如下图\n打开 dlc039_stargazer 文件夹后，应直接显示所有 DLC 内容文件；若仍存在多余的子文件夹，请将其中的文件手动移动到正确位置。此类问题通常由解压过程中的错误引起。\n记得更新游戏本体，比如有个哥们打了 4.1 的 dlc 问我为什么没有生效，截图一看选的版本是 4.0.23\n如果你所有方法都试过了还不行，那就下载群文件全 dlc+ 补丁那个，全部替换，dlc 和补丁肯定有一个出问题了。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-dlc-error-05/","title":"打完 dlc 补丁包后其他 dlc 正常激活，但最新的一个或几个 dlc 没有被激活"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 打完 dlc 补丁包后启动器列表和游戏内都没有 dlc。\n2. 解决方法 如果启动器列表有 dlc，跳转去看三 -22．打完 dlc 补丁包后启动器显示有 dlc，但进游戏后没有\n如果启动器列表和游戏内均无 dlc，先去 steam 验证文件完整性，验证后重新打 dlc+ 补丁即可。\n另外需要注意一种情况，自解压格式的补丁包不能直接解压到目的文件夹，必须得先解压到别处，再复制过去，点击替换才能成功打上 dlc 和补丁。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-dlc-error-06/","title":"打完 dlc 补丁包后启动器列表和游戏内都没有 dlc"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 打完 dlc 补丁包后启动器显示有 dlc，但进游戏后没有。\n2. 解决方法 这种情况可能由以下原因导致：\n游戏本体是否为正版\n使用 DLC+ 补丁包的前提是你的游戏本体必须是正版。正版购买有以下两种途径：\n通过 Steam 直接购买游戏本体；\n购买正版 CDK，并在 Steam 库界面左下角激活。如果你通过“按住 Win+X，找到 PowerShell（管理员）（A），在代码框中输入代码进行激活”的方式激活游戏，那么你买到的可能是假货。假入库的游戏无法生效 DLC+ 补丁，而且可能导致 Steam 红信等不稳定问题。如果发现自己购买的是假货，可以参考报错指南五 -3“删除 Steam 中假入库的游戏，并使用正版 CDK 重新激活覆盖”的操作流程。\n补丁文件是否成功替换\n检查 DLC+ 补丁包里的文件是否成功替换到了游戏根目录。有些玩家在复制时，只替换了 DLC 文件夹的内容，而没有替换三个补丁文件。\n如果出现这种情况，请按以下方式操作：\n分四次分别复制 DLC 文件夹和三个补丁文件。\n将它们依次粘贴到游戏根目录，确保补丁和文件都被正确替换。\n启动器与游戏本体的区别\n启动器和游戏是两个独立的模块。即便在启动器文件夹里打了补丁，启动器会显示已拥有全部 DLC，这并不意味着游戏本体也包含了 DLC。补丁只会影响游戏本体，不会改变启动器中的显示。因此，启动器显示有 DLC ≠ 游戏内有 DLC。\n若你已确认打补丁位置正确，但仍然遇到问题，请检查以下事项：\n确保补丁包完整且版本为最新。如果补丁包缺失文件，将导致 DLC 或补丁不生效。\n请仔细核对补丁步骤，确保没有打错位置。可以观看补丁教程视频并对照步骤进行操作。\n【群星凝聚力使用方法及群星报错指南】\nhttps://www.bilibili.com/video/BV1tEJmz5EVk/?share_source=copy_web\u0026vd_source=04becf7d20fdc437d804d92aa7ca4370\n验证文件完整性问题\n切勿在 Steam 中点击“验证文件完整性”，因为此操作会覆盖你刚打的补丁。补丁打完后千万不要验证文件完整性。如果已经点击过验证，重新按照教程操作补丁即可。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-dlc-error-03/","title":"打完 dlc 补丁包后启动器显示有 dlc，但进游戏后没有"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 打完 dlc 补丁包后启动游戏报错[SmokeAPI] Panic! Failed to hook function ISteamClient_GetISteamInventory via virtual function swap: Failed to hook function: ISteamClient_GetISteamInventory。\n2. 解决方法 报错原因：\n该问题通常是由于此前安装过其他补丁包，但旧补丁文件未完全删除，导致不同补丁之间发生文件冲突，从而引发报错。\n如图，存在多余补丁：\n解决方法：\n如果不确定到底多了哪些补丁，请先删除游戏根目录下除文件夹以外的所有文件，随后在 Steam 中验证游戏文件的完整性。待缺失或损坏的原始文件恢复完成后，再重新安装当前补丁包。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-dlc-error-07/","title":"打完 dlc 补丁包后启动游戏报错[SmokeAPI] Panic! Failed to hook function ISteamClient_GetISteamInventory via virtual function swap: Failed to hook function: ISteamClient_GetISteamInventory"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 登录时无法输入密码，输入密码时不显示字符。\n2. 解决方法 在命令行界面输入密码时不会显示任何字符（包括掩码符号），这是系统的正常设计行为而非程序缺陷。表面上密码没输进去，实际上已经输进去了，只是看不见而已。所以你只需要正常输完密码，然后回车就能成功登录了。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steamcmd-error-10/","title":"登录时无法输入密码，输入密码时不显示字符"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 点击开始游戏时直接闪退，没有任何报错。\n2. 解决方法 注意这里指的是打开游戏时闪退，如果你是 Steam 里启动游戏按钮点了没反应，压根没打开游戏，请跳转 steam 点开始游戏按钮后打不开游戏，过一会后停止按钮又变成了开始游戏。\n对于这种情况，可以在路径 C:\\Users(你的用户名)\\文档 (Documents)\\Paradox Interactive\\Stellaris\\logs 中找到报错日志 error.log，打开日志可以看到报错的详细情况，如果报错日志是空的，跳转到游戏加载到 100% 后闪退\n常见的报错如下：\ndlc 文件缺失，如下图：\n这种情况可能是电脑上的杀毒软件把 dlc 部分文件识别为病毒软件并且将其删除，解决这个问题的方法也很简单，把现有的 dlc 文件全部删掉，下载新的 dlc+ 补丁包，重新打上即可。注意如果不想让这个问题反复出现，建议筛查电脑中的杀毒软件，看看到底是哪个软件干的，并把群星的文件夹设置为白名单，避免再次被删除。\n如果你顺着这个路径没找到文档，那问题就出在你的文档上，你想想你把你文档改哪去了，见到一个把文档位置改进 U 盘里的，你找不到文档程序自然也找不到，把文档位置改回去问题就解决了\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-error-02/","title":"点击开始游戏时直接闪退，没有任何报错"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 关闭游戏后 steam 库中一直显示正在停止，无法彻底关掉游戏。\n2. 解决方法 方法一：彻底关掉 steam 后重新打开 steam 即可\n方法二：关掉有可能和 steam 冲突的进程，目前已知的有：\nWps 云盘进程，qq 输入法进程等\n关闭方法：通过 Ctrl+Shift+ESC 打开任务管理器，在里面关掉对应进程。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steam-error-05/","title":"关闭游戏后 steam 库中一直显示正在停止，无法彻底关掉游戏"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 加载进入游戏并选择国家后，在进入游戏地图时闪退。\n2. 解决方法 首先，尝试清空所有 MOD。如果去除 MOD 后游戏能够正常运行，说明是某个 MOD 引起的问题，可能是版本过旧或存在冲突。此时，可以逐个排查并去除有问题的 MOD。\n如果去掉所有 MOD 后仍然出现闪退，且卸载重装游戏也无法解决，可能是存储在电脑文档中的游戏设置或 MOD 相关文件出了问题。此时，进入路径 C:\\Users(你的用户名)\\Documents\\Paradox Interactive\\Stellaris，复制 C:\\Users\\32173\\Documents\\Paradox Interactive\\Stellaris\\save games 文件夹并保存在其他位置，因为该文件夹包含你的游戏存档。然后，删除整个 Stellaris 文件夹（确保删除的是文档中的 Stellaris 文件夹，而不是 Steam 目录中的）。卸载重装游戏不会删除该文件夹，因此需要手动删除以重置设置文件。重启游戏后，游戏会自动生成一个新的 Stellaris 文件夹。如果想恢复之前的存档，将保存的 save games 文件夹粘贴回文档中的 Stellaris 文件夹即可。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-error-09/","title":"加载进入游戏并选择国家后，在进入游戏地图时闪退"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 加载进入游戏并游玩一两分钟后闪退。\n2. 解决方法 目前唯一已知可行的办法是重装系统\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-error-10/","title":"加载进入游戏并游玩一两分钟后闪退"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 加载进入游戏后点击新游戏闪退。\n2. 解决方法 该问题通常不会在报错日志中体现，主要原因多为显卡驱动异常或兼容性冲突。\n建议首先更新显卡驱动至最新版本。该操作在多数情况下可直接解决问题，我帮网友解决该问题就用的这个方法。说来奇妙，本来都没往显卡驱动这方面想，以为是 mod 问题，结果我用向日葵远程帮忙查看问题的时候无事发生，我一断开连接马上闪退，遂考虑到显卡驱动问题。\n如果更新驱动后仍然闪退，那可能是其他虚拟设备造成的，比如 MuMu 模拟器中的 GameViewer 远程控制软件。这个软件兼容性问题较多，建议卸载后重启电脑，一般就能恢复正常。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-error-07/","title":"加载进入游戏后点击新游戏闪退"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 加载进入游戏后在游戏主界面闪退。\n2. 解决方法 该报错区别于第一条白框闪退报错，该报错一般出现于游戏加载读条结束后一段时间，已经进入了游戏注界面，但不久后闪退。(如下图，进入以下游戏界面后闪退)\n出现该报错的可能是是因为系统自带的安全系统限制了游戏对文件夹的访问，只要关掉文件夹限制访问即可。\n操作如下：打开设置，选择隐私和安全性，进入 windows 安全中心，选择病毒和威胁防护。\n可以在保护历史记录中看到被限制访问文件夹的进程，比如该图中群星被限制访问自己的文件夹，极其抽象。\n解决方法也很简单，只要进入病毒和防护，在勒索软件防护中把文件夹限制访问关掉即可。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-error-06/","title":"加载进入游戏后在游戏主界面闪退"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 加载进入游戏后在自定义国家界面闪退。\n2. 解决方法 目前已知可行方法：删除 c 盘游戏数据文件夹后，重装游戏，然后重启电脑后打开游戏\nc 盘游戏数据位置:C:\\Users(你的用户名)\\Documents\\Paradox Interactive\\Stellaris\n注意如果你有在意的存档，把\\Stellaris\\save games 文件夹复制保留一份，游戏能正常运行后再粘贴回去\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-error-08/","title":"加载进入游戏后在自定义国家界面闪退"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 解压 dlc 补丁包后发现 dlc 序号不连续。\n2. 解决方法 如图：\n部分玩家看到 DLC 序号不连续，会怀疑是不是缺少了某个 DLC。这里需要说明几点：\n大面积序号缺失的情况\n如果 DLC 序号出现了大面积的空缺，那确实有可能是缺少了部分 DLC。上图展示的是 Stellaris 在 4.1 版本时的全部 DLC，共有 32 个文件夹，你可以据此进行逐一核对。\n序号空缺的正常情况\nStellaris 的 DLC 更新并不是严格按照序号顺序进行的，因此出现序号空缺是正常现象。也就是说，即使存在某些序号的缺口，也不一定意味着 DLC 文件缺失。\n如何进一步确认\n如果你已经核对过，确认 DLC 文件本身没有缺少，但游戏内确实缺少某些 DLC，请参考本章节的其他条目，逐一对照排查。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-dlc-error-02/","title":"解压 dlc 补丁包后发现 dlc 序号不连续"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 解压 dlc 补丁包后文件夹里只有 dlc 没有补丁。\n2. 解决方法 你的电脑上的杀毒软件可能误判补丁为威胁并进行了屏蔽。常见的误杀补丁的杀毒软件包括 360、迈克菲以及 Windows 自带的 Windows Defender。解决方法有两种：一是卸载杀毒软件，二是将补丁添加到杀毒软件的白名单中，以确保其正常运行。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-dlc-error-01/","title":"解压 dlc 补丁包后文件夹里只有 dlc 没有补丁"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 联机加速器打开后乱码。\n2. 解决方法 打开控制面板-\u0026gt;区域-\u0026gt;管理-\u0026gt;更改系统区域设置，选择中文 (简体，中国),并且不要打钩 beta 选项。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/multiplayer-accelerator-error-04/","title":"联机加速器打开后乱码"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 联机加速器打开时报错：读取数据失败，请检查本机网络/DNS 是否正常/再次重试!。\n2. 解决方法 首先打开设置，选择网络和 Internet，点击高级网络设置\n找到你当前使用的网络，点击小三角展开详细信息，点击更多适配选项后的编辑按钮\n在弹出的窗口中取消勾选 ipv6，然后点击确定保存设置\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/multiplayer-accelerator-error-03/","title":"联机加速器打开时报错：读取数据失败，请检查本机网络/DNS 是否正常/再次重试！"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 另一个安装正在进行中。在继续此安装之前，您必须完成当前的安装。Another installation is in progress. You must complete that installation before continuing this one.。\n2. 解决方法 同时按住 Esc+Shift+Ctrl 打开任务管理器，搜索 msiexec.exe，找到 Windows Installer\n右键点击结束任务即可\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-27/","title":"另一个安装正在进行中。在继续此安装之前，您必须完成当前的安装。Another installation is in progress. You must complete that installation before continuing this one."},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 每次下载时总会下载之前已经下载过的东西。\n2. 解决方法 在下载 mod 前删掉 Steamcmd 中的 steamapps 和 userdata 两个文件夹，删之前记得看看 steamapps 文件夹里有没有之前下载完还没来的及移出去的 mod。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steamcmd-error-01/","title":"每次下载时总会下载之前已经下载过的东西"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 启动器 DLC 列表出现警告，无法确认此 DLC 的拥有者。\n2. 解决方法 正常情况不影响使用，只是不美观，想消掉这个警告可以看教程视频，跟着操作一遍就好\n【【群星教程】群星 Stellaris-V3.14.1DLC 保姆级安装演示】https://www.bilibili.com/video/BV1rW4vetEEN/?share_source=copy_web\u0026amp;vd_source=04becf7d20fdc437d804d92aa7ca4370\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-05/","title":"启动器 DLC 列表出现警告，无法确认此 DLC 的拥有者"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 启动器安装报错 2503。\n2. 解决方法 将安装包移动至 D 盘盘符下，方便操作\n右键点击安装包，点击属性，选择安全选项卡，复制这里的路径，比如我这里的路径是 D:\\paradox-launcher-installer-2024_12.msi\n同时按下 Shift+Ctrl+Esc，或者右键 windows，点击任务管理器选项打开任务管理器 (以任何方式打开任务管理器都可以),点击运行新任务，在文本框内输入刚刚复制的路径，勾选以系统管理员权限创建此任务，然后点击确定，之后跟着安装流程正常安装即可。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-06/","title":"启动器安装报错 2503"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 启动器安装报错您尝试使用的功能位于不可用的网络资源上:The feature you are trying to use is on a network resource that is unavailable;。\n2. 解决方法 这一串报错是最近最常出现的报错小连招，一般情况下，在玩盗版游戏后，补票正版游戏并重新安装启动器时;或者以不合适的方式删除旧启动器时会出现该报错。该报错的原因是旧启动器的文件没有删除干净，残留的文件影响了新启动器的下载，解决方法如下。\n最优先的方法是下载 Windows Installer 修复工具（疑难解答工具）并进行修复，下载网址为\nhttps://support.microsoft.com/zh-cn/topic/2438651\n或者直接在网盘下载\nhttps://pan.quark.cn/s/a05bf32ce69b\n或\nhttps://pan.baidu.com/s/1VqVdd-65iQxVZlphttl-rQ?pwd=9a9b\n提取码：9a9b\n打开程序安装和卸载疑难解答程序后点下一步\n选择安装\n找到 Paradox Launcher v2 点击下一步\n点击是，尝试卸载\n之后重新进行启动器的安装，访问官网 https://www.paradoxinteractive.com/our-games/launcher 下载最新的启动器安装程序。如果无法打开官网，也可以在群文件中的“P 社最新启动器”文件夹中找到下载文件。之后右键点击属性。\n在兼容性选项卡中勾选以管理员身份运行此程序，点击应用，之后重新运行安装程序安装启动器。\n如果问题没有解决，请手动删除以下文件夹：\nC:/users/(用户名)/AppData/Local/Programs/Paradox Interactive/\nC:/users/(用户名)/AppData/Local/Paradox Interactive/\nC:/users/(用户名)/AppData/Roaming/Paradox Interactive/launcher-v2/\n之后再重新运行安装程序，如果有修复或卸载选项，选择 uninstall(卸载),等待卸载完成后再重新安装。\n注意安装路径没事不要改，改了路径出问题以后不好修\n如果成功解决了启动器无法下载或卸载的问题，并成功安装了启动器，但点击启动器图标后无法打开启动器：比如出现双击启动器图标，但是启动器无反应的情况，虽然在任务管理器中可以看到启动器正在运行，但是实际上并没有打开启动器。另一种情况是在 Steam 中直接启动游戏时，点击“开始游戏”并等待一段时间后，启动器未能打开，且按钮又恢复为“开始游戏”,或者干脆卡在那里不动了。遇到这两种情况，请跳转启动器安装完成后无法打开，点击无任何反应，但在任务管理器中可以看到启动器正在运行。如果一切正常就不用管这段，可以直接去游玩了。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-17/","title":"启动器安装报错您尝试使用的功能位于不可用的网络资源上:The feature you are trying to use is on a network resource that is unavailable;"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 启动器安装时报错安装程序在写入安装信息时发生了错误。请检查磁盘空间是否足够，并选择“重试”或“取消”结束安装。An error occurred while writing installation information to disk.check to make sure enough disk space is available and dick Retry, or Cancel to end the install.。\n2. 解决方法 该报错在 win7 中较为常见，因缺少设备，样例图片采用网络搜集的图片。\n任意打开一个文件夹，在菜单栏找到——工具——文件夹选项——查看——选“显示隐藏的文件、文件夹和驱动器”。\n打开用户临时文件夹所在的文件夹，一般为“C:\\Users\\XXX\\AppData\\Local”，其中的 XXX 为你的用户名（依次打开 C 盘，用户名，AppData，Local），就可以找到 Temp 文件夹。\n右键单击 Temp 文件夹，选“属性”，单击“安全”选项卡，检查“组或用户名”里有没有“Everyone”：\n如果有“Everyone”，（一般来说这个时候，可以看到下面的好多权限是没有的）单击“编辑”，在新的选项卡窗口选中“Everyone”，在下面的权限窗口中——选中“完全控制”。此时，一般可能会出现“C:\\Users\\XXX\\AppData\\Local\\Temp\\„„拒绝访问”，选“取消”，可能会有一个警告，不用理会，“确定”。这时再检查一下，就可以看到“Everyone”已经有了完全控制的权限。\n如果没有“Everyone”，单击“编辑”按钮，在新的选项卡窗口选“添加”，在新窗口中添加“everyone”，单击确定。然后按照上面一个步骤设置即可\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-12/","title":"启动器安装时报错安装程序在写入安装信息时发生了错误。请检查磁盘空间是否足够，并选择“重试”或“取消”结束安装。An error occurred while writing installation information to disk.check to make sure enough disk space is available and dick Retry, or Cancel to end the install."},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 启动器安装完成后无法打开，点击无任何反应，但在任务管理器中可以看到启动器正在运行。\n2. 解决方法 出现此情况通常是由于缺少部分运行库，您可以通过访问微软官网下载安装最新版本的 Microsoft Visual C++ Redistributable 来解决。官网链接：\nhttps://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170\n或者从网盘下载\n夸克：\nhttps://pan.quark.cn/s/7b1bea936b6b\n百度：\nhttps://pan.baidu.com/s/1k4EFIAI4hXPuHwWW_5Regg?pwd=b7xm\n提取码：b7xm\n下载完成后，点击安装并完成安装过程。安装结束后重启电脑，重新打开电脑之后以管理员身份运行 Steam，然后直接通过 Steam 启动游戏即可。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-23/","title":"启动器安装完成后无法打开，点击无任何反应，但在任务管理器中可以看到启动器正在运行。"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 启动器报错“游戏数据访问错误。我们没有游戏数据目录的读写权限。请联系支持人员”。\n2. 解决方法 方法一：\n转到 Windows 安全中心\n在“病毒和威胁防护设置”下，点击“管理设置”\n向下滚动到“受控文件夹访问”，然后单击“管理受控文件夹访问权限”\n点击“允许应用通过受控文件夹访问”\n点击“+添加允许的应用程序”，然后点击“浏览所有应用程序”\n将以下文件添加进去\nC:\\Users(用户)\\用户名\\AppData\\Local\\Programs\\Paradox Interactive\\launcher，在其中找到你当前启动器版本的文件，如 launcher-v2.2024.10，进入该文件夹，添加文件 Paradox Launcher.exe。上述是默认路径，如果你启动器安装到了其他的地方，按照你自己的路径即可。\n在 Steam 的库中右键 stellaris 图标，管理-\u0026gt;浏览本地文件，找到 dowser.exe 和 stellaris.exe，把它们添加进去\n回到 windows 安全中心，在”勒索软件防护”下，再次执行上述操作\n方法二：\n如果感到 windows 安全防护没有必要存在，我们可以直接把它关掉一劳永逸\n同时按下 win+R，输入 gpedit.msc，打开策略组编辑器\n通过计算机配置\u0026raquo;管理模版\u0026raquo;windows 组件\u0026raquo;Microsoft Defender 防病毒\n在右侧找到”允许反恶意软件服务始终保持运行状态”,双击打开，选择已禁用，点击确定即可\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-08/","title":"启动器报错“游戏数据访问错误。我们没有游戏数据目录的读写权限。请联系支持人员”"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 启动器报错在主进程中发生了 JavaScript 错误:“A JavaScript error occurred in the main process”。\n2. 解决方法 导致该报错具体原因不同。可以根据标题下的详细内容来进一步分析并确定导致报错的具体原因。示例如下：\n文件缺失导致报错\n(1)Error: CPatch process error occurred: spawn xxxx \\cpatch.exe\n该报错为启动器文件缺失，可以在群文件下载 p 社启动器安装包，卸载掉原 p 社启动器后用安装包安装新启动器，如果该报错仍然出现，那大概率是文件被杀毒软件拦截，建议打开电脑上的杀毒软件，在隔离区内看看有没有 cpatch.exe 或其他文件，将这些文件移出隔离区或加入白名单即可。\nError: ENOENT: no such file or directory, open xxxx/package.json\n该报错虽然也为启动器文件缺失，但用常规卸载重装方法可能无法解决该报错，在卸载启动器后，安装启动器前，需要彻底情况电脑上有关启动器的文件，文件夹，下列路径中的文件夹均要删除\n卸载启动器\n首先，通过控制面板或其他方式卸载当前的启动器程序。\n删除相关文件夹\n在卸载启动器之后，不要直接重新安装启动器，您需要手动删除以下路径中的相关文件夹，确保彻底清除启动器的所有残留文件：\nC:/Users/\u0026lt;用户名\u0026gt;/AppData/Local/Programs/Paradox Interactive/\nC:/Users/\u0026lt;用户名\u0026gt;/AppData/Local/Paradox Interactive/\nC:/Users/\u0026lt;用户名\u0026gt;/AppData/Roaming/Paradox Interactive/launcher-v2/\n文档/Paradox Interactive/.cpatch/\nDocuments/Paradox Interactive/ 目录下所有以 launcher-v2 开头的文件夹\n重新安装启动器\n清除所有相关文件夹后，运行启动器的安装程序进行重新安装。安装完成后，启动器应该可以正常工作。\n通过这种方式可以有效避免由于文件残留导致的错误。\n缺少权限导致报错\n创建文件夹错误\nError: EPERM: operation not permitted, mkdir xxxx(路径)\n该报错是由于文件夹权限不足引发的。解决方法如下：根据路径定位到该文件夹，右键点击并选择“属性”，然后进入“安全”选项卡，点击“编辑”。在权限列表中勾选“完全控制”后点击“确定”。如果不清楚自己的账户信息，可以将列表中所有组和用户名的权限都设置为“完全控制”。\n访问日志错误\nError: EPERM: operation not permitted,open xxxx\n\\launcher-xxxx-xx-xx.log\n详细解决方案请跳转安装启动器时报错”Windows Installer 打开安装日志文件时发生错误。请检查指定的日志文件位置是否存在并且可以写入”\n其他错误\n启动相关错误\nTypeError: Object has been destroyed\n导致该报错的具体诱因未知，猜测与 Windows 快速启动（Fast Startup）与休眠相关，解决方法为：在关机前退出 steam 程序即可。\n启动器文件损坏错误\nSyntaxError: Error parsing C:\\Users...: Unexpected token '\n启动器文件损坏，下载最新的启动器安装程序重新安装一下启动器就好了。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-16/","title":"启动器报错在主进程中发生了 JavaScript 错误:“A JavaScript error occurred in the main process”"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 启动器打开时报错:Steam 运行时通讯错误。\n2. 解决方法 启动器版本更新了，在最新版本的启动器文件夹里打一遍补丁就好了，如果你不知道什么是最新版本的文件夹，那你就照着打 dlc 和补丁的视频教程重新做一遍，细节可以参考第 2 条报错。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-03/","title":"启动器打开时报错:Steam 运行时通讯错误"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 启动器打开时报错找不到有效的 Paradox Launcher 安装:Oops!Could not locate a valid installation of the Paradox Launcher.。\n2. 解决方法 情况一：电脑上缺少启动器，或者卸载启动器后有部分残留，需要重装启动器\n下载 p 社启动器安装包 paradox-launcher-installer-2024_11.msi，打开后点击 remove 删掉当前启动器。(最好下载最新版本的安装包)\n再次打开安装包，重新安装 p 社启动器，尽量不要修改启动器的安装位置\n安装完成后重新打开游戏即可\n情况二：启动器文件夹没有足够的权限，需要修改文件夹权限\n根据报错里的路径找到 Paradox Interactive 文件夹，这里我用我的电脑做一个演示\n右键文件夹，点击属性\n切换到“安全”选项卡，点击编辑\n选择当前使用的账户或“Everyone”。如果不确定使用的是哪个账户，也不必担心，可以逐一修改所有账户的权限，简单来说就是全改。然后勾选“完全控制”下的“允许”单选框，勾选后其他“允许”框会自动选中。最后点击“确定”。我的电脑上由于文档权限继承自上级文件夹，所以选项是灰色的。如果你是根据报错条目找到这个解决方案的，那你的情况应该是单选框没有勾选，勾选后会显示绿色，和图片中的颜色不同，但不用担心，按照前面说的操作即可。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-13/","title":"启动器打开时报错找不到有效的 Paradox Launcher 安装:Oops!Could not locate a valid installation of the Paradox Launcher."},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 启动器启动时报错找到了 Paradox Launcher 的安装，但无法正常工作。您是否想重新安装？:A Paradox Launcher installation was found, but it\u0026rsquo;s not working.Would you like to reinstall?。\n2. 解决方法 点击否后会出现两种不同的报错\n情况一：无法找到有效的启动器安装\n详细解决方案请跳转启动器打开时报错找不到有效的 Paradox Launcher 安装:Oops!Could not locate a valid installation of the Paradox Launcher.\n情况二：无法启动 Paradox Launcher\n详细解决方案请跳转无法启动 Paradox Launcher:Could not start the Paradox Launcher at(xxx 路径)\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-24/","title":"启动器启动时报错找到了 Paradox Launcher 的安装，但无法正常工作。您是否想重新安装？:A Paradox Launcher installation was found, but it's not working.Would you like to reinstall?"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 启动器数据库错误，数据库迁移失败。\n2. 解决方法 该问题一般出现在安装新启动器之后，在大部分情况下，关闭启动器重新启动后该报错会消失。如果该报错频繁弹出，可根据报错提示，按照路径前往文件夹\nC:\\用户\\（你的用户名）\\文档\\Paradox Interactive\\Stellaris\n找到文件 launcher-v2.sqlite，然后删除掉它，之后重新启动启动器，问题解决。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-07/","title":"启动器数据库错误，数据库迁移失败"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 启动游戏报错无法创建图形设备:Failed to create a graphics device.。\n2. 解决方法 方法一：最实用的办法，如果以前能打开游戏，这次突然打不开游戏了，那就重启电脑，多重启几次，大概率解决该问题，如果不行，再试方法二。\n方法二：首先同时按【WIN+R】键，打开【运行】对话框。输入【dxdiag】，点【确定】打开【directx 诊断工具】。\n在【directx 诊断工具】中切换到【显示】选项卡，如果这三项不是已启用说明出现了问题。\n首先在桌面空白处右键选择【新建】-【文本文档】,在文档内输入以下内容后保存\nWindows Registry Editor Version 5.00\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\DirectDraw]\n\u0026ldquo;EmulationOnly\u0026rdquo;=dword:00000000\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Direct3D\\Drivers]\n\u0026ldquo;SoftwareOnly\u0026rdquo;=dword:00000000\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\DirectDraw]\n\u0026ldquo;EmulationOnly\u0026rdquo;=dword:00000000\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Direct3D\\Drivers]\n\u0026ldquo;SoftwareOnly\u0026rdquo;=dword:00000000\n将文件名后缀改为.reg 后双击运行该文件，点击确定即可\n如果你的文件没有拓展名，打开文件资源管理器，点击【查看】，【显示】，勾选【文件拓展名】即可\n之后重复最开始的步骤打开【directx 诊断工具】查看是否修改成功。\n如果没有生效可能是系统版本过旧不支持无 BOM 的 UTF-8，可以把记事本保存的格式改为 ANSI 后保存并重新运行。\n如果采用此方法未成功修改注册表，可以选择手动修改，修改前记得备份注册表以备不测。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-10/","title":"启动游戏报错无法创建图形设备:Failed to create a graphics device."},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 删除 Steam 中假入库的游戏，并使用正版 CDK 重新激活覆盖的操作流程。\n2. 解决方法 这里以游戏群星 stellaris 为例，想在 Steam 库中删除假入库的游戏没必要卸载下载好的游戏文件，二十来 G 重新下一遍挺费事，按照下面的操作来就好：\n首先打开 Steam 的安装目录，不是游戏目录，是你装 Steam 的目录，在里面找到文件 hid.dll，选中，然后删除\n在电脑右下角这个隐藏的图标框中右键 Steam 图标，点击退出 Steam\n重新打开 Steam，此时你电脑上的群星游戏文件还在，但是 Steam 库中原来开始游戏按钮已经变成了购买游戏按钮了\n接下来以任意正版形式重新激活即可，比如去 Steam 商店购买游戏，不过不推荐，不打折很贵;或者去小黑盒买 cdk 过来激活，小黑盒买的 cdk 有保障，不会买到盗版，不过小黑盒也不是一直搞活动，不搞活动时的价格和 Steam 商店差不多;如果你想玩 stellaris 的时候不凑巧 Steam 和小黑盒都不打折，可以去 steampy 买 cdk,steampy 一直处于比较低价的区间，不过操作有点麻烦，需要登录 Steam 账号，登录以后你购买 cdk 会直接帮你在库中激活，质量同样有保障。\n购买完成后刷新 Steam，可以看到购买游戏按钮又变回了开始游戏按钮，此时不管是打 dlc+ 补丁包还是正常玩游戏都不影响了。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steam-error-03/","title":"删除 Steam 中假入库的游戏，并使用正版 CDK 重新激活覆盖的操作流程。"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 时效性问题 2024/5/-）Steam 启动游戏变的特别慢。\n2. 解决方法 样例：常规情况下在 Steam 中点击 stellaris 开始游戏按钮后会立刻弹出 p 社启动器界面;出现该问题后，等待时间会从几乎没有变成 3-5 分钟，严重影响游戏体验，以下给出几个解决方案：\n使用 Steam 的同时打开 Steam++;\nSteam 设置 - 界面 - 参与客户端测试 - 选择 Steam Beta Update;\nSteam-设置 - 下载 - 关闭“启动着色器预缓存”。\n个人评价方法 (3) 比较好用\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steam-error-01/","title":"时效性问题 2024/5/-）Steam 启动游戏变的特别慢"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 退出游戏时游戏卡死，只能强制关闭游戏。\n2. 解决方法 开了云存档导致的，把 steam 云关了就好了，不过关掉之后记得时不时给你存档备份一下，不然换个电脑或者不小心把存档删了你存档就没了\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-error-13/","title":"退出游戏时游戏卡死，只能强制关闭游戏"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 网卡安装过程中卡死，无法安装虚拟网卡。\n2. 解决方法 目前可行案例：用网卡修复工具修复后重新运行安装程序\n工具链接：\n夸克：\nhttps://pan.quark.cn/s/3b392d315d13\n百度：\nhttps://pan.baidu.com/s/1RvH_OEHGykazxGJj6RcIIQ?pwd=xxnx 提取码：xxnx\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/multiplayer-accelerator-error-01/","title":"网卡安装过程中卡死，无法安装虚拟网卡"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 无法启动 Paradox Launcher:Could not start the Paradox Launcher at(xxx 路径)。\n2. 解决方法 这两个报错捆绑出现，第一条报错提示系统检测到你已经安装了 Paradox 启动器，但无法正常启动。第二条报错进一步说明了问题的原因，具体内容为：操作需要管理员权限（\u0026ldquo;The requested operation requires elevation\u0026rdquo;）。通过分析报错中的路径 C:\\Users\\86147\\AppData\\Local\\Programs\\Paradox Interactive\\launcher\\bootstrapper-v2.exe，可以确定问题出在启动器的引导程序 bootstrapper-v2.exe。\n为了解决这个问题，请按照以下步骤操作：\n找到 bootstrapper-v2.exe 文件，右键点击并选择“属性”。\n转到“兼容性”选项卡，取消选中“以管理员身份运行此程序”。\n点击“应用”并保存更改。\n之所以会出现这个报错，是因为启动器引导程序被设置为以管理员身份运行，而 Steam 启动时默认以普通权限运行。由于普通权限的 Steam 无法调用需要管理员权限的启动器引导程序，因此导致启动失败。\n如果你遇到类似的报错，虽然具体细节可能不同，但可以根据上述逻辑进行推理，找出问题所在并采取相应的解决方案。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-25/","title":"无法启动 Paradox Launcher:Could not start the Paradox Launcher at(xxx 路径)"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 无法删除旧版本的 Paradox Launcher v2:The older version of Paradox Launcher v2 cannot be removed. Contact your technical support group.。\n2. 解决方法 这一串报错是最近最常出现的报错小连招，一般情况下，在玩盗版游戏后，补票正版游戏并重新安装启动器时;或者以不合适的方式删除旧启动器时会出现该报错。该报错的原因是旧启动器的文件没有删除干净，残留的文件影响了新启动器的下载，解决方法如下。\n最优先的方法是下载 Windows Installer 修复工具（疑难解答工具）并进行修复，下载网址为\nhttps://support.microsoft.com/zh-cn/topic/2438651\n或者直接在网盘下载\nhttps://pan.quark.cn/s/a05bf32ce69b\n或\nhttps://pan.baidu.com/s/1VqVdd-65iQxVZlphttl-rQ?pwd=9a9b\n提取码：9a9b\n打开程序安装和卸载疑难解答程序后点下一步\n选择安装\n找到 Paradox Launcher v2 点击下一步\n点击是，尝试卸载\n之后重新进行启动器的安装，访问官网 https://www.paradoxinteractive.com/our-games/launcher 下载最新的启动器安装程序。如果无法打开官网，也可以在群文件中的“P 社最新启动器”文件夹中找到下载文件。之后右键点击属性。\n在兼容性选项卡中勾选以管理员身份运行此程序，点击应用，之后重新运行安装程序安装启动器。\n如果问题没有解决，请手动删除以下文件夹：\nC:/users/(用户名)/AppData/Local/Programs/Paradox Interactive/\nC:/users/(用户名)/AppData/Local/Paradox Interactive/\nC:/users/(用户名)/AppData/Roaming/Paradox Interactive/launcher-v2/\n之后再重新运行安装程序，如果有修复或卸载选项，选择 uninstall(卸载),等待卸载完成后再重新安装。\n注意安装路径没事不要改，改了路径出问题以后不好修\n如果成功解决了启动器无法下载或卸载的问题，并成功安装了启动器，但点击启动器图标后无法打开启动器：比如出现双击启动器图标，但是启动器无反应的情况，虽然在任务管理器中可以看到启动器正在运行，但是实际上并没有打开启动器。另一种情况是在 Steam 中直接启动游戏时，点击“开始游戏”并等待一段时间后，启动器未能打开，且按钮又恢复为“开始游戏”,或者干脆卡在那里不动了。遇到这两种情况，请跳转启动器安装完成后无法打开，点击无任何反应，但在任务管理器中可以看到启动器正在运行。如果一切正常就不用管这段，可以直接去游玩了。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-18/","title":"无法删除旧版本的 Paradox Launcher v2:The older version of Paradox Launcher v2 cannot be removed. Contact your technical support group."},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 无法找到有效的 p 社启动器文件:Could not locate a valid installation of the Paradox Launcher。\n2. 解决方法 访问官网 https://www.paradoxinteractive.com/our-games/launcher 下载最新的启动器安装程序。运行安装程序后，先卸载旧版启动器，再安装新版启动器即可。如果无法打开官网，也可以在群文件中的“P 社最新启动器”文件夹中找到下载文件。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-22/","title":"无法找到有效的 p 社启动器文件:Could not locate a valid installation of the Paradox Launcher"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 下载到一半 cmd 界面突然闪退。\n2. 解决方法 加速器没挂好，用稳定点的加速器，一个实际案例是用小黑盒不行，换成 steam++ 后成功下载\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steamcmd-error-11/","title":"下载到一半 cmd 界面突然闪退"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 下载时报错“ERROR! Not logged on.”。\n2. 解决方法 在使用 steamcmd 下载 mod 前需要先登录！登录完才能下载！\n详细流程可以参考视频：\n【【群星教程】如何用 steamcmd 下载创意工坊的 mod?】https://www.bilibili.com/video/BV1Ju4y1v7B2/?share_source=copy_web\u0026amp;vd_source=04becf7d20fdc437d804d92aa7ca4370\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steamcmd-error-08/","title":"下载时报错“ERROR! Not logged on.”"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 学习版群星无法调中文 (正版直接在启动器里调)。\n2. 解决方法 (1) 点击~键然后输入指令 switchlanguage l_simp_chinese 回车即可\n(2) 或者根据教程视频改下文件\nhttps://www.bilibili.com/video/BV1Xu4y1q7Ly/?share_source=copy_web\u0026vd_source=04becf7d20fdc437d804d92aa7ca4370\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-offline-error-02/","title":"学习版群星无法调中文 (正版直接在启动器里调)"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 学习版群星修改语言文件后启动游戏闪退报错。\n2. 解决方法 语言文件要严格按照教程视频修改，如果改的有偏差会导致游戏无法正常读取文件，导致闪退。如果已经出问题了，就清空文件里的信息，把以下代码复制进文件，然后 Ctrl+S 保存即可。\nl_simp_chinese:\nl_english:0 \u0026ldquo;英语\u0026rdquo;\nl_braz_por:0 \u0026ldquo;巴西葡萄牙语\u0026rdquo;\nl_german:0 \u0026ldquo;德语\u0026rdquo;\nl_french:0 \u0026ldquo;法国\u0026rdquo;\nl_spanish:0 \u0026ldquo;西班牙语\u0026rdquo;\nl_polish:0 \u0026ldquo;波兰语\u0026rdquo;\nl_russian:0 \u0026ldquo;俄语\u0026rdquo;\nl_simp_chinese:0 \u0026ldquo;中文\u0026rdquo;\nl_japanese:0 \u0026ldquo;日本人\u0026rdquo;\nl_korean:0 \u0026ldquo;韩国\u0026rdquo;\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-offline-error-04/","title":"学习版群星修改语言文件后启动游戏闪退报错"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 学习版群星一打开就闪退。\n2. 解决方法 路径中有中文，类似于”下载”这样，至于最前面那个”此电脑”不影响，把整个文件夹移动到全英文路径下即可，或者直接放到盘符下\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-offline-error-01/","title":"学习版群星一打开就闪退"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 学习版用 JSGME 打 mod 后发现 mod 没有生效。\n2. 解决方法 解压问题，多套了一层文件夹，解压后 mod 文件夹内应直接为 mod 文件，比如文件夹 2984861984 点开后直接就是 mod 的内容文件，如果类似 2984861984 的文件夹外还包含一个仅用于表述 mod 名称的文件夹，如”懒人的更多工作岗位与住房”,只需要去掉最外层的名称文件夹再打入 mod 即可\n比如下图就是有多余文件夹\n而去掉前面的文件夹才是正确的形式\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-offline-error-03/","title":"学习版用 JSGME 打 mod 后发现 mod 没有生效"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 已经安装网卡但是仍报错”未检测到虚拟网卡！请先安装目录下的 tap-windows-9.9.2.3.exe”。\n2. 解决方法 出现该问题通常是因为电脑上安装了某些可能影响网卡的软件，如银行业务程序等。这些软件可能会屏蔽虚拟网卡（例如 VPN、虚拟机或其他网络虚拟化工具），以防范安全风险或欺诈行为。解决方法是卸载这些软件，若卸载后问题仍未解决，请尝试重启电脑。如果某些软件对您非常重要，无法卸载，建议换用其他设备进行游戏。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/multiplayer-accelerator-error-02/","title":"已经安装网卡但是仍报错”未检测到虚拟网卡！请先安装目录下的 tap-windows-9.9.2.3.exe”"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 游戏报错无法打开，但 steam 库中显示游戏一直在运行，无法关闭游戏。\n2. 解决方法 其实是启动器问题，Shift+Ctrl+Esc 打开任务管理器，找到 Paradox Launcher，右键结束任务即可，需要注意的是，如果你遇到这个报错，任务管理器里多半不止这一个进程，如果有同名进程全部关闭即可。另外这个方法治标不治本，如果你的报错问题没有解决，重新打开游戏还是会复现该情况。解决报错问题请根据游戏报错描述查找报错指南对应条目。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/steam-error-04/","title":"游戏报错无法打开，但 steam 库中显示游戏一直在运行，无法关闭游戏"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 游戏加载到 5% 固定卡死。\n2. 解决方法 群星 4.2 版本搞出来的新 bug，官方建议右键 stellaris，选中属性，在启动选项中输入-opengl\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-error-14/","title":"游戏加载到 5% 固定卡死"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 游戏加载进度到 100% 后闪退。\n2. 解决方法 打开启动器和游戏时没有任何报错，但在加载进度到 100% 时会突然闪退，并且不会生成错误日志。\n这种情况大概率是由于显卡驱动过旧导致的，建议更新显卡驱动。注意：下载驱动安装包后必须执行安装，仅仅下载是不生效的。\nDirectX 诊断信息文件查看方法：\n按下 Win+R，输入 dxdiag 并回车；\n在打开的窗口中点击“保存所有信息”；\n这样即可生成 DirectX 诊断信息文件，其中有显卡驱动和显卡功能的详细记录，可通过查看此文件来比对问题的改善情况。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-error-03/","title":"游戏加载进度到 100% 后闪退"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 游戏似乎出现崩溃或意外终止，缺少.NET Framework 等。\n2. 解决方法 首先这个报错有两种情况，第一种情况，退出代码是 null:\n遇到这个报错，去查看一下你的 stellaris.exe 的权限设置的是不是以管理员身份启动，如果是的话就把以管理员身份启动关掉，因为启动器是普通用户身份而 stellaris.exe 是管理员，导致启动器没有权限去调用 stellaris.exe\n第二种情况，退出代码是一串数字：\n如果你没有购买游戏本体，那可能是游戏存放路径有中文导致的\n如果你购买了游戏本体，但刚下载没有安装凝聚力 dlc 则：\n优先更新显卡驱动，如果还不行则在启动器中将显示模式修改为无边框全屏\n如果你安装了凝聚力 dlc，则：\n出现该报错的原因种类繁多，根本原因是游戏文件缺失或损坏，给出以下两个大类，几个方案，请根据自身情况选择对应方法：\n第一大类：设备上有杀毒软件，隔离了补丁导致报错\n感谢群友”猪 1226211946”提供的问题解决方案\n对于设备上存在杀毒软件的朋友可以检查一下杀毒软件是否拦截了游戏程序或者游戏文件，比如目前已知的会隔离游戏补丁的杀毒软件迈克菲 (McAfee)(如下图所示)\n杀毒软件隔离补丁可能会出现第一天刚打完补丁可以正常使用 dlc，但第二天重新登录的时候 dlc 消失的情况，如果确定是杀毒软件导致该报错，在杀毒软件中关闭实时扫描即可。如果不想删杀毒软件可以把文件添加进白名单，下面演示一下迈菲克的添加白名单操作过程：\n把补丁移动到 stellaris 根目录以后通过以下操作把补丁加入白名单\n第二大类：补丁方面出了问题导致文件缺失\n打补丁时打错了位置导致报错，如果你只打过一次补丁，可以对照着下载的补丁把游戏根目录里刚打的补丁文件和文件夹全部删掉，在 Steam 里右键 stellaris-\u0026gt;属性-\u0026gt;已安装文件-\u0026gt;验证文件完整性后，根据正确流程重新打一遍补丁。\n曾经多次打补丁，打过各种来源的不同补丁，如不同种类的 dlc 补丁，不同类型的联机补丁等，到最后不同补丁相互冲突，游戏直接崩溃。解决方法（感谢群友浅浅提供的方法），首先删除 dlc 和 dlc_metadata 文件夹 (图一),然后删除下面所有的文件 (图二),之后去 Steam 里右键 stellaris-\u0026gt;属性-\u0026gt;已安装文件-\u0026gt;验证文件完整性把缺失的游戏文件补回来，最后重新打一遍补丁和 dlc。此举的目的是在保证能清除掉杂乱的补丁文件的同时尽可能少的删除文件，减少之后重新下载文件的时间。如果觉得不保险，可以选择记住 stellaris 根目录文件夹的位置，直接卸载 stellaris，然后回到 stellaris 根目录文件夹，删除文件夹内剩余的所有文件，之后重新下载 stellaris，打一遍补丁。\n打了不正确的补丁导致报错出现。当上述两种方法都解决不了问题的时候，就要从外部来找原因了。正常情况下补丁包由三个补丁文件和一个 dlc 文件夹组成 (图 1),打开 dlc 文件夹后可以看到所有 dlc 文件 (图 2),打开任意 dlc 文件后里面是 dlc 的子文件 (图 3)。如果补丁包内部出现了问题，比如图二的 dlc16 打开之后不是像图三这样的子文件，而是像图四这样，里面还有一个文件夹，说明该 dlc 多嵌套了一层，这样的补丁打完就会报错，解决方法为找到补丁的发布者，告知错误类型并寻求正确的补丁包，之后重复第 2 步，清除干净之前的补丁后打上新的补丁包。\n图 1\n图 2 图 3\n图 4\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-09/","title":"游戏似乎出现崩溃或意外终止，缺少.NET Framework 等"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 游戏校验码和别人不一样，无法加入联机房间。\n2. 解决方法 游戏校验码和游戏文件完整性有关，部分学习版群星因为文件变动导致校验码被改变，这个没办法，建议入手正版群星本体，方便联机，也方便打 mod。\n如果你有正版本体，但校验码还是不对，那是因为你打了 mod，大部分 mod 会改变校验码，去启动器里把你打的 mod 都卸了，校验码就正常了。当然如果你们想 mod 联机，只需要协商一下打相同的 mod 并确保 mod 在播放集中的排序一致即可，此时你们的校验码也同样相同，可以正常联机。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-error-12/","title":"游戏校验码和别人不一样，无法加入联机房间"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 在 p 社启动器无法添加已经下载完成的群星游戏，选择目录后显示生成错误，所选目录中没有已安装的游戏。\n2. 解决方法 首先只有从 Steam 里打开 p 社启动器，启动器才能显示拥有游戏 stellaris，直接从启动器快捷方式打开启动器，启动器里没有 stellaris，这是正常现象\n如果你从 Steam 打开启动器，但启动器里还是没有游戏，解决方案如下：\n去 p 社启动器官网下载最新的启动器安装程序，安装一遍即可，官网链接：\nhttps://www.paradoxinteractive.com/our-games/launcher\np 社启动器官网需要挂梯子，如果打不开官网可以去群文件里找，在”p 社最新启动器下载”文件夹里。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-21/","title":"在 p 社启动器无法添加已经下载完成的群星游戏，选择目录后显示生成错误，所选目录中没有已安装的游戏"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 在启动器 mod 管理界面浏览 mod 时启动器崩溃，报错”生成错误”。\n2. 解决方法 从 https://www.paradoxinteractive.com/our-games/launcher 下载个最新的启动器安装程序，重装一下就好了，如果不会翻墙就下载群里群文件的，如果安装过程中出现其他问题，请参考其他条目。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-28/","title":"在启动器 mod 管理界面浏览 mod 时启动器崩溃，报错”生成错误”"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 在适配器设置中看网络电缆被拔出，启动加速器连接不到服务器。\n2. 解决方法 虚拟网卡在加速器没连上时显示被拔出是正常现象，连接不上节点多半是配置文件过时了，加速器节点的服务器或者密码换了你不知道，去下载最新的加速器即可。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/multiplayer-accelerator-error-05/","title":"在适配器设置中看网络电缆被拔出，启动加速器连接不到服务器"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 报错全文如下：\n糟糕！发生错误！我们无法找到您的 Documents 文件夹。无法修改 DLC、MOD 和游戏设置。您在运行游戏时可能会遇到问题。请确认您的主目录中是否存在 Documents 文件夹。如果文件夹丢失，请创建并重新启动启动器。如果您使用 OneDrive，请确保 Documents 文件夹可用且可访问。 2. 解决方法 该问题通常由安全软件拦截，或者 Windows 的“文档”文件夹路径配置错误引起。可以依次尝试以下两种解决方法。\n2.1. 关闭安全软件防护 首先检查系统中是否安装了杀毒软件，例如 360 安全卫士、McAfee 等。建议暂时关闭其“实时防护”和“防病毒”功能，或者将 Paradox 启动器及 Stellaris（群星）游戏主程序添加至信任列表或白名单，避免安全软件拦截、干扰程序运行。\n已有案例在关闭 McAfee（迈克菲）的防病毒功能后解决了该问题，启动器不再报错。\n2.2. 修复 Windows 文档文件夹路径 另一个成功案例是通过修改注册表修复 Windows 的“文档”文件夹路径。如果关闭安全软件后仍未解决，可以继续尝试此方法。\n修改注册表存在风险，操作前建议先导出相关注册表项作为备份。\n2.2.1. 确认文档路径异常 按 Win + R，输入以下命令并回车：\n1 shell:Personal 如果出现“位置不可用”，并显示 F:\\nvidia 等路径，说明 Windows 的“文档”文件夹被错误地指向了该位置，而对应磁盘或文件夹目前不存在或无法访问。\n2.2.2. 修改注册表中的文档路径 再次按 Win + R，输入 regedit 并回车，打开注册表编辑器。在顶部地址栏输入以下路径：\n1 计算机\\HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders 在右侧找到 Personal，双击打开，然后将“数值数据”修改为：\n1 %USERPROFILE%\\Documents 点击 确定 保存。\n2.2.3. 创建新的文档文件夹 按 Win + R，输入 cmd 并回车。在打开的命令提示符中执行：\n1 mkdir \u0026#34;%USERPROFILE%\\Documents\u0026#34; 该命令会在当前用户目录下创建新的“文档”文件夹。如果系统提示文件夹已经存在，直接跳过即可。\n2.2.4. 重启并验证 重启电脑，再次按 Win + R 并输入：\n1 shell:Personal 此时应该可以正确打开当前用户的“文档”文件夹。随后重新启动 Paradox 启动器，检查报错是否消失，并确认 DLC、MOD 和游戏设置是否可以正常修改。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/paradox-launcher-error-26/","title":"糟糕！发生错误！我们无法找到您的 Documents 文件夹。无法修改 DLC、MOD 和游戏设置。您在运行游戏时可能会遇到问题。"},{"content":" 本文整理自《群星常见问题合集及解决办法》，原作者：唏嘘南溪。文档内容会随实际反馈持续修正。\n1. 报错现象 最常见的闪退后白框报错。\n2. 解决方法 导致该报错原因很多，但这个白框报错本身除了让你提交日志以外没有提供任何相关信息，你可以跟根据自身的操作步骤和查看游戏的报错日志推测出现该报错的原因，出现该报错的主要原因有以下几点：\n(注：报错日志路径 C:\\Users\\\u0026lt;你的用户名\u0026gt;\\Documents\\Paradox Interactive\\Stellaris\\logs\\error.log)\nmod 冲突，你打的 mod 里有的 mod 互相不适配，你需要找到不适配的 mod 并清理掉它；\n如果你认为自己没有打 mod 或者已经把 mod 删除干净了，你应该打开启动器，切换到播放集界面，观察 mod 有没有真的清除干净。\n运算量爆炸，电脑无法支撑游戏导致发生卡退，这种情况大多出现在游戏后期或者大量舰队作战的时候，解决方法是换更好的配置，或者在舰队作战的时候不要点击去看，不点进去看就会流畅很多；\n在 P 社更新后出现的一些时效性 bug，其特点是玩家在游戏过程中玩了一段时间后，突然发生闪退，且每次加载存档并继续游戏时，时间推进到某个特定年份（例如 2300 年或 2350 年左右）时，游戏会固定闪退。这类 bug 的典型例子如 3.10.2 版本中的“灭国闪退”问题。为了解决存档闪退问题，可以尝试以下方法：通过干预相关事件，避免触发致使游戏崩溃的情况。例如，针对“灭国闪退”bug，玩家可以采取措施拯救即将灭亡的国家，从而避免闪退。其他类似的事件也可以通过类似方式解决。如果在挖掘遗址时遇到闪退问题，可以尝试停止挖掘；若是殖民时闪退，则尝试更换殖民球进行操作。此外，有群友提供了一种替代方案：加载原本会闪退的存档后，暂停时间流动，直接保存并修改存档名，再读取修改后的存档，通常可以顺利继续游戏。\n全学习版群星改语言文件没改对，细节看本文档四 -4 学习版群星修改语言文件后启动游戏闪退报错\n未知错误？??,玄学解决方法，回退到旧版本后再更新到新版本即可解决问题。\n手柄驱动过旧引发冲突，更新手柄的驱动或卸载手柄驱动即可\n如果游戏以窗口模式可以正常运行，但切换为全屏或无边框全屏就会闪退，此时可以尝试右键 stellaris.exe，在兼容性选项卡中勾选禁用全屏优化和以管理员身份启动。点击应用后尝试启动游戏，如果成功则不再调整，如果失败取消勾选禁用全屏优化和以管理员身份启动，应用后再次启动游戏。\n在未安装 mod 时，游戏能够正常运行；但安装 mod 并确认没有冲突后，游戏仍然闪退。这时，可以尝试扩展虚拟内存，具体操作方法请参考网上相关教程。如果其他磁盘被加密导致无法扩展虚拟内存，可以考虑解除加密或直接在 C 盘设置。如果 C 盘空间不足，请先扩展 C 盘空间，再进行虚拟内存扩展，否则可能导致系统卡顿。可参考的教程：\nhttps://www.bilibili.com/video/BV1a142197a9/?spm_id_from=333.337.search-card.all.click\u0026vd_source=19dcf32d8641182f1f159b50887e0cf8\n显卡驱动过旧，更新显卡驱动即可。\n如果在加载游戏时，游戏总是在某个特定进度处闪退，可以尝试在 Steam 中验证游戏文件完整性，并重新启动游戏。\n3. 仍未解决 如果上述方法不适用，建议记录完整报错文字、复现步骤和 error.log 内容后再进一步排查。也可以联系原文作者（QQ：3217344726）反馈，以便补充或修正方案。\n","date":"2026-07-15T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-error-01/","title":"最常见的闪退后白框报错"},{"content":"1. 问题现象 使用 ChatGPT 时，界面顶部频繁弹出 正在重新连接，往往连续重试四五次，看起来已经无法正常使用了。但稍等片刻后，回复又会突然正常输出。\n这种「先失败、后恢复」的表现容易让人误以为是网络波动或 ChatGPT 服务端不稳定。\n2. 原因分析 问题通常出在代理配置上，而非 ChatGPT 本身。\nChatGPT 优先通过 WebSocket 与服务器保持长连接，以实现流式输出。在仅开启系统代理、未启用 TUN 模式的情况下，Clash 往往只能接管浏览器走 HTTP 代理的那部分流量，WebSocket 连接不一定能稳定经过代理，于是反复握手失败，界面便不断显示「正在重新连接」。\n多次重试之后，客户端会 降级为普通 HTTP 请求 拉取回复。HTTP 走代理通常没有问题，所以最终又能看到正常输出——给人一种「快放弃了又好了」的错觉。\n3. 解决方案：开启 Clash TUN 模式 TUN 模式在系统网络层接管全部流量，WebSocket 与 HTTP 都会经过 Clash 路由，长连接不再频繁中断。\n3.1. 操作步骤 以 Clash Verge 为例：\n打开 Clash Verge，确保代理已正常运行 进入 设置，找到 TUN 模式（或 虚拟网卡模式） 开启 TUN 模式，按提示授予管理员权限（Windows 首次开启需要） 重新打开 ChatGPT 页面，发起一次对话验证 若使用其他 Clash 客户端（如 Clash for Windows、Clash Meta 等），同样在设置中开启 TUN / 增强模式即可，名称可能略有不同。\n4. 总结 现象 原因 解决 频繁「正在重新连接」 WebSocket 未稳定走代理 开启 Clash TUN 模式 重试多次后又能用 客户端降级为 HTTP 同上，无需额外操作 开启 TUN 模式后，ChatGPT 的 WebSocket 长连接可以稳定经代理转发，流式输出不再反复断连。\n","date":"2026-07-13T00:00:00Z","permalink":"https://ysy.fan/p/chatgpt-clash-tun-mode-fix/","title":"ChatGPT 频繁「正在重新连接」？开启 Clash TUN 模式即可解决"},{"content":"1. 概述 本文记录在阿里云 ECS 上搭建文件下载服务的完整流程：购买服务器、安装 Nginx、配置目录浏览，最后通过公网 IP 访问下载页面。\n2. 购买服务器 2.1. 打开产品页并选择优惠套餐 打开 阿里云 ECS 产品页，选择 99 元/年 的优惠套餐并点击购买。\n2.2. 服务器配置与下单 操作系统选择 Ubuntu 24.04 64 位。\n勾选 自动续费，避免到期后实例被释放。\n2.3. 连接服务器 实例创建完成后，进入 ECS 控制台，找到对应实例，点击 远程连接，使用阿里云自带的远程连接功能接入。\n3. 部署相关软件 3.1. 基础环境准备 接入服务器后，依次执行以下命令。\n3.1.1. 更新系统软件包 1 sudo apt update \u0026amp;\u0026amp; sudo apt upgrade -y 3.1.2. 创建下载目录 1 sudo mkdir -p /var/www/download 3.1.3. 设置目录权限 将目录所有权赋予当前用户和 Nginx 组：\n1 2 sudo chown -R $USER:www-data /var/www/download sudo chmod -R 755 /var/www/download 3.2. 安装 Nginx 1 sudo apt install nginx -y 3.3. 删除默认站点 删除 Nginx 自带的默认页面，避免与后续配置冲突：\n1 sudo rm -f /etc/nginx/sites-enabled/default 3.4. 配置 Nginx 在远程连接界面左侧的 文件管理 中，依次展开 /etc → nginx → conf.d。\n右键点击 conf.d 文件夹，选择 新建文件，命名为 download.conf。\n双击打开 download.conf，写入以下配置：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 server { listen 80 default_server; listen [::]:80 default_server; server_name _; location / { root /var/www/download; autoindex on; autoindex_exact_size off; autoindex_localtime on; charset utf-8; # 核心限速策略：前 5MB 满速，之后限制在 100 KB/s limit_rate_after 5m; limit_rate 100k; } } 按 Ctrl+S 保存。\n回到终端，检查配置语法：\n1 sudo nginx -t 输出 syntax is ok 和 test is successful 即表示配置正确。\n重启 Nginx 使配置生效：\n1 sudo systemctl restart nginx 4. 挂载文件供下载 4.1. 创建测试文件 1 echo \u0026#34;Hello, this is a test file!\u0026#34; | sudo tee /var/www/download/test.txt 4.2. 访问下载界面 在浏览器访问 http://\u0026lt;公网IP\u0026gt;/，将 \u0026lt;公网IP\u0026gt; 替换为实例的公网地址。例如 http://59.110.167.218/，页面会列出 /var/www/download 目录下的文件，其中包含刚创建的 test.txt。\n4.3. 上传文件 后续如需添加文件，在 文件管理 中打开 /var/www/download，点击左上角 上传文件，选中目标文件即可。上传完成后刷新浏览器页面即可看到新文件。\n5. 总结 项目 路径 / 地址 下载目录 /var/www/download Nginx 配置 /etc/nginx/conf.d/download.conf 访问地址 http://\u0026lt;公网IP\u0026gt;/ 新增文件 文件管理上传至下载目录 ","date":"2026-06-30T00:00:00Z","permalink":"https://ysy.fan/p/file-download-server-setup/","title":"从零搭建文件下载服务器完整教程"},{"content":"1. 重置路由器 拔出路由器 WAN 口上的网线 长按路由器上的复位键，重置路由器 等到指示灯绿灯闪烁，说明复位成功 2. 进入管理页面 用网线或 Wi-Fi 将电脑与路由器连接。此时不要把墙上的网线插进 WAN 口。\n在浏览器地址栏输入路由器管理地址（如水星路由器一般为 192.168.1.1），回车进入设置页面。\n3. 设置密码并跳过向导 设置路由器登录密码，点击确认进入下一步 在上网设置页面，点击右上角跳过向导 4. 修改 LAN 口 IP 进入 高级设置 → 网络参数 → LAN 口设置，将 IP 设置改为手动，并将 IP 地址改为与主路由器不冲突的地址。\n例如主路由器 IP 为 192.168.1.1，子路由可设为 192.168.1.2、192.168.1.3 或 192.168.1.4。改好后点击保存，页面会自动重启。\n5. 关闭 DHCP 进入 高级设置 → 网络参数 → DHCP 服务器，将 DHCP 服务器设为关，点击保存。\n6. 网线接入 LAN 口 将墙上那根网线插到路由器的 LAN 口（不是 WAN 口）。\n若路由器会自动识别 WAN 口，需先在设置里关闭自动识别 WAN 口选项，再插网线。\n插上网线后，组网流程结束。\n","date":"2026-06-20T00:00:00Z","permalink":"https://ysy.fan/p/mercury-router-mesh-setup/","title":"水星路由器有线 AP 组网操作流程"},{"content":"1. 引言 文明 6 的 DLC 内容较多，手动逐个安装比较麻烦。本补丁包将所需文件打包整理，只需下载、解压、复制粘贴三步，即可完成全部 DLC 的安装。\n2. 使用前准备 开始之前，请确认你已具备以下条件：\n操作系统：Windows 游戏版本：已在 Steam 安装并激活文明 6 本体 如何找到游戏根目录 在 Steam 中右键点击「文明 6」→ 管理 → 浏览本地文件，打开的文件夹即为游戏根目录，路径通常如下：\n1 ...\\Steam\\steamapps\\common\\Sid Meier\u0026#39;s Civilization VI\\ 3. 下载与解压 补丁包托管在夸克网盘，点击以下链接即可下载：\nhttps://pan.quark.cn/s/ab226343129f\n下载完成后，将压缩包解压到任意方便找到的文件夹。\n4. 安装步骤 解压后会得到 Base 和 DLC 两个文件夹，将这两个文件夹全部选中，复制后直接粘贴到文明 6 的游戏根目录。\n粘贴时若提示覆盖文件，选择全部覆盖即可。安装完成后，通过 Steam 正常启动游戏即可。\n5. 验证是否成功 通过 Steam 启动文明 6 进入游戏主菜单，打开 额外内容（Additional Content） 确认 DLC 列表中各项内容均已显示为可用状态 若列表中能看到完整 DLC，说明补丁包已安装成功。\n6. 重要提示 仅供学习交流使用，请支持正版游戏 使用本补丁包造成的任何后果，用户自行承担 建议定期备份游戏存档 ","date":"2026-06-15T00:00:00Z","permalink":"https://ysy.fan/p/civ6-dlc-patch-demo/","title":"文明 6 DLC 补丁包使用演示"},{"content":"Cursor 在近期的版本更新中引入了全新的 Agents 界面，交互逻辑与之前以编辑器为核心的经典界面有较大差异。如果你更习惯旧版的操作方式，或者想在两种界面之间来回切换，本文记录了具体方法。\n1. 两种界面的区别 经典编辑器界面 Agents 界面（新版） 定位 以代码编辑器为主，AI 作为辅助侧边栏 以对话为核心，AI 主导整个工作流 聊天窗口 侧边栏 Chat / Composer 面板 独立的全功能 Agent 会话界面 适合场景 边写代码边问 AI 把复杂任务整体交给 AI 完成 2. 切换方法 2.1 从编辑器界面切换到 Agents 界面 在经典编辑器界面中，点击右上角蓝色的 Agents Window 按钮即可切换到新版 Agents 界面。\n2.2 从 Agents 界面切换回编辑器界面 第一步：点击左上角的 New Agent（快捷键 Ctrl+N）开启一个新的对话窗口。\n第二步：点击右上角的 Editor Window 按钮，即可切换回经典编辑器界面。\n","date":"2026-06-08T00:00:00Z","permalink":"https://ysy.fan/p/switch-cursor-ui-mode/","title":"Cursor 新旧界面切换方法：编辑器模式 vs Agents 模式"},{"content":" 学术声明 / Academic Statement 本文是个人学习笔记，仅用于学术交流和知识分享，非商业用途。 文中观点为作者个人理解和分析，不代表原论文作者立场。 如需引用原论文，请查阅官方出版版本。 版权归原论文作者和 VLDB Endowment 所有。\n1. 论文基本信息 标题：Falcon: Fair Active Learning using Multi-armed Bandits 作者：Ki Hyun Tae, Hantian Zhang, Jaeyoung Park, Kexin Rong, Steven Euijong Whang 单位：KAIST / Georgia Institute of Technology 发表期刊：Proceedings of the VLDB Endowment, Vol. 17, No. 5, 2024，pp. 952–965 DOI：10.14778/3641204.3641207 GitHub：https://github.com/khtae8250/Falcon 2. 背景与痛点 2.1 传统主动学习会恶化公平性 传统 AL 唯一的 KPI 是“提升模型整体准确率”，它通常倾向于挑选模型最不确定的样本。假设某个少数群体在当前数据集中本就缺乏代表性，如果 AL 盲目追求整体准确率而不特意挑选该群体的样本，标注后的新数据集会使得不同群体间的准确率差异进一步拉大，导致模型更加不公平。\n2.2 标签缺失困境 为了提升公平性，我们必须针对性地去扩充“目标子群”的样本。但矛盾在于：我们在挑选样本时，这些样本是“无标签”的！如果用模型现有的预测结果去生成“伪标签”也不靠谱，因为 AL 专挑模型“拿不准”的样本，这些样本的伪标签错误率极高。\n2.3 准确率与公平性的固有冲突 在许多真实场景下，公平性目标与准确率目标是相互冲突的。比如，一个在整体准确率上表现完美的分类器，如果不加干预，往往无法保证在各个子群体上具有相同的正类预测率。如何在有限的标注预算下，优雅地平衡这两者，是一个工程和理论上的双重难题。\n3. 方法概述 3.1 公平性定义回顾 作者首先概述了多种主流的公平性定义：\n人口统计学均等性（Demographic Parity, DP）：不考虑模型的预测准确率，要求模型对各群体（如不同性别、族裔）给出正类预测的比例基本相同，即仅按群体分布强行实现表面上的公平。 均衡概率（Equalized Odds, ED）：要求对于正类样本，各群体被正确判为正类的概率一致；对于负类，各群体被判为负类的概率也要一致，也就是无论正反向，不同群体的准确率相当。 平等机会（Equal Opportunity, EO）：只关注正向，即对于所有实际为正的样本，各群体被判定为正的概率必须一致，不考虑负例。 预测一致性（Predictive Parity, PP）：要求模型在不同群体中判为正类的样本，其实际为正的比例需大体一致，也就是预测出的“好人”在各群体中都同样可靠。 均衡错误率（Equal Error Rate, EER）：要求各群体在错误分类上的比率相同，不能让某一群体承担更高的错误风险。 3.2 整体流程 Falcon 的整体工作流程如下：\n确定公平性准则：用户指定一种公平性定义（如 DP、EO 等），作为后续优化的目标； 识别目标子群体：算法根据当前模型状态和验证集，自动识别当前最需要补充样本的目标子群； 策略选择：利用**对抗性多臂老虎机（Adversarial MAB）**机制，结合历史反馈，动态选择当前最优的采样策略； 试错标注：从未标注数据池中依据所选策略挑选样本交由人工标注——若标签与预期相符，则加入训练集；若不符，则暂缓纳入（postpone）； 模型更新与反馈：用新增标注数据重训模型，依据公平性改善情况更新 MAB 参数； 循环迭代：重复步骤 2–5，直至标注预算耗尽，逐步实现公平性与准确率的平衡提升。 4. 核心方法详解 首先目标群体样本的标签是缺失的。最直接的想法是：让现在的模型去“猜”一个伪标签。但是在主动学习中，我们最想要的是信息量大的样本。但是信息量大的样本正是模型最拿不准的样本，如果你让模型去猜它最拿不准的样本，猜错的概率极大。把带有错误标签的样本强行喂给模型，不仅学不到东西，还会引入更严重的偏见。 所以就尝试筛选出最有价值的样本花钱请人工标注，如果符合要求就直接用，不符合要求就先搁置，可能以后处理其他目标时会用到\n对于推迟错误样本使用的可行性作者也进行了证明，首先作者引用信息论中的香浓熵证明当样本预测概率为 0.5 时他的信息量达到最大，所以作者就进行了一个简单的实验，把试错法和其他基线算法对比，其他算法认为人工标注的样本不管是好是坏只要用于训练就对模型性能有帮助，而试错法会推迟使用不合规定的样本，最终结果一目了然，试错法推迟了 4000 个样本中的近 2900 个，只使用了其中 1100 个，同时只选取预测概率为 0.5 的样本，但试错法的性能远超其他基线模型。\n虽然试错法已经很优秀了，但是他浪费的标注费用有些高，所以接下来我们就要解决这个问题\n在选择样本策略时，我们会遇到如下难题：以图为例，模型对某一群体的样本进行了偏见可视化，虚线右侧为正类，左侧为负类的位置。假设有两个未标注的样本，分别位于虚线两侧。假如我们想要减少偏见，需要推动决策边界（虚线）左移。理论上，最理想的做法是选择左侧的未标注样本并希望其真实标签为正类，这样模型会大幅调整决策边界，从而降低偏见。但现实中，左侧样本大概率与其周围样本一致，属于负类。如果该样本被标注为负类，就白白浪费了一次宝贵的标注机会，这属于高风险高收益的尝试。相比之下，右侧的未标注样本很可能是正类，但是标注出来对模型影响有限，算是低风险低回报的策略。如何在高风险高收益与低风险低回报之间权衡取舍，是样本选择策略需要重点解决的问题。\n一个自然的想法是：既然始终选取预测概率为 0.5 的样本效果不理想，那如果始终选择概率为 0.3 或 0.7 的样本会不会更好？针对这一疑问，作者进行了实证分析。实验结果表明，在数据集 a 中，群体 1 在初期以 0.5 概率样本表现最佳，但后期 0.7 概率样本的效果反超；而群体 2 则始终以 0.5 概率样本效果最好。这说明同一数据集中，不同子群体适合不同的采样策略。同时，横向比较 a、b 两个数据集可以发现，a 集中各子群以 0.7 概率样本表现普遍优于 0.3；而在 b 集中恰好相反，0.3 概率效果高于 0.7。由此可见，单一固定的采样策略难以兼顾不同群体和不同数据分布的公平性需求，因此需要一种灵活、可动态调整的策略来进行样本选择——这正是引入对抗性多臂老虎机（Adversarial MAB）方法的动因。\n与传统多臂老虎机（MAB）不同，对抗性多臂老虎机在每次选择后，拉杆（即选择某策略）的概率会动态调整，这种机制更贴合我们在实际训练中遇到的动态环境。例如：最初我们可能优先优化某个弱势群体，但随着优化的推进，该群体表现提升，甚至变为新的“强势”群体，此时就需要将资源转向其它尚未得到足够关注的群体以实现整体平衡。\n为此，作者引入了经典的 EXP3 算法。EXP3 的核心思想是：奖励高的策略，其被选概率将在下一轮中指数级增加，但与此同时仍会保留一部分探索性——即始终为所有策略保留一定的基础概率，避免算法陷入局部最优。这种自适应调整机制能兼顾公平性与模型整体表现。\n在实际应用中，作者发现存在两个主要挑战。首先，由于每轮被主动标注并纳入训练的样本数量很少（例如一万个样本中仅有十个被人工标注），即便这些样本对模型性能的提升极其有限（如仅提升 0.00001），对抗性多臂老虎机（EXP3 算法）的反馈信号也会非常弱，难以有效调整策略。为解决这一问题，作者采用了预先多轮训练，记录参数变化的基线；随后将每轮因标注新增样本带来的变化幅度与该基线归一化，将归一化后的结果限定在 0-1 区间，再送入 EXP3 算法进行更新，这样能稳定激励信号，提升策略调整的敏感性。\n其次，EXP3 本身容易陷入局部最优：比如初期某个采样概率（如 0.4）表现较好、被频繁强化，久而久之其概率会被指数级放大，导致其他采样概率（如 0.5）几乎被排挤，后续即便 0.5 更合适也难以“翻身”。为此，作者提出了“奖励传播”机制：当某个采样概率被强化时，会将一半的奖励分摊给其相邻的概率（如 0.4 被强化，则 0.3 和 0.5 也获得部分奖励），以保证探索空间的多样性，使其他策略在后期仍有机会切换出来，从而有效缓解陷入局部最优的问题。\n在解决样本选择与处理策略后，下一步的核心目标是有效权衡公平性与模型准确率。为追求公平性而显著牺牲准确率是不可取的。因此，FALcon 框架在每轮训练中引入了一个权衡参数 λ：每轮训练以 (1-λ) 的概率采用常规主动学习策略，专注提升模型准确率；以 λ 的概率按照 FALcon 的公平性机制进行样本选择和模型优化，实现公平与准确性的动态平衡。\n5. 实验设计与结果 作者在实验中选择了公平性学习领域中最具代表性的数据集，公平性得分采用所有子群体（群体）的性能最高值与最低值之差来衡量，差值越大表示公平性越差。\n对比方法涵盖了传统的主动学习策略，如信息熵（Entropy）和随机采样（Random），同时引入了专为公平主动学习设计的先进方法（SOTA），如 FaL 和 D-FA2L。模型方面，作者采用了逻辑回归和基础神经网络，而未选择如 Transformer 或 ResNet 这类复杂模型，原因有三：首先，所用数据集类型以表格数据为主，复杂模型优势不明显；其次，主动学习需频繁对新样本进行重训练，复杂网络训练代价高昂；最后，简化模型有助于排除模型本身能力对实验结果的干扰，使实验更能反映采样策略（如多臂老虎机机制）的实际效果。\n从结果图中可以看出，FALcon 在群体平权和公平性指标上显著优于其他方法，实现了高公平性，而其他算法则存在高准确率但公平性较低的问题。此外，FALcon 通过调整 λ 参数，能够灵活实现不同的准确率与公平性组合，用户可根据实际需求自主权衡选择。\n以表格的形式看更清晰，之前最新的算法只能略微提升公平性，但是我们的算法有碾压式的提升\n而且我们的算法不仅效果好，耗时也不长，算是耗时最短的那一批\n从图 7 可以看出，虽然我们的方法在与固定概率策略相比时并非最优，但其表现已经非常接近最优方案。考虑到在实际应用中我们无法拥有“上帝视角”，需要合理分配预算进行探索，因此能取得与最优策略相近的效果已经极具实用价值，充分体现了方法的有效性和探索带来的收益。\n图 8 详细展示了多臂老虎机策略的动态调整过程。初始时，各拉杆（采样策略）被选择的概率均为 0.1。随着迭代推进，0.6 拉杆因表现优异逐渐被算法“青睐”，其被选概率稳步提升并趋于 0.4，而其他拉杆的选择概率则逐步降低，趋近于零。从图 b 的对比实验也可以看出，作者用各种固定概率策略进行了测试，最终结果验证了 0.6 确实是表现最优的选择方案。\n表五是每批次样本数量对结果的影响，虽然批次数量为 1 时效果最好，但是考虑到计算成本，默认选 10\n表六是拉杆数量对结果的影响，结果表明拉杆并不是越多越好，当拉杆数量提升到 9 时，性能反而有所下降，毕竟探索也有成本，最后研究发现拉杆设置 3-5 个即可\n表七是消融实验，可以看到仅仅装上试错推迟机制，公平性就从 0.1 提升到了 0.8，整个算法里试错推迟机制起码起到 80% 的作用，不过对抗性多臂老虎机虽然对性能提升小，但是作者提到他节省了高达 25% 左右的标注预算，比起性能提升他更能省钱\n表八是作者给别人的算法装上自己研究的试错推迟机制，可以看到他人算法的性能有很大提升，但是还是不及我们的算法\n之前提到我们用的算法是 exp3，但是市面上有更复杂先进的算法，作者一一尝试后证明，不用情况下不同算法都有可能是最佳算法，而且大家差距不大，不如用最基础的减小算法难度和复杂度\n6. 关于联邦遗忘学习的拓展 论文中中的公平性主要关注于不同子群体间的表现差异。如果发现某些子群体处于不公平状态，可以采用多臂老虎机选择采样策略，从样本池中优先挑选弱势群体的样本交由人工标注，标注后再判断是否纳入训练，不合适则推迟使用。\n将这一思路映射到联邦遗忘学习场景下，公平性需同时关注客户端之间及其内部子群体的分布。当某个客户端选择退出并触发遗忘后，可能会导致特定子群体的代表性显著下降。例如，若仅有退出客户端包含大量少数民族数据，其他客户端相关数据稀缺，那么离开该客户端后模型将对少数民族群体产生偏见或能力不足。\n为缓解这种公平性损失，可以将其余客户端视为备选样本池。具体而言，优先筛选与退出客户端数据分布相近的客户端，让这些客户端参与新一轮训练，并提取其梯度以辅助补偿遗忘导致的性能损失。客户端的选择同样可以借鉴对抗式多臂老虎机算法：首先根据已提交的梯度大致推断各客户端的数据类型，对于即将退出的客户端，先对比数据特征从其它客户端中做初步筛选，再结合多臂老虎机策略动态选择最合适的候选客户端进行训练。当这些客户端训练并提交梯度后，若其对全局模型的公平性等指标有帮助则采纳更新，否则可以拒绝相应更新，进一步提升全局模型的公平和鲁棒性。\n如果通信太大，担心白上传梯度，可以让客户端在本地进行检验，如果公平性有提升再上传\n(还可以考虑全局模型在每个客户端的准确度，这也是一种公平)\n7. 参考文献 原文引用格式（ACM）：\n1 2 3 4 Ki Hyun Tae, Hantian Zhang, Jaeyoung Park, Kexin Rong, and Steven Euijong Whang. \u0026#34;Falcon: Fair Active Learning using Multi-armed Bandits.\u0026#34; Proc. VLDB Endow. 17, 5 (2024), 952–965. DOI: 10.14778/3641204.3641207 相关链接：\n论文 DOI：https://doi.org/10.14778/3641204.3641207 代码仓库：https://github.com/khtae8250/Falcon ","date":"2026-03-22T00:00:00Z","permalink":"https://ysy.fan/p/falcon-fair-active-learning/","title":"论文阅读：Falcon - Fair Active Learning using Multi-armed Bandits"},{"content":"1. 下载安装包 前往 Anaconda 官网 下载安装包。 进入页面后，点击 Skip Registration（跳过注册）即可直接下载，无需注册账号。\n跳过注册后，根据自己的操作系统选择对应的版本下载。以 Windows 为例，点击 Anaconda Distribution 下的 Windows 64-Bit Graphical Installer 即可。\n2. 安装 下载完成后，双击安装程序（.exe 文件）启动安装向导。\n2.1. 欢迎界面 打开安装向导后，点击 Next 继续。\n2.2. 许可协议 阅读许可协议后，点击 I Agree 同意并继续。\n2.3. 选择安装类型 选择 Just Me（默认推荐），然后点击 Next 继续。\n2.4. 选择安装位置 默认安装路径为 C:\\Users\\用户名\\anaconda3，建议保持默认，直接点击 Next 继续。\n若需要安装到其他位置，请注意：路径中不能含有中文，否则可能导致运行异常。\n2.5. 高级安装选项 建议全部勾选，然后点击 Install 开始安装。\nCreate shortcuts：创建快捷方式，方便从开始菜单启动 Anaconda 相关工具 Add installation to my PATH：将 Anaconda 加入系统环境变量，这样在普通 cmd/PowerShell 中也能直接使用 conda 命令。虽然安装器标注了\u0026quot;不推荐\u0026quot;，但那主要是针对同时安装了多个 Python 的用户，担心产生冲突。如果你只使用 Anaconda，勾上更方便；如果你熟悉环境变量配置，也可以不勾，后续手动添加 Register Anaconda3 as my default Python：将 Anaconda 的 Python 注册为系统默认 Python，VSCode、PyCharm 等工具可自动识别 Clear the package cache upon completion：安装完成后清理缓存，释放磁盘空间 2.6. 安装完成 等待安装进度条跑完，提示 Installation Complete 后，点击 Next 继续。\n2.7. 云端推广页 这是 Anaconda 的云服务推广页面，直接点击 Next 跳过即可。\n2.8. 完成安装 取消勾选 Welcome to Anaconda，然后点击 Finish 完成安装。\n3. 验证安装 按 Win + R 打开运行窗口，输入 cmd 后回车打开命令提示符。\n在命令提示符中依次输入以下命令验证安装是否成功：\n输入 python 回车，若显示 Python 版本信息（如 Python 3.13.9 | packaged by Anaconda）则说明 Python 安装正常，输入 exit() 退出。\n再输入 conda --version，若显示版本号（如 conda 25.11.1）则说明 Anaconda 安装成功。\n","date":"2026-03-20T00:00:00Z","permalink":"https://ysy.fan/p/anaconda-install-guide/","title":"Anaconda 安装教程"},{"content":"1. 前置准备 本工具基于 Python 运行，建议使用 Anaconda 管理 Python 环境。如果尚未安装，可以参考：Anaconda 安装教程\n2. 安装 LaTeX-OCR 按 Win 键搜索 Anaconda Prompt，打开它。\n在 Anaconda Prompt 中依次输入以下命令，创建并激活一个独立的虚拟环境：\n1 conda create -n latexocr python=3.12 1 conda activate latexocr 2.2. 安装 PyTorch LaTeX-OCR 依赖 PyTorch 运行模型。由于每个人的显卡和系统环境不同，建议前往 PyTorch 官网 根据自己的配置生成对应的安装指令。\n各选项说明：\nPyTorch Build：选 Stable（稳定版） Your OS：选对应操作系统，Windows 用户选 Windows Package：选 Pip Language：选 Python Compute Platform：有 NVIDIA 显卡选对应的 CUDA 版本，没有独显或不确定选 CPU 如何确认自己的 CUDA 版本：按 Win + R 输入 cmd 回车，在终端输入 nvidia-smi，右上角显示的即为支持的最高 CUDA 版本。选择时要保证选的版本 ≤ 该数字。\n选好后复制页面生成的命令，粘贴到 Anaconda Prompt 中执行即可（文件较大约 2GB+，请耐心等待）。\n以 CUDA 13.0 为例：\n1 pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu130 2.3. 安装 pix2tex PyTorch 安装完成后，继续输入以下命令安装 LaTeX-OCR（含 GUI 界面）：\n1 pip install \u0026#34;pix2tex[gui]\u0026#34; 安装完成后，首次运行时会自动下载模型权重文件（约 100MB+），下载完毕后 GUI 窗口会自动弹出。\n3. 使用方法 安装完成后，在 Anaconda Prompt 中输入以下命令启动 LaTeX-OCR：\n1 latexocr 启动后界面如下：\n界面各选项说明：\nFormat：输出格式选择 Raw：原始 LaTeX 代码 LaTeX-$：行内公式格式（适合嵌在文字中间） LaTeX-$$：独立公式格式（适合单独一行展示） Sympy：Python sympy 格式（复杂公式容易报错，日常不推荐） Snip [Alt+S]：截图识别快捷键 Temperature：识别参数，值越低越保守准确，默认 0.33 即可 有三种方式输入公式图片：\n用其他截图工具截图后，直接将图片粘贴到顶部白色区域 点击 Snip 按钮，使用程序内置截图框选公式区域 先单击程序窗口使其成为焦点，再按 Alt+S 快捷键截图 截图后程序会自动识别公式，结果显示在中间文本框中，直接复制即可。\n4. 插入 Word 识别完成后，下方文本框中即为可直接使用的 LaTeX 代码，复制它。\n以下图为例，识别结果为：\n1 \\operatorname*{min}_{w}F(w)=\\sum_{k=1}^{K}p_{k}F_{k}(w) 在 WPS 或 Word 中，光标定位到需要插入公式的位置，点击菜单栏插入 → 公式，在弹出的公式编辑框中将识别结果粘贴进去即可。\nWord 用户注意：\n粘贴后需要手动切换两个设置，否则公式无法正确渲染：左上角输入类型选择 LaTeX（默认是 Unicode）；右侧格式选择专业（选\u0026quot;线性\u0026quot;则公式不会转换为排版格式）。 Word 不支持 \\operatorname* 语法和 $...$ 包裹，粘贴前需手动处理：删去开头的 $\\operatorname* 及结尾的 $。例如 WPS 可直接使用的 $\\operatorname*{min}_{w}F(w)=\\sum_{k=1}^{K}p_{k}F_{k}(w)$，在 Word 中需改为 {min}_{w}F(w)=\\sum_{k=1}^{K}p_{k}F_{k}(w)。 5. 创建一键启动脚本 每次使用都要打开 Anaconda Prompt 再手动输命令比较繁琐，可以创建一个批处理脚本实现双击启动。\n在桌面新建一个文本文档，输入以下内容：\n1 2 Set ws = CreateObject(\u0026#34;Wscript.Shell\u0026#34;) ws.run \u0026#34;cmd /c conda run -n latexocr latexocr\u0026#34;, 0 按 Ctrl+S 保存。如果看不到文件后缀名，在文件资源管理器中点击顶部查看 → 显示 → 文件扩展名将其勾选。\n之后选中文件按 F2 重命名，将其改为 公式识别.vbs，双击即可静默启动 LaTeX-OCR（不会弹出黑色命令行窗口）。\n双击后不会立即弹出窗口，后台仍需要激活环境并启动程序，请耐心等待几秒钟。如果怎么双击都没有反应，可以检查一下 vbs 文件是否保存成功、内容是否为空。\n","date":"2026-03-20T00:00:00Z","permalink":"https://ysy.fan/p/latex-ocr-for-word-wps/","title":"用 LaTeX-OCR 在 Word/WPS 中优雅地插入数学公式"},{"content":" 💡 前言：此教程为经验之谈，也是遇到报错后到处找解决方法总结出的解决方案。\n在使用 Cursor 2.5 版本及以上的 Agent 模式进行开发时，你是否遇到过频繁的响应卡死问题？具体表现为：\n模型刚开始回复几句，或者刚显示 Explored X files 后，就陷入无休止的 Taking longer than expected... 加载状态 最终会彻底断联，并抛出报错提示：Unexpected seqno: 2 != 1. Please try again, or contact support if the issue persists. 特别是在后台常驻开启代理软件的情况下，这个问题尤为高发。\n1. 🔍 问题复现 笔者刚开始使用时就遇到这个问题，一开始以为是网络问题，所以在设置里把 HTTP/2 改成了 HTTP/1.1：\n但没想到还是不行，问题依然存在。经过多次尝试和查找资料，终于找到了解决方案。\n2. 🔍 原因分析 这个问题通常由两方面因素叠加导致：\n2.1 网络流传输中断 代理软件的路由规则干扰了 Cursor 与大模型 API 之间的长连接（特别是 HTTP/2 多路复用），导致接收的数据包序号错乱（即 seqno 匹配不上）。\n2.2 本地代码库索引卡死 当网络出现异常或项目频繁变动时，Cursor 在本地建立的 AI 代码向量数据库（Codebase Index）可能会损坏或陷入死循环。当 Agent 试图去检索项目上下文时，后台进程就会彻底卡死。\n3. 🛠️ 终极解决方案：重建项目索引 这是最直接有效的方法，可以彻底清空错乱的本地缓存并恢复正常。\n3.1 操作步骤 3.1.1 第一步：打开 Cursor 设置 点击右上角齿轮图标 ⚙️，或使用快捷键 Ctrl + , 打开设置界面。\n3.1.2 第二步：找到 Indexing \u0026amp; Docs 在左侧菜单栏中向下滚动，找到并点击 Indexing \u0026amp; Docs 选项。\n3.1.3 第三步：查看索引状态 在右侧面板的 Codebase 区域，你会看到当前项目的代码索引状态（通常会显示 100% 但其实后台已经卡死）。\n3.1.4 第四步：删除索引（关键步骤） ⚠️ 关键一步：不要点 Sync，直接点击右侧的 🗑️ Delete Index 按钮，彻底清空可能损坏的向量数据库缓存。\n3.1.5 第五步：重新建立索引 删除后，点击 Compute Index（或等待其自动开始），让进度条重新跑到 100%。\n4. ✅ 验证效果 完成上述操作后，回到聊天窗口再次尝试，卡死和报错问题即刻消失。\n5. 📝 总结 Cursor Agent 模式的卡死问题主要由网络流传输中断和本地代码库索引损坏导致。通过重建项目索引，可以彻底解决 Unexpected seqno 报错和频繁卡死的问题。\n希望这篇文章能帮助到遇到同样问题的朋友！如果还有什么新的方法，欢迎在评论区留言交流。\n","date":"2026-03-05T00:00:00Z","permalink":"https://ysy.fan/p/cursor-agent-freeze-fix/","title":"Cursor Agent 模式频繁卡死？终极解决方案来了"},{"content":" 💡 前言：如果你第一次启动《三角洲行动》时遇到画面放大或纯色闪屏，别慌！这是 Windows 高 DPI 缩放与游戏引擎的冲突。本文提供解决方案。\n1. 🔍 问题现象 第一次启动《三角洲行动》时可能遇到以下问题：\n画面异常放大：游戏图像被放大多倍，只能看到界面的一小部分，鼠标无法点击目标按钮 \u0026ldquo;假花屏\u0026rdquo;：能听到游戏音效，但屏幕显示单一颜色交替闪动，不显示游戏内容 反复重启才能进：遇到上述情况只能强退，需多次重启才能正常进入 2. 🔍 问题原因 这不是显卡故障，而是 Windows 高 DPI 缩放与游戏引擎的冲突。\n使用 2.5K 或更高分辨率屏幕时，Windows 默认开启 125% 或 150% 系统缩放。游戏启动时，引擎未能正确接管屏幕，Windows 将系统缩放强加在全屏游戏画面上，造成\u0026quot;二次放大\u0026quot;，导致渲染出错，表现为画面缩小或纯色闪屏。\n3. 🛠️ 解决方案：NVIDIA 应用设置 3.1 详细步骤 打开电脑上的 NVIDIA 应用（NVIDIA App），在左侧导航栏点击 图形 选项卡。\n在程序列表中找到并点击 三角洲行动（Delta Force）。\n在右侧找到 游戏已优化 选项，点击 恢复 按钮后面的小三角展开详细设置。\n在展开的设置面板中，找到 显示模式 选项，在下拉菜单中选择 无边框窗口化。\n设置完成后无需额外保存，直接关闭 NVIDIA 应用即可。\n4. ✅ 验证效果 重新打开游戏，画面应该能正常显示，不再出现放大或纯色闪屏问题。\n如果问题仍然存在，可以尝试重启电脑后再启动游戏。\n5. 📝 总结 《三角洲行动》启动时的画面放大和纯色闪屏问题，本质上是 Windows 高 DPI 缩放与游戏引擎的冲突。\n通过 NVIDIA 应用将显示模式设置为 无边框窗口化，可以让游戏正确接管画面渲染，彻底解决问题。这种方法简单快捷，无需修改任何文件属性。\n希望这篇文章能帮助到遇到同样问题的朋友！如果还有什么新的方法，欢迎在评论区留言交流。\n","date":"2026-03-05T00:00:00Z","permalink":"https://ysy.fan/p/delta-force-dpi-scaling-fix/","title":"PC 端《三角洲行动》启动画面放大、纯色闪屏的解决方案"},{"content":"1. 为什么要封装 HTML？ 在写博客时，很多时候我们会遇到这样的场景：\n默认的 Markdown 格式无法满足排版或功能需求，比如想插入一个自定义样式的提示框、好看的标签或者一键复制的按钮。如果直接在文章里写 HTML，内容会变得很混乱，而且后续维护和复用都很不方便。\nHugo 提供的 Shortcodes 功能，刚好就是为这种“写一次、处处复用”的场景准备的。\n这一篇就以“复制按钮”为例，演示如何在 hugo-theme-stack 项目里封装一个可复用的 HTML 组件。\n2. Shortcodes 基础：放在哪、怎么命名？ Hugo 规则：所有自定义 Shortcodes 都放在 layouts/shortcodes/ 目录下。\n比如我想做一个点击按钮就能复制指定文字的组件，就可以这样操作：\n新建文件：layouts/shortcodes/copybtn.html 之后在任意文章里，都可以通过以下格式调用组件： 1 {{\u0026lt; copybtn value=\u0026#34;待复制文字\u0026#34; \u0026gt;}} 命名规则：\n文件名 copybtn.html → 调用名就是 copybtn 名称内不能带 - 以外的奇怪字符，建议全小写、用中划线或下划线分隔 3. 实战：封装一个“复制按钮”组件 3.1. 新建 Shortcode 文件 在项目根目录下新建（如果目录不存在就自己创建）：\n1 layouts/shortcodes/copybtn.html 填入下面这段代码：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 \u0026lt;button type=\u0026#34;button\u0026#34; class=\u0026#34;copy-btn-shortcode\u0026#34; data-value=\u0026#34;{{ .Get \u0026#34;value\u0026#34; }}\u0026#34; style=\u0026#34; position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; font-size: 14px; font-family: var(--font-family); color: var(--card-text-color-main); background-color: var(--card-background); border: 1px solid var(--card-separator-color); border-radius: var(--card-border-radius); cursor: pointer; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); user-select: none; box-shadow: var(--shadow-l1); \u0026#34; onmouseover=\u0026#34;this.style.backgroundColor=\u0026#39;var(--code-background)\u0026#39;; this.style.borderColor=\u0026#39;var(--accent-color)\u0026#39;;\u0026#34; onmouseout=\u0026#34;this.style.backgroundColor=\u0026#39;var(--card-background)\u0026#39;; this.style.borderColor=\u0026#39;var(--card-separator-color)\u0026#39;;\u0026#34; onmousedown=\u0026#34;this.style.transform=\u0026#39;scale(0.96)\u0026#39;;\u0026#34; onmouseup=\u0026#34;this.style.transform=\u0026#39;scale(1)\u0026#39;;\u0026#34; onclick=\u0026#34;(function(btn){ var text = btn.getAttribute(\u0026#39;data-value\u0026#39;); if (!text || btn.getAttribute(\u0026#39;data-copying\u0026#39;)) return; var saveToClipboard = function(str) { if (navigator.clipboard \u0026amp;\u0026amp; navigator.clipboard.writeText) { return navigator.clipboard.writeText(str); } else { var el = document.createElement(\u0026#39;textarea\u0026#39;); el.value = str; document.body.appendChild(el); el.select(); document.execCommand(\u0026#39;copy\u0026#39;); document.body.removeChild(el); return Promise.resolve(); } }; saveToClipboard(text).then(function () { btn.setAttribute(\u0026#39;data-copying\u0026#39;, \u0026#39;true\u0026#39;); var tip = document.createElement(\u0026#39;span\u0026#39;); tip.textContent = \u0026#39;已复制！\u0026#39;; tip.style.cssText = \u0026#39;position:absolute; top:-35px; left:50%; transform:translateX(-50%); background:var(--card-text-color-main); color:var(--body-background); font-size:12px; padding:4px 12px; border-radius:4px; white-space:nowrap; pointer-events:none; opacity:0; transition:all .3s ease; z-index:100; font-weight:bold; box-shadow: var(--shadow-l3); border: 1px solid var(--card-separator-color);\u0026#39;; btn.appendChild(tip); setTimeout(function(){ tip.style.opacity = \u0026#39;1\u0026#39;; tip.style.top = \u0026#39;-42px\u0026#39;; }, 10); setTimeout(function () { tip.style.opacity = \u0026#39;0\u0026#39;; setTimeout(function () { tip.remove(); btn.removeAttribute(\u0026#39;data-copying\u0026#39;); }, 300); }, 1000); }); })(this);\u0026#34; \u0026gt; \u0026lt;svg width=\u0026#34;14\u0026#34; height=\u0026#34;14\u0026#34; viewBox=\u0026#34;0 0 24 24\u0026#34; fill=\u0026#34;none\u0026#34; stroke=\u0026#34;currentColor\u0026#34; stroke-width=\u0026#34;2\u0026#34; stroke-linecap=\u0026#34;round\u0026#34; stroke-linejoin=\u0026#34;round\u0026#34; style=\u0026#34;opacity: 0.8;\u0026#34;\u0026gt; \u0026lt;rect x=\u0026#34;9\u0026#34; y=\u0026#34;9\u0026#34; width=\u0026#34;13\u0026#34; height=\u0026#34;13\u0026#34; rx=\u0026#34;2\u0026#34; ry=\u0026#34;2\u0026#34;\u0026gt;\u0026lt;/rect\u0026gt; \u0026lt;path d=\u0026#34;M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\u0026#34;\u0026gt;\u0026lt;/path\u0026gt; \u0026lt;/svg\u0026gt; \u0026lt;span style=\u0026#34;max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\u0026#34;\u0026gt; {{ .Get \u0026#34;label\u0026#34; | default (.Get \u0026#34;value\u0026#34;) }} \u0026lt;/span\u0026gt; \u0026lt;/button\u0026gt; 这里有几个重要点：\n.Get \u0026quot;value\u0026quot;：读取调用 Shortcode 时传入的 value 参数 .Get \u0026quot;label\u0026quot;：展示在按钮上的文字，没传就回退到 value 你也可以根据自己的审美继续微调按钮样式，只要保证核心逻辑不变即可。\n3.2. 在文章里调用复制按钮 在任何一篇文章的 index.md 中，你可以这样写：\n1 在下方的文本框里粘贴 {{\u0026lt; copybtn value=\u0026#34;https://api.deepseek.com/v1\u0026#34; \u0026gt;}} 效果：\n按钮显示为： https://api.deepseek.com/v1 点击按钮：地址被复制到剪贴板，上方短暂出现“已复制！”的深色气泡提示 如果你想让按钮显示的内容和实际复制的内容不一样，例如显示一段更短的说明文字，可以加上 label 参数：\n1 {{\u0026lt; copybtn value=\u0026#34;https://api.deepseek.com/v1\u0026#34; label=\u0026#34;DeepSeek API 基础地址\u0026#34; \u0026gt;}} 这样：\nDeepSeek API 基础地址 复制内容：https://api.deepseek.com/v1 按钮文字：DeepSeek API 基础地址 4. 在 hugo-theme-stack 中还能封装些什么？ hugo-theme-stack 本身已经有很好的排版和样式，但通过 Shortcodes，我们可以再往上加一层“写作小组件”，比如：\n高亮提示块：成功/警告/危险提示（例如 {{\u0026lt; hint type=\u0026quot;warning\u0026quot; \u0026gt;}}） 内嵌对比卡片：对比两个工具、两种写法 代码运行按钮：一键复制命令、打开外部 Playground 等 通用思路都是：\n在 layouts/shortcodes/ 里写好 HTML + 少量 JS/CSS 设计好几个易懂的参数（例如 type、title、value） 在 Markdown 里用一行 {{\u0026lt; .....\u0026gt;}} 调用 当你发现自己第三次在文章里拷贝同一段 HTML 时，就可以考虑把它抽成一个 Shortcode 了。\n5. 总结 Shortcodes 是 Hugo 自带的官方功能，非常适合在 hugo-theme-stack 这种主题里封装常用的 HTML 组件。 把易错、冗长的 HTML + JS 抽成 Shortcode 后，写文章时只需要简单的一行 `{{\u0026lt; \u0026hellip;..\u0026gt;}}``，既省时间，又方便后期统一调整样式。 你可以从本篇的复制按钮开始，逐步把自己常用的“套路组件”（提示框、按钮组、代码块说明等）都封装成 Shortcodes，让博客真正变成一个为写作服务的系统，而不是反过来被配置绑架。 ","date":"2026-03-03T00:00:00Z","permalink":"https://ysy.fan/p/hugo-theme-stack-shortcodes-html-wrapper/","title":"Hugo Theme Stack 进阶：用 Shortcodes 封装常用 HTML 组件"},{"content":"1. 前言 本教程将指导你如何在 Cursor 编辑器中配置阿里云百炼 API，让你可以使用通义千问等国产大模型进行代码编写和 Agent 任务。\n重要提示：配置阿里云百炼的请求地址和 API Key 后，Cursor 将仅能调用阿里云百炼平台的模型。如需切换回其他模型提供商（如 OpenAI），需要关闭 OpenAI API Key 和 Override OpenAI Base URL 设置。请在接入前根据实际需求谨慎选择。\n2. 获取阿里云百炼 API Key 登录阿里云百炼平台 进入 Coding Plan 界面 选择合适的套餐并完成购买 进入 我的订阅 页面 创建新的 API Key 复制生成的 API Key 备用 3. 在 Cursor 中配置阿里云百炼 3.1. 打开模型设置 打开 Cursor 编辑器 点击右上角设置按钮，进入 Settings 在左侧导航栏找到 Models 标签页 3.2. 配置 API Key 和请求地址 点击 API Keys 展开 API 设置区域 开启 OpenAI API Key 开关，在下方文本框中输入刚才复制的 API Key 开启 Override OpenAI Base URL 开关，在下方文本框输入： https://coding.dashscope.aliyuncs.com/v1 3.3. 添加自定义模型 点击 View All Models 按钮 滚动到页面底部 点击 Add Custom Model 按钮 依次填入模型名称并点击 Add 添加 3.3.1. 可用模型列表 品牌 模型 模型能力 千问 qwen3.5-plus 文本生成、深度思考、视觉理解 千问 qwen3-max-2026-01-23 文本生成、深度思考 千问 qwen3-coder-next 文本生成 千问 qwen3-coder-plus 文本生成 智谱 glm-5 文本生成、深度思考 智谱 glm-4.7 文本生成、深度思考 Kimi kimi-k2.5 文本生成、深度思考、视觉理解 MiniMax MiniMax-M2.5 文本生成、深度思考 推荐配置：\n日常使用： qwen3.5-plus （综合性能最佳） 复杂问题： qwen3-max-2026-01-23 （处理高难度任务） 添加完成后，开启模型对应的开关（显示绿色表示已启用） 3.4. 关闭其他模型（可选） 为避免误调用，建议关闭其他不可用的模型提供商。注意：接入阿里云百炼后，仅阿里云平台的模型可用。\n4. 开始使用 配置完成后，返回 Cursor 主界面的聊天栏，点击模型选择器切换到刚才添加的阿里云百炼模型，即可开始使用。\n5.常见问题 5.1. 报错提示“模型不存在” 问题现象： 在使用过程中，系统突然报错并提示模型不存在（如下图）。\n原因与解决方法： 这通常是因为系统自动禁用了 OpenAI API Key。只需前往设置将其重新开启即可恢复正常。\n","date":"2026-03-03T00:00:00Z","permalink":"https://ysy.fan/p/cursor-aliyun-bailian-api-setup/","title":"在 Cursor 中接入阿里云百炼 API 教程"},{"content":"1. 公平性问题的基本形态 1.1. 种族与群体歧视 机器学习模型对偏见十分敏感。即使未显式使用种族等敏感属性，模型仍可能在预测与决策中隐式引入这些因素。典型表现包括：\n误判与标准单一：如将某族裔的犯罪风险系统性高估，或仅以某一群体的审美/标准作为判定依据，使其他群体在 AI 决策中处于劣势。 数据偏差的传导：若训练数据以某一群体为主（如仅用某族裔数据训练），模型在面对其他群体时容易产生错误或歧视性判断。 偏见的放大：在招聘筛选等场景中，模型可能无意识地「学习」并放大既有社会偏见。 1.2. 边缘群体被忽视 长期被边缘化的群体若未被充分纳入数据与学习过程，模型会缺乏其代表性，导致对这些群体的服务不足或歧视加剧。\n1.3. 联邦场景下的客户端公平 在联邦学习中还存在客户端维度的公平问题：\n数据重叠与遗忘冲突：客户端间数据可能重叠。满足某一客户端的遗忘请求（删除某类数据）时，可能损害依赖该数据的其他客户端的性能与精度。 非 IID 与模型偏向：客户端数据多为非独立同分布（Non-IID），模型容易偏向数据量或特征更「强势」的客户端，导致对弱势客户端不公平。 2. 公平性与联邦遗忘学习的关系 联邦遗忘学习（Federated Unlearning）与公平性存在双向关系：既可被用来促进公平，也可能加剧不公平。\n2.1. 利用遗忘学习促进公平 事后去偏：传统公平性研究侧重在训练阶段预防偏见。遗忘学习提供了一种事后思路——在训练结束后，针对性地削弱或移除与偏见相关的参数或数据影响，在尽量保持模型性能的前提下实现去偏。 缓解过拟合：联邦遗忘还能用于主动遗忘过时、冗余或有害的样本，修复过拟合，间接有利于泛化与公平。 2.2. 遗忘学习可能损害公平 过度遗忘：若遗忘程度过深，可能删掉代表性本就不足的群体数据，导致对这些群体的预测准确性下降，加剧不公平。 遗忘不足：若遗忘不彻底，偏见相关影响仍有残留，公平性目标难以达成。 高敏感场景：招聘、信用评分、医疗 AI 等场景中，公平性极为关键，上述风险的影响尤为突出。 2.3. 直接删除偏见内容的局限 单纯删除「偏见内容」或敏感标签（如种族、肤色）往往不够：\n偏见转移：模型可能不再直接使用种族，转而依赖与种族高度相关的代理变量（如居住地区、姓名、语言、生活习惯等），使偏见从明处转向暗处，难以检测与治理。 防御设计困难：若模型完全失去「反面教材」或可解释的偏见表征，针对性的公平性防御与审计会变得更难设计。 3. 维持公平性的主要技术手段 3.1. 数据预处理 从源头介入，在模型训练之前通过调整数据的构成来改善公平性，属于**预处理（Pre-processing）**方法。常见策略包括：\n重采样（Resampling）：对代表性不足的群体进行过采样，或对主导群体进行欠采样，使各群体在训练集中的比例更加均衡。 重标注（Relabeling）：识别并修正训练数据中存在偏见的标签，从根源消除偏差。 公平主动学习（Fair Active Learning）：在标注预算有限的情况下，优先选取能够提升弱势群体代表性的样本交由专家标注，以最小的标注成本最大化公平性收益。 3.2. 公平遗忘感知重训 在遗忘过程中同时优化公平性：边做「遗忘手术」边施加公平约束或重训，使删除/更新后的模型在统计特性上仍满足既定公平准则（如不同群体间性能差距可控）。\n3.3. 基于正则化的遗忘 在遗忘算法中引入数学约束，强制模型在参数更新或「模糊化」过程中遵守公平性准则，避免遗忘操作破坏公平指标。\n3.4. 遗忘后去偏 采用两阶段策略：先完成数据/参数层面的遗忘，再对所得模型做一次专门的去偏或公平性微调，作为「做完手术再打磨」的补充步骤。\n","date":"2026-03-02T00:00:00Z","permalink":"https://ysy.fan/p/fairness-definition/","title":"公平性的定义"},{"content":"Gemini（原 Google One AI）的订阅到期时间在网页里藏得比较刁钻，第一次找往往要翻半天。这里记一下具体查找路径，方便大家查找。\n1. 第一步：设置和帮助 → 个人使用场景 在 Gemini 页面，唯一的入口是：\n点击左侧边栏底部的 「设置和帮助」，展开或进入设置相关页面。 在随之出现的内容里进入 「个人使用场景」（Personal Usage Scenarios）。 在该页的 「你的付费内容」 区块中，点击下方的 「管理与你的 Google 账号关联的订阅」。 点击后会跳转到 Google 账号的订阅页面。\n2. 第二步：在 Google 账号订阅页查看续订日期 跳转后进入的是 Google 账号 → 订阅 页面。页面顶部有返回箭头和「订阅」标题。\n找到 Google One 一栏，这里的续订日期就是你会员到期的时间\n3. 小结 路径总结：打开 Gemini → 设置和帮助 → 个人使用场景 → 点击「管理与你的 Google 账号关联的订阅」→ 在跳转后的「订阅」页中，看「由 Google 管理」里对应订阅卡片上的 「续订日期」 即可。\n","date":"2026-02-24T00:00:00Z","permalink":"https://ysy.fan/p/find-gemini-subscription-expiry/","title":"如何查找 Gemini 订阅截止日期"},{"content":"1. 引言 你需要准备：\n一台云服务器 (VPS)：本文以 Ubuntu 24.04 64 位系统为例 基础工具：WindTerm（SSH 终端，推荐） 一颗折腾的心：虽然步骤较多，但为了流畅的银河征途，一切都是值得的！ 2. 服务器准备与基础环境搭建 俗话说\u0026quot;工欲善其事，必先利其器\u0026quot;。搭建群星联机节点，核心在于网络质量而非服务器的计算性能。本章将指导您完成服务器的选购及基础环境的配置。\n2.1. 服务器选购建议 在购买 VPS 时，请重点关注以下三点：\n2.1.1. 带宽是核心 群星联机数据交换量较大。根据实测，约 10Mbps 带宽可支撑 1～2 车人（每车约 10 人）同时游玩，带宽越大，后期卡顿概率越低。\n2.1.2. 地理位置 尽量选择距离您和朋友们地理位置都比较近的数据中心，以物理手段降低延迟。\n2.1.3. 配置够用即可 如果这台服务器仅用于群星加速，CPU、内存和硬盘空间可以选最低配（如 1 核 1G），以降低成本。\n2.2. 安装必要组件 购买并登录服务器（使用 SSH 工具）后，我们需要安装解压工具和核心软件 OpenVPN。请依次执行以下指令：\n2.2.1. 下载 SSH 客户端（推荐 WindTerm） 为方便操作，建议使用 WindTerm 作为 SSH 终端：免费、绿色免安装，解压即用，支持多标签与会话管理。\n国内镜像下载（Windows 64 位便携版）： WindTerm 2.7.0 便携版 (x86_64)\n下载后解压到任意目录，路径中不要有中文，双击运行 WindTerm.exe 即可。\n存储位置选择第一个应用程序目录\n2.2.2. 使用 WindTerm 连接云服务器 打开 WindTerm，点击 「会话」→「新建会话」。\n选择 SSH，在 主机 中填写服务器公网 IP，端口 一般为 22（若云厂商使用其他端口请按实际填写）。\n若商家提供公网 ip 如下图，在 主机 中直接填写公网 IP 即可，端口 保持默认无需修改。\n若购买的是超低价共享型 VPS，公网 IP 后带有额外端口，则在 主机 中填公网 IP，在 端口 处删掉默认的 22，改为 IP 后面显示的那个端口号。\n按照情况填写表单\n💡 连接小贴士：\n多次尝试：首次连接可能失败，这是正常现象。如果连接不上，请多试几次，通常第二次或第三次就能成功连接。 端口放行：阿里云服务器默认放行 22 端口，但其他云厂商（如腾讯云、华为云等）可能需要在控制台的「安全组」中手动放行 22 端口才能连接。如果遇到连接超时，请登录云控制台检查安全组规则。 切换到账户标签页，用户名 默认填写为 root（如果有指定其他 SSH 用户名则填写对应名称），密码填写你在云服务器控制台设置的远程登录密码。\n⚠️ 重要：不同云厂商的默认用户名可能不同：\n阿里云：默认用户名为 root 腾讯云：部分镜像默认用户名为 ubuntu 或 centos 华为云：部分镜像默认用户名为 ubuntu 或 root AWS：默认用户名为 ec2-user（Amazon Linux）或 ubuntu（Ubuntu 镜像） 请根据您购买的云服务器型号和控制台提示，填写正确的用户名。如果不确定，可以查看云厂商的文档或购买时的邮件通知。\n连接成功则如图所示，如果返回上一界面可能是密码有误请重新输入\n接下来就可以输入指令对服务器进行操作了\n2.2.3. 特殊情况：非 root 用户获取 root 权限 💡 仅当您的云服务器默认用户名不是 root 时，需要执行本节操作\n如果您在 WindTerm 中使用非 root 用户名（如 ubuntu、centos 等）成功登录，您会发现无法直接修改 /etc/ 等系统目录。此时需要先启用 root 账户并设置密码。\n首次登录（使用默认用户名）：\n假设您的默认用户名是 ubuntu，在 WindTerm 中填写：\n主机：您的服务器公网 IP 端口：22（或云厂商指定的 SSH 端口） 用户名：ubuntu（或其他默认用户名） 密码：您在云服务器控制台设置的密码 设置 root 密码：\n登录成功后，执行以下命令设置 root 密码：\n1 sudo passwd root 系统会提示您输入新密码：\n1 2 Enter new UNIX password: Retype new UNIX password: 💡 密码输入提示：在终端输入密码时，屏幕上不会显示任何字符（包括星号或圆点），这是 Linux 的安全机制。如果您担心输错，可以：\n先在记事本或 QQ 等地方写好密码 复制密码 在终端中粘贴（右键点击终端窗口或按 Shift+Insert） 按回车确认 输入两次密码后，如果显示 passwd: password updated successfully 则表示设置成功。\n重新建立会话（使用 root 用户）：\n设置完 root 密码后，关闭当前会话（输入 exit 或直接关闭窗口），然后在 WindTerm 中重新建立会话：\n主机：您的服务器公网 IP 端口：22 用户名：root（现在可以改用 root 了） 密码：刚才设置的 root 密码 重新连接后，您就拥有了完整的 root 权限，可以继续后续的 OpenVPN 安装和配置了。\n2.2.3. 更新系统并安装所需软件 一次完成系统更新及 unzip、OpenVPN 的安装（解压服务端和运行 VPN 都需要）：\n1 2 sudo apt update \u0026amp;\u0026amp; sudo apt upgrade -y sudo apt install -y unzip openvpn 将鼠标移至文中代码框上方，点击“复制”按钮，然后回到终端右键粘贴并回车即可，后续操作同理。\n输入以下命令并回车，即可重启服务器：\n1 reboot 指令执行后再次按下回车，然后耐心等待片刻，待服务器自动重启并重新出现大量系统信息输出后，即表示重启已完成。\n2.2.4. 版本检查（重要！） 安装完成后，输入以下命令查看版本，判断是否安装成功：\n1 openvpn --version 然后记住你的 openvpn 版本，会影响后面的操作步骤\n2.3. 开放防火墙端口（关键步骤） 为了让游戏数据能顺利进出服务器，我们需要开放两个特定的端口：3074 (UDP) 和 3075 (TCP)。这通常涉及两道关卡：服务器内部防火墙和云厂商安全组。\n2.3.1. 第一关：服务器内部防火墙 (UFW) Ubuntu 24.04 默认使用 ufw 作为防火墙前端。若未启用 ufw，端口默认可能未被限制；若已启用，需放行上述端口。\n检查防火墙状态：\n1 sudo ufw status 若显示 Status: inactive，说明防火墙未启用，可跳过本小节，直接配置 云厂商安全组。\n若显示 Status: active，请执行以下命令放行端口并重载。若尚未启用 ufw 但打算启用，可先执行 sudo ufw enable（提示时输入 y 确认），再执行下面的放行命令：\n放行 3074 (UDP) 和 3075 (TCP)：\n1 2 3 sudo ufw allow 3074/udp sudo ufw allow 3075/tcp sudo ufw reload 验证是否成功：\n1 sudo ufw status numbered 若在规则列表中看到 3074/udp 和 3075/tcp，即代表操作成功。\n2.3.2. 第二关：云厂商安全组 (Security Group) ⚠️ 这是新手最容易忽略的一步！\n绝大多数云服务器（阿里云、腾讯云、华为云等）在网页控制台都有一层额外的 「安全组」 或 「防火墙」 设置。\n请登录您的云服务器控制台，找到 安全组 → 配置规则 → 手动添加，填入以下信息：\n规则 1 (UDP)\n协议类型：UDP 端口范围：3074/3074 授权对象：0.0.0.0/0（所有 IP） 策略：允许 规则 2 (TCP)\n协议类型：TCP 端口范围：3075/3075 授权对象：0.0.0.0/0（所有 IP） 策略：允许 2.4. 特殊情况：共享型 VPS 的端口转发（NAT 映射） ⚠️ 以下内容仅适用于购买了「超低价共享型 VPS」的用户，拥有独立公网 IP 的独立服务器用户可直接跳过本节。\n部分超低价 VPS 服务商并非给您一台独立的机器，而是一台物理主机由多个用户共享。在这种情况下，您拿到的并非一个独立的公网 IP，而是一个 \u0026ldquo;IP: 端口\u0026rdquo; 的访问入口（例如 160.202.254.14:10272），其中 10272 是您的 SSH 登录端口。\n在这种架构下，3074 和 3075 端口由宿主机的主网关统一管理，您没有权限直接对外暴露这两个端口，因此客户端无法通过标准端口直接连接到您服务器内的 OpenVPN 服务。\n解决方案：在服务商管理面板中配置端口转发（NAT 映射）\n您的 VPS 服务商通常会在其控制面板中提供端口转发功能，可以将宿主机上一个分配给您的外部端口，映射到您虚拟机内部的指定端口。\n操作步骤如下：\n登录您的 VPS 服务商管理面板，找到您的实例 找到 端口转发（NAT / Port Forwarding） 或类似选项 添加两条转发规则（外部端口由系统分配或您自行填写）： 内部端口（本机 OpenVPN） 协议 外部端口（映射后对外暴露） 3074 UDP 例：40074 3075 TCP 例：40075 记录下服务商分配给您的两个外部端口号，在后续配置客户端时需要用到 💡 注意：内部防火墙（ufw）和云厂商安全组仍然需要开放 3074（UDP） 和 3075（TCP），因为这是 OpenVPN 服务在您虚拟机内部实际监听的端口。端口转发规则是将外部流量\u0026quot;转进来\u0026quot;，服务本身不变。\n3. 服务端文件部署与核心配置 在第一章准备好环境后，我们需要将加速器的\u0026quot;心脏\u0026quot;——服务端核心文件部署到服务器中。这一步看似简单，但文件路径的准确性和脚本的执行权限直接决定了后续服务能否启动。\n首先，我们需要先从 原作者博客 中下载关键文件 教程 .zip, 解压后从中提取出 server.zip\n3.1. 上传文件 在右侧文件资源管理器中，打开下拉框，点击第一个\u0026rsquo;/'\n然后进入 tmp 目录\n点击右上角三个点，选择上传文件到当前目录\n选择本章初解压获得的 server.zip 文件上传\n如图即上传成功\n3.2. 解压与部署 文件上传完成后，我们需要通过 SSH 终端将其解压到 OpenVPN 的标准配置目录中。\n3.2.1. 创建标准目录 为了规范化管理，我们统一将文件存放在 /etc/openvpn 目录下。输入以下命令创建目录（如果系统已自动创建，此命令会提示已存在，忽略即可）：\n1 sudo mkdir -p /etc/openvpn 3.2.2. 解压文件 输入以下命令，将刚才上传到临时目录的文件解压到配置目录：\n1 sudo unzip /tmp/server.zip -d /etc/openvpn/ 3.2.3. 验证解压结果 解压完成后，我们要确认文件是否都在。输入以下命令查看目录内容：\n1 ls -l /etc/openvpn/ 请仔细核对输出结果，确保目录下包含以下关键文件：\nserver_tcp.conf （TCP 配置文件） server_udp.conf（UDP 配置文件） checkpsw.sh （密码验证脚本） psw-file （账号密码文件） 3.3. 关键步骤：赋予执行权限 ⚠️ 这是最容易被新手忽略的一步！\ncheckpsw.sh 是一个 Shell 脚本，OpenVPN 需要调用它来验证客户端传来的账号密码。如果它没有 「可执行权限」，服务器就会 拒绝所有连接请求，导致报错。\n3.3.1. 赋予权限 输入以下命令，将脚本标记为可执行文件：\n1 sudo chmod +x /etc/openvpn/checkpsw.sh 3.3.2. 再次验证 再次输入查看命令：\n1 ls -l /etc/openvpn/checkpsw.sh 观察输出结果的第一个字段：\n如果显示 -rwxr-xr-x （包含 x 且文件名通常变绿），说明权限设置成功。 如果显示 -rw-r--r-- （没有 x)，说明失败，请重新执行 chmod 命令。 至此，所有的文件都已就位，且具备了运行条件。下一章我们将进入最核心、也最复杂的环节：修改配置文件以适配群星的低延迟需求及新版系统的兼容性。\n4. 核心配置与版本兼容性修正 文件部署完成后，我们需要对 OpenVPN 的配置文件进行\u0026quot;手术\u0026quot;。本章的核心目标是：关闭加密以降低延迟，并修正新旧版本的语法差异。\n首先，在左侧文件管理器中按照路径/etc/openvpn/找到 OpenVPN 的配置文件目录：\n4.1. 修改 TCP 配置文件 4.1.1. 打开 tcp 文件 双击打开 server_tcp.conf，如果让你选择打开方式，选择记事本即可：\n4.1.2. 编辑 tcp 指南 注意：以下为新版 OpenVPN 关键配置语法变更！\n请注意：不同 OpenVPN 版本所需的修改各不相同。如果忘记自己的 OpenVPN 版本，请返回前文“版本检查（重要！）”部分重新确认。\n如果你的 OpenVPN 版本为 2.5.x，只需将 cipher none 替换为 data-ciphers none（这样可避免加密兼容性及报错问题）。 如果你的 OpenVPN 版本为 2.6.x 及以上，除了将 cipher none 换为 data-ciphers none，还要把 client-cert-not-required 替换为 verify-client-cert none（否则服务将无法启动）。 请根据你的实际版本，按需修改对应条目，确保配置兼容并能顺利启动。\n然后！记得 ctrl+S 保存，会弹出弹窗让你将文件上传回服务器，点击是\n4.2. 修改 UDP 配置文件 于上文修改 tcp 文件同理，不再赘述\n4.3. 设置连接账号密码 最后，我们需要配置 psw-file 账号密码文件。客户端连接时必须填写这里设置的内容。\n4.3.1. 打开密码文件 双击打开 psw-file\n4.3.2. 设置账号 文件内容的格式非常简单：用户名 空格 密码。 您可以删除原有的默认内容，填入您自己的账号。\n示例（设置用户名为 stellaris，密码为 123456）：\n1 stellaris 123456 然后 Ctrl+S 保存并上传文件\n至此，配置文件的修改工作全部完成。下一章我们将尝试启动服务，并教您如何看懂启动日志来验证修改是否成功。\n5. 服务启动验证与自动化部署 配置文件的修改只是纸上谈兵，我们需要通过实际运行来验证服务能否启动。如果配置文件有语法错误（例如 OpenVPN 版本不兼容），在这一步就会暴露出来。确认无误后，我们将配置开机自启。\n5.1. 手动启动测试 在后台静默运行之前，我们先在前台手动启动一次，以便直观地看到启动日志。\n5.1.1. 测试 TCP 服务 在 Ubuntu 中 OpenVPN 一般位于 /usr/sbin/openvpn（不确定可执行 which openvpn 查看）。\n直接启动 TCP 服务端：\n1 sudo /usr/sbin/openvpn --cd /etc/openvpn/ --config server_tcp.conf 5.1.2. 观察启动日志 终端会输出一长串日志。请耐心观察最后一行：\n✅ 如果显示 Initialization Sequence Completed，说明 TCP 服务启动成功，配置文件无误。 ❌ 如果显示 Exiting due to fatal error 或其他报错，请仔细检查报错信息（通常是 cipher 或 auth 参数写错了），并返回上一章重新修改。 确认成功后，按 Ctrl + C 停止服务。\n5.1.3. 测试 UDP 服务 重复上述步骤，测试 UDP 配置文件：\n1 sudo /usr/sbin/openvpn --cd /etc/openvpn/ --config server_udp.conf 同样等待出现 Initialization Sequence Completed 后，按 Ctrl + C 停止。\n5.2. 配置开机自启动 为了让加速器在服务器重启后自动运行，我们使用 systemd 创建两个服务单元。\n下列指令直接复制粘贴后回车即可\n5.2.1. 创建 TCP 服务单元 1 2 3 4 5 6 7 8 9 10 11 12 13 sudo tee /etc/systemd/system/openvpn-stellaris-tcp.service \u0026lt;\u0026lt; \u0026#39;EOF\u0026#39; [Unit] Description=OpenVPN Stellaris TCP After=network.target [Service] Type=simple ExecStart=/usr/sbin/openvpn --cd /etc/openvpn/ --config server_tcp.conf Restart=on-failure [Install] WantedBy=multi-user.target EOF 5.2.2. 创建 UDP 服务单元 1 2 3 4 5 6 7 8 9 10 11 12 13 sudo tee /etc/systemd/system/openvpn-stellaris-udp.service \u0026lt;\u0026lt; \u0026#39;EOF\u0026#39; [Unit] Description=OpenVPN Stellaris UDP After=network.target [Service] Type=simple ExecStart=/usr/sbin/openvpn --cd /etc/openvpn/ --config server_udp.conf Restart=on-failure [Install] WantedBy=multi-user.target EOF 5.2.3. 启用并启动服务 1 2 3 sudo systemctl daemon-reload sudo systemctl enable openvpn-stellaris-tcp openvpn-stellaris-udp sudo systemctl start openvpn-stellaris-tcp openvpn-stellaris-udp 检查状态（应均为 active (running)）：\n1 sudo systemctl status openvpn-stellaris-tcp openvpn-stellaris-udp 💡 提示：查看完服务状态后，按 Ctrl + C 即可退出浏览模式，返回命令行提示符。\n5.3. 可选：重启验证 若想确认开机自启是否生效，可重启服务器后再检查端口（非必须，上面 systemctl status 正常即可）。\n5.3.1. 重启服务器 1 sudo reboot SSH 会断开，按回车等待 1～2 分钟后重新连接。\n5.3.2. 验证端口监听状态 重新连接后执行：\n1 2 ss -ulnp | grep 3074 ss -tlnp | grep 3075 5.3.3. 确认结果 观察输出结果：\n若 UDP 3074 和 TCP 3075 均有对应进程在监听，说明加速器已成功在后台自动运行，服务端部署完成。 6. 客户端深度配置与联机实测 服务端配置圆满结束后，最后一步就是配置玩家手中的客户端。本方案使用的是 UsbEAm LAN Party，它小巧免安装，通过 TAP 虚拟网卡技术组建虚拟局域网，非常适合群星这种 P2P 联机游戏。\n6.1. 下载与安装 我们需要准备客户端程序和虚拟网卡驱动。\n6.1.1. 获取软件 请前往原作者 Dogfight360 的博客下载最新版客户端（通常名为 UsbEAm_LAN_Party_V1.x.zip）：\nhttps://www.dogfight360.com/blog/1590/\n下载完成后解压，解压密码 dogfight360，解压后，您应该会看到以下三个核心文件：\nUsbEAm LAN Party V1.2.exe（客户端主程序） tap-windows-9.9.2_3.exe（虚拟网卡驱动安装包） customize.ini（节点配置文件） 6.1.2. 安装 TAP 驱动 如果是第一次使用该软件，必须安装 TAP 驱动，否则无法建立虚拟局域网。\n双击运行 tap-windows-9.9.2_3.exe。 一路点击 Next（下一步）直到安装完成。 注意：安装过程中无需更改任何默认设置。 6.2. 配置节点信息 我们需要修改 customize.ini 文件，将我们服务器的信息填进去，让客户端知道去哪里连接。\n6.2.1. 编辑配置文件 双击选择用记事本打开 customize.ini，清空里面的内容，或者直接修改为以下标准格式：\n1 2 3 4 5 6 7 8 9 10 11 [usbeam] Server_List=我的群星节点 Disable_rules=1 Broadcast_fix=1 [我的群星节点] IP=203.0.113.1 TCP_Port=3075 UDP_Port=3074 USER=stellaris PASS=123456 6.2.2. 参数详解（请务必核对） Server List：这里填的名字会显示在软件下拉菜单里 [我的群星节点]：中括号里的名字必须与 Server List 保持一致 IP：改为您服务器的 公网 IP（示例中的 203.0.113.1 仅为占位）。若为共享型 VPS，只填 IP，不要带端口号。 TCP Port / UDP Port：默认填写 3075 和 3074。如果您使用的是共享型 VPS，请填写您在服务商管理面板中配置的端口转发规则里对应的外部端口号（详见上方\u0026quot;特殊情况：共享型 VPS 的端口转发\u0026quot;一节） USER：修改为您在 psw-file 里设置的 用户名 PASS：修改为您在 psw-file 里设置的 密码 Disable rules=1：代表默认勾选「不使用安全规则」 Broadcast fix=1：代表默认勾选「修正广播优先级」 修改完成后，保存并关闭文件。\n6.3. 启动连接与测试 万事俱备，只欠东风。\n6.3.1. 启动客户端 双击运行 UsbEAm LAN Party V1.2.exe。\n6.3.2. 选择节点 在软件界面的下拉框中，找到我们刚才在配置文件里命名的节点（例如\u0026quot;我的群星节点\u0026quot;）。\n6.3.3. 选择模式（关键！） 在连接按钮的左侧或下方，通常有模式选择。 ⚠️ 请务必勾选 UDP 模式。\n💡 群星联机对延迟极其敏感，UDP 模式去除了 TCP 的握手重传机制，能显著降低延迟，是本教程的核心优势所在。\n6.3.4. 点击连接 点击 连接 按钮。\n观察软件底部的状态栏 ✅ 如果显示 「连接状态：正常 (xx ms)」，恭喜您！节点搭建成功 ❌ 如果一直卡在「正在连接」，请检查： 防火墙端口是否正确开放（第一章） 账号密码是否填写正确（上一章） 服务端是否正常运行 当所有小伙伴都显示 「连接状态：正常」 后，大家实际上已经处于同一个虚拟局域网中。\n7. 总结 🎉 至此，您的专属群星联机加速节点已部署完毕！\n使用方法：\n所有玩家启动 UsbEAm LAN Party 客户端 连接到同一节点 确认状态显示「正常」 直接进入游戏，享受低延迟的联机体验！ 祝各位征途愉快！🚀\n","date":"2026-02-22T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-lan-openvpn-ubuntu/","title":"群星联机优化指南（Ubuntu 24.04 64 位）"},{"content":"1. 前言 本文基于 hugo-theme-stack 主题，其他主题的配置路径和渲染行为可能有所不同，请以各自主题的文档为准。\n在使用 Paste Image 插件往文章里粘贴截图时，插件默认生成的 Markdown 语法如下：\n1 ![image](images/2026-02-21-12-13-26.png) 这种写法最简洁，hugo-theme-stack 也自带点击放大的交互效果。但它的缺点是无法控制图片的显示尺寸，当截图分辨率很高时，图片会撑满整个内容区域，视觉上较为突兀。\n本文整理了两种可以控制图片显示尺寸的方案，各有优缺点，可以根据场景选择。\n2. 方案一：\u0026lt;a\u0026gt; + \u0026lt;img\u0026gt; —— 点击另开标签页查看原图 2.1. 写法 1 2 3 4 5 6 7 \u0026lt;a href=\u0026#34;images/2026-02-21-12-13-26.png\u0026#34; target=\u0026#34;_blank\u0026#34;\u0026gt; \u0026lt;img src=\u0026#34;images/2026-02-21-12-13-26.png\u0026#34; alt=\u0026#34;image\u0026#34; style=\u0026#34;max-width: 100%; width: 1000px;\u0026#34; /\u0026gt; \u0026lt;/a\u0026gt; 通过 width 控制缩略图的最大显示宽度（单位 px），max-width: 100% 保证在小屏幕上不会溢出。\n2.2. 效果 缩略图清晰，直接展示原图缩放后的效果 点击图片后会在新标签页中打开原图，方便查看细节，关闭标签页即可返回 2.3. 适合场景 图片内容细节丰富，需要让读者能放大查看（如截图、流程图、配置界面等） 希望缩略图尽量清晰 2.4. 配合 Paste Image 自动生成 可以将 Paste Image 插件的 Insert Pattern 改为以下内容，之后粘贴截图时会自动生成方案一的格式，无需手动修改：\n1 2 3 4 \u0026lt;a href=\u0026#34;${imageFilePath}\u0026#34; target=\u0026#34;_blank\u0026#34;\u0026gt; \u0026lt;img src=\u0026#34;${imageFilePath}\u0026#34; alt=\u0026#34;image\u0026#34; style=\u0026#34;max-width: 100%; width: 1000px;\u0026#34;/\u0026gt; \u0026lt;/a\u0026gt; 在 VS Code 中打开设置，搜索 Paste Image: Insert Pattern，将默认值替换为上方内容即可。\n3. 方案二：\u0026lt;div\u0026gt; 容器 + Markdown 图片 —— 通过容器控制宽度 3.1. 写法 1 2 3 \u0026lt;div style=\u0026#34;max-width: 700px; margin: 0 auto;\u0026#34;\u0026gt; ![image](images/2026-02-21-12-13-26.png) \u0026lt;/div\u0026gt; 注意：\u0026lt;div\u0026gt; 标签与 ![image] 之间必须有空行，这里的代码段因为 md 格式问题无法展现，记得自己加上空行，Hugo 才会正确将内部内容识别为 Markdown 并渲染。\n3.2. 效果 图片宽度跟随外层 \u0026lt;div\u0026gt; 的 max-width 决定，修改容器宽度即可调整图片大小 margin: 0 auto 使图片居中显示 缩略图略微模糊，因为浏览器会对 Markdown 渲染出的 \u0026lt;img\u0026gt; 进行拉伸或压缩 3.3. 适合场景 需要将多张图片统一控制在相同宽度 希望保留主题自带的放大效果，同时能控制缩略图尺寸 希望图片居中且大小可控 3.4. 注意事项 如果图片原始宽度比容器 max-width 小，图片会被拉伸放大，可能变模糊，建议 max-width 值不超过图片原始宽度 方案二无法通过 Paste Image 自动生成，需要在使用时手动将图片语法嵌套进 \u0026lt;div\u0026gt; 容器中 Windows 用户：建议同时搜索 Force Unix Style Separator 并勾选，这样生成的路径会是正斜杠 images/xxx.png，网页中图片才能正常加载（否则会是反斜杠 images\\xxx.png，可能 404）。 最后更新：2026-02-21\n","date":"2026-02-21T00:00:00Z","permalink":"https://ysy.fan/p/hugo-stack-image-size-control/","title":"Hugo Theme Stack 进阶：控制图片大小与点击效果"},{"content":"1. 为什么需要手动安装？ Cursor 的插件商店并没有完全同步 VSCode 的所有插件，有些好用的插件可能找不到。比如这次要装的中英文自动空格插件（AutoCorrect），它能让你的文档看起来更规范：\n❌ 格式化前：Cursor是一款基于VSCode的AI编程助手 ✅ 格式化后：Cursor 是一款基于 VSCode 的 AI 编程助手 好消息是，Cursor 完全兼容 VSCode 插件，我们可以通过 .vsix 文件手动安装。\n2. 安装步骤 2.1. 第一步：下载插件文件 点击下载 AutoCorrect 插件：huacnlee.autocorrect-2.6.4.vsix\n💡 这个 .vsix 文件是 VSCode/Cursor 的插件安装包格式，下载到本地即可。\n2.2. 第二步：安装插件 下载完成后，通过拖拽安装插件：\n打开 Cursor 切换到插件界面 将下载的 .vsix 文件直接拖入 插件窗口 2.3. 第三步：使用插件 安装完成后重启 Cursor：\n打开设置 搜索 autocorrect 根据需求调整选项 1 2 3 4 5 6 7 8 1. Autocorrect: Enable 总开关：决定插件是否开启。勾选它，插件才会在后台运行；如果不勾选，整个插件就相当于停用了。 2. Autocorrect: Enable Lint 实时检查提示：勾选后，它会在你编辑时自动检测格式问题，并在有问题的地方（比如“你好World”）下面画波浪线提示你，但不会自动修改，主要是为了让你“看见”哪里有问题。 3. Autocorrect: Format On Save 保存时自动修复（推荐勾选）：这是最核心的功能。勾选后，当你按下保存快捷键（Ctrl+S）时，插件会自动把所有检测到的格式错误瞬间修正（比如自动变成“你好 World”）。 3. 注意事项 手动安装的插件不会自动更新，需要手动下载新版本重新安装 大部分 VSCode 插件都能在 Cursor 中正常使用 如果 Cursor 商店中已有同名插件，建议先卸载再安装 4. 其他插件安装 这个方法适用于所有 VSCode 插件。如果你需要其他插件的 .vsix 文件，可以从 VSCode 插件市场 下载。\n小技巧：掌握手动安装插件的方法，能让你的 Cursor 更加强大！✨\n","date":"2026-02-14T00:00:00Z","permalink":"https://ysy.fan/p/cursor-install-plugin-from-github/","title":"Cursor 手动安装插件教程：中英文自动空格插件"},{"content":"1. 什么是 Nilesoft Shell？ Nilesoft Shell 是一款强大的 Windows 右键菜单自定义工具，让你完全掌控右键菜单的每一个细节。无论是添加常用程序、自定义图标、创建子菜单，还是根据文件类型显示不同选项，Nilesoft Shell 都能轻松实现。\n核心优势：\n✅ 完全免费开源 ✅ 配置灵活强大 ✅ 支持动态菜单和条件显示 ✅ 可自定义图标和样式 ✅ 轻量级，不影响系统性能 接下来，我们以\u0026quot;添加 Cursor 到右键菜单\u0026quot;为例，演示如何使用 Nilesoft Shell。\n2. 安装 Nilesoft Shell 前往官网下载并安装 Nilesoft Shell。安装完成后可能需要重启资源管理器才能看到效果。\n提示：安装时请记住安装路径，后续配置时会用到。\n3. 体验默认功能 安装完成后，右键点击桌面，即可看到 Nilesoft Shell 的默认菜单。默认配置已经包含了许多实用功能，比如快速访问系统工具、文件操作等。\n这只是冰山一角，接下来我们将学习如何自定义菜单！\n4. 认识配置文件 Nilesoft Shell 的所有配置都保存在 shell.nss 文件中。这是一个纯文本配置文件，使用类似 JavaScript 的语法，易读易写。\n进入 Nilesoft 安装目录，找到并打开 shell.nss 文件：\n默认配置内容（建议保存备份，方便出错时恢复）：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 settings { priority=1 exclude.where = !process.is_explorer showdelay = 200 // Options to allow modification of system items modify.remove.duplicate=1 tip.enabled=true } import \u0026#39;imports/theme.nss\u0026#39; import \u0026#39;imports/images.nss\u0026#39; import \u0026#39;imports/modify.nss\u0026#39; menu(mode=\u0026#34;multiple\u0026#34; title=\u0026#34;Pin/Unpin\u0026#34; image=icon.pin) { } menu(mode=\u0026#34;multiple\u0026#34; title=title.more_options image=icon.more_options) { } import \u0026#39;imports/terminal.nss\u0026#39; import \u0026#39;imports/file-manage.nss\u0026#39; import \u0026#39;imports/develop.nss\u0026#39; import \u0026#39;imports/goto.nss\u0026#39; import \u0026#39;imports/taskbar.nss\u0026#39; 5. 基本操作 掌握基本操作是使用 Nilesoft Shell 的第一步。以下是最常用的几个操作。\n5.1. 应用配置修改 每次修改配置文件后，需要重启资源管理器才能使配置生效。\n操作方法：\n在开始菜单搜索 nilesoft 或直接运行安装目录下的 shell.exe 在弹出的窗口中选择 Restart Explorer（重启资源管理器） 三个选项说明：\nRegister：启用 Nilesoft Shell Unregister：停用 Nilesoft Shell Restart Explorer：重启资源管理器（使配置生效） 5.2. 移除菜单项 如果想移除右键菜单中的某个选项，可以使用 remove() 命令。\n语法格式：\n1 remove((find = \u0026#34;菜单上显示的文字\u0026#34;)); 使用示例：\n比如要移除「护眼卫士」这个选项，在配置文件末尾添加：\n1 remove((find = \u0026#34;护眼卫士\u0026#34;)); 保存后重启资源管理器，该选项即可消失。\n⚠️ 注意事项：\n必须一字不差：引号内的文字必须与右键菜单中显示的完全一致（包括空格、符号） 语言匹配：中文系统填中文，英文系统填英文（如 remove(find=\u0026quot;Print\u0026quot;)） 支持模糊匹配：可以使用通配符，如 remove(find=\u0026quot;护眼*\u0026quot;) 移除所有以\u0026quot;护眼\u0026quot;开头的菜单项 5.3. 添加菜单项 添加自定义菜单项是 Nilesoft Shell 的核心功能。根据不同场景，添加方式略有不同。\n5.3.1. 场景一：添加普通应用程序 适用于计算器、记事本等不需要参数的程序。\n语法格式：\n1 item(title=\u0026#39;菜单名\u0026#39; cmd=\u0026#39;程序命令\u0026#39; image=图标) 示例：添加计算器\n1 2 // 添加计算器到右键菜单 item(title=\u0026#39;计算器\u0026#39; cmd=\u0026#39;calc.exe\u0026#39; image=\\uE1E7) 参数说明：\ntitle：菜单中显示的文字 cmd：要执行的程序命令 image：菜单图标（\\uE1E7 是系统内置的计算器图标） 5.3.2. 场景二：添加文件处理工具 适用于需要打开当前选中文件的程序，如编辑器、播放器等。\n关键点：使用 args='\u0026quot;@sel.path\u0026quot;' 将选中的文件路径传递给程序。\n示例：添加 Python 运行\n第一步：获取 Python 路径\n按 Win + R 打开运行，输入 cmd 回车 在命令行中输入：where python 复制显示的路径（如 C:\\Users\\xxxxx\\anaconda3\\python.exe） 第二步：添加配置\n1 2 3 4 5 // 用 Python 运行当前脚本 item(title=\u0026#39;用 Python 运行\u0026#39; cmd=\u0026#39;python\u0026#39; args=\u0026#39;\u0026#34;@sel.path\u0026#34;\u0026#39; image=\u0026#39;C:\\Users\\xxxxx\\anaconda3\\python.exe\u0026#39;) 参数说明：\nargs='\u0026quot;@sel.path\u0026quot;'：将选中文件的完整路径传递给 Python image='...'：程序路径需要加引号，系统会自动提取程序图标 5.3.3. 场景三：添加网址快捷方式 可以将常用网站添加到右键菜单，点击即可打开浏览器。\n示例：添加 Google 搜索\n1 2 3 4 5 6 7 8 // 添加 Google 搜索 item(title=\u0026#39;Google 搜索\u0026#39; cmd=\u0026#39;https://www.google.com/\u0026#39;) // 搜索选中的文本 item(title=\u0026#39;搜索选中内容\u0026#39; cmd=\u0026#39;https://www.google.com/search?q=@sel.text\u0026#39; image=\\uE16F) 参数说明：\n@sel.text：获取选中的文本内容 效果展示：\n6. 进阶操作 掌握基本操作后，我们来学习更强大的功能，让右键菜单更加智能和精准。\n6.1. 条件显示：让菜单项更智能 通过 where 参数，可以让菜单项根据不同条件显示，避免菜单杂乱。\n6.1.1. 语法格式 1 item(where=条件 title=\u0026#39;菜单名\u0026#39; cmd=\u0026#39;命令\u0026#39;) 6.1.2. 根据文件扩展名显示 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // 只在 .py 文件上显示 item(where=sel.ext==\u0026#39;.py\u0026#39; title=\u0026#39;用 Python 运行\u0026#39; cmd=\u0026#39;python\u0026#39; args=\u0026#39;\u0026#34;@sel.path\u0026#34;\u0026#39;) // 只在图片文件上显示（支持多种格式） item(where=sel.ext==\u0026#39;.jpg\u0026#39; or sel.ext==\u0026#39;.png\u0026#39; or sel.ext==\u0026#39;.gif\u0026#39; title=\u0026#39;画图编辑\u0026#39; cmd=\u0026#39;mspaint.exe\u0026#39; args=\u0026#39;\u0026#34;@sel.path\u0026#34;\u0026#39;) // 只在 Markdown 文件上显示 item(where=sel.ext==\u0026#39;.md\u0026#39; title=\u0026#39;用 Typora 打开\u0026#39; cmd=\u0026#39;C:\\Program Files\\Typora\\Typora.exe\u0026#39; args=\u0026#39;\u0026#34;@sel.path\u0026#34;\u0026#39;) 6.1.3. 根据选择类型显示 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // 只在选中文件时显示（不包括文件夹） item(where=sel.type==1 title=\u0026#39;Google 搜索文件名\u0026#39; cmd=\u0026#39;https://www.google.com/search?q=@sel.name\u0026#39;) // 只在选中文件夹时显示 item(where=sel.type==2 title=\u0026#39;在此处打开 CMD\u0026#39; cmd=\u0026#39;cmd.exe\u0026#39; args=\u0026#39;/K cd /d \u0026#34;@sel.path\u0026#34;\u0026#39;) // 只在空白处显示（没有选中任何东西） item(where=sel.count==0 title=\u0026#39;计算器\u0026#39; cmd=\u0026#39;calc.exe\u0026#39;) 6.1.4. 根据文件数量显示 1 2 3 4 5 6 7 8 9 10 // 只在选中单个文件时显示 item(where=sel.count==1 title=\u0026#39;查看文件属性\u0026#39; cmd=\u0026#39;explorer.exe\u0026#39; args=\u0026#39;/select,\u0026#34;@sel.path\u0026#34;\u0026#39;) // 选中多个文件时显示 item(where=sel.count\u0026gt;1 title=\u0026#39;批量处理\u0026#39; cmd=\u0026#39;你的批量处理工具路径\u0026#39;) 6.1.5. 组合条件 1 2 3 4 5 // Python 文件 且 只选中一个文件 item(where=sel.ext==\u0026#39;.py\u0026#39; and sel.count==1 title=\u0026#39;调试此脚本\u0026#39; cmd=\u0026#39;python\u0026#39; args=\u0026#39;-m pdb \u0026#34;@sel.path\u0026#34;\u0026#39;) 6.1.6. 实战案例：智能编辑器菜单 根据不同文件类型，自动调用相应的编辑器：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // Markdown 文件用 Typora 打开 item(where=sel.ext==\u0026#39;.md\u0026#39; title=\u0026#39;Typora 编辑\u0026#39; cmd=\u0026#39;C:\\Program Files\\Typora\\Typora.exe\u0026#39; args=\u0026#39;\u0026#34;@sel.path\u0026#34;\u0026#39;) // 代码文件用 VSCode 打开 item(where=sel.ext==\u0026#39;.py\u0026#39; or sel.ext==\u0026#39;.js\u0026#39; or sel.ext==\u0026#39;.html\u0026#39; title=\u0026#39;VSCode 编辑\u0026#39; cmd=\u0026#39;C:\\Users\\你的用户名\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\u0026#39; args=\u0026#39;\u0026#34;@sel.path\u0026#34;\u0026#39;) // 文本文件用记事本打开 item(where=sel.ext==\u0026#39;.txt\u0026#39; title=\u0026#39;记事本编辑\u0026#39; cmd=\u0026#39;notepad.exe\u0026#39; args=\u0026#39;\u0026#34;@sel.path\u0026#34;\u0026#39;) 6.2. 创建子菜单：让菜单更整洁 当自定义菜单项越来越多时，可以用子菜单进行分组，保持菜单简洁。\n6.2.1. 基本语法 1 2 3 4 5 6 menu(title=\u0026#39;菜单组名\u0026#39; image=图标) { item(title=\u0026#39;选项 1\u0026#39; cmd=\u0026#39;...\u0026#39;) item(title=\u0026#39;选项 2\u0026#39; cmd=\u0026#39;...\u0026#39;) sep // 分隔线 item(title=\u0026#39;选项 3\u0026#39; cmd=\u0026#39;...\u0026#39;) } 6.2.2. 实战案例：开发工具菜单 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 // 创建\u0026#34;开发工具\u0026#34;子菜单 menu(title=\u0026#39;开发工具\u0026#39; image=\\uE26C) { item(title=\u0026#39;Cursor\u0026#39; cmd=\u0026#39;C:\\Users\\你的用户名\\AppData\\Local\\Programs\\cursor\\Cursor.exe\u0026#39; args=\u0026#39;\u0026#34;@sel.path\u0026#34;\u0026#39;) item(title=\u0026#39;VSCode\u0026#39; cmd=\u0026#39;C:\\Users\\你的用户名\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\u0026#39; args=\u0026#39;\u0026#34;@sel.path\u0026#34;\u0026#39;) sep // 添加分隔线 item(title=\u0026#39;Git Bash\u0026#39; cmd=\u0026#39;C:\\Program Files\\Git\\git-bash.exe\u0026#39; args=\u0026#39;\u0026#34;@sel.path\u0026#34;\u0026#39;) } 效果：右键菜单会显示\u0026quot;开发工具\u0026quot;，点击后展开包含多个选项的二级菜单。\n6.3. 添加分隔线：让菜单更清晰 使用 sep 在菜单项之间添加分隔线，让菜单结构更清晰。\n1 2 3 4 item(title=\u0026#39;选项 1\u0026#39; cmd=\u0026#39;...\u0026#39;) item(title=\u0026#39;选项 2\u0026#39; cmd=\u0026#39;...\u0026#39;) sep // 添加分隔线 item(title=\u0026#39;选项 3\u0026#39; cmd=\u0026#39;...\u0026#39;) 6.4. 图标使用技巧 图标可以让菜单更美观易识别。Nilesoft Shell 支持三种图标添加方式。\n6.4.1. 方式一：使用程序自带图标（推荐） 直接使用程序的 .exe 文件路径，系统会自动提取图标。\n1 2 3 4 // 使用程序自带图标 item(title=\u0026#39;Cursor\u0026#39; cmd=\u0026#39;C:\\Users\\xxxxx\\AppData\\Local\\Programs\\cursor\\Cursor.exe\u0026#39; image=\u0026#39;C:\\Users\\xxxxx\\AppData\\Local\\Programs\\cursor\\Cursor.exe\u0026#39;) 优点：图标与程序完全匹配，视觉统一。\n6.4.2. 方式二：使用 Unicode 图标代码 使用 Windows 内置的 Segoe MDL2 Assets 字体图标。\n1 2 // 使用系统内置图标 item(title=\u0026#39;计算器\u0026#39; cmd=\u0026#39;calc.exe\u0026#39; image=\\uE1E7) 常用图标代码：\n图标代码 效果 适用场景 \\uE1E7 计算器 计算器 \\uE26C 代码 编程工具 \\uE943 文档 文本编辑 \\uE713 设置 系统设置 \\uE768 播放 媒体播放 \\uE16F 搜索 搜索功能 ⚠️ 重要提示：Unicode 图标代码不要加引号，直接使用！\n1 2 3 4 5 // ✅ 正确写法 image=\\uE1E7 // ❌ 错误写法（加引号图标不显示） image=\u0026#39;\\uE1E7\u0026#39; 6.4.3. 方式三：不使用图标 如果不需要图标，直接省略 image 参数即可。\n1 2 // 不使用图标 item(title=\u0026#39;我的工具\u0026#39; cmd=\u0026#39;...\u0026#39;) 6.5. 常用变量和属性 在配置中可以使用丰富的变量和属性来获取上下文信息。\n6.5.1. 选择对象相关变量（@sel） 基础路径变量：\n变量 说明 示例值 @sel.path 选中项的完整路径 C:\\Users\\xxx\\file.txt @sel.name 文件名（含扩展名） file.txt @sel.title 文件名（不含扩展名） file @sel.ext 文件扩展名 .txt @sel.parent 父文件夹路径 C:\\Users\\xxx @sel.parent.name 父文件夹名称 xxx @sel.root 根目录路径 C:\\ 条件判断属性：\n属性 说明 可能值 sel.count 选中的文件数量 0, 1, 2, 3\u0026hellip; sel.type 选择类型（见下表） 数字代码 其他实用变量：\n变量 说明 示例 @sel.text 选中的文本内容 被选中的文字 @sel.file 仅文件的路径（排除文件夹） C:\\file.txt @sel.directory 仅文件夹的路径（排除文件） C:\\folder @sel.curdir 当前工作目录 C:\\Users\\xxx 6.5.2. 类型判断（type 属性） 在 where 条件中，可以使用 type 属性精确控制菜单显示：\n类型值 说明 使用示例 file 文件 where=sel.type==file dir / directory 文件夹 where=sel.type==dir drive 驱动器 where=sel.type==drive fixed 固定磁盘（如硬盘） where=sel.type==fixed removable 可移动磁盘（如 U 盘） where=sel.type==removable usb USB 设备 where=sel.type==usb dvd DVD 驱动器 where=sel.type==dvd remote 网络驱动器 where=sel.type==remote vhd 虚拟硬盘 where=sel.type==vhd desktop 桌面 where=sel.type==desktop recyclebin 回收站 where=sel.type==recyclebin taskbar 任务栏 where=sel.type==taskbar 实战示例：\n1 2 3 4 5 6 7 8 // 只在 U 盘上显示 item(where=sel.type==usb title=\u0026#39;安全弹出 U 盘\u0026#39; cmd=\u0026#39;...\u0026#39;) // 只在回收站显示 item(where=sel.type==recyclebin title=\u0026#39;清空回收站\u0026#39; cmd=\u0026#39;...\u0026#39;) // 排除网络驱动器 item(where=sel.type!=remote title=\u0026#39;本地文件操作\u0026#39; cmd=\u0026#39;...\u0026#39;) 6.5.3. 完整变量列表 以上仅列出常用变量。Nilesoft Shell 还提供了更多高级变量和函数，包括：\n文件元数据获取（sel.meta()） 快捷方式信息（sel.lnk） 路径长度检测（sel.path.length） 只读/隐藏属性判断（sel.readonly, sel.hidden） 等等\u0026hellip; 查看完整文档：\nsel 函数完整文档 配置属性完整文档 表达式和变量 7. 默认配置汉化 Nilesoft Shell 默认菜单为英文，对中文用户不够友好。下面提供文件管理和**快速跳转（Go to）**两个菜单的汉化配置，可直接替换使用。\n7.1. 下载汉化文件 点击下方菜单名称即可下载对应汉化配置（浏览器会下载 .nss 文件）：\n对应菜单 说明 file-manage.nss 复制路径、重命名、在新窗口打开等文件与文件夹操作 goto.nss 桌面、下载、文档、控制面板、设置等系统常用入口 7.2. 替换与生效 替换原文件：打开 Nilesoft Shell 安装目录下的 imports 文件夹（即 nilesoft\\imports），将下载好的 file-manage.nss 和 goto.nss 拖入，若提示已存在同名文件则选择替换。 生效：在 Nilesoft Shell 中执行 Restart Explorer（重启资源管理器）后即可看到汉化效果。 8. 常见问题 8.1. 新增选项没有出现，且菜单风格变差 症状示例：\n原因分析：\n配置文件语法错误导致 Nilesoft Shell 加载失败，系统回退到默认右键菜单。\n解决方法：\n逐步排查：删除最近添加的配置，重启资源管理器测试 常见错误： 程序路径未加引号（如 image=C:\\xxx\\xxx.exe 应改为 image='C:\\xxx\\xxx.exe'） Unicode 图标错误加了引号（如 image='\\uE1E7' 应改为 image=\\uE1E7） 括号、引号未正确闭合 恢复备份：如果改乱了，使用前面保存的默认配置恢复 调试技巧：\n每次只添加一个配置，测试无误后再添加下一个 养成备份配置文件的习惯 注意检查中英文标点符号（要用英文标点） 9. 总结 Nilesoft Shell 是一款功能强大的右键菜单定制工具，通过简单的配置文件即可打造出完全符合个人工作流的右键菜单。\n核心要点：\n使用 remove() 移除不需要的菜单项 使用 item() 添加自定义菜单项 使用 where 参数实现条件显示 使用 menu() 创建子菜单分组 每次修改后记得重启资源管理器 掌握这些技巧，你的 Windows 右键菜单将变得更加高效、整洁、个性化！\n10. 相关资源 Nilesoft Shell 官网 Nilesoft Shell GitHub 官方配置文档 Segoe MDL2 图标列表 ","date":"2026-02-14T00:00:00Z","permalink":"https://ysy.fan/p/nilesoft-shell-win11-right-click/","title":"Nilesoft Shell：打造个性化 Win11 右键菜单"},{"content":"1. 为什么需要直角引号？ 在中文排版中，直角引号「」和『』比普通引号 \u0026quot;\u0026quot; 更加规范和美观，特别适合用于：\n📝 学术论文和正式文档 📖 书籍和杂志排版 🎨 设计作品中的文字说明 💬 强调引用内容时 相比普通的弯引号，直角引号在视觉上更加醒目，也更符合传统中文排版规范。\n2. 直角引号的区别 普通引号：\u0026quot;\u0026quot;、'' 直角引号：「」、『』 使用规则：\n「」用于第一层引用（相当于双引号 \u0026ldquo;\u0026quot;） 『』用于第二层引用，即引用中的引用（相当于单引号 \u0026lsquo;\u0026rsquo;） 示例：他说「这本书里写着『天行健，君子以自强不息』」\n3. 设置方法 3.1. 第一步：开启自定义短语功能 打开搜狗输入法设置界面，选择属性设置-\u0026gt;高级，勾选自定义短语。\n3.2. 第二步：添加新短语 进入自定义短语设置，点击添加新短语。\n3.3. 第三步：设置直角引号「」 缩写可以自拟，这里我用 \u0026ldquo;syh\u0026rdquo; 意指\u0026quot;第一层引号\u0026rdquo;，下方文本框输入直角引号「」即可。\n3.4. 第四步：使用效果 以后输入 syh 即可快速打出直角引号「」。\n3.5. 第五步：添加嵌套引号『』 同理可以添加第二层引号『』，用于引用中的引用。\n4. 总结 通过搜狗输入法的自定义短语功能，我们可以快速输入直角引号，让中文文档的排版更加规范美观。你也可以用同样的方法添加其他常用符号，提升输入效率！\n","date":"2026-02-14T00:00:00Z","permalink":"https://ysy.fan/p/sogou-corner-brackets/","title":"搜狗输入法自定义短语：快速输入直角引号"},{"content":" 适用对象：东北大学秦皇岛分校（NEU Qinhuangdao）在校学生 认证优势：免费使用 GitHub Pro、JetBrains 全家桶、Azure 学生订阅等价值上千美元的开发者工具\n1. 前言 GitHub Student Developer Pack 为学生提供了丰富的免费开发工具和服务。本指南基于东秦学生的实际申请经验编写，特别记录了\u0026quot;修改浏览器定位\u0026quot;这一解决认证失败的关键技巧，希望帮助同学们顺利通过认证。\n2. 东北大学总校学生邮箱的注册与激活 申请 GitHub 学生包需要使用学校提供的教育邮箱。对于东秦学生，我们需要注册并激活东北大学总校的邮箱（后缀为 @mails.neu.edu.cn）。\n2.1. 前情提要 在操作过程中，如果遇到网站加载缓慢、转圈半天然后报错的情况，这通常是学校网站维护或网络波动，并非您的操作问题。请不要焦躁，稍作休息，等一会儿再回来尝试。\n2.2. 进入邮箱系统与初步尝试 首先，请在浏览器中访问东北大学邮件系统：\nhttps://mails.neu.edu.cn/coremail/\n在登录框下方找到并点击 新生注册。\n注意：无论您是大一新生还是大四老生，只要您之前没有注册过这个邮箱账号，都必须点击“新生注册”入口。 2.3. 统一身份认证与密码重置 点击注册后，系统会跳转到“统一身份认证”界面。由于大多数同学不清楚默认密码或已遗忘，我们需要直接走密码重置流程。\n2.3.1. 进入重置流程 在登录框下方，点击 忘记密码。 2.3.2. 验证账号信息 账号：输入您的东秦学号（账号是互通的）。 手机：使用您在东秦校园账号绑定的手机号。 输入图形验证码，点击 下一步。 2.3.3. 设置新密码 系统会向您的手机发送 6 位动态验证码，填入验证码。 设置一个新的密码（请务必记住，后续登录全靠它）。 点击 完成。 2.4. 二次进入注册流程 密码重置成功后，不要直接登录，我们需要重新走一遍注册入口。\n再次回到邮箱系统首页：https://mails.neu.edu.cn/coremail/ 再次点击 新生注册。 在跳转出的统一身份认证界面，使用您的 学号 和 刚才重置的新密码 进行登录。 到了绑定邮箱这个界面后，保留这个界面，继续下一步 2.5. 第三次进入注册流程 输入网址再回到登录界面，再次点击新生注册\n1 https://mails.neu.edu.cn/coremail/ 登录成功后，会进入“新生注册”的信息填写页面，请完善以下信息：\n您的姓名：确认无误。 您的学号：确认无误。 您的邮箱：设置您的邮箱前缀。 邮箱密码：设置邮箱的独立密码。 确认密码：再次输入。 手机号码：填入手机号并获取验证码。 填写完毕后，点击 提交信息。 2.6. 登录邮箱（关键避坑点） 注册提交后，可能会遇到一个坑：如果直接使用刚才注册的“邮箱账号 + 邮箱密码”登录，系统可能会提示失败或进不去（可能是系统适配问题）。\n正确登录方式：\n回到邮箱登录首页。 即使已经注册好了，也不要直接输账号密码。 点击登录框上方的 统一身份认证登录 选项卡。 使用 学号 和 统一身份认证密码 进行登录。 成功登录后，您将看到邮箱主界面。请点击左上角头像，确认您的邮箱地址后缀为 @mails.neu.edu.cn。至此，教育邮箱准备工作完成 3. GitHub 账号的标准化配置 拥有了教育邮箱后，我们需要将其绑定到 GitHub 账号上，并完成官方要求的安全设置（2FA）以及个人资料的“学生化”包装。\n3.1. 准备工作：网络环境配置 在登录 GitHub 之前，有一个非常重要的细节需要注意。 根据实测经验，建议开启 Steam++ (Watt Toolkit) 来加速 GitHub。\n避坑指南：尽量避免使用其他普通的梯子或代理工具，因为 GitHub 的风控系统可能会检测到 IP 异常，从而影响最终的认证结果。 3.2. 绑定教育邮箱 3.2.1. 进入设置页面 访问 GitHub 官网：https://github.com/ 登录您的 GitHub 账号（如果没有账号请先注册）。 点击右上角的头像，在下拉菜单中选择 Settings (设置)。 3.2.2. 添加邮箱 在左侧菜单栏中找到并点击 Emails。 在 \u0026ldquo;Add email address\u0026rdquo; 输入框中，填入您在第一章注册好的学生邮箱（例如 yourname@mails.neu.edu.cn）。 点击 Add 按钮。 之后点击认证一下，GitHub 会向您的学生邮箱发送一封验证邮件。请登录您的学生邮箱，找到邮件并点击验证链接。 找到 Keep my email addresses private 选项。 务必取消勾选（保持 Off 状态）。如果不关闭这个选项，GitHub 在审核时可能无法读取到您的学生邮箱，导致认证失败。 3.3. 开启双重认证 (2FA) GitHub 现在强制要求开启 2FA (Two-factor authentication) 才能进行某些操作，这也是申请学生包的硬性门槛。\n3.3.1. 启用入口 在左侧菜单栏点击 Password and authentication。 向下滚动找到 \u0026ldquo;Two-factor authentication\u0026rdquo; 区域。 点击 Enable two-factor authentication 按钮。 3.3.2. 配置身份验证器 页面会显示一个二维码。 请在手机上下载并安装 Microsoft Authenticator (或其他类似软件)。 打开手机 App，扫描屏幕上的二维码。 App 会生成一个 6 位数的动态验证码，将其填入 GitHub 网页的输入框中。 保存恢复代码：系统会生成一组 Recovery Codes（恢复代码），请务必下载并妥善保存。如果您丢失了手机或误删了 App，这是找回账号的唯一凭证。 3.4. 完善个人资料 (关键加分项) 为了证明您的“真实学生身份”，我们需要将个人资料修改为符合东秦学生特征的标准格式。\n在左侧菜单栏点击 Public profile，按照以下标准填写：\n3.4.1. Name (姓名) 格式：名 姓 (拼音)\n示例：如果您叫张三丰，请填 Sanfeng Zhang。\n注意：不要填昵称，要填真实姓名的拼音，与学生证/校园卡保持一致。\n3.4.2. Bio (简介) 建议：用英文简单描述一下您的身份。\n示例：Student from School of Computer Science and Engineering, majoring in Software Engineering.\n3.4.3. URL (链接) 填入东秦官网地址：https://www.neuq.edu.cn/ 3.4.4. Company (学校/机构) 必须严格填写东秦的英文全称：\n内容：Northeastern University at Qinhuangdao\n注意：不要填简写，也不要只填东北大学总校的名字，要精确到秦皇岛分校。\n3.4.5. Location (地区) 内容：China 填写完毕后，点击页面底部的 Update profile 保存修改\n4. 完善账单信息 在正式提交学生认证申请之前，我们需要先完善 GitHub 的账单信息（Payment information）。这一步非常关键，因为 GitHub 会校验这里的“名义地址”是否与你的学校所在地（秦皇岛）一致。\n4.1. 填写账单信息 (关键) 4.1.1. 进入入口 点击 GitHub 页面右上角的头像，选择 Settings。 在左侧菜单栏找到 Access 区域，点击 Billing and licensing。 在展开的子菜单中，点击 Payment information。 4.1.2. 填写规范 (请严格照抄) 请参照以下标准进行填写，确保与第二章的个人资料保持高度一致：\nFirst name / Last name (姓名)\n格式：名 姓 (拼音) 示例：如果您叫张三丰，这里填 Sanfeng 后面填 Zhang。 警告：必须填真实姓名的拼音，严禁使用昵称或中文。 Company (公司/学校)\n这里的输入框可能自动同步了个人资料，如果没有，请手动填入： Northeastern University at Qinhuangdao Address (街道地址)\n内容：Northeastern University at Qinhuangdao 注意：必须填东秦的英文全称。 City (城市)\n内容：Qinhuangdao State/Province (省份)\n内容：Hebei Province Country/Region (国家/地区)\n选择：China 确认所有信息无误后，点击底部的 Save billing information 保存。\n5. 开始申请流程，解决定位问题与上传凭证（核心章节） 5.1. 进入教育优惠申请入口 5.1.1. 找到入口 依然在左侧 Billing and licensing 菜单下。 点击 Education benefits。 在页面右侧找到并找到绿色的 Start an application 按钮，但是先不要点击，先看下一步。 GitHub 会校验您的物理位置是否在学校附近。如果您身处校外（如寒暑假在家），或者校园网定位不准，直接申请很可能导致认证失败。\n请务必按照以下“修改浏览器定位”的流程操作：\n5.1.2. 打开开发者工具 在当前申请页面，按键盘上的 F12 键（打开开发者工具）。 保持开发者工具开启，不要关闭。 5.1.3. 调出传感器 (Sensors) 面板 在开发者工具窗口中，先点击顶部的 Network (网络) 选项卡。 点击右上角的 三个点 图标（更多选项）。 在下拉菜单中选择 More tools (更多工具)。 在子菜单中选择 Sensors (传感器)。 此时，界面下方会出现一个 Sensors 面板。 5.1.4. 输入东大坐标参数 (严格照抄) 在 Sensors 面板中进行如下设置：\nLocation: 在下拉框中选择 Other\u0026hellip; Latitude (纬度): 输入 41.7636 Longitude (经度): 输入 123.4113 Timezone ID: 输入 Asia/Shanghai Locale: 输入 zh-Hans-CN Accuracy: 输入 150 5.1.5. 刷新页面生效 保持开发者工具（F12）和 Sensors 面板处于开启状态（这一点非常重要，不能关）。 后续截图虽然没有截入开发者工具面板，但是一定不能关 点击浏览器左上角的 刷新 按钮。 页面刷新后，点击绿色的 Start an application 按钮。 5.2. 确认身份信息 5.2.1. 选择角色 Select your role in education: 选择 Student (学生)。 5.2.2. 确认学校关联 由于我们在第二章已经绑定了 @mails.neu.edu.cn 的邮箱，系统会自动识别出学校。\n界面通常会提示：You have verified the email address \u0026hellip; associated with the school Northeastern University, China.\n此时直接点击 Continue (继续) 即可。\n点击 Continue 后，再点击 Share Location（分享定位）。\n5.3. 上传学生证件 定位通过后，页面下方会出现证件上传区域。\n5.3.1. 选择凭证类型 在 Please select the type of proof you would like to provide 下拉菜单中，选择：\nDated school ID - Good (有日期的学生证) 5.3.2. 拍照上传 浏览器会请求使用摄像头，请务必点击 允许。 拿出您的 东北大学秦皇岛分校一卡通（校园卡）。 拍摄要求： 拍摄印有 人像照片 的那一面。 确保光线充足，文字清晰可见。 手持卡片对准摄像头（第二次点击通常有 3 秒延迟拍摄）。 亲测饭卡（一卡通）是可行的。 5.4. 提交与审核结果 5.4.1. 提交申请 照片上传无误后，点击底部的 Submit 提交申请。\n5.4.2. 查看审核状态 提交后页面会显示审核状态，一般 3-4 分钟 即可出结果，请刷新页面查看：\nApproved (绿色)：恭喜！认证通过。页面提示福利将在 72 小时内到账。 Denied (红色)：认证失败。系统会提示具体原因（如图像不清、定位不符等），请根据提示修正后重新尝试。 6. 参考资料 GitHub Education 官方网站 GitHub Student Developer Pack 福利列表 ","date":"2026-02-13T00:00:00Z","permalink":"https://ysy.fan/p/github-student-pack-neu-qhd/","title":"东秦学生申请 GitHub 学生认证完全指南"},{"content":"1. 联邦遗忘学习 1.1 机器遗忘的本质 在机器遗忘学习（Machine Unlearning）的语境下，所谓\u0026quot;遗忘数据\u0026quot;，并非指在物理存储介质上删除原始数据文件，而是指对模型的权重参数进行定向修改，使模型的行为表现等价于从未在该数据上进行过训练。这一过程的核心目标是消除特定样本对模型参数分布的影响，同时尽可能保留模型在剩余数据上的泛化能力。\n1.2 主流遗忘范式 学术界目前主流的遗忘方法大致可归纳为以下三类范式：\n精确遗忘 / 重训练（Exact Unlearning / Retraining）：将待遗忘样本从原始训练集中物理移除后，对模型从零开始重新训练。该方法遗忘效果最为彻底，理论上不存在任何残留影响，但在联邦学习场景下代价极高——每次遗忘请求都需要所有参与节点同步进行完整重训，通信开销与算力开销均难以承受。\n近似遗忘（Approximate Unlearning）：当前论文中最常见的方法路线，核心思想是\u0026quot;逆向消除梯度贡献\u0026quot;。模型训练阶段通过梯度下降记忆数据特征，遗忘阶段则对应地施加梯度上升（Gradient Ascent）或注入特定噪声，以反向抵消目标样本当初对模型参数造成的更新量。在公平性场景下，该范式还可通过构造针对敏感属性（如性别、种族）的公平性损失函数，向模型注入反向梯度，冲刷偏置权重，实现对敏感特征的脱敏处理。\n分片隔离（Sharding / SISA）：联邦学习场景下的专属优化方案。其核心思路是将训练数据与模型参数按一定策略切分为若干独立的\u0026quot;碎片（Shard）\u0026quot;，避免所有数据混合训练。当某客户端发起遗忘请求时，服务端仅需对涉及该数据的特定碎片执行重训，其余碎片保持不变，从而在保证遗忘效果的同时大幅降低计算与通信开销。\n2. 主动学习 2.1 主动学习的动机 在传统监督学习中，模型训练依赖大量已标注数据的一次性输入。然而在现实场景中，未标注数据（如互联网上的海量图片、文本）获取成本极低，而人工标注（如由医学专家逐一标注影像中的病灶位置）却代价高昂、耗时极长。\n主动学习（Active Learning） 正是为了解决这一\u0026quot;标注成本\u0026quot;瓶颈而提出的学习范式：通过让模型主动挑选最有价值的样本交由专家标注，在有限的标注预算内最大化模型性能的提升。\n2.2 主动学习的核心流程 主动学习可以类比为**\u0026ldquo;学生主动向老师提问\u0026rdquo;**的过程——模型不是被动地接受所有数据，而是主动挑出自己最困惑的问题寻求解答。其标准流程如下：\n初始化：使用少量人工标注数据训练一个初始基础模型； 主动查询（Query Strategy）：基础模型扫描海量未标注数据，依据特定策略（如熵值最大、置信度最低）挑选出信息量最大、对当前模型最具挑战性的少数样本； 专家标注（Oracle）：将挑选出的样本交由人类专家（论文中称为 Oracle）打上真实标签； 模型更新：将新标注的高价值样本加入训练集，重新训练或微调模型； 循环迭代：重复步骤 2–4，直至模型性能达标或标注预算耗尽。 主动学习的核心假设是：并非所有数据对模型的贡献是等价的。少数关键样本所携带的信息量，可能远超大量普通样本。因此，有策略地选择标注对象，能够以远低于全量标注的成本达到相近甚至更优的模型效果。\n","date":"2026-02-13T00:00:00Z","permalink":"https://ysy.fan/p/federated-unlearning-fundamentals/","title":"联邦遗忘学习基础知识"},{"content":" 学术声明 / Academic Statement 本文是个人学习笔记，仅用于学术交流和知识分享，非商业用途。 文中观点为作者个人理解和分析，不代表原论文作者立场。 如需引用原论文，请查阅官方出版版本。 版权归原论文作者和 IEEE 所有。\n1. 论文基本信息 标题：FedEditor: Efficient and Effective Federated Unlearning in Cooperative Intelligent Transportation Systems 作者：Xiaohan Yuan, Jiqiang Liu, Bin Wang, Guorong Chen, Xiangrui Xu, Junyong Wang, Tao Li, Wei Wang 单位：Beijing Jiaotong University, Haihe Lab of ITAI 发表期刊：IEEE Transactions on Information Forensics and Security, Vol. 20, 2025 页码：6560-6575 DOI：10.1109/TIFS.2025.3583231 GitHub：https://github.com/XXiaoY/Fededitor 论文作者如下 Xiaohan Yuan, Jiqiang Liu(北京交通大学网络空间安全学院院长), Bin Wang, Guorong Chen, Xiangrui Xu, Junyong Wang, Tao Li(海河实验室副主任), Wei Wang(北京交通大学计算机科学与技术学院的正教授)\n其中除了刘吉强是北京交通大学网络空间安全学院院长，王伟是北京交通大学计算机科学与技术学院的正教授，李涛是海河实验室副主任，其他人都是背景交通大学的学生以及海河实验室的工作人员，在致谢中作者感谢了海河实验室，所以大体是 Xiaohan Yuan 承担了大部分工作，王伟和刘吉强提供指导，海河实验室提供资源\nXiaohan Yuan 是论文一作，北京交通大学博士在读，在智能交通安全与隐私北京重点实验室，可以看到几乎每篇论文都有王伟的身影，王伟应该是她的导师，他的方向和王伟大体一致，然后这些论文实验室的学生轮流一作\n王伟教授 主要方向是联邦学习与车联网，智能交通安全和 AI 对抗\n2. 背景与痛点 在车联网时代，AI 模型极其依赖海量数据的训练。但随之而来的是严峻的隐私挑战。 随着 GDPR 等法规的出台，‘被遗忘权’成了硬性指标。无论是用户要求删除隐私数据，还是我们发现某批数据被恶意投毒，系统都必须具备一种能力：从训练好的模型中，干净彻底地剥离掉特定数据的影响。\n左边展示了联邦忘却学习在车联网中的标准流程，目标车辆在发起遗忘请求后，服务器将全局模型分发给所有客户端，目标车辆对模型进行修改，剩余车辆则继续进行本地训练，最后所有车辆把修改后的模型传回服务器，服务器对所有客户端的模型进行聚合后得到遗忘后的全局模型。\n虽然流程已经定型，但是细节上却出现了各种问题，首先对于被动遗忘算法来说，他需要服务器带着所有客户端回退模型版本同时依靠剩余数据进行多轮重训，虽然他确实能达到较好的遗忘效果以及保持剩余数据预测的精确度，但是他需要所有客户端在线且耗时间很长，这对于车联网的应用场景是不可接受的，首先路况瞬息万变，长时间的训练会导致客户端无法及时获取最新的数据，不能及时应对变化的路况，其次车辆与服务器间的带宽无法支撑如此大规模的数据传输，最后，服务器无法确保能联系到所有车辆，如果车辆开上高速或开进山村，这都会导致服务器和车辆失联，所以被动联邦遗忘学习无法适用协作智能交通系统的场景。\n而主动联邦遗忘算法，因为缺乏明确的优化目标，只能笼统的进行优化，这就可能会导致模型为达到遗忘的目标大幅修改参数，最终导致数据遗忘不彻底，或者是剩余数据灾难性遗忘的结果。为此有人提出对参数的修改范围进行界定，通过预设阈值的方法尝试使遗忘模型和原始模型对剩余数据的表现一致，但由于缺乏先验知识，没人清楚删除待遗忘数据后的模型参数长什么样，所以这个阈值难以设定。\n为此，我们提出了 FedEditor 算法，首先在定位上他是一个高效的主动遗忘算法，与被动重训不同，它允许车辆在本地主动进行修改，其次在方法上 FedEditor 创新性的提出了表征层面的局部遗忘策略 他包含两个核心部件，一个是目标导向遗忘，他通过引入错误质心来作为目标，解决了我们刚才提到的缺乏目标的问题，另一个是模型性能修复，他利用剩余数据和正则化约束保护模型的关键知识，防止灾难性遗忘 接下来我们将详细讲解算法细节\n3. 算法核心思路 论文首先回顾了集中式场景下的传统机器遗忘方法。尽管这些方法均面向拥有完整数据的单体服务器设计，但其核心思路为联邦遗忘提供了重要参考，大致可分为两类：\n精确遗忘的代表是 SISA 框架，其核心策略是数据分片：将训练数据预先切分为若干独立子集，当遗忘请求到来时，仅需对包含目标数据的子模型进行重训，而无需重训整个模型，从而显著降低了时间开销。\n近似遗忘则放弃完全重训的追求，转而通过直接修改模型参数来近似达到遗忘效果。典型方法包括：决策边界收缩与扩展，针对分类器进行微调，通过调整决策边界来消除目标数据的影响；以及参数分布对齐，通过调整当前模型的参数分布，使其尽量逼近一个从未见过遗忘数据的理想模型。\n然而，上述方法均基于集中式数据假设，无法直接迁移到数据分散、通信受限的车联网联邦学习场景，这也正是本文需要解决的核心问题。\n当前联邦遗忘算法可分为被动联邦遗忘与主动联邦遗忘两大类。\n被动联邦遗忘依赖服务器协调所有客户端共同执行遗忘操作，主要方法有两种：其一是 FedEraser，它不再对模型进行完全重训，而是利用历史梯度更新记录进行参数回溯，再引导剩余客户端在当前基础上进行多轮校准训练，从而间接消除目标数据在历史更新中留下的影响；其二是文献 [17] 提出的贡献回滚方案，服务器持续记录每个客户端的参数贡献量，遗忘时直接撤销目标客户端的历史贡献，再对全局模型进行修复。然而，被动联邦遗忘对服务器的持续在线和大量通信开销有较强依赖，难以适应车联网的动态连接环境。\n主动联邦遗忘则由客户端在本地独立完成遗忘操作，无需服务器深度介入。最直接的思路是梯度上升（Gradient Ascent）：既然模型通过梯度下降\u0026quot;记住\u0026quot;了训练数据，反向施加梯度上升便能让模型\u0026quot;忘记\u0026quot;目标数据。但纯粹的梯度上升副作用显著，容易在消除目标数据影响的同时破坏模型在剩余数据上的知识，因此后续工作引入了 EWC（Elastic Weight Consolidation） 正则化约束，对参数修改幅度加以限制，以保护关键权重不被过度扰动。此外，文献 [27] 提出的方法与本文的 FedEditor 有异曲同工之妙：该方法通过 KL 散度约束遗忘数据的输出分布，使当前模型的行为趋近于一个从未见过目标数据的理想模型。两者的关键区别在于作用层次——文献 [27] 的约束作用于分类器的输出层，而 FedEditor 则直接干预更底层的特征提取器，实现表征层面的精准遗忘。\n通过对上述方法的系统梳理，FedEditor 的设计目标逐渐清晰：遗忘要彻底（目标数据的影响须被完全消除）、知识要保留（模型在剩余数据上的性能不能出现灾难性下降）、效率要高（在车联网这种实时性要求极高的场景下，遗忘过程必须足够轻量和快速）。\n具体来说，我们需要通过高效的遗忘算法生成一个遗忘模型，使其在性能和行为上尽可能接近理想的“理想模型”（即完全移除目标数据后重新训练得到的模型）。其核心思想是通过特定手段，使遗忘后的模型在待遗忘数据上的表现与对非成员数据类似。从评估角度来看，是否成功遗忘的标准通常采用成员推理攻击：训练一个判别模型来区分数据是否为成员。如果新模型能够有效误导该判别器，使其将待遗忘数据识别为非成员，则视为遗忘成功。同时，新的模型还需确保对其他数据的准确性不受影响，也就是说，其特征提取结果需与原模型高度一致，实现知识的完整保留。\n然而，传统的被动联邦遗忘算法由于耗时过长难以满足实际需求，而梯度上升方法效果也有限——在模型过拟合时难以彻底遗忘目标数据，正常情况下又容易经过多轮训练后导致剩余知识的灾难性遗忘。面对这些局限，作者选择突破常规，创新性地提出了全新的解决思路。\n前面提到，为了让训练后的模型对遗忘数据的“看法”与非成员数据一致，我们需要找到合适的衡量指标。作者通过定量分析发现，在原始模型中，待遗忘（成员）数据的交叉熵一般较小且波动较小，说明模型对这些数据有高度自信；而对于非成员数据，交叉熵则普遍较大且波动很大，反映出模型缺乏信心。在“理想模型”——即已经完全移除目标数据并重新训练得到的模型——中，待遗忘数据表现出与非成员数据一致的高交叉熵和不稳定性，表明这些数据已被模型“遗忘”。因此，如果希望模型把待遗忘数据当做“陌生人”，核心目标就是显著提升其交叉熵，使其表现接近非成员数据。\n除了定量指标之外，表征分布的可视化（如图 4）也进一步揭示了特征层的变化：原始模型下，成员数据的特征分布紧密且边界清晰，显示出模型强烈的区分能力；而在理想模型中，遗忘数据的特征分布变得分散模糊，完全融入背景，与成员数据融为一体，标志着模型已不再识别这些数据。从本质上讲，让待遗忘数据变成“陌生人”的关键，就是打破其原本紧密的聚类结构，使其在特征空间内变得杂乱、无序。\n那么，如何高效且精确地打散这些特征，使遗忘彻底生效？接下来我们将详细介绍 FedEditor 的核心算法设计。\n4. 核心方法详解 在论文中，FedEditor 的算法流程如图所示：当某个客户端发起遗忘请求后，先从服务器获取全局模型，随后仅针对特征提取器进行精细、局部的修改，实现主动遗忘。这一创新点区别于传统的联邦遗忘方法。与以往依赖梯度上升直接调整全局参数（如文献 11）或修改输出层（如文献 27）的做法不同，FedEditor 选择“手术式”地干预特征提取器，将遗忘作用精确聚焦于表征层。通过调整特征提取器的参数，打破原本紧密聚类的成员特征分布，使其变得分散、无序，从而逼近“理想模型”的特性。\n可以类比为：特征提取器如同“眼睛”，分类器如同“大脑”。当眼睛准确地将“5”对应的特征传给大脑时，大脑很容易识别为数字 5。但如果改变了“眼睛”的参数，使其输出的特征与原标签弱相关，大脑也难以做出准确判断。这就是 FedEditor 遗忘的基本思想。\n具体操作流程如下：首先利用非成员数据，通过原始模型的特征提取器计算每个错误类别的特征中心（绿色圆圈和星星，星星代表各类别均值中心）；再用待遗忘数据，通过同样的特征提取层获得其初始特征向量（左侧红点）。对于每一个待遗忘样本，都会选择其最近的错误类别中心作为目标，通过优化使该样本经过修改后的特征提取器输出从原始位置逐步“推离”并朝该错误类别中心“靠拢”。在这一过程中，原始特征位置提供动力，目标位置产生牵引，参数变化通过权重正则化加以约束，分类损失保障剩余数据的预测准确性。最终，原本聚集的待遗忘样本的特征会因为各自最近的错误类别中心不同而被拉扯到不同方向，特征分布整体被打散，原标签与特征不再高度对应，分类器对它们的预测置信度降低、交叉熵显著升高，实现模型对其“陌生化”——使成员推理攻击也难以分辨，达到真正的遗忘效果。\n注：为什么要用非成员数据来计算错误类别中心，而不是直接用训练数据呢？以“遗忘数字 5 的图片”为例，如果我们用训练集中“7”这一类别来作为错误类别中心，看似无害，但实际上，成员数据（即参与过训练的数据）与模型的拟合高度相关。如果用成员数据计算错误类别中心，待遗忘样本在特征空间被引导靠近这些点时，会不可避免地染上成员数据的特征分布。由于模型对成员数据本就具有高置信度，此时即便模型从“高置信度的 5”识别为“高置信度的 7”，置信度依然很高，反而让攻击者依旧容易通过成员推理攻击判断该样本参与过训练——即使预测标签错了，只要置信度高异常就仍有泄漏风险。因此，选取非成员数据（未被模型训练过的数据）计算错误类别中心，可以最大化减少遗忘过程中成员特征的“染色”，避免模型对这些点形成异常自信，从而实现更彻底的遗忘和更强的抗推理攻击能力。 至于“非成员数据”具体该如何选择，其实通常直接采用训练集对应的测试集即可——即便没有严格对应的测试集，选择其他相似分布的测试数据也完全可行。实验证明，只要数据未被模型训练过，都可以作为合格的非成员数据用于错误类别中心的计算。\n前文提到，原始特征向量为推力，错误类别中心为拉力，这种说法容易流于抽象。那么，FedEditor 的遗忘机制究竟是如何在算法层面实现的呢？这里，作者提出了基于模型的对比学习（contrastive learning）的创新思路。与传统对比学习仅对不同增强版本的同类样本进行“拉近正样本、推远负样本”不同，MOON 算法的突破在于将对比对象从数据维度扩展到了模型维度，通过让本地模型与全局模型间的特征距离拉近，提升联邦训练的稳定性。\nFedEditor 则在此基础上进一步创新，对正负样本对的定义做了巧妙翻转：正样本对设定为“错误类别中心”，负样本对则为“原始正确类别的特征中心”。在优化过程中，每一个待遗忘样本被有意拉近至与其标签错误的类别中心，同时远离其原本所属类别中心。这一机制促使成员数据在特征空间内失去原有紧密聚类的结构，分布变得分散、模糊，从而达到遗忘目标并有效削弱成员推理攻击的能力。\n相关的计算流程如下：首先，遍历所有非成员数据，计算得到各类别的错误类别中心。然后，对于每一个待遗忘样本，选择其最近的错误类别中心作为“正样本对”，并将原始正确类别的特征中心作为“负样本对”。在定义损失函数时，采用对比学习的经典结构：优化目标是增强锚点（待遗忘样本特征）与新目标（最近错误类别中心）之间的相似度，同时削弱与原类别中心的相似度。具体而言，分子部分衡量锚点与新目标的相似性，分母部分则综合了与新目标和旧目标的相似性。通过最小化该损失函数，可以推动特征提取器更好地将待遗忘数据的特征远离原类别，同时向错误类别靠拢，有效打散原有的聚类特征，从而实现遗忘目的。\n与此同时，模型修复模块中的两个关键损失函数在持续发挥作用：其一，记忆保留损失（即交叉熵损失）确保模型对剩余数据的预测准确性不受遗忘过程影响；其二，偏差抵抗损失（即权重正则化）则限制参数变化幅度，防止模型结构发生较大偏移。这三项损失（加上遗忘损失）通过加权求和，共同组成算法的全局损失函数，有效引导模型实现精准、可控的参数调整。\n回到整体流程，在完成局部模型修改后，客户端将新模型上传到服务器，由服务器进行聚合。随后，为评估遗忘效果，会基于原始模型输出，用成员数据和非成员数据训练一个二分类器（成员推理攻击器），再利用该分类器检测新模型对待遗忘数据的判别效果。如果分类器在新模型上难以分辨成员与非成员数据，则判定遗忘成功。\n5. 实验设计与结果 算法设计完成后，进入实验评估阶段，以全面验证所提方法的有效性与优越性。为此，作者围绕算法性能提出了四个核心问题，后续将结合具体实验数据一一解答。\n实验部分，作者选用了五个经典图像数据集（FMNIST、CIFAR10、SVHN、CIFAR100、GTSRB）和两个表格数据集（LOAN 和 BAIOT）来全面验证方法的有效性。其中，FMNIST（Fashion-MNIST）用于服饰图像分类，CIFAR10 和 CIFAR100 用于通用物体识别，SVHN 主要针对街景数字识别，GTSRB 则用于交通标志分类；LOAN 和 BAIOT 数据集分别涉及贷款欺诈检测和物联网设备异常检测。实验评价指标包括遗忘效率、遗忘质量和预测性能三大类标准。在遗忘质量评估方面，作者同时采用了后门检测、基于指标的分析和基于模型的评测三种方法以确保结论的客观全面。对比方案则涵盖了基于 FedAvg 训练的原始模型、彻底重训练得到的理想模型，以及多个主流被动和主动联邦遗忘算法。\n在训练效率方面，被动遗忘算法虽然通常能够获得更高的准确率，但其训练过程十分耗时。比如 Eraser 的整体流程复杂，Rap_train 需要计算二阶导数矩阵，Con_train 则需用剩余数据重新训练多轮，因此耗费的时间成本较高。相比之下，主动遗忘算法在效率上有显著优势。虽然 FedEditor 并不是所有主动算法中最快的方案（如 Ram_lab 通过随机标签处理在速度上更有优势，而 FedEditor 需计算质心并构造正负样本对，耗时略长），但 FedEditor 作为主动遗忘方法，兼顾了效率与准确性：其训练速度远超被动遗忘算法，同时在剩余数据上的准确率不仅明显高于其他主动算法，还几乎与被动遗忘算法持平甚至略有超越。尤其在车联网等对安全性要求极高的场景下，为提升剩余数据的识别精度、哪怕多花费几秒训练时间也是完全值得的。\n针对问题 2，即遗忘的有效性，从实验结果可以看出，FedEditor 在遗忘任务上表现十分出色。尽管与部分对比方法相比，遗忘识别率未必最低，但已经显著降低了模型对待遗忘数据的记忆，充分实现了预期的遗忘目标。同时，值得注意的是，遗忘识别率并非越低越好。例如，完全重训练的模型遗忘识别率也无法降到 0，而有些算法虽然实现了极低的遗忘识别率，却以牺牲剩余数据的准确性为代价，整体表现反而不佳。\n这里需要重点解释一下论文中用来衡量“遗忘干净程度”的两个核心指标：JSD to Re_train↓ 和 AD to Re_train↓。这两个指标的关键点在于后缀的“to Re_train” —— 即和彻底删数据、从头完整重训（Retrain）的“黄金标准”模型进行对比。“↓”代表数值越小越好，也就是遗忘模型和重训模型的差距越小越好。\n具体来说：\nJSD (Jensen-Shannon Divergence，詹森 - 香农散度)：这个指标用来衡量概率分布之间的相似度。在本场景下，就是比较你的遗忘模型与重训模型，在同一个测试样本上输出的预测概率分布有多相像。JSD 值越接近 0，说明你的遗忘模型在输出层上已经非常接近于“完美遗忘”的重训模型，没有残留异常行为，遗忘够“干净”。\nAD (Activation Distance / Absolute Distance，激活距离/绝对距离)：这个指标反映两个模型在处理相同输入时，其内部特征表示或输出向量之间的空间距离。如果说 JSD 比的是“猜的结果”，AD 看的则是底层“思考过程”上的接近程度。AD 越低，表示遗忘模型在神经元、特征层参数等深层面也已和重训模型非常接近，遗忘的效果非常彻底。\n论文实验展示，FedEditor 在这两个核心指标（JSD to Re_train↓ 和 AD to Re_train↓）上的表现整体优于基准模型，说明其遗忘算法不仅实现了高效“删除”，而且最小化了与重训的差距，在不影响剩余数据性能的前提下，遗忘结果足够彻底和“纯净”。\n从熵分布图可以直观地看出，FedEditor 有效地模拟了重训练效果：蓝色表示原始模型，其熵分布集中且数值较低，而重训练模型和遗忘模型的熵分布整体更高、更分散，并且二者在分布区域上高度重叠，显示出遗忘模型成功逼近了理想的重训练状态。进一步，通过特征表示的可视化结果也能明显看出模型调整后的作用：图 a 展示的是基准模型，不同类别的数据在特征空间中聚成明显的团块，类别间区分清晰；图 c 则表明在彻底重训练后，待遗忘数据的原本聚类被有效打散，分布渗透到其他类别的团块之中，模型已无法准确区分这些待遗忘样本的原始类别。图 d 进一步展示了特征分布的动态变化：蓝色为成员数据，绿色为非成员数据，粉色代表待遗忘数据的初始状态，黄色为遗忘后状态。可见，遗忘后待遗忘数据的特征向量由原先的高度聚集状态被有意识地驱散，分布到非成员数据周围，与作者提出的设计目标高度一致。\n关于第三个问题预测能力的准确性，可以看到图中 FedEditor 的数据非常亮眼，在各个算法中都名列前茅，这因为 FedEditor 有明确的对齐目标，而且专注于表示层的修改，相比之下，Rap_train 等被动方法虽然准确但太慢，而 GA 等主动方法虽然快但会严重破坏模型性能。\n全局损失函数由三部分组成，通过消融实验证明三部分缺一不可，且 FedEditor 精心选择 a 和 r 最后取得了平衡点 为什么不涉及β，在多目标优化中，通常需要选定一个基准。由于 lr 代表的是“保持正常功能”这个最基础的目标，作者把它设为 1（基准单位）。默认 a 是 10,r 是 0.1\n不同分布的非成员数据对模型训练的影响：图中从左到右，所选非成员数据集的质量依次降低，但实验结果显示，无论非成员数据质量如何，模型的遗忘效果与剩余数据的准确率基本保持稳定。这表明，甚至随意选取一些无关图片作为非成员数据，也能够有效支撑算法实现遗忘目标。\nFedEditor 带来的额外计算和通信开销极小。实验还表明，即使显著降低非成员数据的比例，对最终模型性能和遗忘效果的影响也非常有限，算法鲁棒性较强，无需高比例非成员数据即可达到理想表现。\n作者还进一步通过实验探究了能否实现对整类对象的遗忘（如遗忘所有猫或所有狗）。结果显示，在原始模型中，模型的注意力主要集中在动物的眼睛、鼻子等关键区域，以辅助类别判别；而理想模型则不再关注这些区域。经过 FedEditor 算法处理后，模型的注意力分布与理想重训练模型高度一致，充分证明了该方法在整类遗忘场景下同样具备良好效果和可行性。\n最后，作者还在多种车联网现实复杂场景下对 FedEditor 的稳定性进行了深入验证。实验涵盖了不同类别和任务设置，即使在各种极端或高难度的环境中，FedEditor 依然展现出显著的稳健性。尽管任务复杂度提升会带来模型性能的轻微下降，但整体表现依然优异，各项指标变化均处于可接受范围之内，充分证明了算法的通用性与稳定性。\n6. 总结与思考 FedEditor 创新性地将轻量级本地遗忘机制集成到联邦学习流程中。针对待遗忘车辆的数据，FedEditor 精确构建了目标对齐方案，并结合表征空间净化技术，有效消除了遗忘数据对全局模型的影响。同时，FedEditor 利用目标车辆的剩余数据优化模型输出分布，通过引入正则化项抑制模型漂移，确保在遗忘过程中全局模型的预测能力稳定。大量实验结果进一步验证，FedEditor 能以高效率完成有效遗忘，同时几乎不影响全局模型对遗忘数据以外样本的预测性能。\n7. 参考文献 原文引用格式（IEEE 格式）：\n1 2 3 4 5 X. Yuan, J. Liu, B. Wang, G. Chen, X. Xu, J. Wang, T. Li, and W. Wang, \u0026#34;FedEditor: Efficient and Effective Federated Unlearning in Cooperative Intelligent Transportation Systems,\u0026#34; IEEE Transactions on Information Forensics and Security, vol. 20, pp. 6560-6575, 2025. DOI: 10.1109/TIFS.2025.3583231 相关链接：\n论文 DOI: https://doi.org/10.1109/TIFS.2025.3583231 代码仓库：https://github.com/XXiaoY/Fededitor ","date":"2026-02-13T00:00:00Z","permalink":"https://ysy.fan/p/fededitor-paper-reading/","title":"论文阅读：FedEditor - Efficient and Effective Federated Unlearning"},{"content":"1. 常用设置 1.1. 切换中文界面 按下 Ctrl + Shift + P 打开命令面板 输入 display，选择\u0026quot;配置显示语言\u0026quot; 在语言列表中选择\u0026quot;中文（简体）\u0026quot; 1.2. 查看剩余请求次数 点击右上角的设置图标 在 Agents 选项中找到 Usage Summary，在下拉框中选择 Always 设置完成后，在消息框底部就能看到当前使用的次数和剩余的次数 1.3. 切换主题 依次点击菜单栏的 文件 \u0026gt; 首选项 \u0026gt; 主题 \u0026gt; 颜色主题。在弹出的列表中，您可以上下浏览预览效果，点击即可应用您喜欢的配色。 2. 工作模式介绍 Cursor 提供了多种工作模式，可根据不同场景选择使用：\n2.1. Agent（自动执行模式） 功能：全自动执行模式，也是默认模式。可自动搜索代码库、修改多个文件、运行终端命令。\n适用场景：有明确功能需求时，例如\u0026quot;为模型添加数据增强模块\u0026quot;、\u0026ldquo;实现用户登录功能\u0026quot;等具体开发任务。\n2.2. Plan（规划模式） 功能：先规划后执行。深入分析项目后输出详细的 Markdown 格式方案文档，待用户确认后再执行。\n适用场景：复杂任务或重大重构，需要在动手前审查方案，例如\u0026quot;重构整个项目架构\u0026rdquo;、\u0026ldquo;设计数据库方案\u0026quot;等。\n2.3. Debug（调试模式） 功能：专注于问题排查。针对错误提出假设，自动插入临时日志代码辅助定位问题。\n适用场景：程序报错、逻辑错误、性能问题等需要深入调试的情况。\n2.4. Ask（问答模式） 功能：仅回答问题和解释原理，不会修改任何代码文件。\n适用场景：学习原理、理解代码逻辑、概念解释等，例如\u0026quot;解释 CTC Loss 的计算原理\u0026rdquo;、\u0026ldquo;这段代码的作用是什么\u0026quot;等。\n2.5. Last Used Mode（上次使用模式） 功能：快捷切换到上一次使用的工作模式，方便模式间快速切换。\n3. 模型选择指南 3.1. Claude Opus 4.6 —— 总设计师 特点：思考缓慢但推理深度强，上下文极长（100 万 Token），价格相对较高。\n适用场景：\n架构设计：规划新项目的目录结构、数据库方案等从 0 到 1 的设计工作 疑难问题：涉及多线程、分布式一致性等难以复现的复杂 Bug 全局重构：修改核心数据结构，需要确保几十个相关文件不出错的任务 注意：该模型会消耗\u0026quot;思维 Token\u0026quot;进行规划，虽然价格较贵，但能有效避免返工。\n3.2. GPT-5.3 Codex —— 极速执行者 特点：响应速度极快，擅长命令行操作，但有时会使用占位符敷衍了事。\n适用场景：\n交互式编程：快速调整前端样式（CSS/React 组件）、编写简单脚本 错误修复：针对终端报错进行快速自动修复 快速原型：需要在短时间内尝试多种方案 3.3. Composer 1.5 —— 多文件管家 特点：Cursor 原生模型，专门强化了同时编辑多个文件的能力。\n适用场景：\n跨文件任务：例如\u0026quot;把整个项目的登录方式从 JWT 改成 OAuth2\u0026quot;等需要修改多个文件的任务，它能记住任务状态，避免遗漏 3.4. Claude Sonnet 4.5 —— 主力中场 特点：性能均衡，速度比 Opus 快且价格便宜，稳定性比 Codex 好。\n适用场景：\n日常开发：80% 的常规编码任务（编写接口、SQL 等）都可以使用该模型 3.5. Gemini 3 Pro —— 文档专家 特点：上下文特别大（200 万 + Token），读取文档的成本很低。\n适用场景：\n查阅资料：处理大量技术文档，在整个代码库中进行全局检索 3.6. 关于自动模式（Auto Mode） ⚠️ 强烈建议关闭自动模式，手动选择模型。主要原因：\n3.6.1. 成本优先导致能力下降 虽然理论上应该根据任务难度分配模型，但实际上为了节省成本，经常将复杂任务分配给能力较弱的低价模型（比如 mini 版），导致代码质量下降。\n3.6.2. 存在严重 Bug 存在\u0026quot;Zombie Revert\u0026rdquo;（僵尸回滚）问题，频繁切换模型可能导致文件状态冲突，代码被悄悄回滚到旧版本。\n3.6.3. 计费不透明 即使分配了能力较弱的模型，也可能按溢价计费，除非任务极简单，否则不建议使用。\n4. 常见问题 4.1. 模型不工作：Model not available 如果遇到模型不可用的问题，可以尝试以下解决方案：\n在设置中找到 Network 选项 将网络协议改为 HTTP 1.0 4.2. 模型耗 token 太快 为了节省 Token 额度，强烈建议勤开新对话。因为 AI 模型本身不记事，在同一个对话框里，每次提问它都会被迫把之前所有的历史记录（包括旧代码和长篇问答）重新读取一遍。对话越长，‘上下文包袱’越重，导致你问一个简单问题都可能消耗数千 Token。及时开启 New Chat 可以切断这些不必要的旧上下文，是节省额度最直接有效的方法\n5. 总结 Cursor 作为一款 AI 编程助手，提供了多种工作模式和模型选择，能够满足不同场景的开发需求。合理选择工作模式和模型，可以显著提升开发效率。建议：\n日常开发：使用 Claude Sonnet 4.5 复杂架构：使用 Claude Opus 4.6 快速原型：使用 GPT-5.3 Codex 多文件重构：使用 Composer 1.5 文档查阅：使用 Gemini 3 Pro 手动选择模型比自动模式更可靠！\n","date":"2026-02-12T00:00:00Z","permalink":"https://ysy.fan/p/cursor-beginner-guide/","title":"Cursor 使用心得：AI 编程助手的初体验"},{"content":"1. 引言 在互联网日益复杂的今天，拥有一台属于自己的远程服务器（VPS）不仅是程序员的练手必备，更是探索更广阔网络世界的基石。相比于购买现成的机场服务，自建节点最大的优势在于独享带宽、数据安全以及完全的可控性。\n本教程将手把手教你如何从零开始，搭建一套稳定、高速且现代化的节点服务。我们将采用目前主流且配置简便的方案，即使你对 Linux 命令不熟悉，也能轻松完成。\n2. 服务器选购与基础环境部署 一切的开始，我们需要拥有一台位于海外的虚拟服务器（VPS）。本章将指导你完成账号注册、充值以及服务器的各项配置选择。\n2.1. 平台选择与账号注册 在众多 VPS 服务商中，本教程首选 Vultr 作为演示平台，主要基于以下几点核心优势：\n支付便捷：直接支持 支付宝 (Alipay) 扫码付款，无需准备境外信用卡或 PayPal，这是对国内用户最友好的功能之一。\n性价比高：提供“共享 CPU (Shared CPU)”的基础方案，价格低廉，完全满足个人节点的性能需求。\n线路优势：拥有洛杉矶 (Los Angeles) 等优质数据中心，作为国际网络枢纽，其信号连接相对畅通，延迟较低。\n新手福利：新用户注册往往会获赠一定额度的体验金（例如 $300），虽然通常有有效期限制（如 30 天），但足以让你免费完成初期的搭建和测试。\n注册账号：访问 Vultr 官网（https://my.vultr.com/）进行注册并登录 。 账号充值：\n登录后点击左侧菜单栏的 Account（账户）。\n在支付方式中选择 Alipay（支付宝），这对国内用户非常方便。 填写必要的账单信息（可用拼音），选择充值金额（例如 $10 或 $25），勾选同意条款并点击 Pay with Alipay 完成支付。\n注：新用户注册有时会获赠 $300 的体验金（有效期通常为一个月），这属于新手福利，过期后会自动失效，不必惊慌。 2.2. 部署服务器 (Deploy Instance) 充值到账后，点击页面右上角的蓝色按钮 Deploy + -\u0026gt; Deploy New Server 开始创建服务器。下面会推荐配置，以确保性价比和兼容性： Choose Type（服务器类型）：选择 Shared CPU（共享 CPU）。对于个人节点而言，共享核心的性能完全足够，且价格最实惠。\nChoose Location（地区选择）：建议选择 Americas -\u0026gt; Los Angeles（洛杉矶）。这里是中美海底光缆的登陆点之一，作为网络枢纽，通常能提供较好的连接速度和信号稳定性。\nChoose Plan（配置套餐）：根据个人预算选择。通常选择 $5.00/month（1 vCPU, 1GB Memory）的配置即可满足日常 4K 视频浏览等需求。\nAdditional Features（附加功能）：重要提示：请务必找到 Automatic Backups（自动备份）选项并点击 Disable（关闭）。\n理由：自动备份需要额外收费。对于这种随时可以销毁重建的节点服务器，开启备份不仅浪费钱，也没有太大的实际意义。 Choose Image（操作系统）：选择 Debian，版本建议选择 12 x64。Debian 系统以轻量、稳定著称，相比其他系统更节省服务器资源。 2.3. 获取服务器信息 点击底部的 Deploy Now 部署后，等待服务器状态从 Installing 变为 Running。点击服务器名称（如 Cloud Instance）进入详情页，请记录下以下两项关键信息，稍后连接服务器时必须用到： IP Address：服务器的公网 IP 地址。\nPassword：root 账户的初始密码（点击眼睛图标可显示，点击复制图标可直接复制）\n3. 服务器连接与面板安装 购买好服务器后，我们需要通过 SSH（Secure Shell）远程连接到它，并安装可视化的管理面板 3x-ui。\n3.1. 建立 SSH 连接 我们需要使用电脑自带的终端工具连接服务器。\n右键点击“开始”菜单，选择 Windows PowerShell 或 终端。\n在终端中输入以下指令（请将 xx.xx.xxx.xxx 替换为你刚才在 Vultr 后台复制的 IP 地址）：\n1 ssh root@xx.xx.xxx.xxx 连接过程中的注意事项：\n首次连接确认：输入指令回车后，若提示 Are you sure you want to continue connecting (yes/no/[fingerprint])?，请输入 yes 并回车。\n输入密码：系统会提示 root@\u0026hellip; password:。此时输入你刚才复制的服务器密码。注意：Linux 系统为了安全，输入密码时屏幕上不会显示任何字符（包括星号），光标也不会移动。这完全正常，输完密码后直接按回车即可。 3.2. 优化连接稳定性（防断连） 默认情况下，如果 SSH 连接长时间无操作会自动断开。为了避免安装过程中断，建议先执行以下指令设置“心跳包” 。\n请依次复制以下三行指令，在终端中粘贴并回车执行：\nBash echo \u0026ldquo;ClientAliveInterval 60\u0026rdquo; \u0026raquo; /etc/ssh/sshd_config echo \u0026ldquo;ClientAliveCountMax 3\u0026rdquo; \u0026raquo; /etc/ssh/sshd_config systemctl restart ssh 3.3. 安装 3x-ui 管理面板 接下来，我们将安装 3x-ui 面板，它能让我们通过网页轻松管理节点。\n复制以下一键安装脚本到终端并回车：\n1 bash \u0026lt;(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh) 安装引导设置： 脚本启动后，会询问是否自定义端口。输入 y 并回车。\n设置面板端口：建议输入一个好记的数字，例如 54321，然后回车。\n安装完成后，终端会显示你的登录信息，包括访问地址（http://IP: 端口） 。\n3.4. 配置防火墙（开放端口） 为了让外部网络能访问我们的面板和节点，必须配置服务器防火墙开放相应的端口。\n请依次执行以下指令：\n3.4.1. 更新软件源并安装 UFW 防火墙工具 1 apt update \u0026amp;\u0026amp; apt install ufw -y 3.4.2. 开放必要端口 1 2 3 ufw allow ssh # 开放 SSH 连接端口，防止自己被锁在外面 [cite: 34] ufw allow 54321 # 开放刚才设置的面板端口 [cite: 35] ufw allow 443 # 开放节点传输端口（后续配置节点时会用到） [cite: 36] 3.4.3. 启用防火墙 1 ufw enable （如果提示 Command may disrupt existing ssh connections，输入 y 确认即可） 至此，服务器端的底层环境已经搭建完毕。\n4. 面板配置与节点创建 环境搭建完毕后，我们将离开黑色的命令行界面，转到浏览器中进行可视化的操作。本章的核心任务是配置目前业界公认“隐蔽性”最强、且被封锁概率最低的协议组合：VLESS + TCP + Reality。\n4.1. 登录管理面板 打开您电脑上的浏览器，在地址栏输入访问地址。格式为 http://你的服务器 IP: 端口号。\n例如，如果您的 IP 是 192.168.1.1，安装时设置的端口是 54321，则完整地址为：\nhttp://192.168.1.1:54321\n进入登录页面后，输入我们在上一章安装过程中设置的用户名和密码，点击登录进入系统仪表盘。 4.2. 添加并配置入站节点 在左侧菜单栏中找到 入站列表 (Inbound List)，点击进入后，选择页面中的绿色按钮 添加入站 (Add Inbound)。 此时会弹出一个详细的配置窗口，这是整个教程最关键的一步。请严格按照以下参数进行设置，未提及的选项保持默认即可：\n备注 (Remark)：MyVPN （或者任何您喜欢的名字） 协议 (Protocol)：vless 端口 (Port)：443 注意：这里必须填 443，因为我们在配置防火墙时专门开放了这个端口。 传输 (Network)：tcp 安全 (Security)：reality 重要：选择此项后，下方会出现更多关于伪装的设置选项。 uTLS：chrome 目标网站 (Target)：www.microsoft.com:443 SNI 域名 (SNI)：www.microsoft.com 原理：Reality 协议会将您的流量伪装成访问微软官网，从而在防火墙面前“隐身”。 公钥/私钥 (Public/Private Key)：点击输入框下方的 Get New Cert 按钮，系统会自动生成一串密钥。 4.3. 保存并生效 确认上述所有信息（尤其是端口和协议）填写无误后，点击窗口底部的 添加 (Create) 或更新 (Create) 按钮。\n添加成功后，您会在列表中看到刚才创建的节点。此时，您的服务器端配置已全部完成，它正静静地等待客户端的连接\n5. 客户端配置与连通性测试 服务端（VPS）配置完成后，我们还需要在电脑上安装专门的客户端软件，才能将网络流量通过节点进行转发。本教程将以开源、免费且功能强大的 Clash Verge 为例进行演示。\n5.1. 下载并安装客户端 首先，请下载适配您操作系统的 Clash Verge 客户端。\nGitHub 官方下载（推荐）：\nhttps://github.com/clash-verge-rev/clash-verge-rev/releases\nWindows 用户请下载 .exe 安装包（通常为 x64-setup.exe），Mac 用户请下载 .dmg 文件。 5.2. 导出并转换节点配置 由于 Clash 软件无法直接识别原始的 VLESS 链接，我们需要借助工具将其转换为 Clash 专用的配置文件（.yaml 格式）。\n5.2.1. 获取节点链接 回到浏览器中的 3x-ui 管理面板，在 入站列表 中找到刚才创建的节点。 点击节点左侧的 菜单图标（三个点），选择 导出链接，然后点击复制。 5.2.2. 手动创建配置文件 可按照以下方法手动创建 .yaml 配置文件。\n第一步：解析 vless 链接\n复制到的节点链接格式如下：\n1 vless://{uuid}@{server}:{port}?type={network}\u0026amp;...\u0026amp;pbk={public-key}\u0026amp;fp={fingerprint}\u0026amp;sni={servername}\u0026amp;sid={short-id}#{name} 以实际链接为例：\n1 vless://b71c4e29-d0c6-4906-b6a4-956e7ec2d005@64.64.242.65:443?type=tcp\u0026amp;encryption=none\u0026amp;security=reality\u0026amp;pbk=jJZt-0pxC42THHzelBlhE6ObF_bKkmE_5P3sjdLRpz8\u0026amp;fp=chrome\u0026amp;sni=www.microsoft.com\u0026amp;sid=fe69b17bb8440e\u0026amp;spx=%2F#MyVPN 各参数含义如下：\n链接中的位置 参数示例 含义 :// 与 @ 之间 b71c4e29-... UUID（用户身份凭证） @ 与 : 之间 64.64.242.65 服务器 IP IP 后的 : 之后 443 端口号 type= tcp 传输协议 pbk= jJZt-0p... Reality 公钥 fp= chrome 客户端指纹 sni= www.microsoft.com 伪装域名 sid= fe69b17bb8440e Reality Short ID # 之后 MyVPN 节点备注名 第二步：填入模板\n新建一个文本文件，将后缀命名为 .yaml（例如 MyVPN.yaml），复制以下模板内容，然后将各占位符替换为上表中解析出的对应值：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 port: 7890 socks-port: 7891 allow-lan: true mode: rule log-level: info external-controller: :9090 rule-providers: google: type: http behavior: domain url: \u0026#34;https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/google.txt\u0026#34; path: ./ruleset/google.yaml interval: 86400 proxy: type: http behavior: domain url: \u0026#34;https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/proxy.txt\u0026#34; path: ./ruleset/proxy.yaml interval: 86400 direct: type: http behavior: domain url: \u0026#34;https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/direct.txt\u0026#34; path: ./ruleset/direct.yaml interval: 86400 proxies: - name: \u0026#34;MyVPN\u0026#34; # 节点名称，可自定义 type: vless server: { server } # ← 替换为服务器 IP port: { port } # ← 替换为端口号 uuid: { uuid } # ← 替换为 UUID network: { network } # ← 替换为传输协议（如 tcp） tls: true udp: true flow: \u0026#34;\u0026#34; servername: { sni } # ← 替换为 sni= 的值 client-fingerprint: { fp } # ← 替换为 fp= 的值 reality-opts: public-key: { public-key } # ← 替换为 pbk= 的值 short-id: { short-id } # ← 替换为 sid= 的值 proxy-groups: - name: \u0026#34;节点选择\u0026#34; type: select proxies: - \u0026#34;MyVPN\u0026#34; - DIRECT rules: - RULE-SET,google,节点选择 - RULE-SET,proxy,节点选择 - RULE-SET,direct,DIRECT - GEOIP,CN,DIRECT - MATCH,节点选择 请务必保存好填写完毕的 .yaml 文件，下一步导入 Clash Verge 时会用到。\n5.3. 导入配置到 Clash Verge 5.3.1. 打开安装好的 Clash Verge 软件 5.3.2. 点击左侧菜单栏的 订阅 (Subscription)，然后点击右上角的 新建 (New) 按钮 5.3.3. 在弹出的窗口中进行如下设置 类型 (Type)：选择 Local（本地文件）。 名称 (Name)：填写 MyVPN（或你喜欢的任何名字）。 文件 (File)：点击 选择文件 按钮，选中刚才下载的 MyVPN.yaml 文件。 5.3.4. 点击 保存 (Save) 按钮 5.4. 开启代理与连接测试 5.4.1. 选择节点 点击软件左侧菜单栏的 代理 (Proxies)。在顶部的模式切换中选择 规则 (Rule)。此时你应该能在下方列表中看到的节点 MyVPN。\n5.4.2. 连通性测试 点击节点名称旁边的 测试图标（通常是一个类似 WiFi 信号的图标）。 *成功：如果显示绿色的数字（例如 187 ms），代表节点已连通。* 失败：如果显示 Timeout，请检查 VPS 的防火墙端口是否已开放，或配置步骤是否有误。\n5.4.3. 开启系统代理 确认连接成功后，点击左侧菜单栏的 设置 (Settings)，找到 系统代理 (System Proxy) 开关并将其打开（变为蓝色）。 此时，打开浏览器访问 Google 或 YouTube，如果能顺利加载，恭喜你！你已经成功从零开始搭建了属于自己的高速节点。\n","date":"2026-02-11T00:00:00Z","permalink":"https://ysy.fan/p/clash-verge-setup-tutorial/","title":"Clash Verge 个人节点搭建完整教程"},{"content":"1. 问题背景 在使用 Hugo Theme Stack 主题搭建博客时，你可能会发现一个问题：文章底部的\u0026quot;相关文章\u0026quot;推荐有时候并不那么\u0026quot;相关\u0026quot;。\n比如，一篇关于 WPS 图片处理技巧的文章，可能会被推荐到一篇讲 Markdown 语法的文章下方。虽然它们都属于\u0026quot;效率工具\u0026quot;分类，但实际上是完全不同领域的内容 —— WPS 是办公软件，Markdown 是写作语法，两者八竿子打不着。 这就是 Hugo 默认相关文章推荐配置带来的问题。\n2. 默认配置分析 Hugo 的相关文章功能由 config/_default/related.toml 文件控制。让我们先看看默认配置：\n1 2 3 4 5 6 7 8 9 10 11 12 # Related contents configuration includeNewer = true threshold = 60 toLower = false [[indices]] name = \u0026#34;tags\u0026#34; weight = 100 [[indices]] name = \u0026#34;categories\u0026#34; weight = 200 2.1. 配置参数说明 2.1.1. 全局配置参数 threshold（阈值）：60\n相关性分数的阈值（范围 0-100） 只有得分达到或超过 60 分的页面才会被推荐 ⚠️ 如果阈值设置过高，可能导致推荐内容过少甚至为空 建议：内容较少的博客可以设置为 50-60，内容丰富的可以设置为 70-80 includeNewer：true\n允许推荐比当前文章发布时间更晚的文章 🔄 动态特性：当你发布新文章时，如果它与旧文章相关，会自动出现在旧文章的推荐列表中 这意味着旧文章的推荐内容会随着新内容的发布而动态更新 toLower：false\n在匹配时不将关键字转换为小写，保持区分大小写 例如：标签 \u0026ldquo;Hugo\u0026rdquo; 和 \u0026ldquo;hugo\u0026rdquo; 会被视为不同的标签 💡 建议设置为 true 可以产生更准确的匹配结果（虽会轻微影响性能） 2.1.2. 索引与权重配置 tags（标签）：权重 100\n使用文章 Front Matter 中的 tags 作为匹配依据 在相似度计算中，标签匹配的重要性是 100 categories（分类）：权重 200\n使用文章 Front Matter 中的 categories 作为匹配依据 在相似度计算中，分类匹配的重要性是 200 当前配置下，分类的重要性是标签的 2 倍 2.2. Hugo 相似度算法说明 ⚠️ 重要概念：权重不是简单的加分机制！\nHugo 使用加权相似度算法来计算文章间的相关性：\n对于每个索引（tags 和 categories），Hugo 会计算两篇文章的匹配度 将各索引的匹配度乘以对应的权重 综合计算出一个 0-100 的相似度分数 只有相似度 ≥ threshold 时才推荐 关键点：\n权重的比例才是关键，不是绝对值 categories 权重 200 vs tags 权重 100，意味着分类的重要性是标签的 2 倍 不是说\u0026quot;有一个相同分类就得 200 分\u0026quot;，而是说分类匹配对最终相似度的影响更大 实际举例：\n文章 A：与当前文章有相同的分类，但标签完全不同 文章 B：与当前文章有相同的标签，但分类不同 结果：文章 B 的得分会显著高于文章 A，因为它命中了权重更高的索引 结合高阈值的影响：\n当 threshold = 80 时，仅靠 categories（权重较低）带来的匹配可能不足以达到 80 分 这套配置倾向于只推荐那些标签高度重合的文章，或者同时在标签和分类上都有重合的文章 2.3. 问题所在 在默认配置下，分类的权重是标签的 2 倍（200 vs 100），这导致：\n分类匹配在相似度计算中占主导地位 所有标注为\u0026quot;效率工具\u0026quot;的文章，即使标签完全不同，也可能因为分类权重过高而被互相推荐 所有标注为\u0026quot;深度学习\u0026quot;的文章，即使具体方向不同（理论研究 vs 应用实践），也容易被判定为相关 宽泛的分类掩盖了标签的精确性 3. 优化方案 3.1. 核心思路 我们需要提高推荐标准，让 Hugo 只推荐真正相似的文章。有两个调整方向：\n提高阈值：让匹配要求更严格 调整权重：降低分类的重要性，提高标签的重要性 3.2. 推荐配置 打开 config/_default/related.toml，修改为以下内容：\n1 2 3 4 5 6 7 8 9 10 11 12 # Related contents configuration includeNewer = true threshold = 80 # 从 60 提高到 80 toLower = false [[indices]] name = \u0026#34;tags\u0026#34; weight = 200 # 从 100 提高到 200 [[indices]] name = \u0026#34;categories\u0026#34; weight = 100 # 从 200 降低到 100 3.3. 为什么这样改？ 3.3.1. 阈值提升（60 → 80） 更高的阈值意味着需要更高的相似度才能被推荐。\n3.3.2. 权重反转 标签权重提升（100 → 200）\n标签通常更具体、更能代表文章的核心内容 例如：\u0026ldquo;PyTorch\u0026rdquo;、\u0026ldquo;WPS\u0026rdquo;、\u0026ldquo;Markdown\u0026rdquo; 这些标签直接指向具体技术 提高权重后，标签匹配对相似度的影响更大 分类权重降低（200 → 100）\n分类往往比较宽泛（如\u0026quot;效率工具\u0026quot;、\u0026ldquo;学习笔记\u0026rdquo;） 降低权重后，仅凭分类相同不足以达到高相似度 现在标签的重要性是分类的 2 倍（200:100） 4. 实施步骤 打开配置文件\n1 config/_default/related.toml 修改配置\n将 threshold 从 60 改为 80 交换 tags 和 categories 的权重 保存并提交\n如果使用 GitHub Pages，推送到仓库会自动部署 如果本地测试，运行 hugo server 查看效果 验证效果\n打开博客的任意文章页面 滚动到底部查看\u0026quot;相关文章\u0026quot;推荐 检查推荐的文章是否更贴合主题 5. 总结 Hugo 的相关文章推荐功能非常强大，但默认配置对于内容多样化的博客来说不够精确。通过调整 threshold（阈值）和 weight（权重），我们可以让推荐结果更加智能。\n希望这篇教程能帮助你打造一个更好的阅读体验！如果有任何问题，欢迎在评论区讨论。\n6. 参考资料 Hugo Related Content 官方文档 Stack 主题文档 ","date":"2026-02-11T00:00:00Z","permalink":"https://ysy.fan/p/hugo-related-posts-config/","title":"Hugo Theme Stack 优化：相关文章推荐配置指南"},{"content":"1. 问题背景 在日常使用 Windows 系统时，Windows Defender 的实时保护功能有时会带来一些困扰：\n占用系统资源，导致电脑卡顿 误报软件为病毒（尤其是开发工具和破解软件） 自动删除或隔离某些文件 与其他安全软件冲突 虽然可以在\u0026quot;设置\u0026quot;中临时关闭实时保护，但系统会在一段时间后自动重新启用。本文介绍如何通过组策略编辑器彻底禁用 Windows Defender。\n2. 操作步骤 2.1. 打开组策略编辑器 按下 Windows + R 组合键，打开\u0026quot;运行\u0026quot;窗口。\n在输入框中输入以下命令并按回车：\n1 gpedit.msc ⚠️ 注意：家庭版 Windows 默认不包含组策略编辑器。如果提示找不到 gpedit.msc，需要先安装组策略编辑器功能。\n2.2. 导航到 Defender 设置 在组策略编辑器窗口中，按照以下路径依次展开：\n1 2 3 4 计算机配置 → 管理模板 → Windows 组件 → Windows Defender 防病毒程序 2.3. 禁用反恶意软件服务 在右侧面板中找到并双击：\n1 允许反恶意软件服务始终保持运行状态 在弹出的设置窗口中： 选择 已禁用 点击 应用 点击 确定 2.4. 重启生效 完成上述设置后，重启电脑使配置生效。\n重启后，Windows Defender 的实时保护将被彻底关闭，且不会自动重新启用。\n3. 验证是否成功 重启后，打开\u0026quot;Windows 安全中心\u0026quot;：\n按 Windows + I 打开设置 进入 隐私和安全性 → Windows 安全中心 点击 病毒和威胁防护 如果看到\u0026quot;未进行任何操作\u0026quot;或\u0026quot;实时保护已关闭\u0026quot;的提示，说明设置成功。\n4. 如何恢复实时保护 如果将来需要重新启用 Windows Defender：\n再次打开组策略编辑器（gpedit.msc） 找到同样的设置项 将其改为 未配置 或 已启用 重启电脑 5. 总结 通过组策略编辑器禁用 Windows Defender 是一个简单但有效的方法，适合需要长期关闭实时保护的场景。\n但请记住：安全性和便利性往往是一对矛盾。关闭防护的同时，也要承担相应的风险。建议根据实际需求谨慎操作。\n","date":"2026-02-11T00:00:00Z","permalink":"https://ysy.fan/p/disable-windows-defender/","title":"Windows Defender 彻底关闭指南"},{"content":"1. 引言 《群星 (Stellaris)》玩家最大的痛点是什么？往往不是天灾的入侵，而是联机时无休止的“时间停止”、掉线和高延迟。由于群星采用 P2P 联机机制，一旦某位玩家网络波动，整局游戏都会受到影响。\n群星采用 P2P 联机，市面上的加速器往往难以对症下药。本系列教程将手把手教你搭建一个专属于你和小伙伴的联机加速节点。\n本方案基于 OpenVPN TAP 模式，通过 去除加密环节 来极致优化传输速度，实测 10Mbps 带宽即可流畅支撑 1～2 车联机（每车约 10 人）。\n特别致谢：本教程方案核心及加速器客户端由大佬 Dogfight360 免费提供，教程基础内容由 唏噓南溪 编写。\n📖 原作者博客：Dogfight360 Blog\n2. 选择你的系统版本 请根据你使用的服务器系统，选择对应教程：\n🚀 点此查看 Ubuntu / Debian 现代系统搭建指南（强烈推荐） 📜 点此查看 CentOS 7 旧版系统搭建指南（仅供参考） ","date":"2026-02-11T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-lan-openvpn-guide/","title":"群星联机优化指南：基于 OpenVPN 搭建低延迟虚拟局域网"},{"content":"1. 引言 你需要准备：\n一台云服务器 (VPS)：本文以 CentOS 7 系统为例 基础工具：WinSCP（用于传文件）、SSH 终端 一颗折腾的心：虽然步骤较多，但为了流畅的银河征途，一切都是值得的！ 2. 服务器准备与基础环境搭建 俗话说\u0026quot;工欲善其事，必先利其器\u0026quot;。搭建群星联机节点，核心在于网络质量而非服务器的计算性能。本章将指导您完成服务器的选购及基础环境的配置。\n2.1. 服务器选购建议 在购买 VPS 时，请重点关注以下三点：\n2.1.1. 带宽是核心 群星联机数据交换量较大。根据实测经验，10Mbps 带宽大约能支撑 1～2 车同时游玩（每车约 10 人），带宽越大，后期卡顿概率越低。\n2.1.2. 地理位置 尽量选择距离您和朋友们地理位置都比较近的数据中心，以物理手段降低延迟。\n2.1.3. 配置够用即可 如果这台服务器仅用于群星加速，CPU、内存和硬盘空间可以选最低配（如 1 核 1G），以降低成本。\n2.2. 安装必要组件 购买并登录服务器（使用 SSH 工具）后，我们需要安装解压工具、EPEL 源以及核心软件 OpenVPN。请依次执行以下指令（本教程以 CentOS 7 为例）：\n首先远程连接云服务器，这里以阿里云为例\n2.2.1. 更新系统软件包 1 sudo yum update -y 2.2.2. 安装 unzip 解压工具 （后续解压服务端文件需要用到）\n1 sudo yum install unzip -y 2.2.3. 安装 EPEL 源 （OpenVPN 通常包含在 EPEL 源中）\n1 sudo yum install epel-release -y 2.2.4. 安装 OpenVPN 1 sudo yum install openvpn -y #### 2.2.5. 版本检查（重要！） 安装完成后，输入以下命令查看版本：\n1 openvpn --version ⚠️ 请根据输出的版本号，记下您的情况：\n情况 A：版本 \u0026lt; 2.5（例如 2.4.x） 这是 CentOS 7 默认的旧版本，与本教程提供的原始配置文件完全兼容，您在后续章节 无需进行额外修改。\n情况 B：版本 ≥ 2.5（2.5 或 2.6+） 现在的云服务器系统（如新版 CentOS 或 Debian/Ubuntu）通常会安装较新的版本。 ⚠️ 如果您的版本是 2.5 或更高，请务必记住这一点。因为新版本废弃了旧的加密参数，我们在下一章部署时，必须手动修改配置文件（添加 data-ciphers 等设置）才能正常连接，否则会导致无法联机。\n2.3. 开放防火墙端口（关键步骤） 为了让游戏数据能顺利进出服务器，我们需要开放两个特定的端口：3074 (UDP) 和 3075 (TCP)。这通常涉及两道关卡：服务器内部防火墙和云厂商安全组。\n2.3.1. 第一关：服务器内部防火墙 (Firewalld) 如果您的服务器开启了 firewalld，请执行以下命令放行端口：\n2.3.2. 检查防火墙状态 1 sudo systemctl status firewalld 如果输出如下图所示，说明你的 firewalld 防火墙服务没有启动，默认所有端口全部被放行，你可以直接跳过这一步，直接去看第二关：云厂商安全组 如果输出如下图所示，说明你的 firewalld 防火墙服务在正常运行，我们需要继续操作，放行端口 3074(UDP) 和 3075(TCP) 2.3.3. 放行 3074 (UDP) 1 sudo firewall-cmd --zone=public --add-port=3074/udp --permanent 2.3.4. 放行 3075 (TCP) 1 sudo firewall-cmd --zone=public --add-port=3075/tcp --permanent 2.3.5. 重载配置使其生效 1 sudo firewall-cmd --reload 2.3.6. 验证是否成功 输入以下指令查看开放列表：\n1 sudo firewall-cmd --zone=public --list-ports 如果看到 3074/udp 3075/tcp 字样，即代表操作成功。 2.3.7. 第二关：云厂商安全组 (Security Group) ⚠️ 这是新手最容易忽略的一步！\n绝大多数云服务器（阿里云、腾讯云、华为云等）在网页控制台都有一层额外的 「安全组」 或 「防火墙」 设置。\n请登录您的云服务器控制台，找到 安全组 → 配置规则 → 手动添加，填入以下信息： 规则 1 (UDP)\n协议类型：UDP 端口范围：3074/3074 授权对象：0.0.0.0/0（所有 IP） 策略：允许 规则 2 (TCP)\n协议类型：TCP 端口范围：3075/3075 授权对象：0.0.0.0/0（所有 IP） 策略：允许 2.4. 特殊情况：共享型 VPS 的端口转发（NAT 映射） ⚠️ 以下内容仅适用于购买了「超低价共享型 VPS」的用户，拥有独立公网 IP 的独立服务器用户可直接跳过本节。\n部分超低价 VPS 服务商并非给您一台独立的机器，而是一台物理主机由多个用户共享。在这种情况下，您拿到的并非一个独立的公网 IP，而是一个 \u0026ldquo;IP:端口\u0026rdquo; 的访问入口（例如 160.202.254.14:10272），其中 10272 是您的 SSH 登录端口。\n在这种架构下，3074 和 3075 端口由宿主机的主网关统一管理，您没有权限直接对外暴露这两个端口，因此客户端无法通过标准端口直接连接到您服务器内的 OpenVPN 服务。\n解决方案：在服务商管理面板中配置端口转发（NAT 映射）\n您的 VPS 服务商通常会在其控制面板中提供端口转发功能，可以将宿主机上一个分配给您的外部端口，映射到您虚拟机内部的指定端口。\n操作步骤如下：\n登录您的 VPS 服务商管理面板，找到您的实例 找到 端口转发（NAT / Port Forwarding） 或类似选项 添加两条转发规则（外部端口由系统分配或您自行填写）： 内部端口（本机 OpenVPN） 协议 外部端口（映射后对外暴露） 3074 UDP 例：40074 3075 TCP 例：40075 记录下服务商分配给您的两个外部端口号，在后续配置客户端时需要用到 💡 注意：内部防火墙（Firewalld）和云厂商安全组仍然需要开放 3074（UDP） 和 3075（TCP），因为这是 OpenVPN 服务在您虚拟机内部实际监听的端口。端口转发规则是将外部流量\u0026quot;转进来\u0026quot;，服务本身不变。\n3. 服务端文件部署与核心配置 在第一章准备好环境后，我们需要将加速器的\u0026quot;心脏\u0026quot;——服务端核心文件部署到服务器中。这一步看似简单，但文件路径的准确性和脚本的执行权限直接决定了后续服务能否启动。\n首先，我们需要先从 原作者博客 中下载关键文件 教程 .zip, 解压后从中提取出 server.zip\n3.1. 使用 WinSCP 上传文件 为了方便管理，我们推荐使用 WinSCP 可视化工具 将文件上传到服务器的临时目录。\n3.1.1. 建立连接 打开 WinSCP 软件。 主机名：填写您的服务器公网 IP。 用户名：root 密码：您的服务器 SSH 登录密码。 点击登录，如果是首次连接，点击\u0026quot;是\u0026quot;接受密钥指纹。 3.1.2. 上传操作 登录成功后，软件界面左侧代表您的电脑，右侧代表服务器。 在右侧（服务器端），双击顶部的 .. 文件夹图标返回根目录，然后找到并进入 /tmp 目录。 （选择 /tmp 是因为它是存放临时文件的标准位置，系统重启后会自动清理，适合做中转） 在左侧（本地端），找到您电脑上的 server.zip 文件。 将 server.zip 直接拖拽到右侧窗口中。 3.2. 解压与部署 文件上传完成后，我们需要通过 SSH 终端将其解压到 OpenVPN 的标准配置目录中。\n3.2.1. 创建标准目录 为了规范化管理，我们统一将文件存放在 /etc/openvpn 目录下。输入以下命令创建目录（如果系统已自动创建，此命令会提示已存在，忽略即可）：\n1 sudo mkdir -p /etc/openvpn 3.2.2. 解压文件 输入以下命令，将刚才上传到临时目录的文件解压到配置目录：\n1 sudo unzip /tmp/server.zip -d /etc/openvpn/ 3.2.3. 验证解压结果 解压完成后，我们要确认文件是否都在。输入以下命令查看目录内容：\n1 ls -l /etc/openvpn/ 请仔细核对输出结果，确保目录下包含以下关键文件：\nserver_tcp.conf （TCP 配置文件） server_udp.conf（UDP 配置文件） checkpsw.sh （密码验证脚本） psw-file （账号密码文件） 3.3. 关键步骤：赋予执行权限 ⚠️ 这是最容易被新手忽略的一步！\ncheckpsw.sh 是一个 Shell 脚本，OpenVPN 需要调用它来验证客户端传来的账号密码。如果它没有 「可执行权限」，服务器就会 拒绝所有连接请求，导致报错。\n3.3.1. 赋予权限 输入以下命令，将脚本标记为可执行文件：\n1 sudo chmod +x /etc/openvpn/checkpsw.sh 3.3.2. 再次验证 再次输入查看命令：\n1 ls -l /etc/openvpn/checkpsw.sh 观察输出结果的第一个字段：\n如果显示 -rwxr-xr-x （包含 x 且文件名通常变绿），说明权限设置成功。 如果显示 -rw-r--r-- （没有 x)，说明失败，请重新执行 chmod 命令。 至此，所有的文件都已就位，且具备了运行条件。下一章我们将进入最核心、也最复杂的环节：修改配置文件以适配群星的低延迟需求及新版系统的兼容性。\n4. 核心配置与版本兼容性修正 文件部署完成后，我们需要对 OpenVPN 的配置文件进行\u0026quot;手术\u0026quot;。本章的核心目标是：关闭加密以降低延迟，并修正新旧版本的语法差异。\n4.1. 修改 TCP 配置文件 首先修改 TCP 协议的配置文件。此文件决定了游戏数据的传输方式之一。\n4.1.1. 打开 tcp 文件 输入以下命令编辑 server_tcp.conf 文件：\n1 sudo vi /etc/openvpn/server_tcp.conf 4.1.2. 编辑 tcp 指南 进入编辑模式（按 i 键），请根据您的 OpenVPN 版本进行以下修改：\n针对 OpenVPN 2.4.x（旧版/CentOS 7 默认） 保持以下参数不变（如果文件中是这样写的）： 1 2 cipher none client-cert-not-required 针对 OpenVPN 2.5.x（较新版） 旧的 cipher 指令已弃用，请找到 cipher none，将其修改或替换为： 1 data-ciphers none （如果不改，服务端日志会疯狂报错提示协商失败） 针对 OpenVPN 2.6.x（最新版） 除了执行上述 2.5.x 的修改外，还必须处理证书验证指令。 找到 client-cert-not-required，将其删除并替换为： 1 verify-client-cert none （新版本彻底移除了旧指令，不替换将无法启动服务） 4.1.3. 保存 tcp 并文件退出 修改完成后，按 Esc 键，输入 :wq 并回车。\n4.2. 修改 UDP 配置文件 接下来修改 UDP 配置文件，通常群星联机更推荐使用 UDP 协议，因为它的延迟更低。\n4.2.1. 打开 udp 文件 输入以下命令：\n1 sudo vi /etc/openvpn/server_udp.conf 4.2.2. 编辑 udp 指南 操作逻辑与 TCP 完全一致，请重复上述步骤：\n版本适配 2.4.x：保持 cipher none 和 client-cert-not-required。\n2.5.x：将 cipher 改为 data-ciphers none。\n2.6.x：同上，并将 client-cert-not-required 替换为 verify-client-cert none。\n4.2.3. 保存 udp 文件并退出 按 Esc 键，输入 :wq 并回车。\n4.3. 设置连接账号密码 最后，我们需要配置 checkpsw.sh 脚本读取的账号密码文件。客户端连接时必须填写这里设置的内容。\n4.3.1. 打开密码文件 输入以下命令：\n1 sudo vi /etc/openvpn/psw-file 4.3.2. 设置账号 文件内容的格式非常简单：用户名 空格 密码。 您可以删除原有的默认内容，填入您自己的账号。\n示例（设置用户名为 stellaris，密码为 123456）：\n1 stellaris 123456 4.3.3. 保存退出 按 Esc 键，输入 :wq 并回车。\n至此，配置文件的修改工作全部完成。下一章我们将尝试启动服务，并教您如何看懂启动日志来验证修改是否成功。\n5. 服务启动验证与自动化部署 配置文件的修改只是纸上谈兵，我们需要通过实际运行来验证服务能否启动。如果配置文件有语法错误（例如 OpenVPN 版本不兼容），在这一步就会暴露出来。确认无误后，我们将配置开机自启。\n5.1. 手动启动测试 在后台静默运行之前，我们先在前台手动启动一次，以便直观地看到启动日志。\n5.1.1. 查找 OpenVPN 主程序路径 输入以下指令查找路径，通常位于 /usr/sbin/openvpn：\n1 sudo find / -name openvpn 5.1.2. 测试 TCP 服务 输入以下指令启动 TCP 服务端（注意路径需与上一步查到的一致）：\n1 sudo /usr/sbin/openvpn --cd /etc/openvpn/ --config server_tcp.conf 5.1.3. 观察启动日志 终端会输出一长串日志。请耐心观察最后一行：\n✅ 如果显示 Initialization Sequence Completed，说明 TCP 服务启动成功，配置文件无误。 ❌ 如果显示 Exiting due to fatal error 或其他报错，请仔细检查报错信息（通常是 cipher 或 auth 参数写错了），并返回上一章重新修改。 确认成功后，按 Ctrl + C 停止服务。\n5.1.4. 测试 UDP 服务 重复上述步骤，测试 UDP 配置文件：\n1 sudo /usr/sbin/openvpn --cd /etc/openvpn/ --config server_udp.conf 同样等待出现 Initialization Sequence Completed 后，按 Ctrl + C 停止。\n5.2. 配置开机自启动 为了让加速器在服务器重启后自动运行，我们需要将启动命令添加到系统的启动脚本中。\n5.2.1. 编辑 rc.local 文件 输入以下命令打开启动脚本：\n1 sudo vi /etc/rc.d/rc.local 5.2.2. 添加启动命令 按 i 进入插入模式，使用方向键移动到文件最底部，粘贴以下两行代码： 1 2 /usr/sbin/openvpn --cd /etc/openvpn/ --config server_udp.conf \u0026amp; /usr/sbin/openvpn --cd /etc/openvpn/ --config server_tcp.conf \u0026amp; ⚠️ 注意：命令末尾的 \u0026amp; 符号绝对不能漏！它代表「在后台运行」。如果漏掉，服务器重启后会卡在启动画面进不去系统。 5.2.3. 保存并退出 按 Esc 键，输入 :wq 并回车。\n5.2.4. 赋予脚本执行权限 ⚠️ 这是很多教程容易漏掉的一步。在 CentOS 7 中，rc.local 默认没有执行权限。如果不执行此命令，开机启动将无效：\n1 sudo chmod +x /etc/rc.d/rc.local ### 5.3. 重启验证 为了确保万无一失，我们模拟一次服务器断电重启。\n5.3.1. 重启服务器 输入以下命令重启系统：\n1 sudo reboot 此时 SSH 连接会断开，请等待 1-2 分钟。\n5.3.2. 验证端口监听状态 重新连接 SSH，输入以下指令检查端口是否已在运行：\n1 sudo netstat -anp | grep 307 5.3.3. 确认结果 观察输出结果：\n如果看到类似 udp \u0026hellip; 0.0.0.0:3074 和 tcp \u0026hellip; 0.0.0.0:3075 的行，且状态为 LISTEN（TCP）或相关进程存在。 这意味着加速器已经成功在后台自动运行，服务端部署圆满成功！ 6. 客户端深度配置与联机实测 服务端配置圆满结束后，最后一步就是配置玩家手中的客户端。本方案使用的是 UsbEAm LAN Party，它小巧免安装，通过 TAP 虚拟网卡技术组建虚拟局域网，非常适合群星这种 P2P 联机游戏。\n6.1. 下载与安装 我们需要准备客户端程序和虚拟网卡驱动。\n6.1.1. 获取软件 请前往原作者 Dogfight360 的博客下载最新版客户端（通常名为 UsbEAm_LAN_Party_V1.x.zip）：\nhttps://www.dogfight360.com/blog/1590/ 下载完成后解压，解压密码：dogfight360。解压后您应该会看到以下三个核心文件：\nUsbEAm LAN Party V1.2.exe（客户端主程序） tap-windows-9.9.2_3.exe（虚拟网卡驱动安装包） customize.ini（节点配置文件） 6.1.2. 安装 TAP 驱动 如果是第一次使用该软件，必须安装 TAP 驱动，否则无法建立虚拟局域网。\n双击运行 tap-windows-9.9.2_3.exe。 一路点击 Next（下一步）直到安装完成。 注意：安装过程中无需更改任何默认设置。 6.2. 配置节点信息 我们需要修改 customize.ini 文件，将我们服务器的信息填进去，让客户端知道去哪里连接。\n6.2.1. 编辑配置文件 用记事本打开 customize.ini，清空里面的内容，或者直接修改为以下标准格式： 1 2 3 4 5 6 7 8 9 10 11 [usbeam] Server_List=我的群星节点 Disable_rules=1 Broadcast_fix=1 [我的群星节点] IP=203.0.113.1 TCP_Port=3075 UDP_Port=3074 USER=stellaris PASS=123456 6.2.2. 参数详解（请务必核对） Server List：这里填的名字会显示在软件下拉菜单里 [我的群星节点]：中括号里的名字必须与 Server List 保持一致 IP：修改为您服务器的 公网 IP 地址,如果您使用的是共享型 VPS,只保留前面的 ip 地址即可，去掉后面的端口 TCP Port / UDP Port：默认填写 3075 和 3074。如果您使用的是共享型 VPS，请填写您在服务商管理面板中配置的端口转发规则里对应的外部端口号（详见上方\u0026quot;特殊情况：共享型 VPS 的端口转发\u0026quot;一节） USER：修改为您在 psw-file 里设置的 用户名 PASS：修改为您在 psw-file 里设置的 密码 Disable rules=1：代表默认勾选「不使用安全规则」 Broadcast fix=1：代表默认勾选「修正广播优先级」 修改完成后，保存并关闭文件。\n6.3. 启动连接与测试 万事俱备，只欠东风。\n6.3.1. 启动客户端 双击运行 UsbEAm LAN Party V1.2.exe。 6.3.2. 选择节点 在软件界面的下拉框中，找到我们刚才在配置文件里命名的节点（例如\u0026quot;我的群星节点\u0026quot;）。\n6.3.3. 选择模式（关键！） 在连接按钮的左侧或下方，通常有模式选择。 ⚠️ 请务必勾选 UDP 模式。\n💡 群星联机对延迟极其敏感，UDP 模式去除了 TCP 的握手重传机制，能显著降低延迟，是本教程的核心优势所在。\n6.3.4. 点击连接 点击 连接 按钮。\n观察软件底部的状态栏 ✅ 如果显示 「连接状态：正常 (xx ms)」，恭喜您！节点搭建成功 ❌ 如果一直卡在「正在连接」或提示 验证失败，请检查： 防火墙端口是否正确开放（第一章） 账号密码是否填写正确（上一章） 服务端是否正常运行 当所有小伙伴都显示 「连接状态：正常」 后，大家实际上已经处于同一个虚拟局域网中。\n7. 总结 🎉 至此，您的专属群星联机加速节点已部署完毕！\n使用方法：\n所有玩家启动 UsbEAm LAN Party 客户端 连接到同一节点 确认状态显示「正常」 直接进入游戏，享受低延迟的联机体验！ 祝各位征途愉快！🚀\n","date":"2026-02-11T00:00:00Z","permalink":"https://ysy.fan/p/stellaris-lan-openvpn-centos/","title":"群星联机优化指南（CentOS 7 版）"},{"content":"1. 问题背景 在新电脑上使用 Git 时，常常会因为缺少必要配置而遇到各种问题：\n无法连接 GitHub（网络问题） 提交代码时提示缺少用户信息 中文文件名显示为乱码 本文整理了新机 Git 初始化的完整流程，帮助你快速配置好开发环境。\n2. 配置代理 如果你需要使用代理工具访问 GitHub，首先需要配置 Git 的网络代理。\n2.1. 查找代理端口 不同的代理工具使用的端口不同：\nClash：默认端口 7890 Clash Verge：默认端口 7897 其他工具：可在工具的设置中查看 2.2. 设置代理 在 Git Bash 或终端中输入以下命令（将 7897 替换为你的实际端口）：\n1 2 git config --global http.proxy http://127.0.0.1:7897 git config --global https.proxy http://127.0.0.1:7897 2.3. 验证配置 输入以下命令查看配置是否生效：\n1 git config --global -l 如果看到以下输出，说明代理配置成功：\n1 2 http.proxy=http://127.0.0.1:7897 https.proxy=http://127.0.0.1:7897 3. 配置用户信息 Git 在提交代码时需要记录提交者的身份信息。\n3.1. 设置用户名和邮箱 在引号内填入你的 GitHub 用户名和邮箱（建议使用 GitHub 绑定的邮箱）：\n1 2 git config --global user.name \u0026#34;你的 GitHub 用户名\u0026#34; git config --global user.email \u0026#34;your-email@example.com\u0026#34; 示例：\n1 2 git config --global user.name \u0026#34;sign-river\u0026#34; git config --global user.email \u0026#34;example@gmail.com\u0026#34; 4. 解决中文文件名乱码问题 如果你的项目中有中文文件名，Git 默认会将其转义为八进制编码，显示为乱码（如 \\344\\270\\255\\346\\226\\207）。\n4.1. 设置显示中文 执行以下命令禁用路径引号转义：\n1 git config --global core.quotepath false 配置后，git status 等命令就能正常显示中文文件名了。\n5. 完整配置脚本 如果你想一次性完成所有配置，可以复制以下命令并修改对应的值：\n1 2 3 4 5 6 7 8 9 10 11 12 13 # 配置代理（根据实际端口修改） git config --global http.proxy http://127.0.0.1:7897 git config --global https.proxy http://127.0.0.1:7897 # 配置用户信息（替换为你的信息） git config --global user.name \u0026#34;你的用户名\u0026#34; git config --global user.email \u0026#34;your-email@example.com\u0026#34; # 解决中文乱码 git config --global core.quotepath false # 查看所有配置 git config --global --list 6. 常见问题 6.1. Q1: 如何取消代理配置？ 如果不再需要代理，可以使用以下命令移除：\n1 2 git config --global --unset http.proxy git config --global --unset https.proxy 6.2. Q2: 如何修改已有的配置？ 直接重新执行设置命令即可覆盖旧配置，或者使用以下命令编辑配置文件：\n1 git config --global --edit 6.3. Q3: 配置是否对所有仓库生效？ --global 参数表示全局配置，对当前用户的所有 Git 仓库生效。如果只想针对某个仓库配置，可以去掉 --global 参数，在仓库目录下执行命令。\n7. 总结 完成以上配置后，你的新电脑就可以正常使用 Git 进行开发了。这些配置只需要执行一次，之后就可以专注于代码本身。\n如果遇到其他 Git 相关问题，欢迎在评论区讨论！\n","date":"2026-02-11T00:00:00Z","permalink":"https://ysy.fan/p/git-initial-setup/","title":"新电脑 Git 初始化配置指南"},{"content":"1. 前言 Markdown 是一种轻量级标记语言，让你可以用纯文本格式编写文档，然后转换成格式丰富的 HTML 页面。本文将系统介绍 Markdown 的各种语法。\n2. 基础语法 2.1. 标题 使用 # 符号创建标题，数量表示标题级别：\n1 2 3 4 5 6 7 8 9 10 11 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 2.2. 段落和换行 段落：段落之间用空行分隔\n1 2 3 这是第一段内容。 这是第二段内容。 换行：在行末添加两个空格或使用 \u0026lt;br\u0026gt;\n1 2 3 4 5 6 7 第一行内容 第二行内容（注意上一行末尾有两个空格） 或者使用 HTML 标签： 第一行内容\u0026lt;br\u0026gt; 第二行内容 在代码段和图片间添加空行更适合用第二种方法 效果： 第一行内容 第二行内容\n或者：\n第一行内容\n第二行内容\n2.3. 强调 1 2 3 4 _斜体_ 或 _斜体_ **粗体** 或 **粗体** **_粗斜体_** 或 **_粗斜体_** ~~删除线~~ 效果：\n斜体 粗体 粗斜体 删除线 3. 列表 3.1. 无序列表 使用 -、+ 或 * 加空格：\n1 2 3 4 5 - 第一项 - 第二项 - 嵌套项 1 - 嵌套项 2 - 第三项 效果：\n第一项 第二项 嵌套项 1 嵌套项 2 第三项 3.2. 有序列表 使用数字加点加空格：\n1 2 3 4 5 1. 第一项 2. 第二项 1. 嵌套项 1 2. 嵌套项 2 3. 第三项 效果：\n第一项 第二项 嵌套项 1 嵌套项 2 第三项 3.3. 任务列表 1 2 3 - [x] 已完成任务 - [ ] 未完成任务 - [ ] 待办事项 效果：\n已完成任务 未完成任务 待办事项 4. 链接和图片 4.1. 链接 普通链接：\n1 2 [链接文本](https://example.com) [带标题的链接](https://example.com \u0026#34;鼠标悬停时显示\u0026#34;) 效果：\nGitHub 官网 带标题的链接 自动链接：\n1 2 \u0026lt;https://example.com\u0026gt; \u0026lt;email@example.com\u0026gt; 效果：\nhttps://github.com example@email.com 引用式链接：\n1 2 3 4 这是 [链接][1] 和 [另一个链接][link-ref] [1]: https://example.com [link-ref]: https://another-example.com 效果： 这是 GitHub 和 VS Code\n4.2. 图片 基本语法：\n1 2 ![图片描述](图片路径。jpg) ![带标题的图片](图片路径。jpg \u0026#34;鼠标悬停标题\u0026#34;) 调整图片大小（需要 HTML）：\n1 \u0026lt;img src=\u0026#34;图片路径。jpg\u0026#34; alt=\u0026#34;描述\u0026#34; width=\u0026#34;300\u0026#34; /\u0026gt; 示例：\n1 \u0026lt;img src=\u0026#34;images/example.jpg\u0026#34; alt=\u0026#34;示例图片\u0026#34; width=\u0026#34;400\u0026#34; /\u0026gt; 引用式图片（与引用式链接类似）：\n1 2 3 ![图片][image-ref] [image-ref]: 图片路径。jpg 5. 引用 5.1. 基本引用 1 2 3 \u0026gt; 这是一句引用 \u0026gt; \u0026gt; 可以包含多个段落 效果：\n这是一句引用\n可以包含多个段落\n5.2. 嵌套引用 1 2 3 4 5 \u0026gt; 第一层引用 \u0026gt; \u0026gt; \u0026gt; 第二层引用 \u0026gt; \u0026gt; \u0026gt; \u0026gt; \u0026gt; 第三层引用 效果：\n第一层引用\n第二层引用\n第三层引用\n5.3. 引用中使用其他元素 1 2 3 4 5 6 \u0026gt; ## 引用中的标题 \u0026gt; \u0026gt; - 列表项 1 \u0026gt; - 列表项 2 \u0026gt; \u0026gt; **粗体文本** 效果：\n引用中的标题 列表项 1 列表项 2 粗体文本 和 斜体文本\n6. 代码 6.1. 行内代码 使用反引号包裹：\n1 这是一段包含 `代码` 的文本。 效果：这是一段包含 代码 的文本。\n6.2. 代码块 6.2.1. 方式一：使用三个反引号 1 2 3 4 ```python def hello(): print(\u0026#34;Hello, World!\u0026#34;) ``` 6.2.2. 方式二：缩进四个空格 1 2 def hello(): print(\u0026#34;Hello, World!\u0026#34;) 6.2.3. 指定语言以启用语法高亮 1 2 3 4 5 6 7 8 9 10 11 ```python print(\u0026#34;Python 代码\u0026#34;) ``` ```javascript console.log(\u0026#34;JavaScript 代码\u0026#34;); ``` ```bash echo \u0026#34;Shell 脚本\u0026#34; ``` 效果：\n1 2 def greet(name): print(f\u0026#34;Hello, {name}!\u0026#34;) 1 2 3 function greet(name) { console.log(`Hello, ${name}!`); } 1 2 #!/bin/bash echo \u0026#34;Hello, World!\u0026#34; 7. 表格 7.1. 基本表格 1 2 3 4 | 左对齐 | 居中对齐 | 右对齐 | | :----- | :------: | -------: | | 内容 1 | 内容 2 | 内容 3 | | 长内容 | 短 | 中等内容 | 效果：\n左对齐 居中对齐 右对齐 内容 1 内容 2 内容 3 长内容 短 中等内容 对齐方式：\n:--- 左对齐 :---: 居中 ---: 右对齐 8. 分隔线 使用三个或更多的 -：\n1 --- 效果：\n第一条分隔线：\n9. 转义字符 使用反斜杠 \\ 转义特殊字符：\n1 2 3 \\* 不是斜体 \\# 不是标题 \\[ 不是链接 效果：\n* 这不会变成列表 # 这不会变成标题 [这不是链接、] 可转义的字符：\n1 \\ ` * _ { } [ ] ( ) # + - . ! 10. 进阶语法 10.1. 脚注 1 2 3 这是一段包含脚注的文本 [^1]。 [^1]: 这是脚注内容。 效果： 这是一段包含脚注的文本 1，还有另一个脚注 2。\n10.2. 定义列表 1 2 3 4 5 6 术语 : 定义内容 : 可以有多个定义 另一个术语 : 另一个定义 效果：\nMarkdown 一种轻量级标记语言 由 John Gruber 创建 HTML 超文本标记语言 10.3. 缩略语 1 2 3 4 _[HTML]: Hyper Text Markup Language _[CSS]: Cascading Style Sheets HTML 和 CSS 是 Web 开发的基础。 11. HTML 支持 Markdown 支持内嵌 HTML 标签：\n1 2 3 4 5 6 7 8 9 \u0026lt;div align=\u0026#34;center\u0026#34;\u0026gt; \u0026lt;h2\u0026gt;居中标题\u0026lt;/h2\u0026gt; \u0026lt;p style=\u0026#34;color: red;\u0026#34;\u0026gt;红色文字\u0026lt;/p\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;details\u0026gt; \u0026lt;summary\u0026gt;点击展开\u0026lt;/summary\u0026gt; 隐藏的内容 \u0026lt;/details\u0026gt; 效果：\n这是居中的标题 这是红色的文字\n点击展开查看更多 这里是隐藏的内容\n可以包含列表 也可以包含其他 Markdown 语法 甚至是粗体 12. 数学公式 使用 LaTeX 语法（需要支持）：\n行内公式：\n1 这是行内公式 $E = mc^2$ 效果： 这是行内公式 $E = mc^2$，还有勾股定理 $a^2 + b^2 = c^2$\n块级公式：\n1 2 3 $$ \\sum_{i=1}^{n} x_i = x_1 + x_2 + \\cdots + x_n $$ 效果：\n$$ \\sum_{i=1}^{n} x_i = x_1 + x_2 + \\cdots + x_n $$$$ \\int_{0}^{\\infty} e^{-x^2} dx = \\frac{\\sqrt{\\pi}}{2} $$13. 常用技巧 13.1. 空行和空格 1 2 3 4 5 6 7 \u0026lt;!-- 强制空行（HTML 注释不显示） --\u0026gt; \u0026amp;nbsp; \u0026lt;!-- 空格 --\u0026gt; 使用\u0026amp;nbsp; 添加不间断空格 效果：\n第一段文字\n第二段文字（上方有空行）\n这里有 三个空格 的效果\n13.2. 文本居中 1 \u0026lt;div align=\u0026#34;center\u0026#34;\u0026gt;居中的内容\u0026lt;/div\u0026gt; 效果：\n这段文字是居中的\n可以包含多行内容\n13.3. 折叠内容 1 2 3 4 5 \u0026lt;details\u0026gt; \u0026lt;summary\u0026gt;点击展开\u0026lt;/summary\u0026gt; 这里是折叠的内容 可以包含任何 Markdown 语法 \u0026lt;/details\u0026gt; 效果（上文 HTML 支持部分已展示）\n13.4. 颜色文字 1 2 \u0026lt;span style=\u0026#34;color: red;\u0026#34;\u0026gt;红色文字\u0026lt;/span\u0026gt; \u0026lt;span style=\u0026#34;color: blue;\u0026#34;\u0026gt;蓝色文字\u0026lt;/span\u0026gt; 效果：\n这是红色文字 这是蓝色文字 这是绿色文字 这是橙色文字\n14. VS Code 快捷键（Markdown All in One） 功能 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 删除线 Alt + S 切换标题级别 Ctrl + Shift + ] 预览 Ctrl + K V 15. 常见问题 15.1. Q: 如何在列表中添加多个段落？ A: 在段落前添加 4 个空格或 1 个 Tab：\n1 2 3 4 5 6 7 1. 第一项 这是第一项的第二段。 这是第一项的第三段。 2. 第二项 效果：\n第一项\n这是第一项的第二段内容。\n这是第一项的第三段内容。\n第二项\n15.2. Q: 如何在表格中换行？ A: 使用 \u0026lt;br\u0026gt; 标签：\n1 2 3 | 列 1 | 列 2 | | ---------------- | ---- | | 第一行\u0026lt;br\u0026gt;第二行 | 内容 | 效果：\n列 1 列 2 第一行\n第二行 内容 多行\n内容\n演示 这是单行 15.3. Q: 图片太大怎么办？ A: 使用 HTML 指定宽度：\n1 \u0026lt;img src=\u0026#34;image.jpg\u0026#34; alt=\u0026#34;描述\u0026#34; width=\u0026#34;400\u0026#34; /\u0026gt; 16. 在线工具推荐 StackEdit：在线 Markdown 编辑器 Dillinger：支持实时预览 Typora：所见即所得编辑器 Markdown Preview Enhanced：VS Code 插件 17. 参考资料 Markdown 官方语法 GitHub Flavored Markdown CommonMark 规范 最后更新：2026-02-10\n这是第一个脚注的内容。\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n这是第二个脚注的内容。\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","date":"2026-02-10T00:00:00Z","permalink":"https://ysy.fan/p/markdown-syntax-guide/","title":"Markdown 语法指南"},{"content":"1. 前言 开始学习 PyTorch，记录基础知识和学习心得。\n2. PyTorch 简介 PyTorch 是一个基于 Python 的科学计算包，主要用于：\n替代 NumPy，利用 GPU 加速 提供灵活的深度学习研究平台 3. 环境配置 3.1. 配置 Anaconda 在开始 PyTorch 学习前，使用 Anaconda 进行环境隔离是最佳选项，避免不同项目的依赖冲突。\n操作步骤：\n点击底部的 Create 按钮。\nName (名称)：设置为 pytorch（清晰明了，便于识别）。\nPackages (版本选择)：勾选 Python，并选择 3.12 版本。\n💡 版本选择思路 (2026 Q1)：推荐选择 Python 3.12。相比于旧版本，它拥有更好的性能；相比于最新的 3.13+ 版本，它在 PyTorch 生态圈（包括 NumPy, Pandas 等依赖库）中的兼容性最为成熟稳定。\n3.2. 安装 PyTorch 确认显卡驱动与 CUDA 版本 在安装 GPU 版本的 PyTorch 前，必须确认显卡驱动支持的最高 CUDA 版本。\n操作：Win + R 打开运行 -\u0026gt; 输入 cmd -\u0026gt; 输入指令 nvidia-smi。\n关键信息：查看右上角的 CUDA Version（例如：13.1）。\n⚠️ 重要原则：官网下载时选择的 CUDA 版本（Runtime）必须 \u0026lt;= 电脑显示的 CUDA 版本（Driver）。\nwin+r，输入 cmd 回车打开终端，在终端输入 nvidia-smi 回车，第一行最右边就是适合你选择的 CUDA 版本\n获取安装指令 前往 PyTorch 官网，根据机器配置选择：\nPyTorch Build: Stable\nYour OS: Windows\nPackage: Pip\nLanguage: Python\nCompute Platform: CUDA 13.0 (根据上一步确认的版本选择，这里选 13.0 是安全的，因为 13.0 \u0026lt; 13.1)\n执行安装 打开 Anaconda Navigator，找到 pytorch 环境。\n点击播放键 ▶️ -\u0026gt; 选择 Open Terminal（这一步确保了命令是在虚拟环境中运行）。\n粘贴并运行官网生成的指令：\n(注：下载文件较大，约 2GB+，请耐心等待)\n验证安装 (Verification) 安装完成后，必须验证 PyTorch 能否正确调用 GPU。在当前终端输入 python 进入交互模式：\n1 2 3 import torch # 检查 CUDA 是否可用，返回 True 即为成功 torch.cuda.is_available() 5. 参考资料 PyTorch 官方文档 PyTorch 官方教程 ","date":"2026-02-10T00:00:00Z","permalink":"https://ysy.fan/p/pytorch-basics/","title":"PyTorch 基础入门"},{"content":"1. 前言 在 VS Code 中编写 Markdown 时，常常会遇到各种格式问题：表格对不齐、列表缩进混乱、链接格式错误等。本文将介绍如何通过插件和配置来轻松解决这些问题，让你的 Markdown 写作更加高效。\n2. 安装插件 markdownlint 2.1. 格式检查工具 功能：\n实时检查 Markdown 格式 自动修复常见问题 保持文档规范统一 常见提示：\n规则 说明 解决 MD001 标题层级不连续 不要从 # 直接跳到 ### MD009 行尾有多余空格 删除行尾空格 MD012 连续空行超过一行 删除多余空行 MD013 行长度超过限制 换行或调整配置 MD022 标题前后需要空行 添加空行 MD032 列表前后需要空行 添加空行 2.2. 使用方法 在拓展商店搜索并安装 markdownlint 打开设置 (json) 在设置中输入 1 2 3 4 \u0026#34;editor.codeActionsOnSave\u0026#34;: { \u0026#34;source.fixAll.markdownlint\u0026#34;: \u0026#34;explicit\u0026#34;, }, \u0026#34;editor.formatOnSave\u0026#34;: true, 3. 总结 之后只要 Ctrl + S 保存文件，就会自动修正 Markdown 格式\n最后更新：2026-02-10\n","date":"2026-02-10T00:00:00Z","permalink":"https://ysy.fan/p/vscode-markdown-format-tips/","title":"VS Code 编写 Markdown 如何轻松解决格式问题"},{"content":"1. 前言 在编写中英文混排的文档时，在中文和英文之间添加空格是一个良好的排版习惯。这样做可以：\n提升阅读体验：适当的空格让文字更加清晰易读，避免中英文紧贴在一起显得拥挤 符合排版规范：许多中文排版指南都建议在中英文之间添加空格 保持文档一致性：统一的格式让整个文档看起来更专业 但是手动添加空格既繁琐又容易遗漏，本文将介绍如何使用 VS Code 插件实现保存时自动格式化。\n2. 安装插件 2.1. Pangu-Markdown 打开 VS Code 扩展商店，搜索 Pangu-Markdown 并安装。\n3. 配置自动格式化 3.1. settings.json 配置 打开设置 搜索并启用自动格式化\n搜索 pangu，勾选 \u0026ldquo;Format On Save\u0026rdquo;（保存时自动格式化）选项。\n重启 VS Code\n配置完成后需要重启 VS Code 才能生效。\n注意：如果配置后没有生效，请尝试重启 VS Code。这是插件生效的必要步骤。\n4. 总结 配置完成后，使用 Ctrl+S 保存文件时，插件会自动在中文和英文之间添加空格，让你专注于内容创作，无需担心排版格式问题。\n","date":"2026-02-10T00:00:00Z","permalink":"https://ysy.fan/p/vscode-auto-space-chinese-english/","title":"VS Code 自动在中英文间添加空格"},{"content":"1. 前言 在这个信息碎片化的时代，拥有一方完全属于自己的网络天地，是很多技术爱好者和创作者的\u0026quot;浪漫\u0026quot;。无论是记录学习笔记、分享项目经验，还是单纯地碎碎念，一个独立博客都是最好的载体。\n市面上的博客框架很多，经过一番折腾和对比，我最终选择了 Hugo。它速度极快，生成的静态页面安全稳定，配合 GitHub Pages 可以实现完全免费的托管。而在主题选择上，我使用了设计感极佳的卡片式主题 Stack，它不仅美观，而且功能非常完善。\n这篇教程是我在踩坑和摸索后的总结。为了让大家少走弯路，我将原本零散的记录整理成了这篇\u0026quot;手把手\u0026quot;指南。本教程将涵盖从仓库创建、环境部署，到界面汉化、评论区接入，甚至包括如何高效地用 VS Code 写文章的全流程。\n不需要你精通前端代码，只要跟着步骤走，你也能轻松搭建出一个既好看又好用的个人博客。\n2. 快速起步与仓库搭建 搭建博客最怕的就是繁琐的环境配置。幸运的是，我们不需要在本地一行行敲代码安装 Hugo，直接利用现成的 GitHub 模板，只需点几下鼠标，就能把博客\u0026quot;搬\u0026quot;回家。\n2.1. 获取主题模板 首先，我们需要访问 hugo-theme-stack 的官方启动模板。这个模板已经预置好了 GitHub Actions 自动构建脚本，能帮我们省去 90% 的配置工作。\n模板地址：https://github.com/CaiJimmy/hugo-theme-stack-starter\n进入页面后，点击右上角的 Use this template（使用此模板）按钮，然后选择 Create a new repository（创建新仓库）。\n2.2. 创建 GitHub 仓库（关键步骤！） 这一步至关重要，仓库的命名直接决定了你的博客能不能被访问。\n在 Repository name（仓库名称）一栏中，必须按照以下格式填写：\n1 你的 GitHub username.github.io ⚠️ 注意事项：\n格式严格：github.io 前面的部分必须和你的 GitHub 账户名完全一致（大小写最好也保持一致） 示例：如果你的 GitHub 用户名是 sign-river，那么仓库名必须是 sign-river.github.io。如果不这样填，后续 GitHub Pages 将无法自动部署，你会遇到 404 错误 权限设置：选择 Public（公开），这样 GitHub Pages 才能免费托管你的网站 填写完毕后，点击底部的 Create repository 按钮。\n2.3. 等待自动部署 仓库创建好后，GitHub 的后台会自动开始工作：\n点击仓库顶部的 Actions 标签页 你会看到一个名为 Initial commit 或 pages-build-deployment 的工作流正在运行 部署状态说明：\n🟡 黄色旋转图标：表示正在部署中，请耐心等待（通常需要 1-2 分钟） 🟢 绿色对勾图标：表示部署成功！ 部署完成后，访问 https://username.github.io，如果能看到一个带有 \u0026ldquo;Hugo Theme Stack\u0026rdquo; 标题和示例文章的精美页面，恭喜你，你的个人博客雏形已经搭建完成了！🎉\n3. 基础个性化配置 上一章我们成功部署了博客，但现在的博客标题还是默认的 \u0026ldquo;Hugo Theme Stack Starter\u0026rdquo;，头像也是默认的。接下来，我们通过修改两个核心配置文件，让博客焕然一新。\n3.1. 修改核心站点信息 (config.toml) 这个文件控制着博客最基础的信息，比如网站地址和标题。\n在你的仓库主页，点击进入 config/_default 文件夹 找到并点击 config.toml 文件 点击文件右上角的 铅笔图标（Edit this file）进入编辑模式 找到以下两行并进行修改：\n1 2 3 4 5 # 将此链接修改为你自己的仓库地址（注意最后要有斜杠 /) baseurl = \u0026#34;https://username.github.io/\u0026#34; # 修改为你喜欢的博客名称 title = \u0026#34;YSY 的博客\u0026#34; 修改完成后，点击页面底部的绿色按钮 Commit changes 保存 3.2. 设置头像与个人简介 (params.toml) 这个文件主要控制侧边栏的展示内容。\n回到 config/_default 文件夹，这次我们要修改 params.toml 文件 同样点击铅笔图标编辑，找到 [sidebar] 区域，参考下图修改：\n1 2 3 4 5 6 7 8 9 10 11 [sidebar] # 侧边栏显示的表情符号 emoji = \u0026#34;🐱\u0026#34; # 侧边栏显示的个人简介/副标题 subtitle = \u0026#34;热爱编程\u0026#34; [sidebar.avatar] # 启用头像 enabled = true # 头像必须放在 assets/img/ 目录下 src = \u0026#34;img/avatar.png\u0026#34; 修改完成后，记得 Commit changes 保存 3.3. 上传你的头像图片 刚才我们在配置文件里指定了头像路径是 img/avatar.png，现在我们需要把真正的图片传上去。\n回到仓库根目录，依次进入 assets -\u0026gt; img 文件夹 点击右上角的 Add file → Upload files 将你准备好的头像图片重命名为 avatar.png（注意后缀名要匹配），然后拖拽上传 点击 Commit changes 提交更改 3.4. 关键步骤：切换部署分支 很多新手会发现改完配置后博客打不开了，或者显示的还是源码，原因通常是 GitHub Pages 的分支设置不对。我们需要告诉 GitHub：“请展示在这个分支里生成的网页文件”。\n进入仓库顶部的 Settings（设置）选项卡 在左侧菜单栏找到 Pages 在 Build and deployment 区域进行以下配置： Source 选择 Deploy from a branch Branch（分支）下拉菜单中，一定要选择 gh-pages 分支（而不是 master/main） 文件夹保持 /(root) 不变 点击 Save 保存 3.5. 欣赏你的博客 完成上述步骤后，等待几分钟（GitHub Actions 需要一点时间重新构建）。再次访问你的博客链接：\nhttps://username.github.io\n现在，你应该能看到博客标题变了，左侧也换成了你的头像和简介。是不是更有成就感了？\n4. 内容管理与初次发布 现在的博客里充斥着 \u0026ldquo;Hello World\u0026rdquo; 和 \u0026ldquo;Markdown Syntax Guide\u0026rdquo; 这样的演示文章。我们需要把它们清理干净，然后发布一篇真正属于你的内容。\n4.1. 清理演示文章 首先，我们要把“样板房”里的旧家具搬走。\n在 GitHub 仓库中，进入 content/post 文件夹 你会看到 hello-world、markdown-syntax 等文件夹 全部删除：点击右上角的 \u0026hellip; → Delete directory，或者直接在本地操作删除 4.2. 创建第一篇文章 Hugo 有一种很好的文章组织方式叫 \u0026ldquo;Page Bundles\u0026rdquo;（页面束）。简单来说，就是给每一篇文章建一个文件夹，把文章文字（index.md）和图片放在一起，这样管理起来非常方便。\n在 content/post 目录下，点击 Add file → Create new file 在文件名输入框中填写：post/my-first-post/index.md 注意：输入 / 会自动创建文件夹 输入文章内容，格式如下： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 --- # 1. Front Matter （元数据配置区） - 决定了文章在网站后台和侧边栏的展示 title: \u0026#34;我的 Python 工具箱计划\u0026#34; # 文章标题 date: 2025-12-28 # 发布日期，影响排序 description: \u0026#34;我正在搭建一个。..\u0026#34; # 摘要，显示在列表页和侧边栏简介 image: # 封面图路径，留空则不显示 categories: # 分类设置，直接控制侧边栏的导航分类 - \u0026#34;Python\u0026#34; - \u0026#34;项目开发\u0026#34; --- # 2. 正文内容区 - 读者实际阅读的内容 ## 大家好 👋 # 使用 ## 开头表示二级标题，侧边栏目录（TOC）会自动抓取它 这里输入你的文章正文内容。你可以描述你的项目背景、学习心得等。 ### 这个工具将支持： # 使用三级标题细分内容 * Web 端直接运行 Python # 无序列表项 * 鼠标拖动查看 3D 模型 # 无序列表项 * 完全不需要配置服务器 # 无序列表项 保持关注！ 发布与验证 滚动到页面底部，在 Commit changes 中填写“发布第一篇文章”，然后点击绿色按钮提交 等待 GitHub Actions 构建完成（通常几十秒） 刷新你的博客首页 ✨ 见证时刻：原本的英文演示文章消失了，取而代之的是你刚刚写的“我的第一篇博客”！点击标题进去，能看到你写的内容。\n5. 界面深度优化与汉化 这一章我们将深入博客的配置文件，把默认的英文界面改成中文，并去除多余的元素，让博客看起来更专业。\n5.1. 配置社交链接 (menu.toml) 默认模板左侧栏有 GitHub 和 Twitter 的图标。我们需要把 Twitter 删掉，并把 GitHub 换成你自己的地址。\n进入 config/_default 文件夹，打开 menu.toml 找到 [[social]] 区域 修改 GitHub：将 url 修改为你自己的 GitHub 主页地址 删除 Twitter：直接删除整个 Twitter 的配置块（从 [[social]] 到 icon = \u0026quot;brand-twitter\u0026quot; 的部分） 5.2. 全局语言汉化 让博客的时间格式、提示文案都变成中文。\n打开 config/_default/config.toml。\n找到并修改以下三项配置：\n1 2 3 languageCode = \u0026#34;zh-cn\u0026#34; defaultContentLanguage = \u0026#34;zh-cn\u0026#34; hasCJKLanguage = true 5.3. 左侧主菜单汉化（关键！） 左侧的 \u0026ldquo;Home\u0026rdquo;, \u0026ldquo;Archives\u0026rdquo;, \u0026ldquo;Search\u0026rdquo; 等菜单需要改成中文。这个过程分两步，防止配置冲突。\n5.3.1. 清理页面独立配置 Stack 主题在每个页面的源文件中也定义了菜单，我们需要先删掉它们，以便由统一的配置文件接管。\n分别找到以下 3 个文件：\ncontent/page/archives/index.md content/page/search/index.md content/page/links/index.md 编辑文件：删除文件头部 menu: 及其下方缩进的内容（通常是 main: 和 params: 那几行）\n注意：保留最上方的 title、slug 等信息，以及最下方的 --- 分隔线，只删 menu 模块 5.3.2. 重写主菜单配置 回到 config/_default/menu.toml\n清空 [[main]] 相关的旧配置，复制粘贴以下内容：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [[main]] identifier = \u0026#34;home\u0026#34; name = \u0026#34;首页\u0026#34; url = \u0026#34;/\u0026#34; weight = 1 [main.params] icon = \u0026#34;home\u0026#34; [[main]] identifier = \u0026#34;archives\u0026#34; name = \u0026#34;归档\u0026#34; url = \u0026#34;/archives/\u0026#34; weight = 2 [main.params] icon = \u0026#34;archives\u0026#34; [[main]] identifier = \u0026#34;search\u0026#34; name = \u0026#34;搜索\u0026#34; url = \u0026#34;/search/\u0026#34; weight = 3 [main.params] icon = \u0026#34;search\u0026#34; [[main]] identifier = \u0026#34;links\u0026#34; name = \u0026#34;友链\u0026#34; url = \u0026#34;/links/\u0026#34; weight = 4 [main.params] icon = \u0026#34;link\u0026#34; 5.4. 隐藏页脚版权信息 (CSS) 如果你想让页面底部更清爽，隐藏 \u0026ldquo;Powered by Hugo\u0026rdquo; 字样，可以通过自定义 CSS 实现。\n进入 assets/scss/ 文件夹\n新建或编辑 custom.scss 文件\n添加以下代码：\n1 2 3 .site-footer .powerby { display: none; } 5.5. 细节清理 最后做两个收尾工作：\n修改网站图标 (Favicon)： 准备一张正方形的小图片，重命名为 favicon.png 上传到仓库的 static 文件夹下（如果没有该文件夹，请在根目录新建一个） 删除多余分类： 进入 content/categories 删除 example-category 文件夹，保持分类清爽 6. 接入评论系统（Giscus） 一个没有评论区的博客是没有灵魂的。虽然 Stack 主题自带了 Disqus 支持，但它加载慢且有广告。本章我们将重点介绍 Giscus —— 一个基于 GitHub Discussions 的现代化、免费、无广告的评论系统。\n在这里，我们强烈推荐使用 Giscus。它利用 GitHub 的 Discussions 功能来存储评论，不仅完全免费、无广告，而且数据完全掌握在你自己的仓库里。\n6.1. 开启 GitHub Discussions Giscus 的运作依赖于你仓库的 Discussions 模块。\n打开你的博客 GitHub 仓库页面 点击上方的 Settings（设置）选项卡 在 General 页面向下滚动，找到 Features 区域 勾选 Discussions 选项 提示：这一步非常关键，如果不开启，后续评论将无法写入 6.2. 安装 Giscus 应用 我们需要授权 Giscus 机器人访问你的仓库。\n访问 Giscus 应用页面：https://github.com/apps/giscus 点击绿色的 Install 按钮 在权限选择页面：\n选择 Only select repositories 在下拉菜单中找到并选中你用来存放博客的仓库（username.github.io） 点击 Install 完成安装\n6.3. 获取配置代码 Giscus 提供了一个可视化工具来生成配置参数。\n访问 Giscus 官网：https://giscus.app/zh-CN\n配置仓库：\n在“仓库”一栏，输入 你的用户名/你的仓库名（例如 sign-river/sign-river.github.io） 等待下方出现绿色的“成功！该仓库满足所有条件”提示 配置分类： 在“Discussion 分类”中，推荐选择 Announcements 注意：这决定了评论会出现在仓库 Discussions 的哪个板块下 生成代码： 滚动到页面底部的“启用 giscus”部分 你会看到一段生成的 \u0026lt;script\u0026gt; 代码。不要直接复制这段代码，我们只需要其中的几个关键参数 6.4. 写入博客配置 (params.toml) 现在把获取到的参数填入 Hugo 的配置文件中。\n回到你的仓库，打开 config/_default/params.toml 文件 找到 [comments] 区域，将 enabled 设置为 true，provider 设置为 \u0026quot;giscus\u0026quot; 找到 [comments.giscus] 区域，根据刚才网页生成的信息填写：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 [comments] enabled = true provider = \u0026#34;giscus\u0026#34; [comments.giscus] repo = \u0026#34;你的用户名/仓库名\u0026#34; repoID = \u0026#34;从 Giscus 官网生成的代码中复制\u0026#34; category = \u0026#34;Announcements\u0026#34; categoryID = \u0026#34;从 Giscus 官网生成的代码中复制\u0026#34; mapping = \u0026#34;pathname\u0026#34; lightTheme = \u0026#34;light\u0026#34; darkTheme = \u0026#34;dark\u0026#34; reactionsEnabled = 1 emitMetadata = 0 ⚠️ 关键点：repoID 和 categoryID 是两串乱码一样的字符，必须从 Giscus 官网生成的代码中精确复制。\n6.5. 清理旧配置 (config.toml) 为了防止冲突，我们需要确保 Disqus 是关闭的。\n打开 config/_default/config.toml 找到 disqusShortname 这一行 在行首添加 # 号将其注释掉，或者直接删除该行 6.6. 验证评论区 提交所有更改（Commit changes）并等待部署完成。刷新你的博客文章页面，滚动到底部。\n如果一切顺利，你应该能看到一个漂亮的评论框，支持使用 GitHub 账号登录发表评论。所有的评论都会自动同步到你 GitHub 仓库的 Discussions 版块中。\n7. 打造高效写作环境 工欲善其事，必先利其器。虽然 GitHub 网页版也能修改文件，但为了更好的写作体验（尤其是图片处理和实时预览），强烈建议将仓库克隆到本地，使用 VS Code 进行管理。\n7.1. 准备工作 克隆仓库：使用 Git 工具将你的 username.github.io 仓库克隆到本地电脑 打开项目：右键点击文件夹，选择 \u0026ldquo;Open with Code\u0026rdquo;（用 VS Code 打开） 7.2. 必装插件推荐 在 VS Code 的扩展商店（Extensions）中搜索并安装以下三个插件，它们将彻底改变你的写作方式。\n7.2.1. Markdown All in One —— 全能助手 这是写 Markdown 的必备插件，提供了快捷键、自动补全和格式化功能。\n常用快捷键：\n加粗：Ctrl + B 斜体：Ctrl + I 删除线：Alt + S 调整标题级别：Ctrl + Shift + ] 自动功能：\n表格格式化：写表格时会自动对齐，强迫症福音。 链接补全：选中文字输入 [，自动包裹为链接格式。 7.2.2. 🖼️ Paste Image —— 截图神器 在 Markdown 中插入图片通常很麻烦（截图 → 保存 → 改名 → 上传 → 引用）。这个插件能把这些步骤缩减为一步。\n使用方法：\n使用任意截图工具（如微信截图或 Win + Shift + S）截图 在 VS Code 的 Markdown 文件中，按下 Ctrl + Alt + V 神奇效果：\n**插件会自动将剪贴板里的图片保存到当前文章的目录下。 **自动在文章中插入 ![]（图片路径。png) 代码，所见即所得。 7.2.3. 👁️ Markdown Preview Enhanced —— 实时预览 虽然 VS Code 自带预览，但这个插件功能更强大。\n核心功能：\n同步滚动：左边编辑，右边预览自动跟随，不迷路 数学公式与图表：完美支持 LaTeX 公式和各种流程图渲染 导出功能：右键点击预览界面，可以直接导出为 HTML 或 PDF 分享 7.3. 开始你的创作之旅 现在，你的本地写作环境已经配置完毕：\n新建：在 content/post 下新建文件夹和 index.md 写作：用 Markdown All in One 快速排版 配图：用 Paste Image 一键粘贴截图 预览：用 Preview Enhanced 实时检查效果 发布：写完后，在 VS Code 的源代码管理（Source Control）中点击 Commit 和 Sync，文章就会自动推送到 GitHub 并发布上线！ 8. 补充内容 8.1. link 界面调整 默认的友链页面尚未初始化。如果你想添加友情链接，请按照以下步骤操作：\n定位配置文件 在博客的本地根目录下，找到 Links 页面的源文件（通常位于 source/links/index.md）。 编辑链接信息 复制以下配置代码，覆盖或添加到文件中。你可以根据需要修改 links 下的列表项。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 --- title: Links links: - title: GitHub description: 欢迎访问我的代码仓库 website: https://github.com/sign-river image: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png - title: Bilibili description: 我的 b 站账户 website: https://space.bilibili.com/504574253?spm_id_from=333.1007.0.0 image: https://www.bilibili.com/favicon.ico comments: false --- 8.2. Paste Image 图片保存位置 在粘贴图片时，默认会把图片在 index.md 文件的同一级目录保存，看上去非常的乱，所以如何在 index.md 旁边开一个 images 文件夹，让图片保存到文件夹里呢？ 解决方案如下：\n打开 vscode 设置 搜索 paste image 找到 Path 在原参数后添加/images 即可 Windows 用户：建议同时搜索 Force Unix Style Separator 并勾选，这样生成的路径会是正斜杠 images/xxx.png，网页中图片才能正常加载（否则会是反斜杠 images\\xxx.png，可能 404）。 8.3. Paste Image 图片大小调整 直接保存的图片无法调整参数，所以我们要把引入图片的代码格式转为 html\n解决方案如下：\n打开 vscode 设置 搜索搜索 paste image 找到 Insert Pattern 删除原参数修改为 1 \u0026lt;img src=\u0026#34;${imageFilePath}\u0026#34; alt=\u0026#34;image\u0026#34; width=\u0026#34;600\u0026#34;\u0026gt; 调整图片大小时修改 width 值即可 8.4. 文章目录序号嵌套问题 8.4.1. 问题描述 如果你在写文章时，习惯在标题中手动添加序号（如 ## 一、前言 或 ## 1. 前言），可能会发现右侧自动生成的目录会出现双层序号的尴尬情况。\n例如：文章标题是 ## 一、前言，但目录显示却变成了 1. 一、前言，看上去非常不美观。\n这是因为 Hugo 默认会给目录启用有序列表样式，自动在标题前添加一层序号。\n8.4.2. 解决方案 我们需要在站点配置中关闭目录的自动编号功能，让目录直接使用文章标题的原始文字。\n操作步骤：\n定位配置文件：在仓库中找到 config/_default/markup.toml 文件\n修改参数：找到 [tableOfContents] 区域，将 ordered 属性由 true 改为 false\n1 2 3 4 [tableOfContents] endLevel = 4 ordered = false # 改这里：true → false startLevel = 2 保存并提交：点击 Commit changes 保存修改\n效果对比：\n修改前 修改后 目录显示：1. 一、前言 目录显示：一、前言 目录显示：2. 二、获取 API Key 目录显示：二、获取 API Key 💡 建议：关闭自动编号后，建议在文章标题中手动添加序号，这样目录结构会更清晰。如果你更喜欢无序号的目录风格，可以保持 ordered = true 不变。\n9. 总结 博客已经搭建完成。接下来的日子里，希望你能把更多的时间花在记录和分享上，让这里成为你思想的后花园，而不是一个仅仅为了展示技术的空壳。 如果这篇教程对你有帮助，或是遇到什么问题，欢迎在下方的评论区留言。\nHappy Blogging! 🍻\n10. 参考资料 Hugo 官方文档 Stack 主题文档 GitHub Pages 文档 ","date":"2026-02-09T00:00:00Z","permalink":"https://ysy.fan/p/hugo-github-pages-blog-tutorial/","title":"Hugo Theme Stack 入门：GitHub 个人博客搭建全流程"},{"content":"1. 问题描述 在使用 WPS Office 时，很多人会遇到这样的困扰：明明文档里的图片看起来很清晰，但一旦复制粘贴到其他地方（如微信、PPT、网页等），图片就变得模糊不清。\n这个问题的根本原因是什么？又该如何解决呢？\n2. 原因分析 2.1. WPS 默认压缩机制 WPS 为了减小文件体积，会对插入的图片进行自动压缩。当你复制图片时，复制的是压缩后的版本，而不是原始高清图片。\n3. 解决方案 3.1. 先放大再复制就是清晰图片了 操作步骤：\n在 WPS 文档中点击图片右边的放大镜按钮 Ctrl+C 或者直接右键复制即可 该往哪粘往哪粘，现在就是清晰的了 4. 总结 从 WPS 复制图片模糊的问题，本质上是软件的默认压缩机制导致的。先手动放大一下再复制就没事了。\n希望这篇教程能帮助你告别模糊图片的困扰！如果有其他疑问，欢迎在评论区留言讨论。\n","date":"2026-02-09T00:00:00Z","permalink":"https://ysy.fan/p/wps-image-blur-solution/","title":"WPS 复制图片模糊问题完美解决方案"}]