惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
博客园 - 三生石上(FineUI控件)
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
V
Visual Studio Blog
小众软件
小众软件
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
MongoDB | Blog
MongoDB | Blog
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
The Cloudflare Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Engineering at Meta
Engineering at Meta
L
LangChain Blog
Martin Fowler
Martin Fowler
GbyAI
GbyAI
博客园 - 司徒正美

博客园 - 悠哉大斌

AI治好了我的linux桌面恐惧症 全新Qoder CN (非Qoder CN IDE)技术架构分析 AI Agent 安全沙箱技术对比:E2B、Cube Sandbox 与 Docker Sandboxes linux 升级 claude code的坑 linux内核之Namespaces、Cgroups、Capabilities、Seccomp和Landlock 大语言模型推理中的隐藏瓶颈及其解决方法 Docker Sandboxes 技术是什么,和docker容器有什么区别 什么是 Docker Agent以及一个Docker Agent示例 windows wsl 安装 Temurin® JDK claude Code 和 codex 作为编程代理,前者使用typescript开发,后者使用rust,他们的决策依据是什么 Java 并发编程发展史与 java.util.concurrent 全景解析 LLM 真的改变了编码风格吗? 如果人工智能会犯错且不精确,为什么它正在改变世界? Python 的协程模型和 JavaScript 的 async/await python闭包和function.__closure__特殊属性 python 的 dunder name和 sunder name 基于nodejs设计REST API的知名开源框架 windows上使用node-oracledb Thick 模式连接 Oracle 11g Claude Code CLI连接 DeepSeek V4模型后调用报400错误 python里对象(object)到底是什么 Python 泛型演变史 Python 类型别名的演变 Python 类型提示的演变史 PEP 593 新增的Annotated 类型 Alibaba AgentScope 和 microsoft agent framework 详细对比分析 spring AI Alibaba Agent Framework 和 agentscope有什么区别和联系 AI Agent协作模式以及主流开源框架对协作模式的支持 Tailscale 是如何接管 DNS 的? Agent = Model + Harness 使用rust编写typescript编译器的难点在什么地方,哪些数据结构是rust不擅长的?
debian(WSL) apt 代理配置
悠哉大斌 · 2026-06-26 · via 博客园 - 悠哉大斌

🛠️问题:

windows开启了网络代理,且wsl已设置网络为镜像模式,但是安装了第三方软件源(被墙)后却无法通过sudo apt update更新缓存。

🔍原因:

APT 有自己的配置体系:APT 使用独立的配置文件(如 /etc/apt/apt.conf)或专用命令行参数,不会自动继承 shell 的 http_proxy。
apt 命令本身确实支持读取 http_proxy 和 https_proxy 环境变量。但是,执行 apt 必须拥有 root 权限(即使用 sudo),而 sudo 默认会“清空”环境变量。sudo 为了安全,默认只保留极少数环境变量(如 PATH、TERM),将 http_proxy 等绝大多数变量丢弃。

解决方案

✅方案 1,为 APT 配置代理(推荐持久配置)

在 apt 的命令行配置中,Acquire 是 APT 内部负责文件获取(下载)子系统的名称。
简单来说,Acquire 就是 APT 的“下载引擎”,所有通过网络获取软件包、索引文件(Packages、InRelease 等)的操作,都由这个子系统负责。
在 WSL 中执行

sudo bash -c 'echo "Acquire::http::Proxy \"http://127.0.0.1:你的代理端口/\";" > /etc/apt/apt.conf.d/95proxies'
sudo bash -c 'echo "Acquire::https::Proxy \"http://127.0.0.1:你的代理端口/\";" >> /etc/apt/apt.conf.d/95proxies'

注意 http 必须是小写,因为 APT 的配置字段是区分大小写的。

验证:

cat /etc/apt/apt.conf.d/95proxies

然后再次执行 sudo apt update

删除代理配置文件(可选):

sudo rm /etc/apt/apt.conf.d/95proxies

✅方案 2. 临时命令行方式(不持久)

sudo apt -o Acquire::http::Proxy="http://127.0.0.1:你的代理端口" -o Acquire::https::Proxy="http://127.0.0.1:你的代理端口" update

⚠️只在 apt update 这一个命令的执行过程中生效, 之后 apt install <package> 还是不会走代理导致失败。

✅方案 3. 在 sudo 命令前临时指定(不持久)

sudo http_proxy=http://127.0.0.1:你的端口 https_proxy=http://127.0.0.1:你的代理端口 apt update

⚠️只在 apt update 这一个命令的执行过程中生效, 之后 apt install <package> 还是不会走代理导致失败。

✅方案 4.使用 sudo -E 选项,保留当前用户的所有环境变量(不持久)

export http_proxy="http://127.0.0.1:你的代理端口"
export https_proxy="http://127.0.0.1:你的代理端口"
sudo -E apt update

⚠️只在 apt update 这一个命令的执行过程中生效, 之后 apt install <package> 还是不会走代理导致失败。

附录,apt update 返回内容的状态标识

在 apt update 的输出中,这四种状态标识代表了 APT 在连接软件源服务器并比对本地缓存时的具体处理结果。简单来说:

  • Hit(命中):本地缓存有效,跳过下载(速度快)。
  • Get(获取):检测到更新,正在下载新数据。
  • Ign(忽略):文件无变化或非必需,主动跳过(通常无害)。
  • Err(错误):下载失败,需要立即关注并修复。