Mac OS 全局代理设置与检测指南
🔥 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
- 服务器:
- HTTP 代理:
- 勾选 “排除本地网络地址”(可选),防止代理影响局域网设备访问。
- **点击 “好” → “应用”**,然后测试代理是否生效。
📌 适用于 GUI 操作,适合所有 macOS 版本。
✅ 方法 2:使用 networksetup
命令行(适用于 Terminal 代理)
如果你希望 通过终端命令设置代理,可以使用 networksetup
:
🌐 设置 HTTP/HTTPS 代理
1 | sudo networksetup -setwebproxy Wi-Fi 127.0.0.1 7890 |
🧦 设置 SOCKS5 代理
1 | sudo networksetup -setsocksfirewallproxy Wi-Fi 127.0.0.1 7891 |
🚫 关闭代理
1 | sudo networksetup -setwebproxystate 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 系统代理
1 | networksetup -getwebproxy 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.8
和1.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,不走代理 |
使用 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
命令
1 | sudo networksetup -setwebproxystate 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” 里开启全局代理。
🚀 如果你遇到任何问题,可以告诉我,我可以帮你快速排查! 🔥
希望这篇教程对你有帮助!