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

Java网络聊天室——OverThinker-ChatRoom

Java网络聊天室——OverThinker-ChatRoom

—项目专栏— 🚀 Java Chatroom 实时聊天室系统 一个基于 Spring Boot 和 WebSocket 技术实现的轻量级实时聊天室项目。 ✨ 项目概述 这是一个采用 前后端分离 架构的 Web 聊天应用。它专注于提供一个稳定、实时的消息通信平台,支持用户认证、好友管理、以及核心的一对一私聊功能。 特性描述实时通信基于 WebSocket 实现,消息秒级推送。核心功能用户注册登录、好友列表、私聊会话、消息历史记录。后端架构Spring Boot 配合 MyBatis,快速构建 RESTful API。前端技术传统 HTML/CSS/JavaScript + jQuery,轻量易维护。 📸 界面展示 (Screenshots) 登录与注册 登录页面 注册页面 聊天主界面 ⚡ 项目体验说明 先看说明!

By Ne0inhk
Elasticsearch核心概念与Java客户端实战 构建高性能搜索服务

Elasticsearch核心概念与Java客户端实战 构建高性能搜索服务

目录 🎯 先说说我被ES"虐惨"的经历 ✨ 摘要 1. 为什么选择Elasticsearch? 1.1 从数据库的痛苦说起 1.2 Elasticsearch的优势 2. ES核心架构解析 2.1 集群架构 2.2 索引与分片 3. Java客户端实战 3.1 客户端选型对比 3.2 RestHighLevelClient配置 3.3 Spring Data Elasticsearch配置 4. 索引设计最佳实践 4.1 索引生命周期管理 4.2 映射设计技巧 5. 查询优化实战 5.1 查询类型对比 5.

By Ne0inhk
Java 大视界 -- Java+Flink CDC 构建实时数据同步系统:从 MySQL 到 Hive 全增量同步(443)

Java 大视界 -- Java+Flink CDC 构建实时数据同步系统:从 MySQL 到 Hive 全增量同步(443)

Java 大视界 -- Java+Flink CDC 构建实时数据同步系统:从 MySQL 到 Hive 全增量同步(443) * 引言: * 正文: * 一、 核心认知:Flink CDC 与全增量同步逻辑 * 1.1 Flink CDC 核心原理 * 1.1.1 与传统数据同步方案的对比(实战选型参考) * 1.2 全增量同步核心逻辑(MySQL→Hive) * 1.2.1 关键技术点(实战必关注,每个点都踩过坑) * 二、 环境准备:生产级环境配置(可直接复用) * 2.1 核心依赖配置(pom.xml)

By Ne0inhk