我的 SSRF 防护把自己拦了:当「解析到的地址」不是「要连的地址」
给本地模型加联网搜索,写了标准的出网防护,结果搜索稳定返回空——防护把维基百科和搜索 API 全拦了,而它的判断完全正确。根因是透明代理返回的合成地址落在 RFC 2544 保留段。这个「检查的对象不是使用的对象」的间隙,在同一个文件里出现了三次。
给本地模型加联网搜索,写了标准的出网防护,结果搜索稳定返回空——防护把维基百科和搜索 API 全拦了,而它的判断完全正确。根因是透明代理返回的合成地址落在 RFC 2544 保留段。这个「检查的对象不是使用的对象」的间隙,在同一个文件里出现了三次。
查表覆盖不了变体×格式×上下文×卡数的组合爆炸,只能建模。这篇记录那次建模:公式的三项分别对应什么、全局注意力层占比这个查不到的量怎么用斜率测出来、并发数这个被忘掉的乘数如何让推理慢两个数量级,以及显存之外的两条硬约束——张量并行的整除要求和推荐排序为什么不能按体积。
四个真实报错的症状、根因与修法:只传 .wasm 漏了 .mjs 胶水模块、nginx 1.24 的 mime.types 没有 .mjs 条目导致浏览器拒绝执行模块脚本、配置比读它的依赖脚本晚到 155 字节、以及多线程所需的跨源隔离为何对内容站点不划算。
一次浏览器端抠图模型的排查实录。int8 量化在测试集上 IoU 0.976–0.984,上线后在一张主体与背景同色的图片上 IoU 只有 0.296。四个假设逐一被实验推翻,真正的原因是我只在模型有把握的样本上验证了量化——等于在最不敏感的区域测量灵敏度。
E2B、E4B、12B Unified、26B A4B 与 31B 的架构差异、官方 benchmark、真实检查点体积与实测显存占用。讲清 PLE 有效参数、Unified 无编码器架构和 MoE 激活参数各解决什么问题,以及为什么 E4B 的量化版本比 12B 还大。
两条完整可操作的暴露方案:零入站端口的 Cloudflare 隧道,和自建域名证书的直连端口映射。含 nginx 反代配置、DNS-01 签证书、DDNS 要点,以及端口转发配对了却连不上时的策略路由解法。
让本地模型真正用起来:关闭思考模式省下 90% token、给不能自定义请求体的工具加一层转发、编辑器多模态能力声明,以及一张按现象索引的排查表。
在同一台机器上搭起 RAG:embedding 服务跑 CPU 不占显存、按标题两级切分、sqlite-vec 向量检索加 FTS5 中文全文、RRF 融合,最后包成 OpenAI 兼容端点并带引用返回。
从 nvidia-smi 读显存开始,查模型真实体积、按显存分档选 vLLM 或 llama.cpp、装引擎下权重、写成 systemd 服务,最后用 curl 验证并测出真实吞吐。含 8GB 显卡的完整参数配置。
在 8GB 显存的笔记本显卡上自建 Gemma 4 网关的完整实录:量化检查点比参数量大一倍、flash-attn 让 prompt 处理差 40 倍、端口转发配对了却因回包走错网关而握手失败、RAG 切分与中文全文检索的坑,每条都附实测数据。