IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者
首页 / Felix021
IT 2026-06-03 09:03:23 / 累计浏览 40

unzip: unsupported compression method 99

该文章属于故障排查类内容,记录了处理AES-256加密ZIP文件时遇到的兼容性问题及其解决方案。标准unzip工具因不支持“压缩方法99”(通常与AES加密相关)而解压失败,尽管WinRAR可以处理,但命令行工具unrar同样不支持。解决方案是使用功能更强大的7zip工具。在Windows环境下使用7zip解压时,可能出现文件名乱码问题,通过指定编码参数(如-mcp=65001代表UTF-8)可解决;反之,若需在Linux下解压Windows压缩的文件且避免乱码,则应使用GBK编码(-mcp=936)。此外,文章强调了文件扩展名必须为.zip,若改为.7z会导致无法识别的错误。

本机暂存
IT 2026-06-03 09:03:23 / 累计浏览 40

dns over https 转发

该方案旨在应对办公网络中ISP强制的DNS劫持问题,通过建立内网DNS服务以提供不受污染的解析。核心方法是首先在系统hosts文件中将域名`doh.pub`静态解析至IP地址`120.53.53.53`,以此规避可能的劫持。随后,使用gost v2工具搭建一个DNS服务器,该服务器监听指定的内网IP地址的53端口(UDP协议),并将所有收到的DNS查询请求通过HTTPS协议转发至`https://doh.pub/dns-query`,从而实现DNS-over-HTTPS(DoH)转发。实施时需注意:修改hosts是确保不被劫持的关键步骤;gost工具需从其GitHub仓库获取;由于可能与systemd占用`127.0.2.1:53`冲突,服务不应监听`0.0.0.0`,必须指定具体的内网IP地址。

本机暂存
IT 2026-06-03 09:03:23 / 累计浏览 20

清理阿里云自带的垃圾服务

阿里云为ECS实例预装了一系列默认服务,这些服务在低内存规格主机上常导致资源占用过高,引发内存不足(OOM)问题。本文针对512M内存主机出现的故障,详细介绍了卸载和禁用这些“自带垃圾服务”的具体方法。 问题主要涉及三类组件:云盾安全客户端(AliYunDun)、云助手自动化工具(aliyun-assist)以及云监控代理(cloudmonitor)。文章提供了每类组件的官方卸载文档链接,并汇总了通过命令行彻底停止进程、删除服务文件和目录的完整步骤。例如,卸载云助手需执行停止守护进程、终止相关进程并移除目录等一系列命令。 此外,文章更新补充指出,阿里云的默认Ubuntu镜像还启用了多个占用内存的系统级服务,如`tuned`性能调优、`multipathd`多路径设备管理以及`fwupd`固件更新服务等。针对这些,建议使用`systemctl disable`命令将其禁用,以进一步释放系统资源。 通过执行上述卸载和禁用操作,可以显著降低主机的后台资源占用,有效解决小内存实例因服务进程过多导致的内存溢出问题,恢复系统稳定运行。

本机暂存
IT 2026-06-03 09:03:23 / 累计浏览 20

zerotier moon server

该教程详细介绍了如何在自有服务器上部署ZeroTier Moon服务器及其Web管理界面ztncui。首先需开放UDP 9993端口,通过官方脚本安装ZeroTier并生成服务器身份文件。核心步骤是在moon.json配置文件中添加服务器的公网IP地址作为稳定端点,随后生成签名后的moon文件并将其放入moons.d目录以重启服务生效。 管理界面部署部分依赖Node.js环境,通过克隆ztncui项目并安装依赖完成。关键配置在于.env文件中需填入ZeroTier认证令牌,并可通过修改参数控制Web服务监听端口及网络暴露范围。教程强调了通过SSH端口转发或HTTPS进行安全访问的必要性,以避免HTTP明文传输风险。最后,使用pm2实现服务常驻运行,并通过Web界面创建网络、生成地址,最终在客户端加入网络并经批准完成组网。

本机暂存
IT 2026-05-23 20:34:36 / 累计浏览 140

让 AI 把我的 PHP 博客重写成 Go

作者尝试将一个运行近20年的古老PHP博客系统重构为Go语言。项目启用了Claude Code的Superpowers插件,通过结构化问答明确了技术选型:采用Go的Gin框架、GORM作为ORM,并构建Vue 3 SPA前端,保持与原MySQL数据库100%兼容。AI助手在确认需求后,自动生成了包含项目结构、API设计等详细规划文档,并利用子代理驱动开发模式执行了约22个开发任务,最终生成一个约35MB的单文件可执行程序,集成了前端SPA。 实现过程并非一帆风顺,主要挑战在于处理历史遗留数据。最复杂的是对UBB标记语法的解析与渲染,因内容已含HTML实体转义且标签存在嵌套,作者编写了34个测试用例才覆盖所有边界情况。此外,需为三代不同的旧URL格式实现301重定向以保持外链有效,并调整了附件链接的解析逻辑以适配反向代理路径。数据库中的标签词频统计也因数据陈旧而改为通过关联查询实时计算。 最终项目产出包括约2800行Go后端代码和2000行Vue前端代码,实现了完整的REST API、JWT认证、防盗链等40余个端点。作者评价整个过程耗时约两三小时,主要负责需求反馈与测试,AI则负责编码、构建与部署,认为这种人机协作模式展现了AI在复杂工程任务中的实用潜力。

本机暂存
IT 2021-05-27 07:14:04 / 累计浏览 1,940

sudoers: 允许用户免密用root权限执行某些命令

作者从系统管理的实际需求出发,介绍了如何通过配置 sudoers 文件,让特定用户或组能在不输入密码的情况下,以 root 权限执行命令。文章提供了三种典型配置场景,各有侧重。 首先,针对个人用户,比如 felix021,可以直接在 sudoers 中添加一行,允许该用户免密 sudo 执行所有命令,这适合开发或测试环境中需要快速提权的场景。其次,对于团队协作,文章演示了如何允许整个组(如 adm)免密 sudo 执行所有命令,这便于批量管理权限,但需注意安全性。最后,文章展示了更精细的控制:通过 Cmnd_Alias 定义命令别名 APT_CMD,限定只允许 apt-get 或 apt install 相关的安装命令,然后允许所有用户免密执行这些特定命令,这在生产环境中能减少风险,确保只有必要操作被授权。 关键差异在于授权范围:第一种是用户级别的全权,适合个人便利;第二种是组级别的全权,适合团队协作;第三种是命令级别的限制,适合需要最小权限原则的场景。作者通过代码示例直观展示了这些配置,让读者能根据自身环境选择合适方案。 文章最后提醒,虽然免密 sudo 提升了效率,但需权衡安全性,避免过度授权带来的风险。

本机暂存
IT 2019-06-27 13:55:01 / 累计浏览 3,320

使用DNSPOD的API实现动态域名

这篇讲的是如何通过 DNSPOD 的 API,一步步搭建自己的动态域名解析(DDNS)服务。作者从实际操作出发,解决的是家庭网络等场景下,公网 IP 变动导致域名指向失效的问题。 文章的核心方案非常清晰:利用 DNSPOD 提供的 HTTP API,通过脚本自动获取当前外网 IP 并更新 A 记录。作者详细拆解了七个关键步骤,其中特别强调了容易踩坑的地方,比如生成的 Token 必须是 “ID,Token” 的组合格式,以及如何正确获取域名和子域名的 Record ID。 整个实现思路巧妙地结合了 `nc` 命令获取 IP 和 `curl` 调用 API,并最终封装成一个 Shell 脚本,配合 crontab 定时任务(例如每 15 分钟一次)即可实现全自动化。这为需要稳定域名指向动态 IP 的技术人员提供了一个轻量、可靠的自建方案。

本机暂存