浏览器自带下载慢?你需要一个第三方下载器 Motrix!

原理 通过浏览器插件拦截下载请求,再将原始请求转发给 Motrix,就可以实现由 Motrix 接管下载。 下载 Motrix 前往官网:https://motrix.app/ 下载 Motrix。 如果你连下载 Motrix 都觉得慢……那就先忍一忍。 安装完成后,大概就是这个样子: 配置 Motrix 打开 Motrix,进入 进阶设置 -> RPC。你会看到 RPC 监听端口(默认为 16800)和一个随机生成的 RPC 授权密钥。 记住监听端口,并复制好授权密钥(点击小眼睛后即可复制,旁边的骰子图标用于随机生成新密钥)。完成后点击“保存并应用”。 配置浏览器 仅支持 Chromium 系浏览器(如 Chrome 和新版 Microsoft Edge),Firefox 请另寻方案。 浏览器扩展请选择:Aria2 Explorer。 安装完成后,右键扩展图标,进入“扩展选项”,在这里填入 Motrix 的 RPC 配置。 最后,右键扩展并勾选“下载拦截”,然后再尝试下载文件。如果配置无误,浏览器中的下载请求会被 Aria2 Explorer 捕获并转发给 Motrix。此时你可以在 Aria2 Explorer 和 Motrix 中看到正在下载的文件。

2025年5月25日 · 1 分钟 · 53 字

利用WebHook来为你的订阅者推送文章更新信息

原理解析 静态博客一般会托管在Github来方便静态网站构建服务提供商进行自动构建和发布站点。 我们可以通过 WebHook 在文章更新后自动通知订阅者。但单一 WebHook 有各自的缺陷: WebHook 类型 优点 缺点 Github WebHook 能检测文件变动,知道哪些文章更新了 不知道构建时长,需要设置保守延迟 Netlify WebHook 构建完成后通知,时机精准 不能检测文件变动 最佳方案是 两者结合使用,工作流为: Push → Github WebHook 通知Bot(记录变动文章) → Netlify WebHook 通知构建完成 → Bot 即刻推送文章更新消息 正式开始 设置你的自托管WebHook接收器 我使用Koishi编写一个插件创建一个HTTP服务器用于接受WebHook,并且在接收到指定提交信息的WebHook后将在2分钟后在我的群里广播文章更新消息 如果你的服务在内网,可以使用Cloudflared将WebHook接收服务器开放到公网。否则Github将无法将WebHook信息发送到你的服务 配置Github Repo WebHook 打开你的博客仓库,在仓库设置找到WebHooks 添加一个新的WebHook,如图设置 配置Netlify WebHook 如果你的站点部署在 Netlify,可以进一步配置构建完成通知。 添加HTTP POST钩子 创建一个部署成功钩子 Bot端配置 设置一个双监听WebHook服务器,同时接受Github和Netlify的WebHook 开发测试 在你的博客仓库进行一次Push操作,检查是否收到了WebHook信息并且分析信息配置你的WebHook接收器做后续操作

2025年5月18日 · 1 分钟 · 53 字

让Vercel对接你的S3对象存储(仅下载)

视频教程(推荐): https://www.bilibili.com/video/BV17b5gz5Ea4 正式开始 使用方法非常简单,进入GitHub仓库:GitHub - afoim/S3cloudrive-index: S3cloudrive public directory listing. Powered by Next.js. 按照README部署即可 原理 采用Vercel Function登录S3,获取文件列表传递给前端拼接URL显示,原项目是对接的OneDrive:iRedScarf/onedrive-index: OneDrive public directory listing, and One-Click Deploy to Vercel. Powered by Vercel and Next.js. 。本项目仅更改了后端对接的存储类型,理论上你可以三改后对接任意存储… 本人想对接天翼云盘PC的驱动,但是登录鉴权一直不会做,有没有人来帮帮我()

2025年5月4日 · 1 分钟 · 33 字

手把手教你部署Discourse

正式开始 确保你安装了 Docker 和 Docker-Compose 选一个目录创建 docker-compose.yml 写入内容 version: '2' services: postgresql: image: docker.io/bitnami/postgresql:11 volumes: - 'postgresql_data:/bitnami/postgresql' environment: - POSTGRESQL_POSTGRES_PASSWORD=admin12345 - POSTGRESQL_USERNAME=ex_discourse - POSTGRESQL_PASSWORD=user12345 - POSTGRESQL_DATABASE=example_discourse redis: image: docker.io/bitnami/redis:6.0 environment: - REDIS_PASSWORD=redis12345 volumes: - 'redis_data:/bitnami/redis' discourse: image: docker.io/bitnami/discourse:2 ports: - '127.0.0.1:880:3000' volumes: - 'discourse_data:/bitnami/discourse' depends_on: - postgresql - redis environment: # 用户和站点配置 - DISCOURSE_HOST=example.com - DISCOURSE_USERNAME=siteadmin - DISCOURSE_PASSWORD=siteadmin12345 - DISCOURSE_EMAIL=siteadmin@gmail.com # 数据库连接配置 - DISCOURSE_DATABASE_HOST=postgresql - DISCOURSE_DATABASE_PORT_NUMBER=5432 - DISCOURSE_DATABASE_USER=ex_discourse - DISCOURSE_DATABASE_PASSWORD=user12345 - DISCOURSE_DATABASE_NAME=example_discourse # Redis 连接配置 - DISCOURSE_REDIS_HOST=redis - DISCOURSE_REDIS_PORT_NUMBER=6379 - DISCOURSE_REDIS_PASSWORD=redis12345 # 使用 postgresql-client 为 Discourse 创建数据库 - POSTGRESQL_CLIENT_POSTGRES_USER=postgres - POSTGRESQL_CLIENT_POSTGRES_PASSWORD=admin12345 - POSTGRESQL_CLIENT_CREATE_DATABASE_NAME=example_discourse - POSTGRESQL_CLIENT_CREATE_DATABASE_EXTENSIONS=hstore,pg_trgm # SMTP - DISCOURSE_SMTP_HOST=smtp.mailgun.org - DISCOURSE_SMTP_PORT=587 - DISCOURSE_SMTP_USER=邮箱用户名 - DISCOURSE_SMTP_PASSWORD=邮箱密码 - DISCOURSE_SMTP_PROTOCOL=tls或ssl - DISCOURSE_SMTP_AUTH=login sidekiq: image: docker.io/bitnami/discourse:2 depends_on: - discourse volumes: - 'sidekiq_data:/bitnami/discourse' command: /opt/bitnami/scripts/discourse-sidekiq/run.sh environment: # 用户和站点配置 - DISCOURSE_HOST=example.com - DISCOURSE_USERNAME=siteadmin - DISCOURSE_PASSWORD=siteadmin12345 - DISCOURSE_EMAIL=siteadmin@gmail.com # 数据库连接配置 - DISCOURSE_DATABASE_HOST=postgresql - DISCOURSE_DATABASE_PORT_NUMBER=5432 - DISCOURSE_DATABASE_USER=ex_discourse - DISCOURSE_DATABASE_PASSWORD=user12345 - DISCOURSE_DATABASE_NAME=example_discourse # Redis 连接配置 - DISCOURSE_REDIS_HOST=redis - DISCOURSE_REDIS_PORT_NUMBER=6379 - DISCOURSE_REDIS_PASSWORD=redis12345 # SMTP - DISCOURSE_SMTP_HOST=smtp.mailgun.org - DISCOURSE_SMTP_PORT=587 - DISCOURSE_SMTP_USER=邮箱用户名 - DISCOURSE_SMTP_PASSWORD=邮箱密码 - DISCOURSE_SMTP_PROTOCOL=tls或ssl - DISCOURSE_SMTP_AUTH=login volumes: postgresql_data: driver: local redis_data: driver: local discourse_data: driver: local sidekiq_data: driver: local 需要修改的部分。配置文件中两份都要改 ...

2025年5月1日 · 2 分钟 · 243 字

白嫖免费的3x-ui面板

正式开始 首先我们要先找到互联网上搭建了3x-ui的网站,可以使用 网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统 进入后我们搜索:app="3x-ui" && region="HK" 即寻找3x-ui网站,并且地区为中国香港的 接下来我们制作一个TXT文档,里面全部都是搭建了3x-ui的网站,如图 然后我们就要找到3x-ui的登录原理 通过正常登录可知,他会请求 /login 并且以 application/x-www-form-urlencoded; charset=UTF-8 格式发送请求体 接下来让我们查看请求体,非常简单!只有一个 username 和 password 然后让我们在Postman中模拟请求…完全没有问题! 接下来就可以编写爬虫了! 大致原理:依次请求TXT内的网站,并且模拟登录,如果弱口令登录成功,并且网站返回登录成功的JSON,就将它记录到另一个TXT。循环结束后就能得到非常非常多的白嫖的节点了!

2025年4月30日 · 1 分钟 · 24 字

浏览器JS运行原理

引言:以下JS代码运行的结果是什么? function a() { console.log("1"); Promise.resolve().then(() => { console.log("2"); }); } setTimeout(function () { console.log("3"); Promise.resolve().then(a); }, 0); Promise.resolve().then(function () { console.log("4"); }); console.log("5"); 浏览器是如何按部就班执行命令的? 浏览器的所有操作都由渲染主线程执行,渲染主线程将创建一个无限循环的任务执行已有的任务,当渲染主线程无任务时将从消息队列中拿取新的任务执行。所有任务遵循先来后到,不允许插队执行 视频分析:

2025年4月24日 · 1 分钟 · 27 字

Github全站反向代理搭建指南

引言 由于网络原因,国内访问Github经常遇到各种问题。本文将带你从原理到实践,搭建一个属于自己的Github全站反向代理。 为什么不能只用透明代理? 针对Github这样的网站,我们无法仅使用一个简单的透明反向代理指向 github.com 来解决,原因有两点: 1. 外域依赖问题 Github官网有许多外域依赖,比如 raw.githubusercontent.com、avatars.githubusercontent.com 等。如果只代理主域名,这些资源请求会直接访问原站,导致加载失败。 2. 钓鱼风险 注意!直接反代主流网站后,不久你的网站就会被Cloudflare标记为钓鱼站点,因为你原封不动的克隆了人家站点并且 没有显式屏蔽登录页面。 解决方案:透明代理 + HTML覆写 核心思路 我们需要实现两个关键功能: 透明代理:将请求转发到Github服务器 HTML覆写:重写Github返回的HTML,将其中的外域改为我们自己的域 请求流程对比 原始流程: 用户 -> github.com -> raw.githubusercontent.com(被github.com请求) 代理流程: 用户 -> gh.072103.xyz -> raw-githubusercontent-com.072103.xyz(被gh.072103.xyz请求) 对于 gh.072103.xyz 的请求由代理服务转发到 github.com,而针对于 raw-githubusercontent-com.072103.xyz 的请求则转发到 raw.githubusercontent.com。 域名映射配置 你需要配置类似这样的域名映射: const domain_mappings = { 'github.com': 'gh.', 'avatars.githubusercontent.com': 'avatars-githubusercontent-com.', 'github.githubassets.com': 'github-githubassets-com.', 'collector.github.com': 'collector-github-com.', 'api.github.com': 'api-github-com.', 'raw.githubusercontent.com': 'raw-githubusercontent-com.', 'gist.githubusercontent.com': 'gist-githubusercontent-com.', 'github.io': 'github-io.', 'assets-cdn.github.com': 'assets-cdn-github-com.', 'cdn.jsdelivr.net': 'cdn.jsdelivr-net.', 'securitylab.github.com': 'securitylab-github-com.', 'www.githubstatus.com': 'www-githubstatus-com.', 'npmjs.com': 'npmjs-com.', 'git-lfs.github.com': 'git-lfs-github-com.', 'githubusercontent.com': 'githubusercontent-com.', 'github.global.ssl.fastly.net': 'github-global-ssl-fastly-net.', 'api.npms.io': 'api-npms-io.', 'github.community': 'github-community.' }; 假如你的域名为 abc.com,你需要将以下子域名绑定到你的代理服务: gh.abc.com avatars-githubusercontent-com.abc.com raw-githubusercontent-com.abc.com …等等 防钓鱼措施 我们需要找到原站点的所有登录页逐一屏蔽,对于Github.com,我们需要屏蔽: ...

2025年4月14日 · 4 分钟 · 764 字

崩坏星穹铁道全局加速

原理剖析 注入一个DLL实现绕过ACE反作弊,然后用CE的变速精灵 正式开始 确保你安装了Virtual Studio 2022 中的工作负载:使用C++的桌面开发 克隆DLL源码仓库:GitHub - gmh5225/Honkai-StarRail-ACE-B: This repository provides code and instructions for bypassing the anti-cheat system in Honkai Star Rail game, allowing players to access previously restricted features and improve their gameplay experience. For informational purposes only. Use at your own risk. 前往 Releases · TsudaKageyu/minhook 分别下载 bin 和 lib ,将其解压后寻找文件 libMinHook.x64.lib 和 MinHook.h 将其放到DLL源码仓库根目录 代码需要小改,这里省略 编译: MSBuild star_rail.sln /p:Configuration=Release /p:Platform=x64 /property:GenerateFullPaths=true 产物在: \x64\Release\star_rail.dll ...

2025年4月14日 · 1 分钟 · 86 字

Netlify、Vercel反代网站

原理思路 现阶段大部分家宽拿不到公网IPv4,但是可以拿到公网IPv6,借助Netlify做一个v6 -> v4的回源就可以让所有人都访问到你的站点了。同时这也是一个Netlify的通用反代教程。本文还教了Vercel的通用反代教程,不过这玩意在2025年仍然不支持IPv6,只能拿来反代小黄站了ToT 正式开始 Netlify篇 首先前往 https://app.netlify.com/ 注册账号。(注意!最好使用谷歌邮箱去注册,其他方式注册可能会出现什么你的账号需要验证/激活,然后巴拉巴拉很麻烦) 接下来去Github开一个新仓库,根目录创建一个 netlify.toml。在其中写入 [[redirects]] from = "/*" to = "http://反代域名:反代端口/:splat" status = 200 force = true 注意,端口后面的斜杠一定不要丢! 家宽v6网站建议搭配DDNS食用 接下来回到 https://app.netlify.com/ 创建一个新项目,导入你刚创建的Github项目,部署即可 最后绑定一下你的域名,完成! Vercel篇 首先前往 https://vercel.com/ 注册并登录你的账号 电脑安装Nodejs,我们需要用到npm 安装Vercel CLI npm i -g vercel 登录Vercel CLI vercel login 找个地方(比如桌面)创建一个你随意命名的文件夹,然后在其中创建一个你随意命名的.json文件,其中写入。注意,目前Vercel不支持反代IPv6!!! { "version": 2, "routes": [ {"src": "/(.*)","dest": "https://反代域名:端口"} ] } 然后部署 verceL -A 你随意命名的.json --prod 最后绑定一下你的域名,完成!

2025年4月3日 · 1 分钟 · 62 字

绕过USTC的浏览器JS验证

前言 当我们去下载类似于 https://mirrors.ustc.edu.cn/debian-cd/12.10.0/amd64/iso-dvd/debian-12.10.0-amd64-DVD-1.iso 这样的大文件时,USTC大概率会给你一个这样的:正在验证你的浏览器 的页面 如果你正在使用一个浏览器,比如Chrome、FireFox等,那过几秒你就能看到文件被成功开始下载 但是,如果你正在使用wget等无JS特性的工具下载这类文件,你将会被网站服务器拒绝: ERROR 403: Forbidden. ~# wget https://mirrors.ustc.edu.cn/debian-cd/12.10.0/amd64/iso-dvd/debian-12.10.0-amd64-DVD-1.iso --2025-04-04 14:44:13-- https://mirrors.ustc.edu.cn/debian-cd/12.10.0/amd64/iso-dvd/debian-12.10.0-amd64-DVD-1.iso Resolving mirrors.ustc.edu.cn (mirrors.ustc.edu.cn)... 2001:da8:d800:95::110, 202.141.176.110 Connecting to mirrors.ustc.edu.cn (mirrors.ustc.edu.cn)|2001:da8:d800:95::110|:443... connected. HTTP request sent, awaiting response... 403 Forbidden 2025-04-04 14:44:14 ERROR 403: Forbidden. 在之前,如果我想要下载这类文件我都会使用浏览器去下载,但是今天我在向我的朋友对这件事发牢骚的时候他跟我说他绕过了 于是我便想深挖一下,然后发现其实根本不是什么JS验证!!! 分析 让我们首先打开这类链接,然后查询网页源代码 <h1>Verifying your browser</h1> <p>Additional verification is required for this file you requested.</p> <p>This page requires JavaScript. Please wait for a few seconds.</p> <div class="footer"> <p>Your IP address is 2409:8a30:320:6480:1c6e:aab8:b415:c4fa</p> </div> <script> document.cookie = "addr=2409:8a30:320:6480:1c6e:aab8:b415:c4fa; max-age=300"; setTimeout(function () { location.reload(); }, 2000); </script> 你会发现,代码其实非常简洁干练,如果你的浏览器支持JavaScript,浏览器则会将 addr=2409:8a30:320:6480:1c6e:aab8:b415:c4fa这一串内容写入你的Cookie,之后等待两秒重载页面,然后网站发现你携带了这个Cookie,就会让你成功下载了。反之,如果你的浏览器不支持JavaScript,就会触发403,导致无法下载 ...

2025年4月3日 · 2 分钟 · 286 字