# Mac 上的 Aider 安全：监控它的网络连接

> Aider 是一款在终端中进行 AI 结对编程的开源 Python 工具。了解它如何在 Mac 上安装、通过网络发送什么，以及 FireAI 如何标记新的目的地。

FireAI Security & Research Team (HisnLabs) · Published 2026-10-04
Canonical: https://hisnlabs.com/zh/blog/mac-jiankong-aider-wangluo-lianjie

Aider 是一款开源的 AI 结对编程工具，在终端中运行，编辑 Git 仓库中的文件。人们搜索“aider security mac”“is aider safe”和“aider network access”，是因为它会把代码上下文发送给他们所配置的语言模型。本文总结该项目关于安装、分析统计和 git 行为的文档内容，指出其文档在网络方面未作说明之处，然后展示 HisnLabs 开发的 macOS 设备端防火墙 FireAI 如何监视一个以 Python 脚本形式运行的智能体的连接。

## Aider 是什么

Aider 由 Aider-AI 项目维护，使用 Python 编写，采用 Apache-2.0 许可证。其 README 将它描述为一种与语言模型协作、开启新项目或在现有代码库中工作的方式，提供整个代码库的映射、带有合理提交信息的自动提交，并支持 Claude、DeepSeek、OpenAI 模型和本地模型。它还可以接受图片、网页和语音输入，并运行代码检查和测试 [[1]](https://github.com/Aider-AI/aider)。模型端点由你选择，因此你的提示和文件上下文会被发送到该提供方。

## Aider 如何在 macOS 上运行

Aider 是一个 Python 程序。安装页面推荐使用 `aider-install`，它会为 Aider 创建一个独立的 Python 环境，并在需要时安装 Python 3.12；README 给出的命令是 `python -m pip install aider-install`，然后运行 `aider-install`。其他方式包括 uv 安装器、pipx 和普通 pip（页面建议配合虚拟环境使用），以及适用于 Mac 和 Linux 的一行安装脚本 [[2]](https://aider.chat/docs/install.html)。无论选择哪种方式，在 Mac 上运行的进程都是一个运行 Aider 脚本的 Python 解释器。

## 它能访问什么，如何加以控制

Aider 处理你启动它时所在仓库中的文件，并自动把更改提交到 Git。本文查阅的页面没有描述与其他智能体类似的沙箱或审批模式，因此应把它拥有的访问权限视为你的用户账户以及你启动它的目录所具有的权限。README 指出它可以抓取网页，这意味着该工具本身可以向你指定的网站发起请求。

## 它连接到哪里

分析统计页面详细记录了唯一一项后台网络功能。分析统计需要用户主动选择开启。开启后，Aider 会收集使用了哪些模型及其令牌数量、使用了哪些编辑格式和命令，以及异常信息；它声明绝不收集代码、聊天消息、API 密钥或个人信息。数据发送到 PostHog。`aider --analytics-disable` 可永久退出，`--analytics-log` 会把将要发送的内容写入本地文件以供检查 [[3]](https://aider.chat/docs/more/analytics.html)。该页面不涉及其他流量，例如对模型提供方的调用，因此这些主机取决于你的配置。

> **Note:** 本文报告的是 Aider 自己的文档说了什么、没说什么。凡是上述资料来源未提及的域名、事件或漏洞，本文一概不列。

## 用 FireAI 监视 Aider

FireAI 是一款在 Mac 上运行的 macOS 防火墙。其 [Agent profile](https://hisnlabs.com/zh/docs/agent-profile) 功能可识别 19 种 AI 智能体，学习每种智能体通常连接到哪里，并标记新出现的情况。FireAI 的 Agent profile 页面把 Aider 列为由 node、bun、deno 或 python 运行的智能体之一，FireAI 通过运行时所运行的脚本来识别这类智能体。因此，运行 Aider 脚本的 Python 进程会被归属于 Aider，而不是一个笼统的 `python3`。

- 在最初的 3 天里，FireAI 学习该智能体通常联系的目的地，并按域名分组，因此 api.anthropic.com 会归为 anthropic.com。在此期间不会标记任何内容。
- 此后，基线之外首次出现的目的地会在 Suggestions、AI agents 卡片和 Quick Review 中被标记以供审查。向左滑动为拦截，向右滑动为“It’s fine”（没问题）。
- 上传峰值也会被标记：某一小时内该智能体的上传量至少是其此前最繁忙一小时的 4 倍，且不少于 25 MB。
- FireAI 只使用元数据，即主机名和字节数，从不读取连接的有效载荷。

> 想要一款在 Aider 访问新地方时告诉你的防火墙吗？FireAI 会在你的 Mac 上学习每个智能体的常用目的地。 [Download FireAI for Mac](https://hisnlabs.com/en/download)

## 为 Aider 设置 FireAI

1. 安装 FireAI，然后像平常一样使用该智能体。3 天学习期会自动开始，期间不会标记任何内容。
2. 打开 Suggestions，找到 AI agents 卡片。学习期结束后，针对该智能体的标记会出现在那里以及 Quick Review 中。
3. 审查每一个标记。选择 Block 会为发起连接的进程创建一条规则，选择“It’s fine”会把该目的地加入智能体的基线。
4. 若要让智能体只访问它已经在用的地方，请在安全模式菜单中选择 Agent profile，它与 Home、Coffee shop、Paranoid 和 Under attack 并列。你的规则会像在 Home 模式中一样生效，而一旦智能体完成学习，连接到基线之外目的地的请求会被拦截，而不只是被标记。
5. 被拦截的目的地会出现在 AI agents 卡片中，并附有 Allow 和 Keep blocked 两个选项。Allow 会把它加入基线，智能体随即可以访问。Keep blocked 会创建一条在所有模式下都有效的拦截规则。

你为网站、域名或地址编写的允许规则仍然优先，DNS 和你的本地网络也绝不会被拦截。对于 FireAI 未列出的智能体，请在[按 App 设置规则](https://hisnlabs.com/zh/docs/per-app-rules)中为其程序手动编写规则。Agent profile 模式需要 FireAI 1.0.3 或更高版本，识别 Aider 需要 1.0.4。

## 局限

- 由于 Aider 在 Python 下运行，你在解释器上手动编写的规则会影响所有 Python 程序。Agent profile 的识别机制让基线和标记与 Aider 的脚本绑定，从而避免了这一问题。
- Aider 是根据运行时所运行的脚本来识别的，这意味着它只是被标注，而未经验证：只有 Claude Code、Claude 和 Cursor 会根据其开发者的签名进行核验。
- FireAI 无法阻止提示注入。它通过标记数据离开你的 Mac 的路径并允许你拦截该路径来限制损害。
- FireAI 看不到提示、MCP 工具的内容、文件访问或技能。TLS 隐藏了有效载荷，而且 FireAI 并不在智能体内部。
- 很快就退出的子进程可能会被遗漏，而且子进程是按路径而非签名匹配的。
- 在 3 天学习期内不会标记任何内容，上传峰值只会被标记，不会被拦截。
- 在 Agent profile 模式下，直接连接到没有主机名的裸 IP 地址时，会按地址进行匹配，因此智能体常用服务的新地址在你允许之前会被拦截。

## 其他智能体

同样的方法适用于 FireAI 识别的每一种智能体。请参阅其他指南：[Claude Code](https://hisnlabs.com/en/blog/monitor-claude-code-network-mac-fireai)、[Claude 桌面 App](https://hisnlabs.com/en/blog/monitor-claude-desktop-app-network-mac-fireai)、[Cursor](https://hisnlabs.com/en/blog/monitor-cursor-network-mac-fireai)、[ChatGPT Mac App](https://hisnlabs.com/en/blog/monitor-chatgpt-mac-app-network-fireai)、[OpenAI Codex CLI](https://hisnlabs.com/en/blog/monitor-openai-codex-cli-network-mac-fireai)、[OpenClaw](https://hisnlabs.com/en/blog/monitor-openclaw-network-mac-fireai)、[Hermes Agent](https://hisnlabs.com/en/blog/monitor-hermes-agent-network-mac-fireai)、[Gemini CLI](https://hisnlabs.com/en/blog/monitor-gemini-cli-network-mac-fireai)、[GitHub Copilot CLI](https://hisnlabs.com/en/blog/monitor-github-copilot-cli-network-mac-fireai)、[Amp](https://hisnlabs.com/en/blog/monitor-amp-agent-network-mac-fireai)、[Qwen Code](https://hisnlabs.com/en/blog/monitor-qwen-code-network-mac-fireai)、[opencode](https://hisnlabs.com/en/blog/monitor-opencode-network-mac-fireai)、[Goose](https://hisnlabs.com/en/blog/monitor-goose-agent-network-mac-fireai)、[Crush](https://hisnlabs.com/en/blog/monitor-crush-agent-network-mac-fireai)、[Windsurf](https://hisnlabs.com/en/blog/monitor-windsurf-network-mac-fireai)、[Kiro](https://hisnlabs.com/en/blog/monitor-kiro-network-mac-fireai)、[Trae](https://hisnlabs.com/en/blog/monitor-trae-network-mac-fireai)、[Meta 的 Muse](https://hisnlabs.com/en/blog/monitor-muse-meta-network-mac-fireai)、[在 python 或 node 上运行的任何其他 AI 智能体](https://hisnlabs.com/en/blog/monitor-any-ai-agent-mac-python-node-fireai)。完整的功能说明见 HisnLabs 发布的 [Agent profile 文档页面](https://hisnlabs.com/zh/docs/agent-profile)。

> See every connection your Mac makes — and decide which ones go through. [Download FireAI for Mac](https://hisnlabs.com/en/download)

## FireAI 和 HisnLabs 在其中扮演的角色

FireAI 会学习 Aider 在你的 Mac 上通常连接到哪里，并在出现首次访问的目的地或上传峰值时发出标记，且不读取你的数据。

FireAI 是 HisnLabs 自己的产品：一款直接在 Mac 上运行的 AI 防火墙。它用通俗易懂的语言显示你的应用建立的每一个连接，并让你决定哪些数据可以离开你的 Mac——它的 AI 在本地运行，因此你的流量永远不会发送给我们或任何其他人。HisnLabs 的安全研究团队负责让这些判断保持准确：归类哪些域名只是普通的遥测、哪些属于真正的服务，追踪连接背后的国家和网络，并用真实的流量模式训练设备端模型（FireAI Pilot 功能）——这一切都不会离开你的 Mac。

你可以阅读它背后的技术决策，或试用 FireAI 17 天：[HisnLabs 出品的 FireAI](https://hisnlabs.com/zh/download)。

## Sources

- [Aider: project repository and README (GitHub)](https://github.com/Aider-AI/aider)
- [Aider documentation: installation](https://aider.chat/docs/install.html)
- [Aider documentation: analytics](https://aider.chat/docs/more/analytics.html)
- [FireAI docs: Agent profile](https://hisnlabs.com/en/docs/agent-profile)
- [FireAI docs: Rules](https://hisnlabs.com/en/docs/per-app-rules)
