☰
dsh-our-free-model 免费免 Key 模型插件:6 个关键机制与 8 种故障行为完整讲清
2026/11/4 2:07:40 网站建设 项目流程

dsh-our-free-model 免费免 Key 模型插件:6 个关键机制与 8 种故障行为完整讲清

【免费下载链接】dsh-our-free-model在 dsh 里装上这个插件即可,无需登录、注册或填 API Key,就能使用包括 DeepSeek V4.1 Flash、Kimi K3 在内的前沿模型——完全免费,不限量。 All you do is install this plugin in dsh: no login, no sign-up, no API key — the frontier models are just there, DeepSeek V4.1 Flash and Kimi K3 among them. Completely free, with no usage cap.项目地址: https://gitcode.com/gh_mirrors/ds/dsh-our-free-model

在 dsh 里装上 dsh-our-free-model,无需登录、注册、填 API Key,DeepSeek V4.1 Flash、Kimi K3 等前沿模型直接可用。但放在本机的免费额度本身就是公开目标:同机任何进程、任何网页里的跨站脚本都可能蹭这趟车。本文按装之前、第一条请求、跑起来之后、出问题时这一条用户旅程,把插件每一道闸如何设立、坏了往哪个方向收,逐条讲清。

🧳 装之前:这个插件给你什么、明确不做什么

模型即装即有——不账号、不 Key、不申请配额;模型清单每次向上游重新拉取,插件内不存静态快照,网关明确拒绝路由的模型从选择器移除、只在设置页留记录并注明拒因。

用量数据不出本机——Token 热力图(17 周)、总量曲线、首字延迟逐次采样,全部落在本机DSH_HOME/our-free-model/目录,不上传任何位置。

明确不做的——插件是客户端,不是模型服务:你的 prompt 会作为正常推理请求发给上游网关(免费车道为 OpenCode Zen 网关,Kilo 渠道为 Kilo AI 公共网关,均直连不经转手);Kilo 免费池在模型卡中声明 prompt 可能被上游记录并用于改进服务,敏感内容不要走免费车道。额度、地区限制(403)、限流(429)都归上游决策,插件只把不可用模型如实移出选择器。

还有一条边界:不要通过 npm 装。npm 上的同名包不是本仓库发布的,内容被改动过;只从本仓库 Release 包或本地源码目录安装。

本章结论:你拿到的是"免费模型直接可用",代价是所有信任都要建在本机上,而上游只承诺"可用",不承诺"不限量"。

🛂 第一条请求:从设置接口到回环监听,四道闸

闸一:设置接口要自建验票口

插件路由挂在/api/our-free-model前缀下,比内核的/api更长,宿主分发走最长前缀优先——请求先命中插件,内核自己的鉴权轮不到出手(src/trust.js 头注把这条边界写得明白)。插件因此不能指望前门兜底,得自建验票口。

闸二:两层验票,一层都省不掉

第一层借用宿主自己的系统:composition 的connection服务,与内核/api完全同级的准入判定,含 cookie/token 校验。该服务逐请求读取——宿主可能晚于插件加载才发布它,加载时快照一次就不灵;dsh 0.1.7 之前的老内核以旧名requestRejection发布同一判定,围栏自动把旧名映射到准入接口,只转名字,不松判定。

第二层面向没有connection服务的极简宿主,规则与内核同形,整体 fail closed:

  • 回环 Host:仅 127.0.0.1、::1、localhost 放行,其余 403
  • 跨站拒绝:sec-fetch-site标记 cross-site 直接 403
  • 同源比对:Origin/Referer 与 Host 的协议、主机名、端口任一不符 403
  • 桌面中继:dsh-app://appReferer 仅在不携带 Origin 与 Sec-Fetch-Site 标记时放行,回环 Host 检查照旧

实测口径(见 README.md「安全与隐私」):异源 Host/Origin 一律 403,无 cookie 的回环请求 401,与内核行为一致。拒绝日志只写状态、来源、原因三个固定字段,请求头、URL、Cookie、错误正文不落日志;回归用例见 scripts/trust-test.mjs。防不住的场景要写明:已经能改本机 settings.json 的攻击者——文档把这类人归为"设置即信任",能改设置本来就能装代码。

闸三:转发端口只开航站楼内部

OpenAI 兼容转发端口是全插件唯一的"免密窗口":本机工具配上 base URL 与 Key 即可调用全部模型,所以监听器只允许绑到本机才可到达的回环地址。src/forward.js 默认127.0.0.1:18899,默认关闭,在设置页开启。

关键动作在解析环节:localhost这类主机名先经 DNS 查询,要求全部解析结果都是回环 IP 才放行,绑定用的是解析出的 IP 而非原始字符串。hosts 文件或企业 DNS 把 localhost 指到可路由网卡时,绑定直接失败、服务不启动,不存在"检查通过但实际露出去"。

凭据侧:转发 Key 为ofm-前缀加 24 字节 crypto 随机数,写盘即带 0600 权限(src/store.js 走临时文件加原子重命名,仓库内无硬编码凭据);比对先把双方各做一次 SHA-256 再timingSafeEqual,耗时不随"前几位匹配"变化,按响应时差逐字节猜 Key 的时序侧信道被堵死。请求体超 8MB 直接 413。

闸四:端口被占,四轮回退再扫十个

端口占用不判死刑:先在原端口做 4 轮指数退避(150、300、600ms),覆盖"进程正在关闭、端口马上释放"的瞬态窗口;再依次向后找 10 个连续端口;仍无解落到随机端口。落盘的是实际端口,设置页把"请求的 18899 不可用、实际监听 18900"原样展示。

Windows 上 EACCES 与 EADDRINUSE 分开诊断:通配监听(0.0.0.0)占着端口时,回环绑定在 Windows 报的是 EACCES 而不是 EADDRINUSE,常见元凶为netsh interface portproxy残留规则或 Hyper-V/WinNAT 端口预留,诊断文案直指这两处,不引人去查"权限"。

本章结论:第一条请求过四道闸——验票口要么借宿主系统要么同形人工核验,免密窗口只在航站楼内,Key 恒时比对,端口被占会换门但必须明说。

🔑 跑起来之后:三套凭据三本账,漏一把只换那一把

三套凭据三本账

凭据存放形态泄露影响面轮换动作
转发 Key(本机)本机 0600 设置文件,ofm-前缀 + 24 字节随机仅限本机已配置该 Key 的工具只轮换本机 Key,局域网设备不受牵连
局域网 Key(lanKey)同一 0600 文件独立字段,crypto 生成仅限同网络其他设备的调用只轮换局域网 Key,本机工具不受牵连
EAC 签名密钥仅 AES-256-GCM 密文密封在插件,真实 Key 在 Worker 环境变量密封被提取后,600 秒窗口内签名流量可被仿冒网关侧轮换 SIGNING_SECRETS,全体吊销,客户端零改动
聚合渠道 Key本机 0600 settings.json,接口只回显hasKey与…abcd指纹仅限你配置的那家提供商端点设置页更换 Key,不出本机

设置页的渠道页把十个账号渠道的登录态与积分余量同样只存本机,界面上只展示状态,不展示明文。

局域网中继:单独登机口,单独通行证

默认关闭,显式启用后规则自成一体:

  • 独立密钥:中继只认 lanKey,与本机 Key 互不通用
  • 全路径鉴权:/health存活探针也要 Key——本机监听免 Key 应答无妨,中继的无凭据应答等于向整个子网挂牌"此机正在代理"
  • 入口换钥:门口把局域网 Key 换成本机 Key,再拨127.0.0.1上的本地监听,外部调用方的凭据不过这一层
  • 白名单加环路保护:只放行/v1/models、/v1/chat/completions、/v1/responses、/v1/messages、/v1/messages/count_tokens五条路径(各自去/v1写法同样放行);携带x-ofm-relay-hop跳数标记的请求直接 508,两个端口误配成同一值只会得到一次拒绝,不会自环打满

EAC 协付渠道:板上只有密封行程单

插件落地的只有网关地址与 HMAC 签名密钥的密文密封(AES-256-GCM,见 src/vault.js),真实网关 Key 只放在 Worker 环境变量里,且该渠道在服务器侧校验 GitHub 登录与 star 授权后才放行对话。每个出站请求按"时间戳 + HMAC-SHA256(方法/路径/body 摘要)"签名(见 src/eac.js),凭据不落盘、不出进程。网关(worker/worker.js)以 600 秒重放窗口(CLOCK_SKEW_SECONDS默认 600)验收:验签失败 401、模型白名单之外 403、窗口之外 401;部署细节与密钥轮换预案见 worker/README.md。

本章结论:漏一把只换那一把——两把本机 Key 互不牵连,远端密封由网关换锁全体吊销,客户端不动。

🚧 出问题时:8 种故障行为,一律朝"拒绝登机"收口

安全设计的一半价值在失败路径。这条线的故障行为是写死的,逐项如表:

异常场景实际行为设计意图
宿主 connection 鉴权服务抛错返回 503 停止准入,绝不降级到更弱的结构化检查安检机坏了先关闸(决策记录见 docs/issue-49-desktop-trust.md)
老内核只发布旧名 requestRejection自动映射到准入视图;"方法不存在"不误读成故障,对象形返回不误读成"无拒绝"兼容只做名字转换,判定不放松
localhost 解析出可路由 IP绑定直接报错,监听器不启动宁可用量不可用,不递给整个子网
请求端口 18899 被占(EADDRINUSE)4 轮指数退避 → 后 10 个端口 → 随机端口;实际端口落盘并展示功能仍可用,不藏着
Windows 报 EACCES诊断指向 netsh portproxy 残留或 Hyper-V/WinNAT 预留不把人引向"权限"这条错误线索
中继与本地监听配成同一端口第二跳带x-ofm-relay-hop标记,直接 508端口不被自环烧穿
本机或局域网 Key 缺失、错误401;中继侧/health同样不豁免 Key不向子网宣告"此机在线"
EAC 签名过期或模型不在清单600 秒窗口外 401,白名单外 403远端拒绝,客户端零改动

两条免密上游与全部出网目标在 README.md「上游是哪些源」逐条列明,隐私口径见同文「安全与隐私」;上游来源与额度政策随时可能变更,这是信任链条里唯一不归本机管的部分。

本章结论:每种失败只有两个收口方向——拒绝或明示,从不静默降级。

在这座自建机场里,验票口、登机牌与地面闸机各记各的账,任何一步拿不准,默认动作永远是"不放行"。

【免费下载链接】dsh-our-free-model在 dsh 里装上这个插件即可,无需登录、注册或填 API Key,就能使用包括 DeepSeek V4.1 Flash、Kimi K3 在内的前沿模型——完全免费,不限量。 All you do is install this plugin in dsh: no login, no sign-up, no API key — the frontier models are just there, DeepSeek V4.1 Flash and Kimi K3 among them. Completely free, with no usage cap.项目地址: https://gitcode.com/gh_mirrors/ds/dsh-our-free-model

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询