VS Code + WSL 环境下 GitHub 访问与 Copilot 卡顿问题排查指南
在 Windows 上使用 VS Code 配合 WSL 开发时,经常会遇到两个棘手的问题:Git clone 失败,以及 Copilot 或 Codex 长时间停留在 "Thinking..." 状态。这通常不是软件本身的 bug,而是网络架构层面的配置差异导致的。
核心原因:WSL 的网络结构
理解这一点非常关键。WSL 的网络环境其实分三层:
- Windows 主机:运行 VS Code 本体和代理软件,负责实际的外网出口。
- WSL Linux:运行 Git、curl 等命令,这里的
127.0.0.1指的是 Linux 自身,而不是 Windows。 - Remote WSL 扩展:连接两者的桥梁,依赖两端的网络配置。
很多开发者误以为在 WSL 里设置代理就能通,其实 WSL 需要知道如何找到 Windows 主机的出口 IP。这个地址可以通过以下命令查看:
cat /etc/resolv.conf | grep nameserver
示例输出:
nameserver 172.25.176.1
注意,这个 IP 每次重启电脑可能会变,所以硬编码的代理配置很容易失效。
解决 Git Clone 不稳定
1. 清理残留配置
首先确保没有错误的旧配置干扰:
git config --unset http.proxy
git config --unset https.proxy
git config --global --unset http.proxy
git config --global --unset https.proxy
unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy ALL_PROXY all_proxy
2. 测试直连能力
尝试直接访问 GitHub,确认基础连通性:
curl -I https://github.com
如果返回 HTTP/2 200,说明网络本身没问题,只是代理没配好。
3. 动态配置代理
如果你使用了网络加速工具(如 Clash, Surge 等),需要在 WSL 中写入主机的出口地址。假设你的中转端口是 7890:
export HTTP_PROXY="http://172.25.176.1:7890"
export HTTPS_PROXY="http://172.25.176.1:7890"
git config --global http.proxy http://172.25.176.1:7890
git config --global https.proxy http://172.25.176.1:7890
这里的关键是不要写死 IP,因为重启后它会变。下面会介绍自动化的方法。
解决 Copilot/Codex 卡 "Thinking"
VS Code 的 Copilot 插件需要继承正确的网络环境变量才能连接境外服务。
修改 VS Code 配置
打开设置 JSON ( → ),添加或修改以下内容:

