KINDYEAR Blog - 💻 技术 | Tech
type: channel
link: https://www.kindyear.cn/category/tech/
description: 有关计算机科学技术的分享
items: 从Chevereto图床迁移至兰空图床
items: 部署开源IAM平台ZITADEL
items: 浅浅记录下使用OpenArk工具排查Windows 11组合键冲突问题
items: Mac mini 2024运行ComfyUI和Stable Diffusion
items: Mac mini 2024 - 造梦引擎
items: 让小米手环6成为直播可显示的心率数值来源
items: HyperV安装macOS
items: OWER-API-v2 守望先锋玩家信息获取接口
items: 笔记本改造Ubuntu服务器实现合盖息屏
items: 自编译Openwrt固件实现绕过校园网多设备检测

从Chevereto图床迁移至兰空图床
type: item
date: 2025-09-27T15:15:00+08:00
description: ✨ AI摘要：本教程详细介绍了如何将Chevereto图床迁移至兰空图床，主要针对本地存储类型。迁移步骤包括安装兰空图床、备份旧站点数据、配置数据库连接、编写Python脚本进行数据迁移、上传图片文件夹以及设置文件权限。最后，提供了Nginx重定向配置，以便保留旧站点地址并自动重定向到新站点。整个过程确保数据完整性和访问顺畅。Powered by SparkU AI Platform本教程针对的图片存储类型主要为本地存储Chevereto版本为Free 1.3.0版本兰空图床版本为开源版2.1版本前期准备在新站点地址上安装好兰空图床程序备份旧站点（Chevereto）的数据库和网站目录并下载到本地准保好新旧站点的MySQL数据库连接信息电脑安装好Python环境（推荐3.11版本）并使用pip安装pymysql库pip install pymysql迁移过程解压备份下载好的Chevereto程序，找到里面的images文件夹，在与images文件夹同级的目录下创建一个Python脚本文件app.py内容如下，请阅读注释并修改对应的内容import os import hashlib import pymysql from datetime import datetime # ===== 数据库配置 ===== CHEVERETO_DB = { "host": "旧数据库地址", "user": "数据库用户名", "password": "数据库密码", "database": "数据库", "charset": "utf8mb4" } LSKY_DB = { "host": "新数据库地址", "user": "数据库用户名", "password": "数据库密码", "database": "数据库", "charset": "utf8mb4" } CHEVERETO_STORAGE_PATH = "images" # 本地存储路径 # ===== 文件哈希 ===== def calc_hash(file_path): md5_hash = hashlib.md5() sha1_hash = hashlib.sha1() try: with open(file_path, "rb") as f: for chunk in iter(lambda: f.read(8192), b""): md5_hash.update(chunk) sha1_hash.update(chunk) return md5_hash.hexdigest(), sha1_hash.hexdigest() except FileNotFoundError: print(f"[WARN] 文件不存在: {file_path}") return None, None EXT_MIME_MAP = { "jpg": "image/jpeg", "jpeg": "image/jpeg", "png": "image/png", "gif": "image/gif", "webp": "image/webp" } def get_mimetype(ext): return EXT_MIME_MAP.get(ext.lower(), f"image/{ext.lower()}") # ===== 更新专辑图片数量（避免负数） ===== def update_album_image_num(lsky_cur, album_id, delta): if delta < 0: lsky_cur.execute( "UPDATE albums SET image_num = GREATEST(image_num + %s, 0) WHERE id = %s", (delta, album_id) ) else: lsky_cur.execute( "UPDATE albums SET image_num = image_num + %s WHERE id = %s", (delta, album_id) ) # ===== 迁移逻辑 ===== def migrate(): che_conn = pymysql.connect(**CHEVERETO_DB) lsky_conn = pymysql.connect(**LSKY_DB) che_cur = che_conn.cursor(pymysql.cursors.DictCursor) lsky_cur = lsky_conn.cursor() che_cur.execute("SELECT * FROM chv_images") rows = che_cur.fetchall() insert_sql = …

部署开源IAM平台ZITADEL
type: item
date: 2025-03-07T20:19:00+08:00
description: ✨ AI摘要：ZITADEL是一个开源身份和访问管理（IAM）平台，特别适合云原生应用，支持多个身份验证协议并提供细粒度权限控制。本文介绍了在宝塔环境中使用Docker部署ZITADEL的步骤，包括所需的依赖、Docker配置、PostgreSQL配置和反向代理设置。通过这些步骤，用户能够高效构建和管理跨平台的用户系统，提升系统安全性和管理便利性。Powered by SparkU AI Platform前言什么是ZITADELZITADEL 是一个开源的身份和访问管理（IAM）平台，专为现代云原生应用设计。它提供用户身份验证、授权和管理功能，支持多种身份验证协议（如 OAuth 2.0、OIDC、SAML），并允许开发者轻松集成到他们的应用中。ZITADEL 强调安全性、隐私性和可扩展性，提供细粒度的权限控制和强大的审计跟踪。它可以自托管或作为 SaaS 服务使用，适用于各种规模的企业和组织，帮助他们简化身份管理并增强安全性。为什么要用ZITADEL本人在开发一个系列项目时，需要用到跨平台，跨网站的用户系统，如果单独为每一个项目开发一套用户系统，所耗费的时间成本和互通成本是极其高昂，而且这些项目均为一个总系列产品，为了更好的提供用户服务，故使用ZITADEL服务作为我们本地化部署的用户管理系统。过程依赖准备我使用的是宝塔环境 + NGINX + Docker形式部署宝塔NGINX负责反向代理ZITADEL，Docker运行ZITADEL，连接到宿主机的PostgreSQL服务器需安装以下依赖服务PostgreSQL（>=14.0）NginxDockerDocker ComposeDocker配置准备好一个文件夹，在文件夹内放置下面这些配置文件docker-compose.yamlservices: zitadel: restart: "always" network_mode: "host" # 使用宿主机的网络，为了连接宿主机的PostgreSQL image: "ghcr.io/zitadel/zitadel:latest" command: 'start-from-init --config /example-zitadel-config.yaml --config /example-zitadel-secrets.yaml --steps /example-zitadel-init-steps.yaml --masterkey {32位key} --tlsMode disabled' # 这里替换为32字节长度的masterkey，tlsMode建议设置为external ports: - "8080:8080" volumes: - "./example-zitadel-config.yaml:/example-zitadel-config.yaml:ro" - "./example-zitadel-secrets.yaml:/example-zitadel-secrets.yaml:ro" - "./example-zitadel-init-steps.yaml:/example-zitadel-init-steps.yaml:ro" volumes: data:官方文档中对tlsMode的解释：TLS ModesTo run ZITADEL on any kind of infrastructure, you can configure on how to handle TLS connections. There are three modes of operation: disabled, external, enabled.Generally this command is set as argument while starting ZITADEL. For example like this:zitadel start-from-init --masterkey "MasterkeyNeedsToHave32Characters" --tlsMode disabledDisabledWith the mode disabled, you instruct ZITADEL to await all connections with plain http without TLS.cautionBe aware this is not a secure setup and should only be used for test systems!ExternalThe mode external allows you to configure ZITADEL in such a way that it wi…

浅浅记录下使用OpenArk工具排查Windows 11组合键冲突问题
type: item
date: 2024-11-19T18:34:00+08:00
description: ✨ AI摘要：本文记录了使用OpenArk工具排查Windows 11组合键冲突的过程。作者日常使用Snipaste截图工具，因快捷键无法正常调用而寻找解决方案。OpenArk是一款开源逆向分析工具，可以用于检查系统热键。文章详细介绍了OpenArk的安装步骤及使用方法，包括如何进入内核模式和查找被占用的快捷键。最终，作者成功找到并解除与Parsec的快捷键冲突。Powered by SparkU AI Platform前言我平日是个截图工具重度使用者，日常使用的截图工具一直是Snipaste，而我将截图快捷键绑定为Ctrl+F1，甚至鼠标的侧键也绑定了这个组合键。而在近期突然发现我的截图工具无法正常调用于是乎去工具设置内检查突然发现这个组合键直接绑定不上去，起初我以为是键盘出了问题但是连接其它电脑后发现快捷键正常，后面开始尝试去搜寻有关组合键检查的工具，于是乎找到了OpenArk。OpenArk是一个开源适用于逆向分析的工具，当然它的一些高级功能咱也用不到，我们主要使用他的系统热键功能，下面浅浅的记录一下自己的排查过程。Github地址：https://github.com/BlackINT3/OpenArk安装该工具需要使用内核权限，所以需要基于管理员权限，可能还需要关闭内核完整性保护和安全软件，请自行判断是否需要进行下一步操作Github内的发布版本最新只有1.3.6版本，对于Windows 11 23H2及以上可能无法正常工作，这边建议使用OpenArk交流群内的1.3.8 beta版本进行操作官方介绍，群入口在最下面：https://github.com/BlackINT3/OpenArk/blob/master/doc/README-zh.md你可以选择从本博客下载1.3.8 beta版本，来源为官方5群的群文件，安全性和真实性请自行辨别，本站不作任何担保和负责下载地址：https://bandbbs.lanzoub.com/ip2iR2fjefpg下载完成后将其放置在C盘根目录，右键以管理员身份运行，打开后点击底部的进入内核模式，等待片刻即可成功加载组合键页面如果加载后依然无法显示请按照以下方式进行排查和处理：在OpenArk软件内退出内核模式任务管理器内关闭所有的OpenArk进程前往%APPDATA%目录的OpenArk目录删除symbols文件夹右键管理员重新打开OpenArk，点击进入内核模式使用进入内核模式后应该可以正常加载其快捷键目录，只需在底部的过滤器内输入你要查找的键值，例如我查找F1，于是乎我看见了我的快捷键被Parsec占用，前往Parsec内解除绑定即可，尽量不要使用OpenArk内的解除绑定，防止出现其它异常问题

Mac mini 2024运行ComfyUI和Stable Diffusion
type: item
date: 2024-11-18T21:54:00+08:00
description: ✨ AI摘要：本文介绍了如何在Mac mini 2024上运行ComfyUI和Stable Diffusion 3.5。首先，作者对Mac的统一内存架构表示兴趣，并详细描述了环境部署步骤，包括安装Homebrew、Anaconda和Git，创建虚拟环境等。接着，介绍了ComfyUI的安装和Stable Diffusion模型的下载过程，最后展示了如何调整工作流并运行生成图像。尽管内存为16GB，使用Swap交换分区使得模型运行成为可能，生成时间约为60-100秒。Powered by SparkU AI Platform前言现如今大部分的AI绘画创作工作流基于NVIDIA的硬件解决方案，而近期作者购入了新款Mac mini 2024（M4）机器，正好对Mac的统一内存架构（UMA）感兴趣，因为在其它NVIDIA硬件上主要利用的设备的显存来进行数据处理，而UMA将显存和内存合二为一，那么意味着我可以使用其运行一些对显存要求较高的模型，经过对比和研究故决定在这台Mac mini上进行尝试。环境部署设备信息型号：Mac mini 2024处理器：M4（10核）内存：16GB系统：macOS 15.1可用硬盘空间：大于50GB基础环境部署Homebrew：官方安装指南：https://brew.sh/Anaconda：官方下载地址：https://www.anaconda.com/download/success请注意下载Apple Slicon版本，也就是arm64版本Git：安装完Anaconda后在终端内执行brew install git创建Conda虚拟环境：conda create -n sd-env python=3.10请自行准备好一个文件夹作为我们的工作目录，路径不要含有中文。创建虚拟环境可以自定义你的虚拟环境名称，修改sd-env这一项即可，python版本固定为3.10，以防止出现部分依赖包不兼容的情况切换至创建的虚拟环境：conda activate sd-env如果你在前面修改了你的虚拟环境名称，请在这里替换为你的虚拟环境名称。在后续的终端操作请确保你在之前创建的工作目录以及使用已经创建的虚拟环境，防止依赖丢失和文件管理混乱ComfyUI安装 / 启动在之前打开的终端内使用cd命令切换到你的工作目录文件夹，我们通过Git拉取最新的ComfyUI项目代码git clone https://github.com/comfyanonymous/ComfyUI.git使用cd命令进入ComfyUI目录，安装依赖pip install -r requirements.txt如果下载缓慢请替换Conda和Pip的镜像源，建议使用清华开源镜像站提供的镜像源Conda修改镜像源：https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/Pip修改镜像源：https://mirrors.tuna.tsinghua.edu.cn/help/pypi/修改完成后重新安装依赖即可尝试启动python main.py启动成功后浏览器打开http://127.0.0.1:8188/即可看到ComfyUI工作流页面但是目前无法使用因为还没有部署模型，我们在下一部分开始部署Stable Diffusion 3.5模型模型下载由于我的Mac mini只有16GB的内存，所以我选择的SD模型为stable-diffusion-3.5-medium模型，如果你的Mac拥有更多的内存可尝试使用Large系列模型安装HuggingFace cli工具pip install -U huggingface_hub使用cd指令切换至该目录ComfyUI/models/checkpoints，使用HuggingFace cli工具下载模型如果你要使用其它模型，请修改命令中的模型信息部分下载过程可能需要Token验证，请将token参数后的hf_开头部分的token替换为你的tokenToken获取地址：https://huggingface.co/settings/tokens创建Token时请根据实际需求选择权限，如果不知道怎么选择请参考官网文档或者全部选择，后续删除即可huggingface-cli download --token hf_yourtoken --resume-download stabilityai/stable-diffusion-3.5-medium --local-dir stable-diffusion-3.5-medium下载时间可能会比较长而且文件较大，请确保你的磁盘拥有足够的空间如果下载缓慢可以尝试使用国内的HF-Mirror项目来加速下载：https://hf-mirror.c…

Mac mini 2024 - 造梦引擎
type: item
date: 2024-11-14T19:53:00+08:00
description: ✨ AI摘要：2024款Mac mini搭载M4芯片，起始内存为16GB，价格保持不变，性价比高。外观小巧，铝合金机身设计，便于携带。系统体验流畅，macOS的动画和UI设计令人愉悦。性能测试显示其在视频处理和多核性能上表现优异，适合创作者使用。与iPhone等设备的无缝连接增强了用户体验，整体表现令人满意。Powered by SparkU AI Platform您的浏览器不支持视频播放。👋 温馨提示由于部分工具、设备等缺失，本篇评测部分数据摘自互联网上其它的作者评测数据，文章末尾会一一列出。如有遗漏还望留言提醒，感谢你的耐心阅读和理解。本页面内含有部分Webp格式内容，若无法正常显示请尝试使用最新版本Chrome / Edge / Safari 浏览器进行尝试。初探自大学以来一直想拥有一个属于自己的Mac，但是由于苹果的价格和内存配置一直让人望而却步。直到今年度的Mac发布会，苹果带来了2024款的M4配置的Mac mini，在发布结束前原本以为还是8GB，直到结束的时候告知全系16GB内存起步，而且价格依然不变，属于是加量不加价。即使他的最丐版硬盘是256GB，但是对于3735￥的国行学生优惠价格来说已经非常划算了，本着体验和学习了解有关Apple平台开发的目的，于是乎拿到了人生中自己的第一台Mac。所以自发布以来这款Mac在各大电商平台依然是断货状态（当然用不了教育优惠，国补不在范围内），即使是官方授权线下店铺也没有现货甚至连样机也没有。官网的发货周期长达一个月，最后授权店推荐使用苹果官方小程序的授权商城预约到货，等待2天后收到有货通知，刚下单完成后好奇刷新了一下商品页又显示断货，可见其火爆程度。开箱外包装依然是经典的苹果纸盒包装，白色纸盒印着Mac mini字样和设备的顶部俯视图，直观清晰而不杂乱。由于苹果很早就取消了塑封包装，所以现在使用的是底部的拉条封口设计，封口的胶粘的不是很紧，稍微使一点劲就拉开，抬起盒子看到了小巧的Mac mini。主机 您的浏览器不支持视频播放。整个主机由铝合金打造，顶部依然是标志性的金属苹果Logo，正面配备了两个USB 3（10Gbps）的Type-C接口和一个3.5mm耳机接口，以及一个电源状态指示灯；背面则是一个交流电输入接口、一个以太网接口（我这里买的是千兆版本）、一个HDMI 2.1接口（苹果终于舍得给入门款配备满血版HDMI2.1了）、以及三个雷电四接口，传输速率可达40 Gbps（如果你是M4 Pro版本则是三个雷电五接口，速率可达双向80Gbps）。让人比较惊讶的是电源部分，它的电源适配器是内置在主机内的，包装所附赠的电源线没有任何其它部件，就是简单的电源线，不像我的笔记本的电源线上有一个砖形的适配器。但是针对便携性来进行评判了话我觉得笔记本可能还是占优，因为其内置电池以及自带显示器键盘和触控板这几点就足以优势尽显，当然我觉得把Mac mini背着到处跑办公的应该也没有多少人，但是其体积相较于一些台式机器来说，便携性、空间占用率等依旧十分吸睛。当你需要转移办公地点或者对桌面进行摆布整理时，如此小巧的机身恰恰满足了这些需求点。本次的新款Mac mini外观相较于前代Mac mini最大的改变莫过于其尺寸的缩小。由于我之前并没有Mac mini所以无法将其进行对比，这里我贴出我的罗技G502和它一起放置的对比图，可见其体积之小，其长宽均为12.7厘米，甚至可以轻易的塞入我的桌面上的书架空格内。其重量也是令我些许震惊，因为我从来没有接触过如此小巧的“台式”电脑主机，他的大小和重量真的是我一只手就可以轻松拿起把玩，而且也不会给人一种所谓的金属质感很强就代表其重量不轻的体验，而对于我每个学习要背着我的电子产品在开学和放假的奔波过程中，无疑大大减轻了负担，最后来到了本次新款最为争议的部分，也就是电源键的位置。网上众多人都说“Mac不需要关机”“功耗低没必要关机”“又不是Windows动不动死机为什么要反复开关机”等等，确实我感觉这个电源键的位置是有那么一点怪，而且其底部的高度完全不足以一根手指伸进去按下，你只能将其一角抬起来然后去按下，有一种给家里的电视开机需要把手摸索到面板后面寻找开关机的感觉。不过苹果也给这个电源键做了个凹下去的设计，以便于盲按时更加方便快速的找到电源按钮。体验系统系统部分我们不会去介绍macOS的各个功能，仅从我个人的使用上分享自己的使用体验作为一个Windows的老用户，之前在虚拟机和其它人的电脑上或多或少体验过macOS，但是之前的体验要么是时间短或者性能受限无法完整的体验到macOS，但是其大体逻辑和组织结构个人感觉是差不多的。自己之前也有过使用iOS/iPadOS还有Linux的使用经验和习惯，体验几天后的上手速度还是挺快的。当然感觉让人最不适应的是它的…

让小米手环6成为直播可显示的心率数值来源
type: item
date: 2024-11-11T17:17:00+08:00
description: ✨ AI摘要：本文介绍了如何将小米手环6的心率数据用于直播。用户需下载特定工具，开启手环的蓝牙和心率广播，并选择冷门运动模式以避免自动暂停。通过输入手环的Mac地址进行扫描，心率数据将显示在日志中。接着，用户可使用OBS等软件添加浏览器源，并通过自定义CSS调整显示样式。Powered by SparkU AI Platform似乎小米手环7及以上的设备阉割掉了心率广播，有兴趣的朋友可以试试是否正常工作使用方法​下载：MibandHeartRateScan.zip打开小米运动健康中手环设置内的“蓝牙广播”和“心率广播”然后在手环上启用一个比较冷门的运动模式，例如跳舞（因为跑步等模式检测到没有运动会自动暂停）然后在扫描器内输入手环的Mac地址（带冒号），然后保存后选择已经保存的Mac地址后点击开始扫描稍等片刻右侧日志就会显示出心率情况你可以使用OBS等直播软件添加浏览器源： http://localhost:8080然后使用下面的自定义css进行字体和颜色以及大小的自定义可根据自身需求进行修改即可body { background-color: rgba(0, 0, 0, 0); margin: 0px auto; overflow: hidden; } #heart-rate { color: red; font-family: 得意黑}

HyperV安装macOS
type: item
date: 2024-11-11T02:38:00+08:00
description: ✨ AI摘要：本文介绍了如何在Windows的HyperV上安装macOS。首先，确保系统符合要求并启用HyperV。接着，下载UEFI和OpenCore，并获取macOS恢复镜像。然后，创建HyperV虚拟机，配置内存、网络和磁盘设置，关闭安全启动和检查点，添加UEFI虚拟磁盘，并调整启动项。最后，启动虚拟机并通过磁盘工具格式化虚拟磁盘，安装macOS。完成后可进行初始化设置，成功进入macOS桌面。Powered by SparkU AI Platform前言作为一个非全家桶Apple用户只有iPad和iPhone，一直想体验一下macOS。之前在VMware上安装过macOS但是需要调整很多东西，突然想到Windows自带的HyperV安装macOS虚拟机效果如何，故有了本篇文章准备工作请确保你的Windows电脑符合以下要求或者尽量符合要求Windows 10 / 11 专业版已经在Windows控制面板中启用了HyperV组件16GB及其以上的RAM32GB的可用空间（最好是SSD）电脑已经预先安装了Python3下载UEFI打开Github项目地址：https://github.com/balopez83/macOS_On_Hyper-V/releases找到最新的release版本，在底部下载最新的压缩包解压到一个文件夹下载OpenCore打开Github项目地址：https://github.com/acidanthera/OpenCorePkg/releases找到最新的release版本，在底部下载最新的压缩包解压到一个文件夹（最好和之前的在一个文件夹内）下载系统恢复镜像打开OpenCore的目录。找到该目录 Utilities\macrecovery ，打开Windows终端（请确保终端执行路径在该文件夹内）打开 https://dortania.github.io/OpenCore-Install-Guide/installer-guide/windows-install.html#downloading-macos 该网页，查看你想要安装下载的系统版本我这里以macOS Sequoia为例，在终端内输入（请根据实际情况替换python的调用指令）python.exe macrecovery.py -b Mac-937A206F2EE63C01 -m 00000000000000000 download等待下载，下载完成后你能在当前目录内看到一个名为 com.apple.recovery.boot 的文件夹整合UEFI将之前下载好的UEFI压缩包解压后你会得到一个 UEFI.vhdx 虚拟硬盘文件，直接双击打开它将刚刚下载得到的 com.apple.recovery.boot 复制到里面，目录结构如图所示然后退出后在Windows资源管理器内找到挂载的这个UEFI磁盘，右键弹出即可配置创建HyperV虚拟机右键宿主机，创建虚拟机（不要使用快速创建）命名你的虚拟机选择第二代虚拟机，不要选择第一代虚拟机，否则会无法使用内存请分配8GB，并勾选上下面的使用动态内存网络选项请选择默认交换机根据个人偏好设置虚拟磁盘的名称、路径、大小（30GB即可，后续可动态扩容）后面的选项保持默认，最后的总结部分验证一下创建的虚拟机是否符合要求，点击完成即可关闭安全启动右键虚拟机 - 设置 - 安全 - 关闭安全启动即可关闭检查点右键虚拟机 - 设置 - 检查点 - 关闭检查点即可启用集成服务右键虚拟机 - 设置 - 集成服务 - 全部勾选即可添加UEFI点击SCSI控制器，找到右侧的添加按钮添加一个虚拟磁盘点击浏览，选择我们之前编辑好的 UEFI.vhdx 虚拟磁盘即可调整启动项在固件部分将 UEFI.vhdx 移动到第一启动项，其次是默认虚拟磁盘和网络适配器启动虚拟机以上的操作完成后保存即可，点击虚拟机点击启动即可开机，开机过程比较慢请耐心等待安装启动完成后会进入macOS Recovery界面选择磁盘工具（Disk Utility），在左侧找到我们的虚拟磁盘，有上架选择抹除磁盘文件系统选择为APFS，磁盘名称自定义，我输入的是macOS，其他的保持默认，点击擦除即可然后回到上一级， 选择重新安装macOS选择我们刚刚格式化为APFS的虚拟磁盘安装过程比较长，而且会遇到安装失败的情况，请多尝试几次，期间会重启请耐心等待然后成功进入初始化界面，按照流程一步一步配置即可进入桌面，大功告成结尾由于虚拟机的缘故macOS的显存也只有可怜的3MB，如果你有macOS原生支持的AMD显卡可以通过显卡直连的功能尝试分配给虚拟机来提升使用体验本文章参考引用了一下内容/项目，在此对下列文章作者表达感谢https://blog.csdn.net…

OWER-API-v2 守望先锋玩家信息获取接口
type: item
date: 2024-10-25T16:41:00+08:00
description: ✨ AI摘要：OWER-API-v2是一个用于获取《守望先锋2》国际服玩家生涯数据的接口，旨在替代不再维护的原版本。该接口支持获取玩家的基础信息、竞技比赛数据及各英雄的详细统计信息。用户需在NodeJS环境下部署，并通过API密钥进行认证。由于网络环境限制，建议在境外服务器上运行。项目不隶属于暴雪，数据仅供学习交流使用。Powered by SparkU AI Platform若你还使用OWER-API，请切换至本v2版本，原版本不再维护且不再可用接口规范基本无改变，可在不影响原工作环境的基础上进行迁移更新OWER-API-v2是一个守望先锋2（Overwatch2）国际服玩家生涯数据获取程序、这个项目的名字来源于Overwatch Player，于是缩写成了OWER部署要求：NodeJS 18.19.0（此版本上正常运行，其他版本未做测试）端口默认为16524注意：由于中国大陆的网络环境，国际服的数据获取速度可能会很慢，甚至无法获取，所以建议在境外的服务器上部署确保部署主机上已经安装了Git，并在准备部署的目录下执行以下命令：git clone https://github.com/kindyear/OWER-API-v2.git然后运行项目node app.js不建议将端口设置为80或者其它常用端口，防止和已有服务，例如Nginx或者Apache等服务冲突，你可以使用反向代理功能将其代理到80端口或者其它你想设置的端口上API文档API路径为：http(s)://yourdomain.com:port/v2/api/{ROUTER}其中将ROUTER替换为你要请求的路由接口全局参数apiKey：必需，用于认证访问API的访问密钥。可在项目目录/config/config.js中修改playerTag：必需，玩家的BattleTag（战网ID），例如：KINDYEAR-1336，将#替换为-refreshCache：可选，是否刷新缓存(true / false)，默认情况下为自动处理，配置文件默认设置缓存有效期为12小时，当缓存过期时程序会自动获取新的内容，如果手动指定为true则该次请求会刷新缓存数据API端点获取玩家基础生涯信息URL：/v2/api/playerInfo?{playerTag}&{apiKey}方法：GET响应{ "private": false, "playerBaseInfo": { "playerTag": "KINDYEAR-1336", "playerName": "KINDYEAR", "playerTitle": "Extraterrestrial", "playerIcon": "https://d15f34w2p8l1cc.cloudfront.net/overwatch/5c670baeda5a7b2ed707c940f6b17773e9fd41fe783a8810ea9283cd55d6fd43.png", "playerIconID": "0x02500000000068A2", "playerNameCardID": "0x02500000000068A2", "endorsementLevel": 2 }, "playerCompetitiveInfo": { "PC": { "Tank": { "playerCompetitivePCTank": "Platinum", "playerCompetitivePCTankTier": 2 }, "Damage": { "playerCompetitivePCDamage": "Gold", "playerCompetitivePCDamageTier": 2 }, "Support": { "playerCompetitivePCSupport": "Gold", "playerCompetitivePCSupportTier": 3 } }, "Console": { "Tank": null, "Damage": null, "Support": null } }, "refreshCache": false, "currentTime": 1690110879 }数据解释：private：玩家是否设置了隐私，如果设置了隐私，将会返回true，否则返回falseplayerBaseInfo：玩家基础信息playerTag：玩家的BattleTag（战网ID）playerName：玩家的昵称playerTitle：玩家的头衔playerIcon：玩家的头像playerIconID：玩家的头像IDplayerNameCardID：玩家的名片IDendorsementLevel：玩家的赞赏等级playerCompetitiveI…

笔记本改造Ubuntu服务器实现合盖息屏
type: item
date: 2024-10-23T17:03:00+08:00
description: ✨ AI摘要：本文介绍了如何在Ubuntu服务器上通过ACPI驱动实现笔记本合盖息屏的功能。首先，检查ACPI模块是否加载，并通过`/proc/acpi`查看盖子开关的状态。接着，编辑`/etc/systemd/logind.conf`文件，调整相关参数以控制屏幕行为，最后重启`systemd-logind`以应用更改。这样可以在合盖时关闭屏幕而不进入休眠状态。Powered by SparkU AI Platform1. 核查 ACPI 驱动查看是否加载了 ACPI 相关模块：lsmod | grep video如果输出类似于以下内容：video 49152 2 i915,nvidia_modeset2. 通过 /proc/acpi 查看和管理检查笔记本盖子开关（LID）的状态，确认系统是否能够正确识别ACPI事件：cat /proc/acpi/button/lid/LID0/state如果状态能够检测并随着盖子的关闭/打开而变化，你可以配置事件处理，以在特定情况下关闭屏幕。3. 调整 ACPI 配置文件编辑 /etc/systemd/logind.conf 来控制屏幕行为：sudo nano /etc/systemd/logind.conf找到以下选项并取消注释/修改：makefileCopy codeHandleLidSwitch=ignore HandleLidSwitchExternalPower=ignore HandleLidSwitchDocked=ignore这些参数允许你定义在笔记本盖子关闭或闲置时的行为（例如，关闭屏幕但不休眠）。修改后重启 systemd-logind：sudo systemctl restart systemd-logind

自编译Openwrt固件实现绕过校园网多设备检测
type: item
date: 2024-04-01T08:00:00+08:00
description: ✨ AI摘要：本文介绍了如何自编译OpenWrt固件，以绕过校园网的多设备检测。通过修改TTL值和用户代理（UA），可以实现欺骗网关的目的。教程详细描述了从编译环境设置、依赖包安装、源码拉取到固件编译的全过程，并提供了适用于小米路由器4A千兆版v1的固件下载链接。最后，文章强调了操作的风险，并建议用户在进行相关操作时谨慎行事。Powered by SparkU AI Platform概述鸣谢：32ESPLiego由于学校的NT校园网在本学期开启了共享检测，导致之前的克隆Mac地址的方法在路由器上无法使用，在网上搜寻方法后，自己简单整理了一下网上各位大神的操作，理论上通过修改TTL以及UA来实现绕过多网关的多设备检测功能原理是TTL值在不同的设备上不同，通过让路由器修改各设备TTL的值为相同，此外让路由器修改设备的UA（记录设备的浏览器型号，系统版本等信息）为一致，可以在一定程度上达到欺骗网关的目的本教程将从编译到安装配置的过程介绍完整的操作流程，如有需要可根据大纲自行跳转需要的部分如果你的路由器设备和作者使用的都是小米路由器4A千兆版v1，如果不想自己编译可跳转到文章末尾的下载部分下载作者编译好的固件文件，下载后请记得校验MD5或者SHA256以防固件损坏编译过程提示：本教程操作需要稳定的网络连接，为防止操作过程中出错或无法拉取源代码，建议使用代理软件或使用境外服务器作者使用的编译环境是Windows10 + WSL（Ubuntu 22.04）+ Clash路由器型号为：小米路由器4A千兆版v1（本教程暂不支持v2版本）为了让WSL内的Ubuntu可以正常使用代理网络，可前往Clash的“通用”设置内，打开“Allow LAN”，然后安装“Service Mode”，待旁边出现一个绿色小地球的图标时，打开“TUN Mode”，然后重启WSL即可由于使用的系统环境是WSL，但是部分用户可能是服务端Ubuntu，只有root用户，所以教程中的sudo指令是为了让桌面端或者WSL的用户方便操作，系统只有root的用户可忽略sudo指令前缀安装过程中不要把校园网的网线插在你要刷机的路由器上，直到教程说到可以插上的时候再插本教程不保证能够完全绕过校园网验证机制，仅供学习研究使用，若因此造成的损失或其它问题概不负责更新apt源以及更新软件包sudo apt update && sudo apt upgrade如果更新速度慢，可以替换镜像源为清华源下面展示的修改Ubuntu22.04 LTS版本的镜像源配置文件内容，其他版本系统可查阅：清华大学开源软件镜像站Ubuntu帮助# 默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse # # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse deb http://security.ubuntu.com/ubuntu/ jammy-secur…