Linux终端HTTP代理配置需同时设置http_proxy和https_proxy环境变量,因curl、wget、git等工具依URL协议自动选择对应变量,apt默认使用HTTPS源且仅认Acquire::http/https::Proxy配置,变量必须小写、带http://前缀、无空格、执行export才生效,no_proxy须逗号分隔后缀匹配。

终端代理环境变量只对命令行工具生效,不影响图形界面应用;设错端口、协议或漏掉 export 会导致 curl/wget/apt 等命令直连失败。
为什么 http_proxy 和 https_proxy 必须都设
很多命令(如 curl、wget、git clone)会根据目标 URL 协议自动选择对应代理变量。只设 http_proxy 时,访问 https://github.com 仍走直连,容易超时或被拒绝。apt 默认用 HTTPS 源,不设 https_proxy 就会卡在 “Reading package lists…”。
-
http_proxy控制 HTTP 请求(含部分 HTTPS 的 CONNECT 隧道建立) -
https_proxy明确控制 HTTPS 请求(现代工具优先读它) - 若代理支持 SOCKS5,可额外加
all_proxy=socks5://127.0.0.1:1080,但apt不认这个,必须用http_proxy/https_proxy
永久生效该写进 ~/.bashrc 还是 /etc/environment
~/.bashrc 是最常用也最安全的选择:只影响当前用户,不干扰系统服务或其他用户,且 shell 启动时自动加载。而 /etc/environment 是系统级配置,没有 export 语法支持,只能写 http_proxy=http://127.0.0.1:1080 这种纯键值对,且修改后需重启或重新登录才生效——对调试极不友好。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 编辑
~/.bashrc:在文件末尾追加两行(注意空格和等号两侧不能有空格)export http_proxy=http://127.0.0.1:1080export https_proxy=http://127.0.0.1:1080 - 立即生效:
source ~/.bashrc - 验证是否生效:
env | grep -i proxy应输出两行,且值与你设置一致 - 不要写成
export http_proxy = http://...(等号前后有空格 → 变量名变成http_proxy空格,值变成=开头的字符串)
apt 不走代理?检查这三处
apt 完全无视 http_proxy 环境变量,它有自己的配置机制。即使终端里 curl -I https://google.com 走代理成功,sudo apt update 仍可能直连失败。
- 临时让
apt用代理:运行sudo apt -o Acquire::http::Proxy="http://127.0.0.1:1080" update - 永久配置:创建
/etc/apt/apt.conf.d/80proxy,内容为Acquire::http::Proxy "http://127.0.0.1:1080";Acquire::https::Proxy "http://127.0.0.1:1080"; - 如果代理需要认证,格式是
"http://user:pass@127.0.0.1:1080",注意 URL 编码特殊字符(如@、:) -
apt不读all_proxy或ftp_proxy,只认Acquire::http::Proxy这类键名
测试代理是否真生效的可靠方式
别只信 env | grep proxy —— 那只是变量存在,不代表命令真用了它。真正验证得看网络行为。
- 用
curl -v http://httpbin.org/ip 2>&1 | grep "Connected to",输出里出现代理地址(如127.0.0.1)才算走通 - 用
timeout 5 curl -I https://www.google.com,5 秒内返回 HTTP 状态码(如HTTP/2 200),说明 HTTPS 代理链路正常 - 如果
git clone卡住,加-v参数看日志:git -c core.trace=true clone https://github.com/torvalds/linux,搜proxy或connect关键字 - 常见失败现象:
curl: (7) Failed to connect to httpbin.org port 80: Connection refused→ 代理进程没开或端口填错;curl: (56) Received HTTP code 407 from proxy→ 代理要认证但没提供凭据
最容易被忽略的是:代理地址写成 https:// 开头(比如 https_proxy=https://127.0.0.1:1080)——绝大多数 HTTP 代理服务监听的是 HTTP 协议端口,用 HTTPS 协议去连只会连接拒绝。务必统一用 http:// 前缀,无论 http_proxy 还是 https_proxy。

















