macbook取消代理需四步归零:图形界面清空所有代理协议及忽略列表;终端执行unset清除当前会话变量;编辑~/.zshrc等配置文件删除export行并source生效;检查apt、git、ide等独立配置及后台代理进程。

直接取消已设置的代理,关键不是“执行一条命令”,而是分清代理是临时生效还是永久写死在配置里——否则你 unset 了,新开个终端又回来了。
怎么判断代理是不是当前会话临时设置的
先看它还在不在:运行 env | grep -i proxy。如果输出里有 http_proxy、https_proxy、ALL_PROXY 或 no_proxy,说明变量确实被设置了。
- 如果只看到
http_proxy=...这类值,但没在配置文件里写死,大概率是上一条命令手动export的——这种只需unset http_proxy https_proxy ALL_PROXY就能清掉当前终端 - 如果
no_proxy里填了一堆域名(比如"localhost,127.0.0.1,.example.com"),别误删它;它是白名单,不影响代理开关,但删了可能导致本地服务连不上 -
ALL_PROXY是 SOCKS 通用代理变量,和http_proxy独立存在;有些工具(如curl、git)优先读它,光清http_proxy不够
为什么 unset 后新终端还是走代理
因为代理被写进了启动配置文件,每次开终端自动加载。最常中招的是这三个文件:
-
~/.bashrc:90% 用户在这里加过export http_proxy=...,搜grep -n "proxy" ~/.bashrc快速定位 -
~/.profile或~/.bash_profile:某些桌面环境(如 Ubuntu GNOME)用它加载环境变量,不能只改.bashrc -
/etc/environment:系统级配置,所有用户生效,需sudo编辑;这里写的是http_proxy="http://..."格式,没有export关键字
删掉对应行后,必须重新加载:对用户级文件运行 source ~/.bashrc(或 source ~/.profile),对 /etc/environment 需登出重进或重启终端模拟器。
APT、Git、curl 这些工具还走代理怎么办
它们不完全依赖环境变量,各自有独立配置:
- APT:检查
/etc/apt/apt.conf是否含Acquire::http::Proxy行,有就删或注释掉 - Git:运行
git config --global --get http.proxy,若返回地址,用git config --global --unset http.proxy清除 - curl:默认读环境变量,但若 ~/.curlrc 里写了
proxy = ...,也得手动删 - Docker:如果
/etc/docker/daemon.json里有"proxies"段,需要删掉并sudo systemctl restart docker
哪些地方容易漏掉导致代理“阴魂不散”
最隐蔽的不是环境变量,而是服务进程本身还在跑:
- 查有没有后台代理进程:
ps aux | grep -E "(privoxy|polipo|squid|tor)",真有就sudo kill -9 PID - GNOME/KDE 桌面的网络设置里可能开了“全局代理”,即使环境变量清空,图形程序(如 Firefox、VS Code)仍会走它——去「设置 → 网络 → 代理」里选“无代理”
- 某些 IDE(如 JetBrains 系列)自带代理设置,在 Settings → Appearance & Behavior → System Settings → HTTP Proxy 里单独关掉
真正干净的取消,是环境变量、配置文件、服务进程、GUI 设置四者全部归零;缺一环,代理就可能在某个角落悄悄生效。











