🔥 macOS 设置全局代理 & 检查代理是否生效本指南适用于 macOS Monterey / Ventura / Sonoma,涵盖 如何设置全局代理(HTTP/SOCKS5)、如何检查代理是否生效 以及 如何排查代理问题。
📌 1. macOS 设置全局代理macOS 自带代理设置,支持 HTTP / HTTPS / SOCKS5 代理,此外你还可以通过 networksetup 命令行或 Clash/V2Ray 进行全局代理。
✅ 方法 1:通过 macOS 网络设置适用于 HTTP / HTTPS / SOCKS5 代理
**打开 “系统设置”**( → **”系统设置”**)。
进入 “网络” → 点击当前连接的 WiFi 或 以太网。
点击 “代理”(Proxy) → 选择 “手动代理” 方式:
HTTP 代理:
服务器:127.0.0.1
端口:7890(Clash 默认端口)
HTTPS 代理:
服务器:127.0.0.1
端口:7890
SOCKS 代理:
服务器:127.0.0.1
端口:7891
勾选 “排除本地网络地址”(可选),防止代理影响局域网设备访问。
**点击 “好” → “应用”**,然后测试代理是否生效。
📌 适用于 GUI 操作,适合所有 macOS 版本。
✅ 方法 2:使用 networksetup 命令行(适用于 Terminal 代理)如果你希望 通过终端命令设置代理,可以使用 networksetup:
🌐 设置 HTTP/HTTPS 代理12sudo networksetup -setwebproxy Wi-Fi 127.0.0.1 7890sudo networksetup -setsecurewebproxy Wi-Fi 127.0.0.1 7890
🧦 设置 SOCKS5 代理1sudo networksetup -setsocksfirewallproxy Wi-Fi 127.0.0.1 7891
🚫 关闭代理123sudo networksetup -setwebproxystate Wi-Fi offsudo networksetup -setsecurewebproxystate Wi-Fi offsudo networksetup -setsocksfirewallproxystate Wi-Fi off
📌 适用于终端用户,可用于自动化脚本,但仅限 GUI 网络代理,不影响 CLI 工具。
✅ 方法 3:使用 Clash for Mac / Surge / V2Ray 设置全局代理如果你使用 Clash / V2Ray / Surge,可以直接在软件内开启 **”系统代理”**,让 macOS 全局流量走代理。
🎯 在 Clash for Mac 设置全局代理
打开 Clash for Mac。
进入 “General”(通用),打开 **”Set as System Proxy”**。
选择代理模式:
Rule(规则模式)【推荐】适合日常使用,不影响国内访问。
Global(全局模式) 所有流量都走代理(适用于科学上网)。
Direct(直连模式) 关闭代理,直连网络。
📌 适用于 HTTP / HTTPS / SOCKS5 代理,可代理所有应用,包括 CLI 命令。
📌 2. 检查代理是否生效设置代理后,可以用以下方法检测代理是否正常工作。
✅ 方法 1:检查 macOS 系统代理123networksetup -getwebproxy Wi-Finetworksetup -getsecurewebproxy Wi-Finetworksetup -getsocksfirewallproxy Wi-Fi
如果返回 Enabled: Yes,说明代理已生效。
如果返回 Enabled: No,说明代理未生效。
✅ 方法 2:使用 curl 测试代理1curl -I --proxy http://127.0.0.1:7890 https://www.google.com
如果返回 HTTP 200 OK,说明代理已生效。
如果超时或失败,可能是代理未生效或被拦截。
✅ 方法 3:检查外网 IP1curl ifconfig.me
如果 IP 变成代理服务器的 IP,说明代理已生效。
如果 IP 仍是本机 IP,说明代理未生效。
✅ 方法 4:检查 DNS 解析1nslookup google.com 8.8.8.8
如果能解析 IP,说明 DNS 正常。
**如果失败,可能是 DNS 被干扰,可以手动设置 8.8.8.8 和 1.1.1.1**:1sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 1.1.1.1
✅ 方法 5:检查 Clash 代理端口是否正常1lsof -i :7890
如果 Clash 监听了 127.0.0.1:7890,说明代理正常运行。
如果无输出,说明 Clash 未启动或端口未监听。
📌 3. 代理常见问题 & 解决方案
问题
原因
解决方案
curl -I https://www.google.com 超时
代理未正确设置
确保 Clash 运行并打开 System Proxy
ping google.com 超时
ping 走 ICMP,不走代理
使用 curl 或 tracert 代替 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 代理
**进入 “系统设置” → “网络” → “代理”**。
取消勾选所有代理选项。
**点击 “好” → “应用”**。
✅ 方法 2:使用 networksetup 命令123sudo networksetup -setwebproxystate Wi-Fi offsudo networksetup -setsecurewebproxystate Wi-Fi offsudo 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” 里开启全局代理。
🚀 如果你遇到任何问题,可以告诉我,我可以帮你快速排查! 🔥
希望这篇教程对你有帮助!