# Proxyman Proxy Helper Tool

> 安装 Proxyman Proxy Helper Tool，以更快地更改和恢复 macOS 系统代理，并让访客或非管理员用户也能抓取流量。

> **备注:** Proxyman 还提供 [Network Extension](https://proxyman.com/docs/zh-cn/advanced-features/network-extension)，用于抓取忽略代理设置的 Mac 应用的 HTTP/HTTPS 流量。Helper Tool 负责管理系统代理；Network Extension 无需为每个应用单独设置代理，即可抓取受支持的流量。
>
> Network Extension 目前为 BETA 版本，需要 Proxyman PRO，并运行 macOS 26 或更高版本。

## 什么是 Proxy Helper Tool？ {#what-is-the-proxy-helper-tool}

默认情况下，Proxyman 使用 [networksetup](https://www.unix.com/man-page/osx/8/networksetup/) 命令行工具更改 HTTP/HTTPS 代理设置。但是，**networksetup** 速度较慢，可能会延迟应用的启动或退出。 

Proxyman 提供了更快的解决方案：**Proxyman Proxy Helper Tool**。它是一个 macOS [Privileged Helper Tool](https://developer.apple.com/library/archive/documentation/Security/Conceptual/SecureCodingGuide/Articles/AccessControl.html#//apple\_ref/doc/uid/TP40002589-SW2)，能够以**高性能**更改网络代理设置。

> **备注:** 你可以对比启动应用时使用和不使用 Proxy Helper Tool 的差异。

首次启动时，Proxyman 会提示你安装 Proxy Helper Tool。你可以跳过此步骤，之后再到 **Settings** → **Advanced** 中安装。

![Proxyman 设置中的 Advanced 标签页，显示已安装的 Proxy Helper Tool 1.7.0 版本，并带有 Uninstall 按钮](https://proxyman.com/docs/assets/proxyman-settings-advanced-proxy-helper-tool.jpg)

_设置中 Advanced 标签页里的 Proxy Helper Tool_

> **备注:** 安装完成后，可以在 `/Library/PrivilegedHelperTools/com.proxyman.NSProxy.HelperTool` 找到 Helper Tool。
>
> 当 Proxyman 发布新版本的 Proxy Helper Tool 时，你需要重新安装。

### 在 macOS 13 Ventura 或更高版本上授予权限 {#grant-permission-on-macos-13-ventura-or-later}

在 macOS 13 Ventura 或更高版本上，必须先在系统设置中允许 Helper Tool，它才能正常工作。

授予权限的步骤如下：

1. 打开 **System Settings** → **General** → **Login Items**（在 macOS 15 或更高版本上为 **Login Items & Extensions**）。
2. 找到 Proxyman，并将其开关打开 ✅

如果缺少该权限，Proxyman 的 **Settings** → **Advanced** 中会显示 **Open Login Items…** 按钮，点击即可跳转到对应位置。

![macOS 系统设置中的 Login Items，Proxyman 的开关已打开](https://proxyman.com/docs/assets/Screenshot%202022-11-20%20at%2021.10.43.png)

_为 Proxyman Helper Tool 授予权限_

### 访客用户或非管理员用户 {#guest-or-non-admin-users}

如果你是访客用户或非管理员用户，在安装 Proxy Helper Tool 之前，`networksetup` 命令会失败，无法更改 HTTP/HTTPS 代理设置。 

Proxy Helper Tool 拥有为所有类型用户更改代理设置的权限。

如果你是访客用户或非管理员用户，我们强烈建议安装 Proxy Helper Tool，以获得更流畅的体验。

### 卸载 Proxy Helper Tool {#uninstall-the-proxy-helper-tool}

你可以在 **Settings** → **Advanced** → **Uninstall** 中卸载 Proxy Helper Tool，也可以直接删除 `/Library/PrivilegedHelperTools/com.proxyman.NSProxy.HelperTool`。

## 通过命令行安装 Proxy Helper Tool {#install-the-proxy-helper-tool-by-command-line}

从 Proxyman for macOS 4.12.0 版本开始，你可以不使用图形界面安装 Helper Tool：

```
sudo /Applications/Proxyman.app/Contents/MacOS/proxyman --install-privileged-components
```

## 更新日志 {#changelog}

### 版本 1.6.0（Proxyman 5.11.0 或更高版本） {#version-160-proxyman-5110-or-later}

* 修复：应用关闭时，Proxyman 无法恢复 PAC URL。

### **版本 1.5.0** {#version-150}

* 修复了一个安全漏洞：Proxyman v1.5.0 或更早版本（2019 年）可以连接到 Helper Tool（v1.4.0），并在未经用户同意的情况下覆盖系统代理。此修复为传入连接增加了验证约束：调用方必须经过 Apple 公证，使用 Proxyman LLC 证书签名，并启用 Library Validation 和 Force Hard 标志。（CVE-2023-45732）

📣 感谢 NCC Group 的 **Scott Leitch**。

### **版本 1.4.0** {#version-140}

* 符合 macOS 13 Ventura 对 Helper Tool 的新要求
* 在 Login Items 中显示应用图标和应用名称

> **备注:** 在 macOS Ventura 或更高版本上，即使 Proxyman 只在前台运行，helper tool、launch daemon 和 launch agent 也会列在 **Allow in the Background** 下。
>
> 目前有一场关于此问题的 [Twitter 上的讨论](https://twitter.com/siracusa/status/1583914093437935616?s=46\&t=C1XB91IkDFkG697Ab8T9Dg)，要求 Apple 在 macOS 中修复此问题。

安装 1.4.0 版本后，由于 macOS 会缓存该信息，Login Items 中的条目可能不会更新。 

![macOS Login Items 中的条目显示的是旧的缓存名称和空白图标，而不是 Proxyman](https://proxyman.com/docs/assets/Screen%20Shot%202022-10-25%20at%2010.00.04.png)

_Login Items 中显示的是旧的缓存条目_

解决方法：

1. 打开终端应用，并运行：`sfltool resetbtm`
2. 重新启动 Mac
3. 完成

### **版本 1.3.0** {#version-130}

* 记住并恢复到之前的代理设置。

### 版本 1.2.0 {#version-120}

* 若 Proxyman 崩溃，将 HTTP 代理配置正确还原。

## 故障排除 {#troubleshooting}

如果安装 Helper Tool 时出现以下错误：

The operation couldn’t be completed. (CFErrorDomainLaunchd error 9.)

请按照这篇文章中的步骤操作：[修复 CFErrorDomainLaunchd error 9（腾讯云）](https://cloud.tencent.com/developer/article/1816504)

相关 GitHub 议题：[ProxymanApp/Proxyman#1113](https://github.com/ProxymanApp/Proxyman/issues/1113)
