@dnsid-ai/transport

中文文档
0.37.0发布于 2026/11/12Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 2131

为DNSid提供Node.js DNS和HTTPS运输执行.

中文使用文档
文档目录4 节
  1. 责任
  2. 安装
  3. 示例
  4. 单端签名反应运输

@dnsid-ai/运输

节点.js 为DNSid TypeScript包所执行的运输.

需要默认节点 DNS 和 HTTPS/TLS 管道时使用此软件包 @dnsid-ai/protocol 或者说 @dnsid-ai/sdk/node。 。 。 .

责任

  • 通过系统 DNS 或配置的 DNS 服务器解析 DNS TXT
  • DNS 服务器解析和查找助手
  • HTTPS JSON 获取
  • 安全安保部队 fetch 用于需要连接时间 DNS 检查的配置文件包
  • TLS 证书抓取
  • 自定义 CA 捆绑支持
  • 自定义 DNS 服务器支持

此软件包是节点专用的,并有意从 @dnsid-ai/protocol。 。 。 .

安装

npm install @dnsid-ai/transport

示例

import { createDefaultDnsResolver, createSsrfSafeFetch, fetchJson } from '@dnsid-ai/transport';

const dnsResolver = createDefaultDnsResolver({ dnsServer: process.env.DNSID_DNS_SERVER });
const result = await fetchJson('https://agent.example/.well-known/dnsid-status.json', {
  allowedHost: 'agent.example',
  dnsServer: process.env.DNSID_DNS_SERVER,
  caBundlePath: process.env.DNSID_CA_BUNDLE,
});

const safeFetch = createSsrfSafeFetch({ dnsServer: process.env.DNSID_DNS_SERVER });

单端签名反应运输

createResponseSignatureTransport(config?) 返回时 responseTransport 函数 HttpSignaturesProfile.createSignedFetch 何时 signing.responseSignature 已存在。 它接受准备的 Request 返回时 { response, peerCert }。它每个呼叫、再利用、保持状态都执行一个HTTPS请求 互通电话,从不跟踪重定向或重复,从不缓存 保存编码内容字节,而不透明解压。 请求机构 随同发送 Content-Length。证书来自连接: 带回了反应,所以可以满足 fl=mtls; 剖面图仍然可以验证其SAN相对于预期的 DNSid 代理.

运输尊重请求中止信号,并有30秒的上限. 签字客户提供共享的有限发送/阅读/核查预算 受限内容为 (8 MiB). 独立的运输消费者也必须受到约束 机构读取,取消拒绝的答复,不披露未经核实的内容. 协议升级和隧道建设被拒绝. HTTP 错误和普通 重定向回复返回到配置文件以进行签名核查.

自定义 DNS 和 CA 设置如下 createDnsidFetch。像这样的功能,这个 传输不过滤私有地址: 呼叫者必须选择可信任的目标 或为运输机注入必要的网络地址政策。 这是独立的 从WBA的SSRF安全发现运输,并不改变这个特征.

大多数节点应用程序应该通过此操作 @dnsid-ai/sdk/node 或配置默认值.

默认解析器查询由节点返回的 DNS 服务器 dns.getServers() 以顺序,使用带有TCP回落的UDP来捕捉递归服务器所剩的TXT TTL(封顶一天). dnsServer 能够覆盖此列表。 在失败或空答时, 它会回到节点的本地 TXT 和 TTL 检索 0失去能力的身份 缓冲这个结果。 节点的服务器列表可能会省略macOS scoped/split-DNS路由,因此连正线解答也无法保证在这些设置中与平台解析器相匹配. 两个路径都不能验证 DNSSEC (UNKNOWN; SERVFAIL 是一个解析错误. validated编号 :required DNSSEC 模式仍需要注入验证解析器. 缓存的校验仍然处于重排状态,除非 verification.statusCheckInterval 已经设定.

createSsrfSafeFetch() 在向外套接字使用的搜索中执行不安全地址拒绝, 返回方向方向不自动跟踪 。 信任的测试/私人部署可能通过 privateAddressHosts: 确切的主机名或前缀后缀, 如 .test (label-boarded, case-insential);然后只有RFC 1918/ULA 私有和回回结果被接受用于匹配主机,而链接-local,混合公/私,IP-literal URL仍然被屏蔽. 默认情况下不允许任何东西,甚至 .test; 当地 dnsid 堆栈需要 privateAddressHosts: ['.test'] (或 DNSID_PRIVATE_HOSTS=.test 结束 loadEnvironment) (中文(简体) ). 接受自定义的配置软件包 fetch 无法强制对任意执行进行等同的行为, 因此自定义获取注入仍然可以信任的基础设施 .

版本与发布记录

@dnsid-ai/transport 共发布 22 个版本,首次发布于 2026/09/22;过去 12 个月发布了 22 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.37.0latest2026/11/121 天前
0.36.02026/11/112 天前
0.35.02026/11/066 天前
0.34.02026/10/3014 天前
0.33.02026/10/2815 天前
0.32.02026/10/2716 天前

关于 @dnsid-ai/transport 的常见问题

@dnsid-ai/transport 是什么?

为DNSid提供Node.js DNS和HTTPS运输执行.

如何安装 @dnsid-ai/transport?

在项目目录运行 npm install @dnsid-ai/transport,或使用 pnpm add / yarn add / bun add。

@dnsid-ai/transport 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dnsid-ai/transport 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@dnsid-ai/transport 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^22.23.4 || ^24.22.1 || >=26.12.1。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@dnsid-ai/transport 可以商用吗?

@dnsid-ai/transport 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@dnsid-ai/transport 的下载量有多少?

根据 npm 官方下载统计,@dnsid-ai/transport 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,131 次,日均约 71 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dnsid-ai/transport 还在维护吗?

最新版本 0.37.0 发布于 2026/11/12(1 天前);至今共发布 22 个版本,其中过去 12 个月发布了 22 个;首次发布于 2026/09/22。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。