Mac OS 全局代理设置与检测指南

🔥 macOS 设置全局代理 & 检查代理是否生效

本指南适用于 macOS Monterey / Ventura / Sonoma,涵盖 如何设置全局代理(HTTP/SOCKS5)、如何检查代理是否生效 以及 如何排查代理问题


📌 1. macOS 设置全局代理

macOS 自带代理设置,支持 HTTP / HTTPS / SOCKS5 代理,此外你还可以通过 networksetup 命令行或 Clash/V2Ray 进行全局代理。

✅ 方法 1:通过 macOS 网络设置

适用于 HTTP / HTTPS / SOCKS5 代理

  1. **打开 “系统设置”**( → **”系统设置”**)。
  2. 进入 “网络”点击当前连接的 WiFi 或 以太网
  3. 点击 “代理”(Proxy) → 选择 “手动代理” 方式:
    • HTTP 代理
      • 服务器:127.0.0.1
      • 端口:7890(Clash 默认端口)
    • HTTPS 代理
      • 服务器:127.0.0.1
      • 端口:7890
    • SOCKS 代理
      • 服务器:127.0.0.1
      • 端口:7891
  4. 勾选 “排除本地网络地址”(可选),防止代理影响局域网设备访问。
  5. **点击 “好” → “应用”**,然后测试代理是否生效。

📌 适用于 GUI 操作,适合所有 macOS 版本


✅ 方法 2:使用 networksetup 命令行(适用于 Terminal 代理)

如果你希望 通过终端命令设置代理,可以使用 networksetup

🌐 设置 HTTP/HTTPS 代理

1
2
sudo networksetup -setwebproxy Wi-Fi 127.0.0.1 7890
sudo networksetup -setsecurewebproxy Wi-Fi 127.0.0.1 7890

🧦 设置 SOCKS5 代理

1
sudo networksetup -setsocksfirewallproxy Wi-Fi 127.0.0.1 7891

🚫 关闭代理

1
2
3
sudo networksetup -setwebproxystate Wi-Fi off
sudo networksetup -setsecurewebproxystate Wi-Fi off
sudo networksetup -setsocksfirewallproxystate Wi-Fi off

📌 适用于终端用户,可用于自动化脚本,但仅限 GUI 网络代理,不影响 CLI 工具。


✅ 方法 3:使用 Clash for Mac / Surge / V2Ray 设置全局代理

如果你使用 Clash / V2Ray / Surge,可以直接在软件内开启 **”系统代理”**,让 macOS 全局流量走代理。

🎯 在 Clash for Mac 设置全局代理

  1. 打开 Clash for Mac
  2. 进入 “General”(通用),打开 **”Set as System Proxy”**。
  3. 选择代理模式:
    • Rule(规则模式)【推荐】适合日常使用,不影响国内访问。
    • Global(全局模式) 所有流量都走代理(适用于科学上网)。
    • Direct(直连模式) 关闭代理,直连网络。

📌 适用于 HTTP / HTTPS / SOCKS5 代理,可代理所有应用,包括 CLI 命令。


📌 2. 检查代理是否生效

设置代理后,可以用以下方法检测代理是否正常工作。

✅ 方法 1:检查 macOS 系统代理

1
2
3
networksetup -getwebproxy Wi-Fi
networksetup -getsecurewebproxy Wi-Fi
networksetup -getsocksfirewallproxy Wi-Fi
  • 如果返回 Enabled: Yes,说明代理已生效
  • 如果返回 Enabled: No,说明代理未生效

✅ 方法 2:使用 curl 测试代理

1
curl -I --proxy http://127.0.0.1:7890 https://www.google.com
  • 如果返回 HTTP 200 OK,说明代理已生效
  • 如果超时或失败,可能是代理未生效或被拦截

✅ 方法 3:检查外网 IP

1
curl ifconfig.me
  • 如果 IP 变成代理服务器的 IP,说明代理已生效
  • 如果 IP 仍是本机 IP,说明代理未生效

✅ 方法 4:检查 DNS 解析

1
nslookup google.com 8.8.8.8
  • 如果能解析 IP,说明 DNS 正常
  • **如果失败,可能是 DNS 被干扰,可以手动设置 8.8.8.81.1.1.1**:
    1
    sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 1.1.1.1

✅ 方法 5:检查 Clash 代理端口是否正常

1
lsof -i :7890
  • 如果 Clash 监听了 127.0.0.1:7890,说明代理正常运行
  • 如果无输出,说明 Clash 未启动或端口未监听

📌 3. 代理常见问题 & 解决方案

问题 原因 解决方案
curl -I https://www.google.com 超时 代理未正确设置 确保 Clash 运行并打开 System Proxy
ping google.com 超时 ping 走 ICMP,不走代理 使用 curltracert 代替 ping
curl ifconfig.me 显示本机 IP 代理未生效 重新启用 System Proxy 或手动设置
networksetup -getwebproxy Wi-Fi 显示 Disabled 代理未开启 手动启用:sudo networksetup -setwebproxy Wi-Fi 127.0.0.1 7890
Clash 规则模式无法访问外网 规则错误 设为 Global 模式,测试代理是否可用

📌 4. 关闭/重置代理

如果你不再需要代理,可以使用以下方法关闭代理。

✅ 方法 1:关闭 macOS 代理

  1. **进入 “系统设置” → “网络” → “代理”**。
  2. 取消勾选所有代理选项
  3. **点击 “好” → “应用”**。

✅ 方法 2:使用 networksetup 命令

1
2
3
sudo networksetup -setwebproxystate Wi-Fi off
sudo networksetup -setsecurewebproxystate Wi-Fi off
sudo networksetup -setsocksfirewallproxystate Wi-Fi off

📌 适用于命令行全局代理的恢复


📌 5. 总结

任务 操作
设置 HTTP/HTTPS 代理 sudo networksetup -setwebproxy Wi-Fi 127.0.0.1 7890
设置 SOCKS5 代理 sudo networksetup -setsocksfirewallproxy Wi-Fi 127.0.0.1 7891
检查代理是否生效 networksetup -getwebproxy Wi-Fi
测试代理访问 Google curl -I --proxy http://127.0.0.1:7890 https://www.google.com
检查外网 IP curl ifconfig.me
重置代理 sudo networksetup -setwebproxystate Wi-Fi off

📌 如果你使用 Clash for Mac,推荐直接在 “System Proxy” 里开启全局代理

🚀 如果你遇到任何问题,可以告诉我,我可以帮你快速排查! 🔥

希望这篇教程对你有帮助!