VS Code + WSL 下 GitHub 访问不稳定 & Copilot/Codex 一直 Thinking 的完整解决方案(国内平台安全版)

VS Code + WSL 下 GitHub 访问不稳定 & Copilot/Codex 一直 Thinking 的完整解决方案(国内平台安全版)

本文记录一次开发环境排查过程:
从 VS Code + WSL 环境下 GitHub 克隆失败,到 Copilot/Codex 长时间停在 “Thinking…” 的完整解决步骤。

特别说明:

文中提到的 “网络辅助工具”“连接加速端口”“外网连通性优化” 都指代常见的 网络优化方式,用于解决访问境外开发资源时的稳定性问题(GitHub、Copilot 等)。

📌 一、问题概述

使用 VS Code + WSL 进行开发时可能遇到以下问题:

❌ 1. Git clone 失败

fatal: unable to access 'https://github.com/...': Failed to connect to 172.xx.xx.xx port xxxx 

❌ 2. VS Code Copilot / Codex 一直 “Thinking…”

  • 无法生成补全
  • 长时间转圈
  • VS Code 日志提示连接境外服务失败

🔍 二、核心原因(理解网络结构非常重要)

WSL 的网络结构分为 3 层:

层级属于哪里特点
Windows 主机VS Code 本体运行、网络辅助软件运行使用主机网络
WSL LinuxGit、curl、Copilot 后台运行127.0.0.1 指的是 WSL 自身
Remote WSL 扩展VS Code 与 WSL 的桥梁同时依赖两端的网络配置

❗关键点:

WSL 中的 127.0.0.1 不是 Windows,而是 Linux 自身。
当需要访问境外服务(如 GitHub、Copilot)时,WSL 必须正确访问到主机的网络出口。

主机出口地址可通过 WSL 查询:

cat /etc/resolv.conf |grep nameserver 

示例:

nameserver 172.25.176.1 

这个地址每次重启电脑可能变化,因此很多网络相关设置会失效。


⚙️ 三、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️⃣ 测试 WSL 是否能直连 GitHub

curl -I https://github.com 

返回 HTTP/2 200 说明已能正常访问。

3️⃣ 如果你使用了“网络辅助工具”

则需要在 WSL 中写入对应的 主机出口地址

exportHTTP_PROXY="http://172.25.176.1:xxxx"exportHTTPS_PROXY="http://172.25.176.1:xxxx"git config --global http.proxy http://172.25.176.1:xxxx git config --global https.proxy http://172.25.176.1:xxxx 

注意:
此处的 xxxx 代表你的“连接中转端口”(常见为 7890/10809 等)。


💡 四、VS Code Copilot/Codex 一直 Thinking 的解决步骤

1️⃣ 修改 VS Code 配置(安全版)

Ctrl + Shift + P → Preferences: Open Settings (JSON) 

写入:

{"http.proxySupport":"on","http.systemProxy":false,"http.proxyStrictSSL":false,"terminal.integrated.env.linux":{"NO_PROXY":"localhost,127.0.0.1,::1,.local"}}
⚠️ 不要在这里写死 "http.proxy",因为主机出口 IP 是会变化的。

VS Code 会自动继承 WSL 环境变量。


🚀 五、永久解决:自动检测并更新 WSL 的网络出口(脚本版)

将下面的脚本保存为:

~/fix_vscode_wsl_proxy.sh 

▶️ 脚本内容(国内安全版,已完全脱敏)

#!/usr/bin/env bashset -e # ==============================# VS Code + WSL 外网连通性一键修复脚本# 可在访问境外开发资源(如 GitHub、Copilot)异常时使用# ==============================PORT="${PORT:-7890}"echo"🔍 正在读取主机出口 IP ..."HOST_IP=$(awk'/^nameserver/ {print $2; exit}' /etc/resolv.conf ||true)if[ -z "$HOST_IP"];thenecho"❌ 未找到 nameserver,请手动检查 /etc/resolv.conf"exit1fiecho"✅ 主机出口 IP: ${HOST_IP}"echo" 使用端口: ${PORT}"exportHTTP_PROXY="http://${HOST_IP}:${PORT}"exportHTTPS_PROXY="http://${HOST_IP}:${PORT}"echoecho"🧪 正在测试 Copilot 连接 ..."set +e curl -I --max-time 5 --proxy "http://${HOST_IP}:${PORT}" https://api.githubcopilot.com set -e echoecho"📝 写入 ~/.bashrc 自动配置 ..."BASHRC="${HOME}/.bashrc"MARK="WSL auto network config"if!grep -q "${MARK}""$BASHRC"2>/dev/null;thencat>>"$BASHRC"<<EOF # === ${MARK} === HOST_IP=\$(awk'/^nameserver/ {print \$2; exit}' /etc/resolv.conf) if [ -n "\$HOST_IP" ]; then export HTTP_PROXY="http://\${HOST_IP}:${PORT}" export HTTPS_PROXY="http://\${HOST_IP}:${PORT}" fi # === End of ${MARK} === EOFecho"✅ 已写入 ~/.bashrc"elseecho"ℹ️ 自动配置已存在"fiecho"🎉 完成,重启 VS Code (Remote WSL) 可立即生效。"

▶️ 使用方法

nano ~/fix_vscode_wsl_proxy.sh chmod +x ~/fix_vscode_wsl_proxy.sh ~/fix_vscode_wsl_proxy.sh source ~/.bashrc 

🧪 六、检查是否成功

  • Git 能正常 clone
  • curl 可以正常访问 GitHub
  • Copilot 能正常返回 200
  • VS Code 不再卡 “Thinking…”
  • 重启电脑后依旧不用手动配置

📦 七、总结

问题根因解决方案
Git clone 失败出口 IP 变化、未正确连接外部服务在 WSL 中更新主机出口 IP
Copilot 卡住VS Code 未继承正确的网络代理VS Code 使用 WSL 环境变量
每次重启都要重新设置主机 IP 每次变化使用自动修复脚本

Read more

RUST:异步代码的测试与调试艺术

RUST:异步代码的测试与调试艺术

RUST:异步代码的测试与调试艺术 一、异步测试的本质与难点 1.1 异步测试与同步测试的区别 💡在Rust同步编程中,测试通常是顺序执行的,每个测试函数会阻塞线程直到完成,结果是确定的。而异步测试的结果可能受到任务调度、网络延迟、数据库连接等因素的影响,时序性和状态管理更加复杂。 同步测试示例: #[cfg(test)]modtests{#[test]fntest_add(){assert_eq!(1+1,2);}} 异步测试示例(使用Tokio测试宏): #[cfg(test)]modtests{usetokio::time::sleep;usestd::time::Duration;#[tokio::test]asyncfntest_async_add(){sleep(Duration::from_millis(100)).await;assert_

By Ne0inhk

Spring AI框架完整指南

Spring AI 框架完整指南(2025 年最新版) Spring AI 是 Spring 生态中专为 AI 工程设计的应用框架,于 2024 年正式推出,并在 2025 年快速发展,已成为 Java 开发者构建生成式 AI 应用的首选工具。它简化了与大型语言模型(LLM)、嵌入模型和向量数据库的集成,让企业级 Java 应用轻松接入 AI 能力,如聊天机器人、RAG(Retrieval Augmented Generation)和智能代理。根据官方文档和 2025 年最新发布(如 Spring AI 1.1 GA),本指南从基础到高级全面解析,结合代码示例和最佳实践,帮助你快速上手。内容基于

By Ne0inhk

Flutter for OpenHarmony: Flutter 三方库 ntp 精准同步鸿蒙设备系统时间(分布式协同授时利器)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 分布式开发、金融交易或具有严格时效性的业务(如:秒杀倒计时、双因素认证 OTP)时,开发者不能完全信任设备本地的系统时间。用户可能为了某种目的手动篡改时间,或者由于网络同步问题导致时间存在偏差。 ntp 软件包提供了一种直接与互联网授时中心(NTP 服务器)通信的能力。它能绕过本地系统时钟,获取绝对精准的 UTC 时间,并计算出本地时间与真实时间的“偏移量(Offset)”。 一、核心授时原理 ntp 通过测量往返网络延迟来消除误差。 发送 NTP 请求 (UDP) 返回高精度时间戳 鸿蒙 App 全球授时中枢 (pool.ntp.org) 计算网络往返耗时 (RTT) 得出绝对时间偏移量 生成鸿蒙业务专用准时 二、

By Ne0inhk
Xiaomusic 让小爱音箱解锁本地曲库,内网穿透更能远程点歌

Xiaomusic 让小爱音箱解锁本地曲库,内网穿透更能远程点歌

Xiaomusic 是一款专为小爱音箱打造的本地音乐管理工具,核心功能是绑定小米账号后让小爱音箱直接读取 NAS 中的音乐文件,支持语音点播、随机播放、循环歌单等基础操作,适配所有能运行 Docker 的设备,无论是家用 NAS(极空间、群晖等)还是普通电脑都能部署。它的适用人群主要是有本地音乐收藏习惯、不想被音乐平台会员限制的用户,尤其是家中有小爱音箱且配备 NAS 的家庭用户,优点在于部署门槛低,无需编程基础,轻量化占用资源少,还能通过网页端可视化管理歌单和设备,操作简单易上手。 使用 Xiaomusic 时能明显感受到本地音乐调用的便捷性,比如喊一声 “播放收藏的经典老歌” 就能秒响应,但也有需要注意的地方:小米账号绑定后建议定期检查登录状态,避免因账号安全设置导致连接失效;NAS 中的音乐文件最好按统一格式整理,否则可能出现语音点播识别不准确的情况;另外部署时要确保存储路径设置正确,不然会出现音乐文件无法读取的问题。 不过仅在局域网内使用 Xiaomusic 会有明显的局限性,比如人在公司想给家里的老人点播戏曲,却因为不在同一网络无法操作;出门旅游时想远程调整家中小爱音箱的

By Ne0inhk