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

龙虾(OpenClaw)搭配本地千问模型(零token成本)实现电脑AI助理

龙虾(OpenClaw)搭配本地千问模型(零token成本)实现电脑AI助理

前言:现在AI助手遍地都是,但要么是云端服务要花token钱,要么是功能单一只能聊天,想找一个“不花钱、能干活、保隐私”的电脑AI助理,简直比登天!直到我发现了一个神仙组合——龙虾AI(OpenClaw)+ 本地千问模型,完美解决所有痛点:零token成本、全程本地运行、能接管电脑干活,无论是办公摸鱼还是高效产出,都能轻松拿捏。 本文是纯新手向原创实操教程,全程手把手,从工具认知、环境准备,到龙虾与本地千问的联动配置,再到实战场景演示,每一步都标清重点、避开坑点,不用懂复杂代码,不用花一分钱,普通人跟着走,10分钟就能拥有专属本地AI电脑助理,从此告别云端token焦虑和隐私泄露风险! 一、先搞懂:为什么是“龙虾+本地千问”?核心优势碾压同类组合 在开始操作前,先跟大家说清楚两个核心工具的作用,以及为什么它们搭配起来是“王炸”——毕竟市面上AI工具那么多,选对组合才能少走弯路,真正实现“零成本、高效率”。 1. 两个核心工具,

AI提示词:零基础入门与核心概念

AI提示词:零基础入门与核心概念

AI提示词:零基础入门与核心概念 📝 本章学习目标:理解什么是提示词,掌握提示词的核心概念,建立正确的AI对话思维,为后续学习打下坚实基础。 一、什么是提示词? 1.1 提示词的定义 提示词(Prompt),简单来说,就是你发给AI的指令或问题。它是人类与人工智能沟通的桥梁,是你告诉AI"我想要什么"的方式。 想象一下,你雇佣了一位超级聪明但对你的需求一无所知的助手。这位助手知识渊博、能力强大,但它需要你清晰地告诉它要做什么。提示词就是你给这位助手的工作指令。 💡 核心认知:提示词不是简单的"提问",而是一种结构化的指令设计。好的提示词能让AI精准理解你的意图,输出高质量的结果;糟糕的提示词则会让AI"答非所问",浪费你的时间。 1.2 提示词的重要性 为什么提示词如此重要?让我们通过一个对比来说明: ❌ 糟糕的提示词: 帮我写点东西 ✅ 好的提示词: 请帮我写一篇关于&

AI 大模型落地系列|Eino ADK体系篇:你对 ChatModelAgent 有了解吗?

AI 大模型落地系列|Eino ADK体系篇:你对 ChatModelAgent 有了解吗?

声明:本文源于官方文档,重点参考 Eino ADK: ChatModelAgent、Eino ADK: 概述、Eino ADK: Agent 协作 分享一个很棒的AI技术博客,对AI感兴趣的朋友强烈推荐去看看http://blog.ZEEKLOG.net/jiangjunshow。 为什么很多人把 ChatModelAgent 想简单了?一文讲透 ReAct、Transfer、AgentAsTool 与 Middleware * 1. 为什么很多人会把 `ChatModelAgent` 想简单 * 2. `ChatModelAgent` 在 ADK 里到底是什么 * 3. 其内部本质是一个 `ReAct` 循环 * 没有 Tool 时会怎样 * 为什么还需要 `MaxIterations` * 4. 哪几组配置真正决定了行为 * `Name / Description`