[{"content":"经常建站的朋友经常会对云服务器考两大选择,大陆还是非大陆。想必选择后者的朋友居多。在访问时延上和体验上后者有着相似和领先的优势。不过这篇文章的核心是收录优质供应商,主要收录体量不小，性价比很高，提供服务时间较长，服务较为稳定的供应商。将以大陆和非大陆分为两类，商家的出现顺序即为笔者认为的性价比高低。再就是笔者远离这个圈子有些年头，更好的供应商可能没有提到，欢迎发邮件补充ignvex@hotmail.com。\n非大陆供应商 我没猜错的话对国内有线路优化的应该都是国人商家，我认为只有国人才懂国人的需求，所以不会提供应商的情况太多。\noneprovider 机房覆盖: 略\n海外的服务商巨头之一，什么配置的服务器都有，有些机型被誉为pt神机，有一些离岸较近的机房网络访问也很优秀，整体线路并不要抱有任何期待，出奇的性价比和低价确实值得考虑。\nsynteq (原crunchbits) `覆盖机房: 美国爱达荷州,美国达拉斯,美国福吉谷,保加利亚索菲亚\n线路一般但是存储和内存价格即为便宜，远程桌面访问体验极佳(优化windows这块很有实力),线路一般优化来凑，适合用来当网盘存储一些不重要的东西。\ndmit 机房覆盖: 美国洛杉矶 日本东京 中国香港\n海外超强服务商，冗余量在官方通知中看似不少,实际应该是不少。大带宽+大流量。与其他CN2 GIA卖家不同的是有着较高的QOS。综合流量、带宽、QOS来看性价比不低。\ncloudsilk 机房覆盖: 美国圣何塞 德国法兰克福\n性价比极高的云服务商，美国圣何塞4837(去程cn2,回程4837)线路年费做到了160，9929做到了240。体验的话4837在非晚高峰时段追一下9929还是有希望的，体验不错。IP也比较干净。\nakkocloud 机房覆盖: 美国圣何塞 德国法兰克福 英国伦敦\n2019年至今的国人vps服务商，7年过去也算是老牌了，以二次元风格的ui闻名。线路是CN2 GIA\nhostdare 机房覆盖: 美国洛杉矶\n低价机型带宽仅有50mbps，内存和处理器超开较为严重，但IO做的不错，线路质量其实可以和dmit五五开，整体来说还是不错的，放在最后的原因是外海机型50mbps带宽确实小了。\n大陆供应商 其实大陆供应商挺好说的，整体就是没什么性价比，个人能接触到的也都是大厂服务器，很多业务都是toB为主。个人用户能买到的其实较为有限。再就是具体情况也不能说\nhorain 包这盘饺子就为了蘸这碟醋。这个服务商的性价比是我难以忘却的，虽然忘了服务商的名称，但是杜甫+高带宽的超高性价比让我找了2年之久。总结为高性价比杜甫，高带宽但价格比大厂划算得多。\n大厂代理商 国内大厂的授权代理商有着比从官网买价格更低的优势，所以不选择horain的话那就要好好研究下代理商了。值得一提的是代理商也是有等级的，代理商等级越高拿到的价格就越低。\n免责声明 文章中的服务商(包括个别代理商)(除了horain，主要是用不上)，笔者有使用过，算是笔者游历vps/vds相关服务商的一些记载，写出来也主要是为了笔者自己用的，人格担保无任何推广返利(光从不给连接就能看出来)。哦对了没碰流媒体解锁，我觉得高端奢饰品和性价比应该是没什么关系的。\n","date":"2026-08-30T11:49:51+08:00","permalink":"/p/%E4%BC%98%E7%A7%80vpsvds%E6%9C%8D%E5%8A%A1%E5%95%86%E6%94%B6%E5%BD%95/","title":"优秀vps\u0026vds服务商收录"},{"content":"引言 git是非常舒适的版本管理器。广受使用且评价极高。规范的使用方法也尤为重要，提高协作效率，这就是写本篇文章的目的，整理git的常见规范。\nGit规范的核心部分 分支命名规范 Commit提交信息规范 分支合并规范 分支命名规范 master/main 主分支,生产环境代码 develop 开发分支,最新的代码 feature/* 新功能分支 bugfix/* 或 fix/* 修补bug分支 release/* 预发布分支 hotfix/* 热修复分支 提交信息规范 这里推荐conventionalcommits规范\n1 2 3 4 5 \u0026lt;type\u0026gt;[optional scope]: \u0026lt;description\u0026gt; [optional body] [optional footer(s)] type build: 用于修改项目构建系统，例如修改依赖库、外部接口或者升级 Node 版本等； chore: 用于对非业务性代码进行修改，例如修改构建流程或者工具配置等； ci: 用于修改持续集成流程，例如修改 Travis、Jenkins 等工作流配置； docs: 用于修改文档，例如修改 README 文件、API 文档等； style: 用于修改代码的样式，例如调整缩进、空格、空行等； refactor: 用于重构代码，例如修改代码结构、变量名、函数名等但不修改功能逻辑； perf: 用于优化性能，例如提升代码的性能、减少内存占用等； test: 用于修改测试用例，例如添加、删除、修改代码的测试用例等。 scope 表示修改的范围 e.g.feat(auth):\ndescription 总结代码变动了什么，并且使用祈使句\nbody 记录具体的变动，修改原因，对比\nfooter 关联关联的需求或声明破坏性变更 破坏性变更主要是以!和BREAKING CHANGE 示例请去参考资料中的原文中查看\n语义化版本 X.Y.Z\nX为主版本号,当你做了不兼容的 API 修改， Y为次版本号,当你做了向下兼容的功能性新增， Z为修订号,当你做了向下兼容的问题修正。 流程规范 提交操作规范 原子化提交,一个commit只做一件事 避免合并污染,使用rebase而不是merge 合理Squash 代码评估规范 背景/原因，为什么做这个改动 改动点，具体动了哪些核心模块。 复现，附上单元测试结果或前端截图/录屏。 权限设计规范 保护核心分支,锁定main/master/develop分支 除去敏感信息与密钥 仓库存储规范 10M+静态文件不得推送到git仓库,需将其托管到仓库外的静态资源服务器 分支需要在合并后及时清理 参考资料 conventionalcommits规范原文 语义化版本原文\n","date":"2026-08-26T16:09:10+08:00","permalink":"/p/git-%E4%BD%BF%E7%94%A8%E8%A7%84%E8%8C%83%E5%88%86%E6%94%AF%E6%8F%90%E4%BA%A4%E4%BF%A1%E6%81%AF%E4%B8%8E%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86/","title":"Git 使用规范：分支、提交信息与版本管理"},{"content":"github 直连不稳定，clone 大仓库动不动断流，release 下载经常超时。用一台海外服务器反代 github，网页、clone、raw、release 一把梭，一劳永逸。\ncaddy 的安装与守护进程写法在上一篇已经详细介绍过，这里不再赘述，跳转链接。\n快速搭建 配置caddyfile 根据笔者踩坑经验。netcraft等公司有专门扫描仿冒站点的业务，会批量抓取网页，反代域名的登录等页面会被视为欺诈。申请回复的流程极为繁琐，所以这里加了些取巧的配置方法供读者放心的复制粘贴。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 # 换成你自己的域名 DOMAIN=\u0026#34;example.com\u0026#34; cat \u0026lt;\u0026lt; EOF \u0026gt; /etc/caddy/Caddyfile { email you@example.com } gh.\\${DOMAIN} { reverse_proxy https://github.com { header_up Host github.com header_up origin https://github.com header_down Location \u0026#34;https://github.com\u0026#34; \u0026#34;https://gh.\\${DOMAIN}\u0026#34; } } gh.\\${DOMAIN} { handle /robots.txt { respond \u0026#34;User-agent: *\\nDisallow: /\u0026#34; 200 } # 白名单：只放行 git 协议与下载路径，网页一律 307 回原站 # 用 path_regexp，语义明确，不依赖 glob 通配符是否跨斜杠 @allow { # 合并为单条正则（每个命名 matcher 中 path_regexp 只能出现一次） # 覆盖：.git 协议形态（含 LFS/objects）、不带 .git 的首发请求、下载类路径 path_regexp ^/[^/]+/[^/]+(\\\\.git(/.*)?$|/(info/refs|git-upload-pack|git-receive-pack|HEAD)$|/archive/.*$|/releases/download/.*$|/raw/.*$|/(commit|commits|pull|pulls)/[^/]+\\\\.patch$) } @rest { not { path_regexp ^/[^/]+/[^/]+(\\\\.git(/.*)?$|/(info/refs|git-upload-pack|git-receive-pack|HEAD)$|/archive/.*$|/releases/download/.*$|/raw/.*$|/(commit|commits|pull|pulls)/[^/]+\\\\.patch$) } } redir @rest https://github.com{uri} 307 reverse_proxy https://github.com { header_up Host {upstream_hostport} header_up X-Forwarded-Host {host} header_up origin https://github.com # 下载链 302 闭环：全部改写到自己镜像域名 header_down Location \u0026#34;https://raw.githubusercontent.com\u0026#34; \u0026#34;https://raw.gh.\\${DOMAIN}\u0026#34; header_down Location \u0026#34;https://codeload.github.com\u0026#34; \u0026#34;https://codeload.gh.\\${DOMAIN}\u0026#34; header_down Location \u0026#34;https://objects.githubusercontent.com\u0026#34; \u0026#34;https://objects.gh.\\${DOMAIN}\u0026#34; } } raw.gh.\\${DOMAIN} { handle /robots.txt { respond \u0026#34;User-agent: *\\nDisallow: /\u0026#34; 200 } reverse_proxy https://raw.githubusercontent.com { header_up Host raw.githubusercontent.com } } objects.gh.\\${DOMAIN} { handle /robots.txt { respond \u0026#34;User-agent: *\\nDisallow: /\u0026#34; 200 } reverse_proxy https://objects.githubusercontent.com { header_up Host objects.githubusercontent.com header_down Location \u0026#34;https://objects.githubusercontent.com\u0026#34; \u0026#34;https://objects.gh.\\${DOMAIN}\u0026#34; } } codeload.gh.\\${DOMAIN} { handle /robots.txt { respond \u0026#34;User-agent: *\\nDisallow: /\u0026#34; 200 } reverse_proxy https://codeload.github.com { header_up Host codeload.github.com } } api.gh.\\${DOMAIN} { handle /robots.txt { respond \u0026#34;User-agent: *\\nDisallow: /\u0026#34; 200 } reverse_proxy https://api.github.com { header_up Host api.github.com } } gist.gh.\\${DOMAIN} { handle /robots.txt { respond \u0026#34;User-agent: *\\nDisallow: /\u0026#34; 200 } # gist 的 clone 有两种深度：/id.git 与 /user/id.git，其余网页 307 回原站 @allow { # 单条正则：/id.git 与 /user/id.git 两种深度 + 不带 .git 的协议首发请求 path_regexp ^/(([^/]+/)?[^/]+\\\\.git(/.*)?$|([^/]+/)?[^/]+/(info/refs|git-upload-pack|git-receive-pack|HEAD)$) } @rest { not { path_regexp ^/(([^/]+/)?[^/]+\\\\.git(/.*)?$|([^/]+/)?[^/]+/(info/refs|git-upload-pack|git-receive-pack|HEAD)$) } } redir @rest https://gist.github.com{uri} 307 reverse_proxy https://gist.github.com { header_up Host gist.github.com } } avatars.gh.\\${DOMAIN} { handle /robots.txt { respond \u0026#34;User-agent: *\\nDisallow: /\u0026#34; 200 } reverse_proxy https://avatars.githubusercontent.com { header_up Host avatars.githubusercontent.com } } EOF 注意事项：\nemail 换成自己的邮箱 证书不用管，Caddy 自动申请续期，配置里不用写任何 tls header_down 两个参数是删除、三个参数才是替换，且查找串要写上游实际域名（https://github.com 这种），写成\u0026quot;期望结果\u0026quot;不会生效 release 下载会 302 跳到 objects.githubusercontent.com，所以必须反代它并重写 Location，否则下载还是走原站 页面里的 css/js 在 github.githubassets.com、头像在 avatars.githubusercontent.com，这些静态资源仍然直连；如果它们也慢，把对应域名也加进反代 登录受 cookie 域名限制，反代域名登录不上就直连原站登录，浏览不受影响 配置里出现的域名必须都能解析，否则 Caddy 会一直重试签证书 配置dns 嫌麻烦就加一条泛解析 *.gh.example.com，前提是dns服务商支持泛解析。目前已知cloudflare支持 7 条 A 记录指向服务器公网 IP：\n1 2 3 4 5 6 7 gh.example.com raw.gh.example.com objects.gh.example.com codeload.gh.example.com api.gh.example.com gist.gh.example.com avatars.gh.example.com 验证部署 1 2 3 sudo caddy validate --config /etc/caddy/Caddyfile sudo systemctl reload caddy curl -sI https://gh.example.com/ 返回 200 OK 说明反代正常。再试一次 clone：\n1 git clone https://gh.example.com/octocat/Hello-World.git release 下载验证（换成真实的 release 链接）：\n1 curl -sIL https://gh.example.com/user/repo/releases/download/v1.0/file.zip 响应里的 Location 应该是 https://objects.gh.example.com/...，说明重写生效。\n快速使用 git 1 git config --global url.\u0026#34;https://gh.example.com/\u0026#34;.insteadOf \u0026#34;https://github.com/\u0026#34; 一劳永逸，记得换掉 example.com。之后 clone、pull 自动走反代，remote 地址不用改：\n1 git clone https://github.com/user/repo.git # 实际请求自动改写为 https://gh.example.com/user/repo.git 查看改写规则是否生效：\n1 git config --get-regexp \u0026#39;^url\\.\u0026#39; 网页 直接访问 https://gh.example.com/，浏览仓库、代码、issue 都没问题。需要登录的操作（发 issue、提 PR）建议直连原站。\nraw与release 1 2 curl -sSL https://raw.gh.example.com/user/repo/main/install.sh wget https://gh.example.com/user/repo/releases/download/v1.0/app.tar.gz 脚本安装场景很实用，把 curl ... | bash 里的地址换成反代域名即可。\n稍作补充 用户目录下的 .gitconfig 通过 insteadOf 将 git@github.com: 开头的地址换为反代地址（见下方示例），防止 VSCode 将你识别为企业版 github 用户。\n示例:\n1 2 [url \u0026#34;https://example.com/\u0026#34;] insteadOf = git@github.com: 补充之外的进阶玩法 在.gitconfig中添加。 并在github配置token并赋予仓库相关的权限\n1 2 [credential \u0026#34;https://gh.example.com\u0026#34;] provider = generic ","date":"2026-08-15T13:07:30+08:00","permalink":"/p/caddy%E5%8F%8D%E4%BB%A3github/","title":"Caddy反代github"},{"content":"这一阵发现明日方舟有特别多的三方网站，便于自己查找便写了这篇文章。也希望对读者有些帮助。\n网站类 明日方舟 IP 资料站 Include: 明日方舟, 终末地 跳转链接\n一站式收录明日方舟 IP 宇宙：从泰拉大陆的《明日方舟》，到塔卫二的《明日方舟：终末地》， 以及围绕它们展开的音乐、动画、漫画与周边文化。\nPRTS Include: 明日方舟 跳转链接\n明日方舟的最全面、权威的民间数据与剧情考据平台\n终末地 wiki Include: 终末地 跳转链接\n玩家社区维护的《明日方舟：终末地》百科\n终末地资源地图 Include: 终末地 跳转链接\n标记了塔卫二所有地图上的协议采录桩、宝箱、醚质点位、隐藏纸条以及故障机器人的解密攻略，跑图开荒必备。\n企鹅物流数据统计 Include: 明日方舟 跳转链接\n根据大量玩家提交的游戏数据进行统计的站点。\n官方介绍\n1 2 企鹅物流数据统计（Penguin Statistics）是企鹅物流旗下数据处理部门（误），致力于明日方舟各素材的掉率统计。 企鹅物流的现有数据集由玩家手动上报、截图识别与通过公共 API 上报合力维护。为了尽力保证数据集的准确性，企鹅物流数据团队会对掉落数据集进行多种方式的自动、定时及手动维护。 终末地一图流 Include: 终末地 跳转链接\n计算终末地里“工业产线配电”的单页工具，为你的基地耗电做预估。\n明日方舟一图流 Include: 明日方舟 跳转链接\n基于企鹅物流的数据，直观显示当前活动哪一关刷材料最赚、绿票/高级凭证怎么兑换最划算，并带有攒抽计算器和礼包性价比评分。\n明日方舟工具箱 Include: 明日方舟 跳转链接\n网页版公开招募计算器与干员培养规划工具。\n明日方舟干员培养表 Include: 明日方舟 跳转链接\n老牌著名的干员培养规划与地图模拟工具网站。主站是干员培养的材料及计算器，子站是地图查看器（见下一条 PRTS.MAP）。\nPRTS.MAP Include: 明日方舟 跳转链接\nPRTS 衍生出的专门用于查阅地图与怪物路线的工具\nPRTS.chat Include: 明日方舟 跳转链接\n明日方舟剧情 AI 检索系统。\n寻访模拟器 Include: 明日方舟 跳转链接\n全网最古老、最长青的寻访模拟器\n明日方舟寻访记录分析 Include: 明日方舟 跳转链接\n分析你近 90 天的寻访记录。\n工具类 MAA Assistant Arknights Include: 明日方舟 跳转链接\n一款明日方舟游戏小助手。极为强大，维护频率极高，具体功能建议直接看文档\nOC Template Include: 明日方舟 跳转链接\n干员招募界面生成器\n","date":"2026-08-15T11:45:32+08:00","permalink":"/p/%E9%B9%B0%E8%A7%92%E7%BD%91%E7%BB%9C%E4%B8%89%E6%96%B9%E7%BD%91%E7%AB%99%E6%94%B6%E9%9B%86/","title":"鹰角网络三方网站收集"},{"content":"公共 docker 加速器关了一大批，自己用一台海外服务器反代镜像仓库，一劳永逸。\n快速搭建 安装caddy 二进制放 /usr/bin/caddy，服务文件 /etc/systemd/system/caddy.service，配置 /etc/caddy/Caddyfile\n1 2 3 4 5 6 7 8 9 10 11 12 sudo mv caddy /usr/bin/caddy sudo chmod 755 /usr/bin/caddy sudo setcap cap_net_bind_service=+ep /usr/bin/caddy sudo groupadd --system caddy sudo useradd --system \\ --gid caddy \\ --create-home \\ --home-dir /var/lib/caddy \\ --shell /usr/sbin/nologin \\ --comment \u0026#34;Caddy web server\u0026#34; \\ caddy 配置caddy守护进程 /etc/systemd/system/caddy.service：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [Unit] Description=Caddy Documentation=https://caddyserver.com/docs/ After=network.target network-online.target Requires=network-online.target [Service] Type=notify User=caddy Group=caddy ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile --force TimeoutStopSec=5s LimitNOFILE=1048576 LimitNPROC=512 PrivateTmp=true ProtectSystem=full AmbientCapabilities=cap_net_bind_service [Install] WantedBy=multi-user.target 1 2 sudo systemctl daemon-reload sudo systemctl enable --now caddy 配置caddyfile 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 # 换成你自己的域名 DOMAIN=\u0026#34;example.com\u0026#34; cat \u0026lt;\u0026lt; EOF \u0026gt; /etc/caddy/Caddyfile { email you@example.com } hub.docker.\\${DOMAIN} { reverse_proxy https://registry-1.docker.io { header_up Host registry-1.docker.io header_down Www-Authenticate \u0026#34;https://auth.docker.io\u0026#34; \u0026#34;https://auth.docker.\\${DOMAIN}\u0026#34; header_down Location \u0026#34;https://production.cloudflare.docker.com\u0026#34; \u0026#34;https://production.cloudflare.docker.\\${DOMAIN}\u0026#34; } } auth.docker.\\${DOMAIN} { reverse_proxy https://auth.docker.io { header_up Host auth.docker.io } } production.cloudflare.docker.\\${DOMAIN} { reverse_proxy https://production.cloudflare.docker.com { header_up Host production.cloudflare.docker.com } } hub.quay.\\${DOMAIN} { reverse_proxy https://quay.io { header_up Host quay.io header_down Www-Authenticate \u0026#34;https://quay.io/v2/auth\u0026#34; \u0026#34;https://hub.quay.\\${DOMAIN}/v2/auth\u0026#34; } } hub.gcr.\\${DOMAIN} { reverse_proxy https://gcr.io { header_up Host gcr.io header_down Www-Authenticate \u0026#34;https://gcr.io/v2/token\u0026#34; \u0026#34;https://hub.gcr.\\${DOMAIN}/v2/token\u0026#34; } } hub.k8s.\\${DOMAIN} { reverse_proxy https://registry.k8s.io { header_up Host registry.k8s.io header_down Www-Authenticate \u0026#34;https://registry.k8s.io/v2/token\u0026#34; \u0026#34;https://hub.k8s.\\${DOMAIN}/v2/token\u0026#34; header_down Location \u0026#34;https://storage.googleapis.com\u0026#34; \u0026#34;https://storage.googleapis.\\${DOMAIN}\u0026#34; } } storage.googleapis.\\${DOMAIN} { reverse_proxy https://storage.googleapis.com { header_up Host storage.googleapis.com } } EOF 注意事项：\nemail 换成自己的邮箱 证书不用管，Caddy 自动申请续期，配置里不用写任何 tls k8s.gcr.io 已退役，k8s 站点反代的是新的 registry.k8s.io header_down 两个参数是删除、三个参数才是替换，且查找串要写上游实际域名（https://auth.docker.io 这种），写成\u0026quot;期望结果\u0026quot;不会生效 配置dns 7 条 A 记录指向服务器公网 IP：\n1 2 3 4 5 6 7 hub.docker.example.com auth.docker.example.com production.cloudflare.docker.example.com hub.quay.example.com hub.gcr.example.com hub.k8s.example.com storage.googleapis.example.com 嫌麻烦就加一条泛解析 *.docker.example.com。配置里出现的域名必须都能解析，否则 Caddy 会一直重试签证书。\n验证部署 1 2 3 sudo caddy validate --config /etc/caddy/Caddyfile sudo systemctl reload caddy curl -sI https://hub.docker.example.com/v2/ 返回 401 Unauthorized 是正常的，同时响应头里 Www-Authenticate 的 realm 应该是 https://auth.docker.example.com/token，说明重写生效。最终测试：\n1 docker pull hub.docker.example.com/library/hello-world:latest 快速使用 unraid Settings → Docker → Advanced View → Docker Hub URL 改成 https://hub.docker.example.com，或者拉镜像时直接写完整地址 hub.docker.example.com/linuxserver/plex。\n其他主流linux /etc/docker/daemon.json：\n1 2 3 { \u0026#34;registry-mirrors\u0026#34;: [\u0026#34;https://hub.docker.example.com\u0026#34;] } 1 sudo systemctl restart docker 之后 docker pull nginx 自动走代理。registry-mirrors 只接管 Docker Hub，gcr/quay 镜像换前缀拉：\n1 2 docker pull hub.quay.example.com/prometheus/prometheus:latest docker pull hub.gcr.example.com/istio/proxyv2:1.20.0 可以加公共源兜底：\n1 2 3 4 5 6 { \u0026#34;registry-mirrors\u0026#34;: [ \u0026#34;https://hub.docker.example.com\u0026#34;, \u0026#34;https://mirrors.tuna.tsinghua.edu.cn\u0026#34; ] } ","date":"2026-08-14T23:09:30+08:00","permalink":"/p/%E8%87%AA%E7%94%A8docker%E9%95%9C%E5%83%8F%E6%BA%90%E6%90%AD%E5%BB%BA/","title":"自用docker镜像源搭建"},{"content":"引言 用Hugo这个框架已经有了两个月，积累了一些常用的技巧，对于刚开始用的新人来说算是比较实用的。我认为官方文档写的不错的地方我会照搬，尊重文档 :)\n步入正题 hugo的预览 1 2 hugo server # 本地预览博客 hugo server -D # 预览本地博客，draft=true的文章会有显示 hugo创建文章 1 2 hugo new post/***.md #纯文本博客 hugo new post/***/index.md #可以附上写静态资源的博客 hugo文章内使用相对链接 这个直接照搬文档官方文档\n","date":"2026-08-14T22:44:27+08:00","permalink":"/p/hugo-%E5%AE%9E%E7%94%A8%E6%8A%80%E5%B7%A7/","title":"Hugo 实用技巧"},{"content":"scoop 基于Windows系统，提供的无需提权(不需要管理员权限)软件管理方案。具备极高的灵活性和定制性。有着在linux系统下使用包管理器的体验，一定程度上比linux的包管理器好用，这个是真的不用提权。\n安装 值得注意的是,scoop默认情况下是禁止powershell以管理员权限安装的，需要在普通用户模式下运行\n1 2 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression 配置镜像源 基本操作，提高scoop的工作效率\n1 2 scoop config SCOOP_REPO \u0026#34;https://gitee.com/scoop-installer/scoop\u0026#34; scoop update 额外操作 scoop有一种叫做bucket的概念，你可以通过增加bucket来扩展你可以在scoop下载、安装、管理的软件。也就是说他们需要配置额外的镜像源。\n慢慢安装，其实bucket有不少需要装的。主要有main、extras、dorado、echo、scoopcn、siku、versions好多\n1 scoop bucket add main 使用 如下是scoop的主要使用方法\n1 2 3 4 5 6 7 8 9 10 11 12 13 scoop bucket add extras # 添加扩展仓库 scoop search \u0026lt;name\u0026gt; # 搜索软件 scoop install \u0026lt;name\u0026gt; # 安装 scoop install \u0026lt;bucket\u0026gt;/\u0026lt;name\u0026gt;@版本号 # 带版本号安装 scoop reset \u0026lt;name\u0026gt;@版本号 # 回退到 已安装 指定版本 scoop list # 列出已安装的软件 scoop list \u0026lt;name\u0026gt; # 列出已安装某软件 已装版本 scoop update \u0026lt;name\u0026gt; # 更新某软件 scoop update # 只更新 bucket，不升级软件 scoop update * # 升级所有已安装软件 scoop uninstall \u0026lt;name\u0026gt; # 卸载 scoop which \u0026lt;exe\u0026gt; # 查看某可执行文件实际路径 scoop prefix \u0026lt;name\u0026gt;\t# 快速查询 通过 Scoop 安装 软件所在根目录路径 参考文章 我的文章内容主要摘抄自他们，感兴趣的朋友们可以看一下。\nCnblogs的上善若水 | Win环境下的包管理工具,(包含winget,scoop)\n少数派的FavourHong | windows上缺失的包管理器,包含winget,chocolatey,scoop\n知乎上的scoop,winget,chocolatey三者比较\n知乎上的scoop设置国内镜像加速\n官方地址\n","date":"2026-08-14T21:25:42+08:00","permalink":"/p/scoopwindows-%E4%B8%8A%E7%9A%84%E5%BC%80%E6%BA%90%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8/","title":"Scoop：Windows 上的开源包管理器"},{"content":"前言(吐槽) Deepseek Harness不负众望的从内测被推进到的公测。采用与koishi的同源驱动cordis(是的没错，写q群bot可以进深度求索 (x )。npx的安装方式对于我这种不经常使用前端来说颇具挑战。scoop install dsh绝对是一个绝佳的选择，但很可惜，deeepseek harness并没有支持。那么就有了本文的慵懒操作。\n准备清单 其实为了便于讲解我去写了一篇scoop的安装和便捷配置的文章。好了写完了。scoop的安装和实用技巧\n阶段一,安装前置软件 1 2 scoop bucket add main scoop install nodejs-lts 注: 我觉得你可能装过但是版本不是很新并不被支持，这里你可以直接使用scoop update nodejs-lts进行更新\n阶段1.5,给npx换源 淘宝源其实不错，还有腾讯云、华为云镜像源可选。换掉地址即可。\n1 npm config set registry https://registry.npmmirror.com 阶段二,安装deepseek harenss 1 npx @deepseek-ai/dsh web 之后你就获得了开箱即用的deepseek harness了。\n杂谈 自从openclaw的热门后腾讯对qq机器人就像是开智了一样，对的官方机器人放宽了，野生机器人的路封死了(规范运行上必不可少的一环)，推动了qq机器人的发展，早期的qq群机器人凭借正则表达式替换的服务也是能在群里安稳的用上了，是继数年前用野生框架时候那样的便捷。\ndeepseek harness与koishi同cordis驱动，其实为deepseek harness(cordis)做上协议适配器就可以当qq机器人跑。期待自建qq机器人在规范制度指引下在未来几年繁荣昌盛。\n参考链接 deepseek harness的github仓库 cordis的github仓库\n","date":"2026-08-14T21:18:04+08:00","permalink":"/p/deepseek-harness-%E5%85%8D-npx-%E5%AE%89%E8%A3%85windows/","title":"DeepSeek Harness 免 npx 安装（Windows）"},{"content":"前言 docker是一个轻量化且开源的容器引擎。借由Go驱动有着极低性能开销。不过仅支持linux发行版的系统\n安装 金枪鱼镜像站\nDOCKER的安装教程非常的多，再加上国外主机的访问速度奇差，这里建议直接用知名金枪鱼镜像站的文档去安装,节约更多的时间在搜索教程和镜像站上。\n使用方法 镜像管理 1 2 3 docker image ls # 列出本地所有镜像 docker image rm {IMAGE_NAME} # 删除本地的某个镜像 docker build # 编译docker镜像 docker build -t为编译的镜像 -f为指定dockerfile路径 -no-cache 为不使用缓存构建镜像 .当前目录及其子目录被当作上下文 进阶操作 使用.dockerignore排除不必要的文件，减少镜像体积\n容器操作 1 2 3 4 5 6 7 docker run # 创建并启动某个容器 docker start {IMAGE_NAME} # 启动 docker stop {IMAGE_NAME} # 停止 docker restart {IMAGE_NAME} #重启 docker attach {IMAGE_NAME} # 在终端中直接进入容器内 (不推荐) docker exec # 在终端中直接进入容器内 (推荐) docker ps #查看所有容器 容器操作补充 docker restart 可以在docker容器没有运行的情况下直接启动，如果在运行就是重启 attach 会随着你输入ctrl c或exit的同时关闭容器 exec是你要访问的同一容器的新进程，需要查看你跑服务的进程请使用docker logs docker run -d 在后台运行 \u0026ndash;name指定容器名称 -p 容器内端口映射到容器外 -v 主机路径映射到容器内 -it 打开交互式终端 docker exec -i 允许向容器发送内容(交互) -t 分配一个伪终端 -it -i和it的组合(常用) -d 在后台运行 -u 指定用户 -e 设置环境变量 -w 指定容器内工作目录 \u0026ndash;privileged 最高权限模式。等同于直接操作物理机(用之前先确定自己为什么要这么做) docker ps ps -a 查看所有容器 ps -q 只查看容器id ps -s 显示容器大小 ps -n 显示最后创建的 ps -f 根据条件过滤容器(ps -f status=exited) Dockerfile 的写法 基础内容 1 2 FROM {IMAGE_NAME} RUN {CUSTOM} 参考资料 菜鸟教程 廖雪峰的教程\n","date":"2026-08-14T21:06:32+08:00","permalink":"/p/docker-%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97%E9%95%9C%E5%83%8F%E5%AE%B9%E5%99%A8%E4%B8%8E-dockerfile/","title":"Docker 使用指南：镜像、容器与 Dockerfile"},{"content":"起初是想买ignvex.com,遗憾的是早已被人抢注。正好买一个.top后缀的域名当作试验场地，以后准备部署一些实验性的东西。\nTODO 反代一些站点做加速访问 ","date":"2026-08-11T20:40:23+08:00","permalink":"/p/%E6%96%B0%E5%9F%9F%E5%90%8D%E8%B4%AD%E7%BD%AEignvex.top/","title":"新域名购置：ignvex.top"},{"content":"非常欢迎您能来到我的博客。 如果您是我的微信/QQ好友，你可以将这个博客看作更新频率较高的朋友圈，如果需要换友情链接直接私信。 如果您是访客，欢迎您的到来。\n","date":"2026-07-27T20:40:31+08:00","permalink":"/p/welcome/","title":"Welcome"},{"content":"引言 从llm在2024年以对话的形式走入大众视野,到2026年产生了非常广泛的应用场景，llm如今已经融入到一线人员的工作流之中。这足以证明llm的业务能力受到了社会的一定认可。参考资料前置是一个经过深思熟虑的想法，因为充分的资料供读者了解可能比我去把这些稀奇古怪的自我理念都看一遍可能更直接一点。\n参考资料 Meta大规模裁员后发现llm的提速并不明显\n参考但是没有用的资料 llm的大致历史 Anthropic一天迁移stripe 5000万代码 阿里云因安全问题禁用anthropic\n正文 电子老虎机,llm真实的效率是变动多大 众所周知llm是一种概率模型，每一次的回答都会是随机的。可能我问claude opus 4.6 你是谁。他会回答一句我是QWEN3.5。高度的随机性在高连续性的工作任务上是致命的。但我相信所有人用llm的时候都会有llm非常贴合自己的想法，能把自己安排的任务理解非常到位的时候。这就是llm真是效率的波动性，纯概率，我原称之为老虎机\n如何保持llm的真实效率是高效的 这里需要引入了两种全新的概念，博弈论和契约论。这两个概念虽然古董，但仍是让llm保持高效的关键一环。\n博弈论视角，经典的正和博弈 我们需要为llm提供充分的信息,使用手册(skill),调用方法(mcp)和严格的规章制度(宪法)。再由我们调配llm完成我们的任务。llm在对任务的充分理解(我们提供准确且有效的数据)下会凭借llm优秀的能力优秀的完成任务。充足的前置条件虽然占用不少token,但这些token的前期投入的边际效益其实很高。但我觉得不存在个人和llm供应商厂家的纳什均衡\n契约论视角,浅显的契约关系 llm并不是人，与我们没有明确的合同关系，这个视角我认为再合适不过。llm从设计之初就是完全服从于命令者(我们)。那么我们的指令越清晰，越有远见，其边际效益也一定是显而易见的。\n从价值回归的视角看，llm究竟值不值得 抛开剂量谈毒性，抛开实践看对错。结果是显而易见的。只有满足了自己需求的同时成本也是相对合理的，合规且安全，实现了自己的目标，其实足够了。过分的完美主义只会为接下来困难重重。\n","date":"2026-07-11T10:41:35+08:00","permalink":"/p/llm-%E8%BF%AD%E4%BB%A3%E4%B8%8E%E4%B8%AA%E4%BA%BA%E5%8F%91%E5%B1%95%E5%85%B3%E7%B3%BB%E7%9A%84%E9%A2%84%E4%BC%B0/","title":"LLM 迭代与个人发展关系的预估"},{"content":"BalenaEtcher是开源且跨平台的USB镜像烧录工具,支持windows,linux和macos，具备良好兼容性的同时还有着美观易于上手的操作界面。\n","date":"2026-07-08T17:57:38+08:00","image":"/p/balenaetcher%E4%BC%98%E7%A7%80%E7%9A%84%E7%B3%BB%E7%BB%9F%E5%88%B7%E5%86%99%E5%B7%A5%E5%85%B7/background.png","permalink":"/p/balenaetcher%E4%BC%98%E7%A7%80%E7%9A%84%E7%B3%BB%E7%BB%9F%E5%88%B7%E5%86%99%E5%B7%A5%E5%85%B7/","title":"balenaEtcher：优秀的系统刷写工具"},{"content":"这个博客的定位其实是高频率的微信朋友圈和qq空间的替代。我觉得总在朋友圈发并没有什么意义，在博客上发又刚刚好。好书推荐我打算作为一个年度文章，总结一下上一年读的书。书籍推荐对我来说是一个慎重的决策，一本书可能在刚读的时候觉得不错，但是时间长了却又变得一般。经过我为期约一年的阅读，能拿出来的推荐其实少之又少，但我相信，这些推荐的书绝对值得去读，一定程度上也符合我的价值观的。\n三联生活周刊 极为优秀的消息评价，有着曾对3次经济危机的前瞻提醒。文章涉及到的观点更为客观立体，更好的去了解某一时期发生过的事。\n南方日报 与三联生活周刊不同之处在于南方日报有对少数群体的关注，能够以一种更客观、专业的视角去了解更多的群体。\n中国基层的运行逻辑 从基层出发，通过历史与数据,了解基层,理解国情。\n朝闻道 刘慈欣的科幻小说集，时隔20年的科幻内容还是很推荐看。\n基地 阿西莫夫的小说,这部作品的发布时间特别早,大概是在建国前(1942)。小说的内容是以心理学为主题，数十载风雨也不会消磨其科幻作品的本质。\n","date":"2026-07-07T23:09:13+08:00","permalink":"/p/2026%E5%A5%BD%E4%B9%A6%E6%8E%A8%E8%8D%90/","title":"2026好书推荐"},{"content":"引言 看着bilibili的三方生态在2026年这一年里一步步走进历史，总觉得应该记点什么。以杂谈的形式，将事情的起因、经过和我的想法稍作整理，写了这样一篇尽量真实、客观的文章\n起因 github上逆向bilibili平台的仓库，以及存在多年的BiliRoaming（解决区域限制、海外用户看番的刚需），都遭到了律师函。在此之前，与bilibili合作过的律所已经起诉过多个规模较小、但不是源头、被人跳脸到官方的第三方bilibiliapp仓库。而频率最高的就是2026年——这一年，律师函落到了许多仓库头上。\n结果 结果并没有值得说的。每一个开源项目的管理者与律师函的斡旋，不过都是先稍作配合，然后在律师函一步又一步的要求下，彻底移除侵权内容。毕竟律师函的下一步就是起诉，理不在开源项目这边，所以只能配合。\n略作反思 事情到此告一段落，剩下的是几个值得想想的问题。\n早年的bilibili对于api被逆向的问题是睁一只眼闭一只眼，只会律师函一些被端到官方群/评论区下的仓库。而api-collect、BiliRoaming这种大仓库，只会派人向仓库管理者问一下和黑产有没有关联（如果是黑产的话还会开源？）。\n不难看出，b站的商业化发展到今天，对影音作品版权的处理上充满弹性，又急需广告业务（近几年广告内容多了不少，投入广告的入口也大幅增加）。这些绕过广告的服务，只会让b站对三方生态的容忍度每况愈下。\n大人，时代变了。\n涉事仓库 Bilibili-api-collect —— [已归档] Bili漫游 —— [已归档] 写在最后 这些项目里的代码不会消失——fork还在，镜像还在。但「在github上光明正大地维护一个bilibili逆向项目」这件事，大概真的要成为历史了。\n以后的人可能很难理解，曾经有一个时期，看视频是可以不看广告、不锁区的。\n","date":"2026-07-06T18:20:22+08:00","permalink":"/p/bilibili-the-end-of-era/","title":"大人，时代变了（Bilibili 版）"},{"content":"SDKMAN! 是一款轻量级的软件开发工具包管理器，专为 Java、Kotlin、Gradle、Maven 等 JVM 生态工具设计。基于 Shell 脚本实现，安装零依赖，响应飞快，不侵入系统环境。无论是频繁切换 JDK 版本，还是尝鲜最新构建工具，一行命令即可搞定。\n项目地址 | 使用文档\n快速安装 Windows Scoop\n1 2 scoop install sdkman source \u0026#34;$HOME/.sdkman/bin/sdkman-init.sh\u0026#34; Debian / Ubuntu / Deepin / macOS / Manjaro / Arch 1 2 3 sudo apt install curl -y curl -s \u0026#34;https://get.sdkman.io\u0026#34; | bash source \u0026#34;$HOME/.sdkman/bin/sdkman-init.sh\u0026#34; Manjaro / Arch 1 yay -S sdkman 使用 打开终端，输入 sdk 唤起。以下是常用指令\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 查看可用的 SDK 版本 sdk list java # 所有可安装的 Java 发行版及版本 sdk list gradle # 查看 Gradle 可用版本 安装指定版本 sdk install java 17.0.10-tem # 安装 Eclipse Temurin 的 JDK 17 sdk install maven 3.9.6 # 安装 Maven 3.9.6 sdk install kotlin # 不指定版本则安装最新稳定版 版本切换 sdk use java 11.0.22-tem # 当前终端临时切换为 JDK 11 sdk default java 21.0.2-tem # 设置 JDK 21 为新终端默认版本 查看当前版本与已安装列表 sdk current java # 当前使用的 Java 版本 sdk current # 查看所有被管理的 SDK 当前版本 卸载不需要的版本 sdk uninstall gradle 7.2 支持的部分 SDK 列表 Java (Adoptium, Corretto, GraalVM, Zulu…) · Kotlin · Groovy · Scala\nGradle · Maven · sbt · Ant · Spring Boot CLI · Micronaut · Quarkus · VisualVM\nMongoDB Shell · Hadoop · Spark · 更多可通过 sdk list 查找\n","date":"2026-07-05T23:44:18+08:00","image":"/p/sdkmanjava-%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86%E5%99%A8/background.svg","permalink":"/p/sdkmanjava-%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86%E5%99%A8/","title":"SDKMAN!：Java 版本管理器"},{"content":"java是非常优秀的编程语言，是21世纪极为优秀的语言。但java在2006年将本体与hotspot开源并形成openjdk后，java发行版的选择也不只官方独有，可选择的内容多了，但如何选择适合自己需求的发行版，便成为了一个重要的议题，即本文主题。\njava的概念明晰 jvm, jre, jdk, java fx 之间是包含关系。jvm 是执行程序的虚拟机，是核心；jre 是基于 jvm 的标准库，相当于运行环境；jdk 在 jre 基础上提供面向开发者的工具，算是开发工具。但 jvm 并不是最小的分发单位，jre 才是。\njava fx 的地位比较特殊，它是一套独立的图形界面方案，定位跟前面三个完全不同。简单说，它就是专门用来画桌面窗口、按钮、动画这些东西的库，靠显卡来做渲染，界面效果比传统 swing 强一截。很多 java 桌面的项目依赖它，像是 hmcl 这类启动器。问题是它从来不属于标准库的一部分，现在常见的 jdk 发行里也不会预装。开源社区维护的版本叫 openjfx，关系和 openjdk 差不多。如果用到的程序需要它，要么自己下载 openjfx 配上去，要么换一个已经把 java fx 打包好的 jdk 发行版。\njava版本选择 在使用场景中,java版本求稳不求新。原理很好解释,举个例子即可，java8(lts)官方扩展支持将持续到2030年12月，但同为lts的java17仅支持到2029年9月，从安全性等角度出发，这会是最有说服力的示例。\n以minecraft举例\nminecraft版本 java要求 \u0026lt;= 1.12.2 仅java 8 \u0026gt;= 1.16 java 17+ \u0026gt;= 1.21 java 21+ java 版本号选择 同版本下字数越大越好，越新越好。\njava更新的主要内容\n关键安全更新（CPU） - 经过测试的安全性更新 补丁集更新（PSU） - 功能性更新/调整 紧急更新 - 通常为修补前两类更新缺陷的紧急更新 java主要发行版 发行版名称 发行商 描述 Azul Zing (Azul Platform Prime) Azul Systems 优势: 自研 Falcon JIT 编译器, 无停顿 C4 垃圾收集器, 基于 JIT 缓存与 profile 引导的 ReadyNow 冷启动加速, 综合性能和停顿表现优异, 适合大型整合包服务器; 劣势: 仅支持 Linux; 商业产品, 仅 \u0026ldquo;评估和开发用途\u0026rdquo; 免费, 商业化服务器使用有法律风险; 需额外 JVM 参数才能发挥全部功能. Azul Zulu (Azul Platform Core) Azul Systems 优势: 免费生产就绪级 OpenJDK, 更新稳定, 提供 JavaFX 选项和可视化 .msi 安装包, 安装/更新体验友好, 是官方 Java 的极佳替代; 劣势: 源代码不直接公开, 本质仍是标准 OpenJDK 构建, 性能与非定制版差异不大. Oracle GraalVM (旧有 Java 发行版) Oracle 优势: 曾支持 AOT 原生编译, 多语言运行时, 冷启动快, 内存占用低; 劣势: Oracle 宣布停止发布新的 GraalVM for JDK 版本, 已 \u0026ldquo;坠机\u0026rdquo;, 核心 Java 优化已或即将回归上游 OpenJDK, 不再适合作为主流 JDK 发行版持续选用. Adoptium Temurin Eclipse Adoptium (原 AdoptOpenJDK) 优势: Eclipse 顶级项目, 最标准的 OpenJDK 构建, 社区驱动的生产就绪级, 多项认证, 曾是首选, 跨平台且完全开源免费; 劣势: 与上游几乎一致, 所谓性能提升通常不显著, 无特殊定制优化. Amazon Corretto Amazon 优势: 声称综合性能与安全性提升, 使用自研密码学库强化加密, 免费, 长期更新; 劣势: 除密码学相关外, 性能与上游 OpenJDK 无显著差异, 亮点不多. Alibaba Dragonwell 阿里巴巴 优势: 基于 AJDK 的优化移植, 开源, 对大规模 Java 应用可能有一定增益; 劣势: 社区国际化程度有限, 更新节奏依赖阿里内部, 非定制场景下提升不明显. IBM Semeru Runtime IBM 优势: 即 Eclipse OpenJ9, 内存占用相比 HotSpot 更优, 适合内存受限场景; 劣势: 性能往往不如 HotSpot, 且属于高度自定义的 JDK, 一般游戏服务器可能收益不大. Microsoft Build of OpenJDK Microsoft 优势: 我的世界启动器默认下载的高版本 Java, 猜测为避免版权纠纷; 劣势: 无突出亮点, 本质上为标准 OpenJDK 构建, 只是提供方不同. 言归正传 推荐 Azul Zing的发行版。\n参考资料 geeksforgeeks ","date":"2026-07-05T23:02:10+08:00","image":"/p/java%E5%8F%91%E8%A1%8C%E7%89%88%E9%80%89%E6%8B%A9%E6%8C%87%E5%8D%97/background.png","permalink":"/p/java%E5%8F%91%E8%A1%8C%E7%89%88%E9%80%89%E6%8B%A9%E6%8C%87%E5%8D%97/","title":"java发行版选择指南"},{"content":"直到今日才把以前写的文章搬到博客上来确实有些晚了，不过magisk和kernelsu是通用的，换到ksu也能用，这篇文章还是值得发的\n由于 reqable 客户端提供的安装证书模块未能使抓包正常工作，作者放弃使用 reqable 提供的模块并选择了另一优秀的 Magisk 模块Move Certificates\n使用方法 由于文档的介绍简单明了，这里只进行简要概括。\n下载模块 刷入模块 将证书放入 /data/local/tmp/cert/ 重启，使模块生效 注: 如果 reqable 用户选择保存证书，证书会自动保存到/sdcard/download/reqable/\n参考资料: https://github.com/ys1231/MoveCertificate https://reqable.com/zh-CN/docs/getting-started/installation/\n","date":"2026-07-04T22:28:43+08:00","permalink":"/p/%E4%BE%BF%E6%8D%B7%E5%AE%89%E8%A3%85%E8%AF%81%E4%B9%A6%E7%9A%84magisk%E6%A8%A1%E5%9D%97/","title":"便捷安装证书的magisk模块"},{"content":"yazi 是基于rust编写的文件管理器，响应速度非常优秀，使用体验非常好，功能强大,项目地址,项目文档\n快速安装方法 Windows Scoop 1 2 scoop install yazi scoop install ffmpeg 7zip jq poppler fd ripgrep fzf zoxide imagemagick WinGet 1 2 winget install sxyazi.yazi winget install Gyan.FFmpeg 7zip.7zip jqlang.jq sharkdp.fd BurntSushi.ripgrep.MSVC junegunn.fzf ajeetdsouza.zoxide ImageMagick.ImageMagick Debian \u0026amp; Ubuntu \u0026amp; Deepin \u0026hellip; 1 sudo apt install ffmpeg 7zip jq poppler-utils fd-find ripgrep fzf zoxide imagemagick Manjaro \u0026amp; arch \u0026hellip; 1 sudo pacman -S yazi ffmpeg p7zip jq poppler fd ripgrep fzf zoxide imagemagick 使用 输入yazi唤起\n","date":"2026-07-04T20:48:39+08:00","image":"/p/yazi-%E4%BC%98%E7%A7%80%E7%9A%84%E6%94%AF%E6%8C%81%E5%A4%9A%E7%B3%BB%E7%BB%9F%E7%9A%84%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86%E5%99%A8/Image.png","permalink":"/p/yazi-%E4%BC%98%E7%A7%80%E7%9A%84%E6%94%AF%E6%8C%81%E5%A4%9A%E7%B3%BB%E7%BB%9F%E7%9A%84%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86%E5%99%A8/","title":"yazi-优秀的支持多系统的文件管理器"},{"content":"众所周知，每次通过SSH连接到服务器都会看到一段欢迎信息，这个欢迎信息是可以完全自定义的。常见的方式有两种：直接修改静态的 /etc/motd 文件，或者利用 Ubuntu/Debian 的 update-motd 动态脚本。\n1. 修改静态欢迎信息 /etc/motd 1 sudo nano /etc/motd 写入你想显示的内容，比如：\n1 Welcome to my server! 保存后重新登录，就能看到新内容了。\n2. Ubuntu/Debian：动态MOTD 如果你用的是 Ubuntu/Debian，登录时会看到一堆系统提示（版本信息、可更新包数量、livepatch 等），这些不是来自 /etc/motd，而是来自 /etc/update-motd.d/ 目录下的脚本，由 PAM 在登录时动态执行生成。\n查看目录：\n1 ls /etc/update-motd.d/ 常见的脚本：\n00-header：显示系统版本信息 10-help-text：显示帮助提示 90-updates-available：显示可更新软件包数量 想让登录界面只剩你自己的内容，把脚本的可执行权限去掉即可：\n1 sudo chmod -x /etc/update-motd.d/* 然后再按第1步修改 /etc/motd，重新登录就只会显示你写的内容了。\n3. 用figlet生成ASCII艺术字 觉得纯文本太素？可以用 figlet 生成 ASCII 艺术字：\n1 sudo apt install figlet 生成并写入 /etc/motd：\n1 figlet -f slant \u0026#34;Welcome to my server\u0026#34; | sudo tee /etc/motd -f 指定字体，可以换成 big、standard 等，重新登录看看效果。\n4. 修改后没生效怎么办 如果改了 /etc/motd 登录却不显示，检查 sshd 配置：\n1 sudo grep -i printmotd /etc/ssh/sshd_config 默认是 PrintMotd yes，如果是 no，改成 yes 后重启 sshd：\n1 sudo systemctl restart sshd 5. 恢复默认 不想要自定义内容了，清空 /etc/motd 并恢复动态脚本权限即可：\n1 2 sudo truncate -s 0 /etc/motd sudo chmod +x /etc/update-motd.d/* ","date":"2026-07-04T20:47:43+08:00","permalink":"/p/ssh%E6%AC%A2%E8%BF%8E%E4%BF%A1%E6%81%AF%E4%BF%AE%E6%94%B9/","title":"ssh欢迎信息修改"},{"content":"onedrive官方并没有提供linux平台的支持。但在github上有一个可以使用onedrive的仓库。配置起来相对简单，还能让我的Microsoft 365发挥他的价值。\n1. 安装 1 apt install onedrive 2. 登录 1 onedrive 根据提示进行操作\n3. 配置onedrive 根据文档进一步的配置\n文档中的部分内容 获取配置文件\n1 wget https://raw.githubusercontent.com/abraunegg/onedrive/master/config -O ~/.config/onedrive/config 非文档内容 systemd\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [Unit] Description=OneDrive Client for Linux After=network.target NetworkManager.service systemd-networkd.service iwd.service [Service] Type=simple LimitNPROC=500 LimitNOFILE=1000000 Restart=always ExecStartPre=/usr/bin/sleep 1s ExecStart=/usr/local/bin/onedrive --sync [Install] WantedBy=multi-user.target 需要代理可以增加以下内容\n1 2 Environment=\u0026#34;HTTP_PROXY=http://your.proxy.server:port\u0026#34; Environment=\u0026#34;HTTPS_PROXY=http://your.proxy.server:port\u0026#34; ","date":"2026-07-04T20:39:34+08:00","permalink":"/p/%E5%9C%A8linux%E4%B8%8A%E4%BD%BF%E7%94%A8onedrive/","title":"在linux上使用onedrive"},{"content":"你好，世界! 欢迎来到我的博客\n","date":"2026-06-10T00:00:00Z","image":"/p/hello-world/cover.jpg","permalink":"/p/hello-world/","title":"Hello World"},{"content":"Wget 目标路径 /etc/wgetrc\n1 2 3 4 https_proxy = http://127.0.0.1:7890/ http_proxy = http://127.0.0.1:7890/ ftp_proxy = http://127.0.0.1:7890/ use_proxy = on Git 命令行执行\n1 2 git config --global http.proxy http://127.0.0.1:1080 git config --global https.proxy http://127.0.0.1:1080 取消代理\n1 2 git config --global --unset http.proxy git config --global --unset https.proxy Curl 目标路径 ~/.curlrc\n1 proxy=\u0026#34;http://127.0.0.1:7890\u0026#34; ","date":"2025-07-04T20:43:30+08:00","permalink":"/p/linux-%E5%9F%BA%E7%A1%80%E5%B7%A5%E5%85%B7%E4%BB%A3%E7%90%86%E9%85%8D%E7%BD%AEwget-/-curl-/-git/","title":"Linux 基础工具代理配置（wget / curl / git）"},{"content":"前言 现在已经是 2025 年 5 月份。距离 lgv60 发售已经过了 5 年时间。LG 的原生系统以优异的续航博得我的喜爱，随着手机发售多年系统早已停止维护，安全性可想而知。所以选择使用近几个月编译的系统\n方案 环境准备 Rising OS 6.2 源自 xda 论坛 dualsim 可选 drmv2 修复系统环境 magisk环境 Zygisk Next magisk模块 救砖模块 非常重要 性能调优 Magisk模块+Lsposed模块 Uperf Game Turbo Asoul Scene 独立应用 \u0026amp; lsposed模块 \u0026amp; 可安装magisk模块 Thanox 隐藏环境正常体系 Shamiko Trickystore Play integrity Fix Fork Shamiko白名单开关 参考资料 xda论坛发布页 (Rising OS 6.2 \u0026amp; recovery.img \u0026amp; drmv2.img) Rising OS repo\n","date":"2025-05-01T22:33:28+08:00","permalink":"/p/lg-v60%E6%89%8B%E6%9C%BA%E7%8E%A9%E6%9C%BA%E6%97%A5%E5%BF%97/","title":"LG V60手机玩机日志"},{"content":"Pixel 8 玩机日志 前情提要，玩机前需要备份重要数据，数据无价。\n1.获得权限 打开设置 -\u0026gt; 连按5次系统版本号 -\u0026gt; 解锁开发者模式 -\u0026gt; 进入开发者选项 -\u0026gt; 打开adb 调试\n2. 安装magisk \u0026amp; 修补init_boot 在github的release中下载最新的app-relase.apk，修补准备好的init_boot.img\n注: init_boot.img 可从官方线刷脚本获得\n3. 进入fastboot \u0026amp; 解oem锁(bl锁) 1 adb reboot fastboot 重启后进入fastboot后\n1 fastboot oem unlock 警告: 打开oem锁后会清除所有用户数据,解锁需要先退出有关账号 注: 如需回锁 fastboot oem lock\n4. 刷入修补镜像 1 fastboot flash init_boot ***.img 5. 配置软件 不在着重讲述，各取所需\n","date":"2025-04-04T10:59:44+08:00","permalink":"/p/pixel8%E7%8E%A9%E6%9C%BA%E6%97%A5%E5%BF%97/","title":"Pixel8玩机日志"}]