普通视图

开源Typecho抖音播放器插件

2025年12月20日 16:24

前段时间,开源了一个Bilibili播放器插件,原理也是非常简单。这次看到抖音也可以视频分享,那就也做一个抖音的播放器插件吧。

原理非常简单,使用正则表达式匹配抖音的链接,然后替换成 iframe 播放器就可以了。

使用的时候更简单了,根本不用短代码,直接把视频链接扔进去就可以了,这样一来即便是禁用了插件,也可以正常的跳转到视频地址。

[...]

  •  

Spten创意博客主题

2025年12月20日 13:35
Spten创意个人Typecho博客主题

Spten

这款制作精良的 typecho 主题页面精简,访问页面速度很快。精美的字体设计易于阅读,可为读者提供最佳的阅读体验。响应式布局,针对手机端进行了优化。
比较简单的一款 typecho 主题,首页,栏目,文章,page 页面,404 页面,喜欢的朋友可以下载试试,

演示

在线预览

下载

补充说明

主题sidebar.php里面有两处分类mid是写死的,需要自行改成自己的。

截图展示

2025-12-20T05:37:56.webp
  •  

使用 Nginx 构建计费 DoH 代理服务

2025年12月20日 00:00

我之前曾介绍如何使用 Go 语言自建 DoH 服务并以 ZNS 品牌对外提供服务。 一年多以来确实积累了一些用户。但在使用的时候发现,阿里云香港的轻量服务器在网络 高峰期线路质量太差,有用户提出希望能提供更稳定的线路。于是多数据中心部署 ZNS 便 提上了日程。为了适应异地多活部署,我用 Nginx 重新实现了 DoH 代理服务,并跟现有的 计费体系打通。本文向大家分享相关的经验。本文也亦可作为 Nginx 和 Shell 脚本进阶 学习的参考资料。

  •  

坚果云WebDAV同步更新操作类

2025年12月19日 18:49

坚果云WebDAV操作类开发文档

一、文档概述

本文档详细介绍了JianguoyunWebDAV类的开发背景、功能特性、使用方法、核心实现逻辑及注意事项,旨在帮助开发人员快速集成和使用该类完成坚果云WebDAV的相关操作。

1.1 开发背景

坚果云提供WebDAV接口用于文件和目录的管理,但原生WebDAV操作存在中文编码适配、大文件处理、请求频率限制等问题。该类封装了坚果云WebDAV的核心操作,解决了上述痛点,提供简洁、高效的开发接口。

1.2 功能特性

  • 大文件处理:支持流式上传/下载,避免内存溢出,适配大文件传输。
  • 中文编码适配:自动处理GBK/GB2312等编码与UTF-8的转换,支持中文路径和文件名。
  • 非法字符过滤:仅过滤坚果云禁止的文件名/目录名非法字符,保留路径分隔符和盘符。
  • 多级目录创建:递归创建远程多级目录,添加MKCOL请求间隔避免频率限制。
  • 完整的文件操作:支持文件/目录的上传、下载、删除、列表查询。
  • 日志记录:集成日志实例,记录操作异常信息(需自定义Log类)。

二、环境依赖

  • PHP版本:5.6及以上(推荐7.0+)。
  • 扩展依赖:curl扩展(必须,用于HTTP请求)、mbstring扩展(用于字符编码转换)、fileinfo扩展(用于获取文件MIME类型)。
  • 其他:需自定义Log类(实现error方法用于日志记录)。

三、类结构与核心参数

3.1 私有属性

属性名类型说明
$serverstring坚果云WebDAV服务器地址(如https://dav.jianguoyun.com/dav/
$usernamestring坚果云用户名(注册邮箱)
$passwordstring坚果云WebDAV专用密码(需在坚果云后台生成)
$chunkSizeint流式处理的分块大小(默认10MB,单位:字节)
$logobject日志实例(需自定义Log类,含error方法)
$mkcolDelayfloatMKCOL请求间隔(默认0.5秒,避免坚果云频率限制)

3.2 构造函数

public function __construct($server, $username, $password, $chunkSize = 10485760, $mkcolDelay = 0.5)

参数说明

  • $server:坚果云WebDAV服务器地址(必填)。
  • $username:坚果云邮箱(必填)。
  • $password:坚果云WebDAV专用密码(必填)。
  • $chunkSize:流式分块大小,默认10MB(可选)。
  • $mkcolDelay:MKCOL请求间隔,默认0.5秒(可选)。

四、核心方法详解

4.1 私有辅助方法

4.1.1 filterFileName:过滤文件名非法字符

private function filterFileName($name)

功能:过滤坚果云禁止的目录/文件名字符,替换为下划线_
参数$name(单个目录名/文件名,如test.txt测试目录)。
返回值:过滤后的名称字符串。
禁止字符列表/\:*?"<>|\0

4.1.2 encodePath:处理中文路径的URL编码

private function encodePath($path)

功能:分割路径为多个部分,分别过滤非法字符、转换为UTF-8、URL编码后拼接。
参数$path(远程相对路径,如xmblog/测试/文件.txt)。
返回值:URL编码后的路径字符串。

4.1.3 decodePath:处理URL解码还原中文路径

private function decodePath($path)

功能:先URL解码,再转换为UTF-8编码,还原中文路径。
参数$path(URL编码后的路径)。
返回值:解码后的UTF-8路径字符串。

4.1.4 toUtf8:字符串编码转换为UTF-8

private function toUtf8($str)

功能:检测字符串编码(支持UTF-8、GBK、GB2312、ISO-8859-1),转换为UTF-8。
参数$str(原始字符串)。
返回值:UTF-8编码的字符串。

4.1.5 request:发送WebDAV请求(核心)

private function request($method, $path, $inFile = null, $fileSize = 0, $headers = [])

功能:封装curl请求,支持各类WebDAV HTTP方法,适配流式上传。
参数

  • $method:HTTP方法(GET/PUT/DELETE/PROPFIND/MKCOL等)。
  • $path:文件/目录相对路径(可含中文)。
  • $inFile:上传的文件句柄(PUT流式上传时使用)。
  • $fileSize:文件大小(PUT流式上传时使用)。
  • $headers:自定义请求头(数组)。
    返回值:数组,包含status(状态码)、headers(响应头)、body(响应体)。
    关键配置
  • 关闭SSL验证(生产环境建议开启,移除对应配置)。
  • PUT方法时,设置CURLOPT_UPLOADCURLOPT_INFILE等实现流式上传。

4.2 公共业务方法

4.2.1 createRemoteDir:递归创建远程多级目录

public function createRemoteDir($remoteDir)

功能:递归创建远程多级目录,添加MKCOL请求间隔避免频率限制,支持中文路径。
参数$remoteDir(远程目录路径,如xmblog/测试/子目录/)。
返回值:布尔值,true表示创建成功,false表示失败。
实现逻辑

  1. 处理路径编码和规范化,分割为多级目录。
  2. 遍历每一级目录,过滤非法字符后,发送MKCOL请求。
  3. 请求前添加延迟(usleep),处理201(创建成功)和405(已存在)状态码。
  4. 记录异常日志,返回创建结果。

4.2.2 listFiles:获取目录下的文件列表

public function listFiles($path = '')

功能:发送PROPFIND请求,获取目录下的文件/目录列表及属性(名称、大小、修改时间、类型)。
参数$path(远程目录路径,默认根目录)。
返回值:数组,每个元素包含name(名称)、path(路径)、size(大小)、mtime(修改时间戳)、is_dir(是否为目录)。
实现逻辑

  1. 构造PROPFIND的XML请求体,请求文件属性。
  2. 发送请求,解析207(多状态响应)的XML结果。
  3. 解码中文路径,过滤当前目录本身,提取文件属性并返回。

4.2.3 uploadFile:大文件流式上传

public function uploadFile($localFile, $remotePath)

功能:流式上传本地文件到坚果云,自动创建远程目录,支持中文路径和大文件。
参数

  • $localFile:本地文件路径(可含中文)。
  • $remotePath:远程文件路径(包含文件名,可含中文)。
    返回值:布尔值,true表示上传成功,false表示失败。
    实现逻辑
  • 检查本地文件是否存在,处理路径编码和非法字符过滤。
  • 提取远程目录部分,调用createRemoteDir创建目录。
  • 以二进制模式打开本地文件,获取文件大小和MIME类型。
  • 发送PUT请求流式上传,处理201(创建成功)和204(更新成功)状态码。
  • 记录异常日志,返回上传结果。

4.2.4 downloadFile:大文件流式下载

public function downloadFile($remotePath, $localFile)

功能:流式下载坚果云文件到本地,支持中文路径,自动创建本地目录。
参数

  • $remotePath:远程文件路径(包含文件名,可含中文)。
  • $localFile:本地文件路径(可含中文)。
    返回值:布尔值,true表示下载成功,false表示失败。
    实现逻辑
  • 处理远程路径和本地路径的编码、非法字符过滤。
  • 创建本地目录(如果不存在)。
  • 初始化curl,设置CURLOPT_FILE将响应体流式写入本地文件。
  • 执行请求,处理200(成功)状态码,失败时删除空文件。
  • 记录异常日志,返回下载结果。

4.2.5 deleteFile:删除远程文件/目录

public function deleteFile($remotePath)

功能:删除坚果云的文件或目录,支持中文路径。
参数$remotePath(远程文件/目录路径,可含中文)。
返回值:布尔值,true表示删除成功,false表示失败。
实现逻辑

  1. 处理路径编码和非法字符过滤。
  2. 发送DELETE请求,处理204(删除成功)和404(不存在)状态码。
  3. 记录异常日志,返回删除结果。

五、使用示例

5.1 初始化类

// 自定义Log类(需实现error方法)
class Log {
    public function error($message) {
        // 示例:写入日志文件
        file_put_contents('jianguoyun_webdav.log', date('Y-m-d H:i:s') . ' - ' . $message . PHP_EOL, FILE_APPEND);
    }
}

// 坚果云WebDAV配置
$server = 'https://dav.jianguoyun.com/dav/';
$username = 'your_email@example.com'; // 坚果云邮箱
$password = 'your_webdav_password'; // 坚果云WebDAV专用密码

// 初始化类
$jianguoyun = new JianguoyunWebDAV($server, $username, $password);

5.2 创建远程目录

// 创建多级目录
$remoteDir = 'xmblog/测试目录/子目录/';
$createResult = $jianguoyun->createRemoteDir($remoteDir);
if ($createResult) {
    echo '目录创建成功';
} else {
    echo '目录创建失败';
}

5.3 上传文件

// 本地文件路径
$localFile = './本地文件/测试文件.txt';
// 远程文件路径
$remoteFile = 'xmblog/测试目录/测试文件.txt';
// 上传文件
$uploadResult = $jianguoyun->uploadFile($localFile, $remoteFile);
if ($uploadResult) {
    echo '文件上传成功';
} else {
    echo '文件上传失败';
}

5.4 下载文件

// 远程文件路径
$remoteFile = 'xmblog/测试目录/测试文件.txt';
// 本地保存路径
$localFile = './下载文件/测试文件_下载.txt';
// 下载文件
$downloadResult = $jianguoyun->downloadFile($remoteFile, $localFile);
if ($downloadResult) {
    echo '文件下载成功';
} else {
    echo '文件下载失败';
}

5.5 获取文件列表

// 获取目录下的文件列表
$fileList = $jianguoyun->listFiles('xmblog/测试目录/');
print_r($fileList);

5.6 删除文件/目录

// 删除文件
$remoteFile = 'xmblog/测试目录/测试文件.txt';
$deleteResult = $jianguoyun->deleteFile($remoteFile);
if ($deleteResult) {
    echo '文件删除成功';
} else {
    echo '文件删除失败';
}

// 删除目录
$remoteDir = 'xmblog/测试目录/';
$deleteDirResult = $jianguoyun->deleteFile($remoteDir);
if ($deleteDirResult) {
    echo '目录删除成功';
} else {
    echo '目录删除失败';
}

六、注意事项

6.1 安全配置

  • 生产环境中,需移除CURLOPT_SSL_VERIFYPEERCURLOPT_SSL_VERIFYHOST的关闭配置,开启SSL验证,避免安全风险。
  • 坚果云WebDAV专用密码需妥善保管,不要硬编码在代码中(可通过配置文件、环境变量读取)。

6.2 编码处理

  • 确保本地文件路径的编码与系统一致(如Windows为GBK,Linux为UTF-8),类中已通过toUtf8方法自动处理,无需额外转换。
  • 远程路径的中文会被自动URL编码,坚果云返回的路径会被自动解码,无需手动处理。

6.3 频率限制

  • 坚果云对MKCOL请求有频率限制,类中默认设置0.5秒间隔,可根据实际情况调整mkcolDelay参数。
  • 大文件上传/下载时,建议使用默认的10MB分块大小,避免因分块过大导致内存溢出。

6.4 日志处理

  • 类中依赖Log类的error方法记录日志,需自行实现该类(如写入文件、数据库等),否则会抛出实例化错误。

6.5 错误处理

  • 各业务方法返回布尔值表示操作结果,同时记录异常日志,可通过日志文件排查问题。
  • 常见状态码说明:

    • 201:创建成功(PUT/MKCOL)。
    • 204:更新/删除成功(PUT/DELETE)。
    • 404:文件/目录不存在(DELETE/DOWNLOAD)。
    • 405:目录已存在(MKCOL)。
    • 207:多状态响应(PROPFIND)。

  •  

宝塔安装应用提示:指定日志文件不存在解决方法

2025年12月18日 14:18

这篇文章介绍了作者因之前服务器常崩溃死机而进行升级,在项目迁移时装宝塔插件时提示报错。经查看报错信息,发现是找不到 /etc/redhat - release 文件。因作者使用Ubuntu24系统,通过创建一个假的该文件,成功解决插件安装问题 。

平凡的生活之尿床+鹦鹉+明信片+投喂

2025年12月19日 09:34

 

娃尿床

早上五点,我听见娃在我耳边喊爸爸、爸爸,我问他怎么了?他小声说:“爸爸,我尿床了,裤子、被子下面全湿了”。我立刻起床,给他拿了湿毛巾和内衣内裤来更换。

如果我没记错的话,这是他出生以来为数不多的一次尿床,他从小就很少尿床。隔壁邻居说他家小孩三天两头尿床,洗都洗不过来。他应该是怕被我批评,所以委屈地小声跟我说尿床的事,我知道要是一大早批评他,他这一天都不会有好心情。所以我尽量安慰他:“没事的,爸爸小时候也尿床呢,你是不是梦到找厕所啦?” 他说是的,梦到自己已经到了厕所,所以就尿了,然后惊醒过来发现是在床上。

等我给他换好内衣内裤,又给他换了个床让他继续睡,我把被褥全都丢进洗衣机里清洗。结果他还没睡一个小时,又跟我说肚子饿了,我只好下楼给他煮鸡蛋、冲牛奶。下楼前我给他穿好衣服,让他自己去洗漱。他下楼的时候,距离校车来还有四十分钟,我让他把这几天学的生字默写一遍,好几个字他都忘了,我让他翻书再记一记;昨天老师说今天上课要抽背的课文,我也让他背诵了一遍给我听。不得不说这小子比我读书那会儿聪明多了,我像他这么大的时候,还在到处玩泥巴呢。

 

鹦鹉

家里的那只绿色小鹦鹉,这大半年来一直独住,每个来家里的朋友、顾客都说,只养一只会不会太孤单。这不,前几天我在网上又买了一只,按照网上的说法,先把它们分开喂养,等彼此熟悉之后再合笼 —— 一来是避免新来的鹦鹉携带疾病,二来鹦鹉有领地意识,新来的会被老鹦鹉啄。我等了三四天才给它们合笼,现在它们还是会偶尔互啄,但看起来应该没什么大问题。

那只养了很久的绿色鹦鹉似乎不太乖,总把食盒里的谷物挑出来丢掉,好像在抗议不喜欢吃这个,但它从小吃的就是这款谷物。新来的鹦鹉倒是一点都不挑食,给什么吃什么。我也不知道它们的公母,养它们就是主打一个陪伴。

 

 

“我是军爸”明信片活动

前些天,我收到了 “我是军爸” 寄来的明信片。其实在邮寄途中,我一度担心会丢失,和我同步申请这张明信片的 “李的日志”,我们是同一天收到寄出通知的,可他比我早好几天就收到了。又过了两天,我妈突然打来视频,说收到了一张寄给我的明信片,还说等吃完饭就给我送过来。我通过摄像头,看着家里好几个人凑在一起,逐一传递着阅读明信片上的内容,忍不住笑了出来。后来才知道,明明写的是我的地址,却投递到了我爸妈那里,原来是邮递员和我爸妈熟络,而且我爸妈住的地方离邮政网点更近,他便顺手把明信片放在了我爸妈那边,也算是个小小的意外。​

“军爸你好,收到你的明信片很惊喜,也特别感动,没想到素未谋面的你会这么用心地写下这些话。生活里的点滴本就是值得记录的小事,能被你看见和喜欢,我也觉得特别温暖。谢谢你的祝福,这份心意我好好收下了。同样祝你事事顺遂,所愿皆所得,日子过得温暖又有趣!       —— 全局变量” 

 

 

来自重庆的投喂

前些天下午,还突然收到了许久没联系的一位重庆女孩发来的信息。她告诉我,给我寄了些重庆本地特产,都是她亲自尝过觉得味道超棒的,所以想着分享给我。我赶忙问她何必这么破费,她却说,过去那段难熬的日子,多亏了我的开导和帮助,现在她已经在重庆顺利上班,能做自己喜欢的事、吃爱吃的东西、买喜欢的衣服,整个人可以说是脱胎换骨了,寄点吃的根本不算什么。我回复她,过去确实经历了不少苦,现在好好过好当下的生活就好,发了工资多犒劳自己,也记得常给父母打打电话。看着她如今的状态,真心为她高兴,她算是真正完成了一场漂亮的蜕变。

  •  

yt-dlp:一款功能丰富的命令行音频/视频下载器

2025年12月18日 19:49

yt-dlp 是一个功能强大的命令行工具,用于从各种网站下载视频、音频和其他媒体内容。它支持的站点非常广泛,涵盖了全球范围内的主流媒体平台、社交媒体平台、新闻网站、教育平台等。

yt-dlp

yt-dlp 简介

  • 项目名称:yt-dlp
  • 项目地址https://github.com/yt-dlp/yt-dlp
  • 项目描述:yt-dlp 是一款功能丰富的命令行音频/视频下载器,支持数千个网站。它是基于现已停止维护的 youtube-dlc 开发的 youtube-dl 分支。
  • 项目状态:活跃开发中,最新版本为 2025.12.08,拥有 139k 颗星和 11.2k 个分叉。
  • 项目特点
    • 支持多种网站的音频/视频下载。
    • 提供丰富的命令行选项,用于定制下载行为。
    • 支持多种格式选择、后处理(如提取音频、嵌入元数据等)。
    • 支持从浏览器导入 cookies,便于登录下载。
    • 支持 SponsorBlock,可用于去除 YouTube 视频中的赞助部分。

安装方法

  • 二进制文件:提供多种平台的预编译二进制文件,包括 WindowsLinuxMacOS 等。
  • pip 安装:可通过 Python 的包管理工具 pip 安装。
  • 其他包管理器:支持通过 Homebrew(MacOS)、Chocolatey(Windows)等第三方包管理器安装。

下载地址

文件 描述
yt-dlp 平台无关的zipimport二进制文件。需要 Python(推荐用于Linux/BSD)。
yt-dlp.exe Windows(Win8+)独立 x64 二进制文件(推荐用于Windows
yt-dlp_macos 通用 macOS (10.15+) 独立可执行文件(推荐用于macOS

使用方法

  • 基本命令yt-dlp [OPTIONS] [--] URL [URL...]
  • 常用选项
    • -f:指定下载的视频格式。
    • -o:指定输出文件名模板。
    • -P:指定下载路径。
    • -x:提取音频。
    • --embed-thumbnail:将缩略图嵌入视频文件。
    • --write-info-json:将视频元数据写入 .info.json 文件。
  • 高级功能
    • 支持通过 .netrc 文件进行身份验证。
    • 支持自定义配置文件,可放置在多个位置(如用户目录、系统目录等)。
    • 支持插件系统,可扩展功能。

配置文件

  • 配置文件位置
    • 主配置文件:通过 --config-locations 指定。
    • 便携配置文件:与可执行文件同目录下的 yt-dlp.conf
    • 用户配置文件:~/.config/yt-dlp/yt-dlp.conf~/.yt-dlp.conf
    • 系统配置文件:/etc/yt-dlp/yt-dlp.conf
  • 配置文件格式:支持命令行选项的格式,例如 -x--embed-thumbnail 等。

输出模板

  • 模板语法:使用 %(字段)s 格式,支持多种字段,如 titleidext 等。
  • 特殊功能
    • 支持日期时间格式化,如 %(upload_date>%Y-%m-%d)s
    • 支持条件表达式,如 %(field|默认值)s
    • 支持字段替换和解析,通过 --parse-metadata--replace-in-metadata

格式选择

  • 默认行为:下载最佳质量的视频和音频。
  • 格式选择语法
    • 使用 -f 指定格式,如 bv*+ba/b
    • 支持过滤和排序,如 -S 选项。
    • 支持多种格式,如 mp4webm 等。
  • 高级用法
    • 支持下载多个格式并合并。
    • 支持下载特定分辨率或比特率的格式。

后处理选项

  • 提取音频:通过 -x 选项提取音频。
  • 嵌入元数据:通过 --embed-metadata 嵌入元数据到视频文件。
  • 转换格式:支持将视频转换为其他格式,如 --remux-video
  • 处理字幕:支持下载和嵌入字幕。

插件系统

  • 插件类型:支持提取器插件和后处理插件。
  • 安装方法:可通过配置目录、pip 或其他方式安装插件。
  • 开发指南:提供插件开发指南和示例代码。

兼容性选项

  • 与 youtube-dl 兼容:提供 --compat-options 选项,用于恢复与 youtube-dl 相同的行为。
  • 与 youtube-dlc 兼容:同样支持与 youtube-dlc 的兼容性设置。

很抱歉,我无法直接访问网页链接。不过,根据您提供的文件内容,我可以为您整理一份关于 yt-dlp 支持的站点的详尽笔记。

支持的站点分类

以下是根据功能和类型对支持的站点进行的分类整理:

1. 主流视频平台
  • YouTube:支持下载视频、播放列表、用户视频、搜索结果等。
  • Bilibili:支持下载视频、音频、有声专辑、收藏列表等。
  • TikTok:支持下载视频、用户视频、直播等。
  • Dailymotion:支持下载视频、播放列表、用户视频等。
  • Vimeo:支持下载视频、播放列表、用户视频等。
2. 社交媒体平台
  • Facebook:支持下载视频、广告、故事等。
  • Instagram:支持下载视频、用户视频、故事等。
  • Twitter:支持下载视频、直播、推文中的视频等。
  • Twitch:支持下载直播、视频、剪辑等。
3. 新闻媒体平台
  • CNN:支持下载新闻视频。
  • BBC:支持下载 BBC iPlayer 视频。
  • Fox News:支持下载新闻视频。
  • The New York Times:支持下载视频。
4. 教育平台
  • Khan Academy:支持下载课程视频。
  • Coursera:支持下载课程视频。
  • Udemy:支持下载课程视频。
  • edX:支持下载课程视频。
5. 音乐平台
  • Spotify:支持下载音乐、播放列表等。
  • SoundCloud:支持下载音乐、播放列表、用户音乐等。
  • QQ Music:支持下载音乐、专辑、MV 等。
  • NetEase Cloud Music:支持下载音乐、专辑、MV 等

其他信息

  • 支持站点列表:可在 supportedsites.md 查看支持的站点列表。
  • 文档:提供详细的 Wiki 文档。
  • 社区支持:可通过 Discord 获取社区支持。

说说:#1766065148

2025年12月18日 21:39

woccc我想通了为什么之前明明什么也没做,但是空间会被占用到98%了,docker容器的日志一直在增长!一年半达到了4G!呜呜要是当初知道原因就不用搬家了qaq

本来计划下周圣诞节去哈尔滨冰雪大世界过,但是想了想哈尔滨没啥吃的没啥玩的,就是市内转一圈,雪景什么的感觉都差不多,又看不到大雪封门那种,滑雪的话大连也有,而且路途遥远,就pass了

最近妞妞生病了,我妈非要喂她吃饺子,结果这下好了,好几天不吃不喝,还总吐。找了半天才找到一家看异宠的医院,打了两天针有点好转,但是还得观察,要是吃东西了就好了

马上就要过新年了,今年还要去天津街过跨年晚会,去年去看唱歌真的不错!唱的还好qaq,而且博客也要写一篇年终总结了,可恶啊,又是没有干劲的一年,明年一定要有干劲。博客写日记感觉有点不靠谱,要是像这样每天这个简单的日历总结也好,得好好想想

使用Let's Encrypt 签发的 IP 地址 SSL 证书

2025年12月18日 21:20

由 copilot.microsoft.com 生成
由 copilot.microsoft.com 生成

本文将介绍使用 Caddy 和 acme.sh 配置 Let's Encrypt 为 IP 地址签发 SSL 证书

前提说明

国内大概率个人是用不了的,即使现在没限制。如果你的 IP 已经备案了,那另说。

什么情况下需要

正常没啥需要,如果 1.2.4.8 在我手上那就好了。

  • • 临时测试服务,又不想老大哥时刻看着你
  • • DOH

Caddy

最新版本 2.10 版本是支持的,貌似只支持 ipv4, ipv6 没签发成功

1.2.4.8 {
  tls {
    issuer acme {
      profile shortlived
    }
  }
  respond {remote_host}
}

可以使用我提供的镜像

ghcr.io/ysicing/caddy2:latest
ysicing/caddy2
# 国内
ccr.ccs.tencentyun.com/k7scn/caddy2

如果遇到证书已经生成,但是访问还有有问题,需要在全局配置里添加一下

{
        debug
	# admin off
	default_sni 1.2.4.8
}

acme.sh

使用 acme.sh 需要满足几个条件, 因为 IP 证书目前只支持通过 http-01tls-alpn-01 方式进行验证

  • • 需要使用最新版本 acme.sh
  • • 当前机器是公网机器 80/443 可以被访问
acme.sh --issue -d <ip地址1>  -d <ip地址2> -w <默认网站根目录> --server letsencrypt --certificate-profile shortlived --days 5

Let's Encrypt 的 IP 证书有效期只有 160 小时(差不多 6.5 天),同时 acme.sh 需要更短的时间来进行检查更新证书,所以可以设置 --days 5 参数,让它 5 天检查并更新一次,你也可以设置 3 或 4。

访问

ip 证书
ip 证书

  •  

Realtek瑞昱 RTL9210主控的量产工具下载(夸克网盘)

2025年12月18日 08:00
😀
RTL9210主控SSD专用固件烧录与控制器配置工具(支持USB转NVMe/SATA协议) ,适用于海康威视MDC1、MD202等使用RTL9210主控的硬盘盒。

📝 主旨内容

软件介绍

RTL9210主控专用固件烧录与控制器配置工具(支持USB转NVMe/SATA协议) ,适用于海康威视MDC1、MD202等使用RTL9210主控的硬盘盒。可用于刷写主控固件、调整硬盘盒休眠时间,以及更改硬盘盒基本信息(显示名称、制造商、产品型号)等。同样适用于部分该主控SSD无法识别,重新开卡使用等情况。
本篇文章内提供RTL9120最新固件(realtek_rtl9210_fw1.34.39)下载。海康威视专用版本软件包内量产工具所带固件为2021年版本,如需使用新版固件请自行替换。

下载地址

海康威视专用版本

我用夸克网盘给你分享了「HIKSEMI-MPTool-RTL9210.zip」,点击链接或复制整段内容,打开「夸克APP」即可获取。 /~ae3f39dWcH~:/ 夸克网盘链接:https://pan.quark.cn/s/23e69221b9c8?pwd=CKjf 提取码:CKjf
 

RTL9120最新固件版本

我用夸克网盘给你分享了「realtek_rtl9210AB_fw (Version 1.30.21.070622).zip」,点击链接或复制整段内容,打开「夸克APP」即可获取。 /~722539dgf6~:/ 链接:https://pan.quark.cn/s/ccba31fbe8bc?pwd=rg36 提取码:rg36
 

🤗 总结归纳

本篇文章没有总结,仅为工具分享。
开卡或刷写SSD主控前,注意先Dump原始主控配置文件,避免写坏之后无法恢复。

📎 参考文章

 
💡
有关SSD安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~ 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
  •  

Spux作品展示类主题

2025年12月18日 13:56
Spux自适应作品展示Typecho主题

Spux

一款自适应作品 Typecho 主题,简约是其最大的特点。设计精美,非常适合用来搭建图片分享、摄影作品展示等图片相关的博客网站,更重要的这是款免费主题。支持目录。来源于:www.spinyue.com/659/(失效)

演示

在线预览

下载

截图展示

Spux自适应作品展示 Typecho 主题.webp
  •  

playback

2025年12月18日 13:04

playback

default-ultra 主题的定制插件,也支持第三方主题使用适配。

下载

三方主题适配该插件

需要:
1.提前导入 jQuery
2.自行找位置提供放映按钮,比如在网页右下角添加悬浮按钮、文章内容区添加悬浮按钮等。
3.将放映按钮的 id 属性设置为 enterPlayback(固定值)。
4.文章内容的容器(即需要放映的原始内容容器),class 属性中需要添加 post-content
5.样式可自行优化,如有样式冲突需要覆盖样式请使用 !important

开源地址:https://github.com/visduo/typecho-playback-plugin

效果截图

2025-12-18T05:01:22.webp
  •  

Realtek瑞昱 RTL9210B主控的量产工具下载(夸克网盘)

2025年12月18日 08:00
😀
RTL9210B主控SSD专用固件烧录与控制器配置工具(支持USB转NVMe/SATA协议) ,适用于海康威视MDC1、MD202等使用RTL9210B主控的硬盘盒。

📝 主旨内容

软件介绍

RTL9210B主控专用固件烧录与控制器配置工具(支持USB转NVMe/SATA协议) ,适用于海康威视MDC1、MD202等使用RTL9210B主控的硬盘盒。可用于刷写主控固件、调整硬盘盒休眠时间,以及更改硬盘盒基本信息(显示名称、制造商、产品型号)等。同样适用于部分该主控SSD无法识别,重新开卡使用等情况。
本篇文章暂时未提供RTL9120B最新固件下载。软件包内量产工具所带固件为2021年版本,如需使用新版固件请自行搜索。

下载地址

我用夸克网盘给你分享了「HIKSEMI-MPTool-RTL9210B.zip」,点击链接或复制整段内容,打开「夸克APP」即可获取。 /~ae3f39dWcH~:/ 夸克网盘链接:https://pan.quark.cn/s/23e69221b9c8?pwd=CKjf 提取码:CKjf

🤗 总结归纳

本篇文章没有总结,仅为工具分享

📎 参考文章

 
💡
有关SSD安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~ 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
  •  

路上捡了只猫,没想到是“地狱开局”

2025年12月18日 08:49

昨天中午下班班路上,冻得要死,在路边草堆里看见一只小奶猫,缩成一团发抖。

真的太小了,感觉我一巴掌就能盖住。这么冷的天,不捡回去肯定活不过今晚。正好有个朋友一直说想再养只猫,我就赶紧给她打电话。

2025-12-18T00:48:21.webp

朋友爽快讲在哪裡马上就驱车过来了。

我们带着猫就去医院了,心想就是简单检查一下,然后就能送朋友家享福去了。

结果检查报告出来,我人都傻了。

医生指着单子说:“猫瘟,有。杯状病毒,有。猫鼻支,也有。”

我朋友在旁边直接懵了:“这……buff叠满了啊?”

医生很直接:“这么小的猫,三种病一起得,活下来的几率不高。而且治疗不便宜,你们想清楚。”

我和朋友对视一眼。
“治吧。”
“治!”

当医生说出“一天500,最少7天”时,我和朋友在诊室里沉默地对视了一眼。

3500元——对我们来说不是小数目。而且医生说,即使花了这笔钱,也不能保证一定能活。

我们俩隔着手机屏幕,一头扎进了各种宠物论坛、经验贴。猫瘟居家治疗的关键词搜了一遍又一遍:干扰素、升白针、止吐药、消炎药、营养支持……

老婆用大号猫笼做了隔离病房。老婆翻出了以前用的暖水袋,灌上温水,用旧毛巾仔细包好,放在笼子一角。怕温度不够,又在旁边贴了两个暖宝宝。

“它太小了,保温最重要。”她说。

朋友每天下班就带着药过来,她俩像交接班的护士一样仔细核对:今天要打什么针,喂什么药,体温多少,大便如何。

希望她能够挺过来呀!!!

  •  

使用Let's Encrypt 签发的 IP 地址 SSL 证书

2025年12月17日 22:40

由 copilot.microsoft.com 生成
由 copilot.microsoft.com 生成

本文将介绍使用 Caddy 和 acme.sh 配置 Let's Encrypt 为 IP 地址签发 SSL 证书

前提说明

国内大概率个人是用不了的,即使现在没限制。如果你的 IP 已经备案了,那另说。

什么情况下需要

正常没啥需要,如果 1.2.4.8 在我手上那就好了。

  • • 临时测试服务,又不想老大哥时刻看着你
  • • DOH

Caddy

最新版本 2.10 版本是支持的,貌似只支持 ipv4, ipv6 没签发成功

1.2.4.8 {
  tls {
    issuer acme {
      profile shortlived
    }
  }
  respond {remote_host}
}

可以使用我提供的镜像

ghcr.io/ysicing/caddy2:latest
ysicing/caddy2
# 国内
ccr.ccs.tencentyun.com/k7scn/caddy2

acme.sh

使用 acme.sh 需要满足几个条件, 因为 IP 证书目前只支持通过 http-01tls-alpn-01 方式进行验证

  • • 需要使用最新版本 acme.sh
  • • 当前机器是公网机器 80/443 可以被访问
acme.sh --issue -d <ip地址1>  -d <ip地址2> -w <默认网站根目录> --server letsencrypt --certificate-profile shortlived --days 5

Let's Encrypt 的 IP 证书有效期只有 160 小时(差不多 6.5 天),同时 acme.sh 需要更短的时间来进行检查更新证书,所以可以设置 --days 5 参数,让它 5 天检查并更新一次,你也可以设置 3 或 4。

访问

ip 证书
ip 证书

  •  
❌