在 Mac 上把系统代理设置为 http://127.0.0.1:7890,一般有两种方式:图形界面配置和命令行配置。
一、图形界面配置
1)打开代理设置
路径:
系统设置 → 网络 → 选择你当前在用的网络
• Wi-Fi 就点 Wi-Fi
• 有线就点 以太网
然后点:
详细信息 → 代理
2)配置 Web 代理
通常至少配置这两个:
• Web 代理(HTTP)
• 安全 Web 代理(HTTPS)
分别填写:
• 服务器:127.0.0.1
• 端口:7890
如果你的本地代理工具支持 SOCKS,也可以顺便配置:
• SOCKS 代理
• 服务器:127.0.0.1
• 端口:7890
3)保存
点 好 → 应用
⸻
二、命令行配置
先查看当前网络服务名称:
bash
networksetup -listallnetworkservices
常见会看到:
• Wi-Fi
• USB 10/100/1000 LAN
• Ethernet
假设你当前用的是 Wi-Fi,执行:
设置 HTTP 代理
bash
networksetup -setwebproxy "Wi-Fi" 127.0.0.1 7890
设置 HTTPS 代理
bash
networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 7890
开启 HTTP/HTTPS 代理
bash
networksetup -setwebproxystate "Wi-Fi" on
networksetup -setsecurewebproxystate "Wi-Fi" on
如果你要配 SOCKS:
bash
networksetup -setsocksfirewallproxy "Wi-Fi" 127.0.0.1 7890
networksetup -setsocksfirewallproxystate "Wi-Fi" on
⸻
三、检查有没有配置代理
方法 1:查看系统代理配置
检查 HTTP 代理:
bash
networksetup -getwebproxy "Wi-Fi"
检查 HTTPS 代理:
bash
networksetup -getsecurewebproxy "Wi-Fi"
检查 SOCKS 代理:
bash
networksetup -getsocksfirewallproxy "Wi-Fi"
如果已经配置成功,通常会看到类似:
bash
Enabled: Yes
Server: 127.0.0.1
Port: 7890
Authenticated Proxy Enabled: 0
⸻
方法 2:查看系统是否设置了环境变量
有些程序不用系统代理,而是读 shell 环境变量。检查:
bash
echo $http_proxy
echo $https_proxy
echo $all_proxy
如果为空,说明当前终端环境变量没配。
但这不代表系统代理没配,因为系统代理和终端环境变量是两回事。
⸻
方法 3:测试是否真的走代理
可以执行:
bash
curl -I https://www.google.com
或者:
bash
curl https://ipinfo.io
如果你的系统代理生效,并且本地 7890 端口的代理程序正常运行,请求通常能通。
⸻
四、检查本地 7890 端口有没有在监听
这个很重要。系统代理配好了,如果本地代理程序没启动,也上不了网。
执行:
bash
lsof -i :7890
或者:
bash
netstat -an | grep 7890
如果有输出,说明本地 7890 端口在监听。
⸻
五、关闭代理
如果要取消:
bash
networksetup -setwebproxystate "Wi-Fi" off
networksetup -setsecurewebproxystate "Wi-Fi" off
networksetup -setsocksfirewallproxystate "Wi-Fi" off
⸻
六、最常见问题
1)配置了但不能上网
常见原因:
• 本地代理软件没启动
• 7890 端口不是 HTTP 代理端口
• 实际应该配 SOCKS,而不是 HTTP/HTTPS
• 当前用的网络服务不是 Wi-Fi,配错服务名了
2)浏览器能用,终端不能用
说明浏览器走的是系统代理,但终端里的某些工具不认系统代理,需要单独设置环境变量:
bash
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890