JACIN Blog

深度的 AI 应用开发者

专注 AI 应用开发、Python 后端与工程实践,持续记录大模型落地、工具构建与真实项目经验。

183篇已发布
主题索引
查看全部分类
全部文章
183
rclone-webui使用与配置
服务器与部署
9 分钟

rclone-webui使用与配置

这份记录聚焦 rclone WebUI 的容器化部署,以及把本地 MinIO public 桶同步到 Dropbox 的实际配置过程。文章先用 Docker Compose 启动 rclone/rclone 镜像,通过 rcd、--rc-web-gui、5572 端口和指定 rclone.conf 的方式开启 WebGUI,并把 rclone 配置目录、MinIO 数据目录和本地 data 目录挂载进容器。云端配置部分分别覆盖 S3、Dropbox 与 MinIO:S3 远端强调访问密钥、Secret 和 Endpoint 是关键字段;Dropbox 需要先在开发者后台创建应用、配置 OAuth 回调地址 http://localhost:53682/,并提前勾选文件夹权限和 Individual Scopes,否则生成的 token 可能缺少 list 权限。文章还给出通过 macOS 安装 rclone、执行 rclone authorize dropbox 获取授权 JSON,再写入容器挂载的 rclone.conf 的操作路径。MinIO 部分补充了包含 GetObject、PutObject、ListBucket、ListAllMyBuckets 等动作的 S3 策略示例,并提醒 Docker 环境下 endpoint 不能简单写 127.0.0.1,而应使用可访问的主机地址。最后,作者解释 bind mount 只是把宿主机目录映射进容器,不会复制数据或额外占用一份存储,并用 docker exec 调用 rclone sync,再配合 crontab 实现定时同步,适合需要在自建对象存储、容器环境和 Dropbox 之间搭建轻量同步链路的运维或个人服务器用户。

komari探针
服务器与部署
6 分钟

komari探针

这篇记录围绕 Komari 探针的服务端部署、反向代理和基础使用配置展开,适合已经有 Docker 与 Nginx 环境、想快速自建监控面板的用户参考。服务端部分给出 Docker Compose 启动方式,使用 ghcr.io/komari-monitor/komari:latest 镜像,将 25774 端口映射到宿主机并把 ./data 挂载到 /app/data,以便保留运行数据;默认管理员账号密码可通过 docker logs komari 查看,也可以用 ADMIN_USERNAME 和 ADMIN_PASSWORD 环境变量预设,首次登录后应立即修改。反向代理配置是重点,Nginx 需要把请求转发到 127.0.0.1:25774,并补齐 Host、真实 IP、转发协议等常见头,同时关闭代理缓冲、设置上传大小限制。文章特别强调 WebSocket 代理必须让上游使用 proxy_http_version 1.1,并携带 Upgrade 与 Connection: Upgrade,否则 Nginx 默认的 HTTP/1.0 上游请求可能丢失连接升级语义,导致握手失败。它还解释了 HTTP/2 与传统 WebSocket Upgrade 机制的不兼容:HTTP/2 废弃了 HTTP/1.1 的 Connection/Upgrade 流程,不能在同一连接上按这种方式动态切换协议。使用配置部分记录了延迟监测和系统信息保存周期的取舍示例,作者将线路延迟保留 15 天、系统信息保留 7 天,并提醒邮件通知在测试前必须先启用开关,否则测试不会成功。

计算机网络
4 分钟

ICMP与TCPping整理

这份笔记围绕网络连通性排查中常见的 ICMP Ping 与 TCP Ping 做对照整理,核心区别在于前者工作在网络层,通过 Echo Request/Reply 判断主机是否响应,后者工作在传输层,需要指定 IP 和端口并尝试建立 TCP 三次握手。ICMP Ping 适合内网排障、局域网测试和快速确认主机在线状态,但它只反映 ICMP 控制报文是否可达,很多云厂商或防火墙会屏蔽 ICMP,因此容易出现 ping 不通但网站、SSH 或 HTTPS 服务实际正常的假阴性。TCP Ping 更贴近真实业务访问路径,可用 tcping、hping3 或 nmap 指定端口检测 80、443、SSH 等服务端口的可达性与延迟,在互联网服务监控和业务体验评估中更有参考价值。笔记还给出北京、上海部分电信、移动、联通的常用测试 IP,以及 zstaticcdn 面向联通、移动、电信的 80 端口 TCP Ping 目标,便于做跨运营商线路对比。读者可以借此判断排查时该先测主机响应还是直接测业务端口,避免把 ICMP 被封误判为服务故障。适合运维、后端开发、站点维护者和需要做多线路网络质量测试的用户作为速查参考。

gdrive同步linux文件夹
服务器与部署
3 分钟

gdrive同步linux文件夹

这篇记录聚焦在用 rclone 将 Linux 服务器上的 /root/minio 目录同步到 Google Drive,目标是把本地 MinIO 相关文件定时备份到云端的 minio 文件夹。配置部分先从 Google Cloud Console 启用 Drive API 入手,创建 OAuth 应用后获取 client_id 和 client_secret,再在服务器上执行 rclone config 新建名为 gdrive 的 drive 类型 remote,并将 scope 设为 drive。由于运行环境是服务器,rclone 的 auto config 需要选择 N,通过命令行输出的 URL 在浏览器中登录 Google 账号授权,再把返回的 code 粘贴回终端完成认证。实际同步命令使用 rclone sync /root/minio gdrive:minio,并加入 -P 显示进度、--size-only 按文件大小判断变化、--ignore-errors 忽略部分错误,同时排除 data/.minio.sys/** 目录,避免同步 MinIO 内部系统数据。定时任务通过 crontab 每小时执行一次同样的同步命令,并将输出追加到 /root/rclone-gdrive.log,方便后续查看运行情况。文末还指出 token 会自动刷新,因此完成初始授权后无需反复手动登录,适合需要给服务器目录做轻量级 Google Drive 备份的运维或个人服务维护场景。

dropbox同步linux文件夹(minio)
服务器与部署
11 分钟

dropbox同步linux文件夹(minio)

这篇实操记录围绕在 Linux 服务器上用 rclone 将 MinIO 数据目录同步到 Dropbox,适用于个人服务器或轻量对象存储需要做异地备份的场景。正文先给出 Debian/Ubuntu 安装 rclone 的方式,再说明配置 Dropbox remote 时如何在无浏览器的远程机器上选择手动授权,并借助本地有浏览器的电脑执行 rclone authorize 后把生成的 JSON token 粘贴回服务器。Dropbox 侧需要在开发者后台创建 App,出于安全考虑选择 App folder 而不是 Full Dropbox,并配置 localhost OAuth 回调地址;文章特别提醒文件夹权限和 Individual Scopes 必须在生成 token 前选好,否则 token 可能缺少 list 等权限,只能重新授权。同步命令使用 rclone sync /root/minio dropbox:minio,并通过 --size-only、时间戳思路和 --ignore-errors 避免哈希差异或临时文件导致任务中断,同时排除 data/.minio.sys 这类 MinIO 内部元数据目录。后续还说明 access_token、refresh_token 与 expiry 的关系,只要保留 refresh_token,rclone 可在访问令牌过期后自动刷新。最后通过 crontab 每小时执行同步并写入日志,读者可据此搭建一套简单、可检查、权限相对收敛的 MinIO 到 Dropbox 备份流程。

自动续签ssl证书
服务器与部署
6 分钟

自动续签ssl证书

这篇笔记记录了用 acme.sh 为域名自动申请和续签 Let’s Encrypt SSL 证书的完整配置过程,重点场景是通过 DNS-01 验证签发 jacin.me 及其通配符证书,适合需要为泛域名部署 HTTPS 的站点维护者或运维人员。操作从安装 acme.sh、加载环境变量开始,随后切换默认 CA 到 Let’s Encrypt、注册账号,并以 Cloudflare 为例说明如何创建具备 Edit zone DNS 权限的 API Token,提醒 Token 只显示一次需要提前保存。配置部分使用 CF_Token 与 CF_Account_ID 作为 dns_cf 插件的凭证,执行 acme.sh --issue -d jacin.me -d '*.jacin.me' --dns dns_cf 后会在 ~/.acme.sh/jacin.me_ecc/ 下生成证书、私钥、中间证书和 fullchain.cer。文章还说明了如何通过 crontab 检查 acme.sh 自动续签任务,把 Cloudflare 凭证写入 account.conf 以便后续续签复用,并用 acme.sh --list 查看证书创建时间和 Renew 时间。续签机制上,acme.sh 会在到期续签时把新证书覆盖到原路径,因此 Nginx 只要引用 fullchain.cer 和对应 key,并在续签后执行 nginx -s reload 或 systemctl reload nginx,就能让新 TLS 握手平滑切换到新证书而不影响已有连接。

设置ssh密码登录
服务器与部署
3 分钟

设置ssh密码登录

这份操作记录面向需要在 Linux 服务器上临时或明确启用 SSH 密码登录的场景,核心目标是修改 OpenSSH 服务端配置,使其监听 2222 端口、允许 root 直接登录,并开启密码与 PAM 相关认证。正文先通过备份 /etc/ssh/sshd_config 保留回退点,再用重写配置文件的方式设置 Port、PermitRootLogin、PasswordAuthentication、ChallengeResponseAuthentication、UsePAM 和 sftp 子系统路径,随后用 passwd 为 root 设置密码并重启 ssh 服务使配置生效。由于开放密码登录和 root 登录会增加暴力破解风险,记录进一步补充了 fail2ban 的安装与基础防护配置,用于对 SSH 登录失败行为进行自动封禁。fail2ban 部分强调不要直接修改 jail.conf,而是在 /etc/fail2ban/jail.local 中覆盖默认项,设置 systemd 后端、3600 秒封禁时间、600 秒检测窗口、5 次最大重试,并将 sshd jail 的端口同步为 2222。最后给出重启、启用 fail2ban 以及查看 sshd jail 状态的命令,并记录当 status sshd 提示 jail 不存在时,可安装 python3-systemd 作为排查处理方向。整体更适合有基础 Linux 运维经验、需要快速恢复密码登录或为非标准 SSH 端口增加基础防护的用户参考,但实际使用时仍应谨慎评估 root 密码登录带来的安全边界。

哪吒面板安装与使用
服务器与部署
9 分钟

哪吒面板安装与使用

这份笔记围绕哪吒面板的自建部署、客户端接入、反代加速和基础监控配置展开,适合想用探针集中查看多台 Linux 主机状态的个人用户或运维实践者。服务端部分采用官方脚本以 Docker 方式安装 Dashboard,安装时需要设置站点标题、公开访问端口和后台语言,并注意该端口同时承担 Web 界面、gRPC 与 WebSocket 通信用途,完成后再修改后台密码。客户端接入通过个人中心填写 Agent 对接地址生成安装命令,作者示例未开启 TLS,随后将命令复制到各台 Linux 客户端执行即可完成 Agent 上报。反代部分给出 Cloudflare CDN 配合 Nginx 的配置思路,分别处理 Web、gRPC 和 WebSocket 路径,并提醒用于 CDN 访问的域名不要与 Agent 对接地址混用。配置时主要替换 server_name、Dashboard 本地回源端口、证书路径和真实 IP 头;若 Nginx 位于最外层,还需要按注释调整 nz-realip、X-Forwarded-Proto 等相关设置。最后以 HTTP GET 和 Ping 为例创建监控服务,用于检查站点可用性和观察指定线路的回程延迟,读者可以据此快速搭起一个带 CDN 访问入口和基础监控能力的哪吒面板环境。

搭建minio与配置cdn
服务器与部署
9 分钟

搭建minio与配置cdn

这是一份将自建 MinIO 对象存储暴露为可公开访问资源源站,并通过 Cloudflare CDN 加速的配置记录,适合需要替代云对象存储、托管静态文件或图片资源的个人站点与小型服务。文章特别强调新版 MinIO 镜像因开源策略调整导致 UI 中缺少桶设置入口,因此部署时固定使用 RELEASE.2025-04-22T22-12-26Z,并通过 Docker Compose 暴露 9000 的 S3 API 与 9001 的 Console 管理端口。反向代理部分采用子域名方案,用 Nginx 分别将 cos/cdn 域名转发到对象访问端口、将 minio 域名转发到控制台,同时配置 HTTPS、上传大小限制、关闭代理缓冲以及 Console 所需的 WebSocket 升级头。权限配置围绕 public 桶展开,通过自定义匿名策略只允许 s3:GetObject 访问 public/*,从而实现对象可读但不开放桶列表,降低公开存储带来的目录泄露风险。最后在 Cloudflare 中创建 CDN 域名,将 CNAME 指向源站 cos.jacin.me 并开启代理缓存,使访问路径从自建 MinIO 源站扩展为带 CDN 的静态资源分发链路。整篇内容更偏实操备忘,读者可直接复用其中的版本选择、Nginx 分流配置、桶策略和 Cloudflare 接入思路,但需要按自己的域名、证书路径、账号密码与端口环境调整。

部署与配置matomo
服务器与部署
5 分钟

部署与配置matomo

这份记录聚焦于用 Docker Compose 自托管部署 Matomo,并将 MySQL 8.2 作为独立数据库服务接入,适合作为个人站点或小型站点接入访问统计前的配置清单。正文先给出 MySQL 容器的 compose 配置,包括镜像版本、容器名、自动重启、3306 端口映射、初始化数据库与用户密码、宿主机数据卷挂载,以及加入外部 Docker 网络的方式,并明确需要先通过 docker network create 创建 mynetwork。随后单独部署 Matomo 容器,配置 58733 到 80 的端口映射、matomo_data 数据卷、数据库主机名指向 MySQL 容器名,以及数据库用户名、密码和库名等连接参数。文章还记录了运行后的资源观察:访问量上升时 Matomo 和 MySQL 的内存占用会增长,MySQL 预留约 500MB 内存是必要的,因此部署前需要考虑服务器余量。相关配置部分补充了 trusted_hosts 的处理方式,既可以通过 docker exec 追加 config.ini.php 并重启容器,也可以进入 Matomo 界面配置域名。最后还涉及隐私与安全设置,包括访客 IP 显示/隐藏选项,以及因安全原因到数据库查询 matomo_user、修改用户名和邮箱、删除匿名用户等后续处理。

AES算法与接口解密
Python 开发
19 分钟

AES算法与接口解密

这篇笔记围绕 AES 对称加密的基础机制和接口响应解密实践展开,先说明 AES 以 128 位分组处理数据,密钥可为 128、192、256 位,并强调加解密使用同一密钥。内容对 ECB、CBC、CFB、OFB、CTR 等模式做了区分:ECB 不需要 IV 但相同明文块会产生相同密文,CBC 等模式依赖初始化向量来提升随机性,其中 CBC 会让每个块与前一块密文形成链式关系。实践部分先用 Python 和 pycryptodome 演示 ECB 解密流程,包括 Base64 解码、创建 AES.MODE_ECB 解密器、解密字节数据以及按 PKCS7 规则去除填充。随后以接口返回的 data 与 secret 为线索,通过 Chrome 全局搜索前端代码,定位到调用 Ie(e.data, e.secret) 后再 parseJson 的解密逻辑,并继续分析该函数实际使用 CryptoJS 的 AES-CBC、Pkcs7 padding 和 window.TurboApply.data.aesIv 作为 IV。文章还给出 Python 复现 AES-CBC 解密的代码结构,明确需要把 secret 和 iv 转为 UTF-8 字节、对密文做 Base64 解码、再调用 AES.new(key, AES.MODE_CBC, iv) 并 unpad。最后提醒固定 IV 会削弱 CBC 的安全性,容易造成相同明文产生可比较的密文模式;更合理的实现是每次加密生成随机且唯一的 16 字节 IV,并随密文一起传输,适合想理解接口加密分析、AES 模式差异和解密复现流程的开发者阅读。

爬虫
服务器与部署
22 分钟

Nginx 配置

这份笔记围绕 Ubuntu 环境下的 Nginx 日常部署与配置展开,先梳理它作为 Web 服务器、反向代理、负载均衡、内容缓存和邮件代理的常见用途,并说明 Nginx 主要工作在应用层,而 NAT 属于网络层的地址映射机制。安装部分记录了 apt 安装、systemctl 查看状态、whereis 定位程序,以及 /etc/nginx、/etc/nginx/sites-available、/var/log/nginx、/var/www/html 等关键目录,适合用于快速确认服务文件和配置入口。配置解释部分重点说明 user、worker_processes、error_log、pid、events、worker_connections、http、MIME 类型和 log_format 等指令的作用,并提醒生产环境中让 worker 进程以 root 运行会带来较高安全风险。样例 nginx.conf 展示了多个 server 块的组合用法,包括 HTTP 到 HTTPS 的 301 跳转、不同域名反向代理到本地端口、静态目录 alias、媒体文件匹配、Gzip 压缩、代理头传递、关闭缓冲、超时设置和 client_max_body_size 限制。证书部分给出从下载证书、合并 crt、重命名私钥、检查并移除 UTF-8 BOM,到放入 /etc/nginx/ssl、调整属主与 chmod 600 权限的操作链路。整体更像一份部署备忘录,适合后端开发或运维在配置 HTTPS 站点、代理本地应用、排查连接数和日志问题时对照使用。

文章归档
183