自建图床小记四——上传脚本编写与图片迁移前面三篇小记分别讲述了图床的整体架构、用 Workers 构建 Restful API 和 自动更新部署 SSL 证书,这一篇c处理由此带来的图片上传问题,主要是要为 Typora 编写自动上传脚本,并为博客原有的图片进行迁移。自动上传脚本主要还是给 Typora 用,实现这种效果#!/bin/bash HOST="upload.example.com" CDN_HOST="cdn.example.com" UPLOAD_PATH="uploads/$(date +%Y/%m/%d)" AUTH_TOKEN="1145141919810" webp=false markdown=false force=false keep=false while getopts ":mwfkp:" opt; do case $opt in m|markdown) markdown=true ;; w|we...
自建图床小记三—— SSL 证书的自动更新与部署为什么要自动更新?众所周知,为站点开启 https 访问需要获得对应 host 的 ssl 证书,而如果希望证书被访客的浏览器所信任,需要拿到由 Certificate Authority (CA) 签发的 ssl 证书。在前一阵子那波 BAT 等大厂提供的云服务停止发放免费的由 TrustAsia/DigiCert 签发的一年有效期免费 ssl 证书之后,市面上已经没有被广泛信任的 CA 签发的免费的一年有效期的 ssl 证书了,于是不得不用回由 Let's Encrypt/ZeroSSL 等 CA 签发三个月免费证书。但话又说回来,三个月有效期确实不太够,一年有效期的证书就一年一更,手动申请部署也不麻烦;三个月有效期的证书手动就有点麻烦了——我一般会在证书到期的前 15 天进行更新,防止最后几天自己太忙了没时间管。这套图床架构的自动更新有没有困难?境外通过 Cloudflare Saa...
自建图床小记二——使用 Workers 为 R2 构建 Restful API访问 R2 的两种方式一般来说,想要访问 Cloudflare R2 中的文件,会有两种方式。一种是在 R2 的设置界面设置自定义域另一种是通过 Cloudflare Workers 进行访问那么应该选择哪种?选择 Cloudflare Workers!为什么是 Cloudflare Workers?要回答这个问题比较困难,但可以回答另一个问题——「为什么不设置自定义域实现直接访问?」自定义域的访问存在限制设置自定义域的访问方式存在较多的限制,让我们先来复习一下上一篇博客中提到的 DNS 解析方案 1在这里,我们需要将图床访问域名通过 NS 接入 DnsPod 实现境内外的分流,但 R2 所允许设置的自定义域必须是通过 NS 接入 Cloudflare 的,这存在冲突。那如果我们先将自定义域设置为通过 NS 接入 Cloudflare 的工具人域名,再将图床访问域名通过 CNAME 解析到...
自建图床小记一——图床架构与 DNS 解析一直以来,我使用的都是使用付费的第三方图床,可惜最近几年为了节省成本,境内的稳定性出现了一些问题。过去一年中光是我本人遇到的无法访问的情况就有三四次,其中两次持续时间超过 2 小时,甚至有网友特意来 at 我告知我博客使用的图床出问题了,还有两次是在我作品验收前 24 小时内出现,幸亏我及时切换了资源链接。此外,境外 CDN 也从原先的 Cloudflare 换掉了,目前海外的解析结果似乎只有一个在美国的节点,其余地区(尤其是日本香港新加坡等常用的落地地区)的访问质量不佳,Google 的 page speed test 甚至提示我的图片拖慢了网站加载速度。基于上述种种原因,我开始选择自建图床,前前后后折腾了快一周后,新图床终于投入使用,目前我的博客已经完成了所有图片资源的切换。架构设计这一套架构使用 Dnspod 免费版实现在境内外的解析分流,将境内的流量导向又拍云 CDN 为境内的访客...
在 Linux 下使用 mitmproxy 抓取安卓手机上的 HTTPS 流量纵使安卓下有小黄鸟 HttpCanary 这种抓包神器,但手机一块 6 英寸的小屏实在是不方便分析流量情况,还得是 PC 的屏幕更大一些,处理起流量信息来更得心应手一些。把话说在前面,目前的安卓抓包有不小的限制Android 7 以下的版本: 直接以普通用户的权限安装 ssl 证书即可被信任Android 7 以上的版本: 安全性较低的应用: 需要使用 root 权限将证书移动至 /system/etc/security/cacerts使证书被系统信任安全性较高的应用(比如微信 7.0 以上的版本): 在满足上一条条件的情况下,需要阻止第三方应用使用自带的 ssl 证书信任范围(绕过 SSL Pinning)。通常情况下需要额外的手段对目标应用进行篡改,比如使用 justTrustMe 这个 xposed 模块,或者 frida。除此之外,Linux 版本 >= 5.5 的安卓设备也可以使...
为中柏 N100 小主机开启来电自启因为收到通知,寝室过两天要断电 20 分钟,所以需要打开 N100 家里云的来电自启功能。正常关机短暂等待数秒后,开机,狂按 Delete 键进入 BIOS。在 Advanced 选项中选择「OEM Configuration」可以在最后一行「AC Power Loss」中选择模式。Power Off: 关闭相关功能。Power On: 传统意义上的来电自启,只要接通电源就会自启动。Last State: 只有在上次关机是意外断电导致时,接通电源才会自启动。
我的博客被完整地反向代理,并自动翻译成了繁体中文2024.08.20更新我将境外的 Github Pages 解析停了,所有流量全部指向我的 HK 的 vps。访问对方站点 /?about/ 时,在我服务器 /about/ 收到了一个奇怪的请求,访问对方别的路径时也会在我服务器的对应路径收到请求,UA 伪装成了 Google 家的爬虫:(关于为什么有 Mozilla 字段,可以参见 《是的,所有现代浏览器都假装自己是火狐》)这个 ip 的归属地是新加坡 Cogent,合理怀疑是对方的源站 IP(也有可能只是对方用于请求的爬虫 ip)。直接通过 ip 访问对方站点,发现是 lnmp 的安装成功提示:我注意到对方站点在 html 结尾处加了如下字段<!-- freevslinks --><div style="display:none"><a href="http://www.xxfseo.com/?time=1721267439">xxf...
尝试体验 Fedora COPR 中的 allow SSH 功能在今年的早些时候,我在 COPR 看到了一个新出现的名为「allow SSH」的按钮。我在 COPR 的 User Documentation 中找到了对应的描述。Sometimes it is useful to manually debug failed builds not locally but within the Copr infrastructure. That’s why it is possible to allow SSH access to a copr builder. More information in the SSH access to Copr builders blog post.COPR 的这项功能允许包维护者远程访问自己没有的 CPU 架构或 Linux 发行版的 Linux 环境,大大减少打包时的痛点。开始使用尝试点击按钮,获得如下界面,可以填写自...
在 Arch Linux 下配置使用 HP Laser 103w 打印机无线打印我寝室有一台使用 wifi 连接的 HP Laser 103w 打印机,这些天刚好布置了新的 HomeServer,因此来记录一下这台打印机的配置过程,根据 HP 官网驱动包的名字「HP Laser 100 and HP Color Laser 150 Printer series Print Driver」推断,此过程应该能适用于所有的 HP Laser 100 及 HP Color Laser 150 系列的打印机。打印机联网首先使用 Windows 操作系统完成打印机的联网工作,在路由器的网页管理界面可以看到这台打印机的局域网 ip 是 192.168.123.20 ,记录备用。如果有条件的话,尽量将打印机的 MAC 地址与 IP 地址绑定,避免路由器将该 IP 分配给别的设备。安装 CUPS随后按照 ArchWiki 的 CUPS 页面进行相关配置,CUPS 是苹果公司开源的打印系...
使用动态公网 ip + ddns 实现 rustdesk 的 ip 直连最近跟风整了一台 n100 的迷你主机装了个 Archlinux 当 HomeServer,搭配上了显卡欺骗器,平常一直远程使用,因此需要实现稳定的远程桌面连接。开源软件 Rustdesk 本身对 Linux 的适配尚可,可惜官方提供的服务器位于境外,且前一阵子因为诈骗相关的风波使得官方对连接做出了一些限制,应当使用自建服务器或者 ip 直连。单从网络安全的角度出发,最佳实践应该是通过 wireguard 或者别的协议先接入局域网,然后使用局域网内的 ip 直连,这是最稳妥的,但我有点懒,而且我可能会在多个设备上都有控制 HomeServer 的需求,给所有设备配置 wireguard 是一件挺麻烦的事情,因此我决定放弃安全性,直接公网裸奔。在学校宿舍的电信宽带提供了一个动态公网 ip,因此只需要设置好 ddns 和端口转发就可以拿到一个固定的 domain + port 提供给 rust...
12345…13