---
title: "Mac 代理设置导致 App 无法联网：查找并修复 · Kilobat 指南"
url: "https://kilobat.app/zh-hans/guides/proxy-settings-breaking-apps.html"
description: "找出导致 Mac App 或终端工具无法连接的系统代理、PAC 文件或 HTTPS_PROXY 变量，然后更正或移除。"
---

VPN、代理与过滤器

# Mac 上代理设置导致 App 无法连接

代理设置会让流量经过另一台服务器。如果该服务器配置错误或不可用，某些 App 就无法连接，而其他 App 可能一切正常。

适用于：“系统设置”路径适用于 macOS 13 Ventura 及更高版本。命令适用于所有当前 macOS 版本。 · 核查日期：2026年10月29日

## 症状

- Safari 浏览器正常，但某个 App 或终端工具显示超时或“proxy”错误。
- App 在家能连接，换个网络就失败，或者反过来。
- 命令行工具因“Could not resolve proxy”而失败，或连接本地端口时被拒绝。
- VPN 或代理 App 退出后，连接就断了。

## 可能的原因

- **旧的系统代理。**离开需要代理的网络后，“系统设置”中设置的代理仍然保留。
- **PAC 文件或自动代理发现。**Mac 从某个 URL 获取代理规则。如果该 URL 加载失败，有些 App 就无法连接。
- **代理环境变量。**终端工具会读取 `http_proxy`、`https_proxy` 和 `all_proxy`。这些变量不会改变“系统设置”中的代理，从 Dock 打开的 App 也看不到它们。
- **已停止的代理 App。**有些 App 会把代理设为本地端口，例如 127.0.0.1。如果该 App 停止运行，就没有程序在监听那个端口。
- **App 自带代理设置。**有些 App 在自己的设置中有代理字段，它与系统代理相互独立。

## 如何检查

1. 打开“终端”，显示 macOS 当前使用的代理配置。

   ```
   scutil --proxy
   ```

   输出 `HTTPEnable`、`HTTPSEnable`、`ProxyAutoConfigEnable` 和 `ProxyAutoDiscoveryEnable` 等键。值为 1 表示开启。
2. 显示某个网络服务的 HTTP 和 HTTPS 代理。如有需要，将 Wi-Fi 换成你的服务名称。

   ```
   networksetup -getwebproxy Wi-Fi
   networksetup -getsecurewebproxy Wi-Fi
   ```
3. 显示 PAC 文件和自动代理发现设置。

   ```
   networksetup -getautoproxyurl Wi-Fi
   networksetup -getproxyautodiscovery Wi-Fi
   ```
4. 显示 shell 中的代理环境变量。

   ```
   env | grep -i proxy
   ```
5. 如果代理指向 127.0.0.1，查找监听该端口的程序。将 7890 换成实际端口。

   ```
   lsof -nP -iTCP:7890 -sTCP:LISTEN
   ```

## 如何修复

1. 选取苹果菜单 >“系统设置”>“网络”。点按网络服务，然后点按“详细信息”。
2. 点按“代理”。关闭网络不需要的每种代理类型。
3. 有些主机不能经过代理。将它们添加到“忽略这些主机与域的代理设置”。
4. 点按“好”保存更改。
5. 要在“终端”中关闭网页代理，使用 networksetup。macOS 可能会要求输入管理员密码。

   ```
   networksetup -setwebproxystate Wi-Fi off
   networksetup -setsecurewebproxystate Wi-Fi off
   ```

   需要管理员密码。
6. 从 shell 启动文件（例如 `~/.zshrc`）中删除旧的代理变量，然后打开一个新的“终端”窗口。
7. 在出问题的 App 的设置中查找它自己的代理字段，使其与网络保持一致。

## 使用 Kilobat

1. Kilobat 的连接检查会报告系统代理和 PAC 文件，还会测试直连路径和代理路径。

   ```
   kilobat why api.example.com
   ```
2. 加上 `--app` 可读取该 App 环境中的代理变量。密码不会显示。

   ```
   kilobat why https://api.example.com/v1/models --app com.example.App
   ```
3. 如果 App 有自己的代理设置，用 `--proxy` 提供该地址。

   ```
   kilobat why huggingface.co --proxy http://127.0.0.1:7890
   ```
4. 该检查免费。App 和 MCP 的操作步骤参阅[找出某个网站或 API 无法连接的原因](https://kilobat.app/zh-hans/guides/recipes/why-cant-it-connect.html)。

## 常见问题

**为什么 Safari 浏览器正常，终端却失败？**

Safari 使用系统代理，终端工具使用 shell 中的代理变量。这两个设置可能不同。

**什么是自动代理发现？**

Mac 会在网络上查找代理规则。在没有代理的网络上，可以将其关闭。

## 参考资料

- [Apple 支持：在 Mac 上更改代理设置](https://support.apple.com/guide/mac-help/change-proxy-settings-on-mac-mchlp2591/mac)
- scutil(8)，macOS 27.2 自带的 man 手册页
- networksetup(8)，macOS 27.2 自带的 man 手册页
- lsof(8)，macOS 27.2 自带的 man 手册页

参考资料核查于 2026年10月29日。man 手册页为 macOS 自带版本；在“终端”中用 `man <name>` 打开。

## 相关指南

- [找出某个网站或 API 连不上的原因](https://kilobat.app/zh-hans/guides/recipes/why-cant-it-connect.html): 互联网正常、唯独某个地址连不上时，Kilobat 会逐层进行检查。
- [Mac 上公司代理证书导致“终端”工具出错](https://kilobat.app/zh-hans/guides/corporate-proxy-certificates.html): 一些公司网络会检查 HTTPS 流量。
- [Mac 上 Homebrew 或 npm 下载失败](https://kilobat.app/zh-hans/guides/homebrew-npm-download-fails.html): Homebrew 通过 curl 和 Git 下载。
- [Mac 上 VPN 已连接但无法上网](https://kilobat.app/zh-hans/guides/vpn-connected-no-internet.html): VPN 会通过隧道发送流量。
