copilot在wsl中无法工作

copilot在wsl中无法工作

copilot 在 wsl 中无法工作——vscode remote develop 代理设置

通过本文,你可以了解:

  1. 如何解决 copilot 在 wsl 中无法使用的问题
  2. wsl和宿主机之间的网络通信
  3. vscode 的 remote develop 代理设置

问题表现

如果你有以下问题之一:

image-20251023112557124
  1. 对话没有输出
image-20251023112627748
  1. 显示 fetch failed
image-20251023112927595
  1. 模型名称不显示
image-20251023113136431

问题分析

查看 copilot chat 的 output 显示:

image-20251023115601077
image-20251023113051902

如果显示 proxies 相关问题,可以确定是 WSL 中运行的 vscode 调用了宿主机的 proxy 设置的问题。

image-20251023113614436

**这个选项似乎是默认开启的,会在 vscode 远程连接 wsl 开发中继承宿主机的 proxy 本地设置。**问题就出在这里,如果你使用的是宿主机本机运行的代理程序,那么proxy的ip就会设置为 127.0.0.1,但是在 wsl 中想要访问宿主机的代理端口,ip并不是 127.0.0.1(这会访问到 wsl 自己),而是需要通过如下方式查询宿主机 ip,然后访问到宿主机上的代理端口:

hostip=$(ip route show |grep -i default |awk'{ print $3}')echo$hostip

我的输出:

172.25.48.1 

因此 wsl 中要通过 172.25.48.1 ip 来访问宿主机上的端口。

WSL 2 / VS Code RemoteWindows Host (宿主机)Listens on Port XListens on Port XReturns 172.25.48.1Default Proxy: 127.0.0.1X Connection Refused (Self)✅ Correct Proxy: 172.25.48.1:Port XTraffic ForwardedWSL ApplicationLoopback: 127.0.0.1Query: ip route show | awk '{ print $3}'Proxy AppHost IP: 172.25.48.1Loopback: 127.0.0.1

问题解决

  1. 如果可以通过网络直连,直接关闭 http: Use Local Proxy Configuration.
  2. 如果依然需要设置代理,完成1后,修改如下设置:
image-20251023122228413
你可能见过这个方案:github - Copilot is not working is WSL remote connection? - Stack Overflow

这个方案确实可以成功,但是带来的副作用是 copilot 无法修改 WSL 中的文件,agent模式将称为摆设,因为你设置 copilot 完全工作在宿主机上(即设置的 "GitHub.copilot": [ "ui" ]

WSL和宿主机网络互访

上面已经说明了如何在WSL命令行中访问宿主机程序,那么我们可以将之应用到代理设置上,以下脚本解决了一个问题——在 wsl 命令行中如何利用宿主机代理软件?

#!/bin/shhostip=$(ip route show |grep -i default |awk'{ print $3}')wslip=$(hostname -I |awk'{print $1}')port=7890PROXY_HTTP="http://${hostip}:${port}"PROXY_SOCKS5="socks5://${hostip}:${port}"set_proxy(){exporthttp_proxy="${PROXY_HTTP}"exportHTTP_PROXY="${PROXY_HTTP}"exporthttps_proxy="${PROXY_HTTP}"exportHTTPS_proxy="${PROXY_HTTP}"exportALL_PROXY="${PROXY_SOCKS5}"exportall_proxy=${PROXY_SOCKS5}git config --global http.https://github.com.proxy ${PROXY_HTTP}git config --global https.https://github.com.proxy ${PROXY_HTTP}echo"Proxy has been opened."}unset_proxy(){unset http_proxy unset HTTP_PROXY unset https_proxy unset HTTPS_PROXY unset ALL_PROXY unset all_proxy git config --global --unset http.https://github.com.proxy git config --global --unset https.https://github.com.proxy echo"Proxy has been closed."}test_setting(){echo"Host IP:"${hostip}echo"WSL IP:"${wslip}echo"Try to connect to Google..."resp=$(curl -I -s --connect-timeout 5 -m 5 -w "%{http_code}" -o /dev/null www.google.com)if[${resp}=200];thenecho"Proxy setup succeeded!"elseecho"Proxy setup failed!"fi}if["$1"="set"]then set_proxy elif["$1"="unset"]then unset_proxy elif["$1"="test"]then test_setting elseecho"Unsupported arguments."fi

这个脚本自动获取宿主机的 ip,并利用宿主机上的本地代理软件来代理wsl中的网络请求,可以通过参数控制行为:

source proxy.sh set# 开启代理,设置代理变量source proxy.sh set# 用 google.com 测试代理是否成功source proxy.sh unset# 关闭代理,清楚代理变量设置

参考

WSL2与Windows间的网络互访 - 简书

WSL2 访问 Clash 网络代理 | 极客开发

Read more

告别查重降 AIGC 双重焦虑!宏智树 AI:让论文兼具原创性与人工质感

告别查重降 AIGC 双重焦虑!宏智树 AI:让论文兼具原创性与人工质感

作为深耕论文写作科普的教育博主,后台每天都被两类求助刷屏:一类是 “查重率居高不下,改到崩溃还是超标”;另一类是 “用 AI 写的初稿查重率合格,却被 AIGC 检测揪出,判定学术不端风险”。 2025 年以来,高校学术审核全面升级,查重率 + AIGC 检测双管齐下,传统的 “同义词替换”“语序调换” 降重法彻底失效。而宏智树 AI的降重降 AIGC 功能,堪称学术审核的 “通关密钥”,凭借 “语义重构 + 人工质感注入” 的双重策略,让你的论文既能轻松通过查重,又能摆脱 AI 生成痕迹!宏智树 AI 官网www.hzsxueshu.com,微信公众号搜一搜 “宏智树 AI” 即可体验。 一、传统降重与 AI 写作的双重雷区,

By Ne0inhk
从零开始,手把手教你用开源技术搭建一个能“读懂“文档的智能问答系统(收藏版)

从零开始,手把手教你用开源技术搭建一个能“读懂“文档的智能问答系统(收藏版)

从零开始,用开源技术搭建一个能"读懂"文档的智能问答系统 今天给大家分享一个非常实用的项目——Everything plus RAG 智能文档问答系统。 相信大家的电脑上都安装了 Everything,一个磁盘文件快速查找桌面级应用软件。 一直以来,我都有个想法,能否做一个 plus 版本,支持文档的全文检索和智能问答?!这个想法萌芽已久,且和同事、朋友做过多次讨论。 近期,终于腾出空来,把它实现了。 直接上效果视频。 这个系统解决了我们工作中一个常见的痛点——如何从海量文档中快速找到最准确答案? unsetunset一、为什么需要这样一个系统?unsetunset 先说说我遇到的问题。作为技术人,手头总有大量的文档: * 技术文档、API 手册堆积如山 * 项目笔记、会议记录散落各处 * 代码文件、配置文件数不胜数 传统的解决方案有两种: 方案一:全文搜索(如 Elasticsearch、国产化[Easysearch] 等)

By Ne0inhk
WSL2+Gitee代码管理实战指南

WSL2+Gitee代码管理实战指南

Git + Gitee + WSL2 代码管理 基础环境配置(Ubuntu/Debian 发行版选择) 根据自己的需求,选择自己熟悉的且稳定的发行版即可 我这里选用Ubuntu18.04LTS WSL2 中 Git 的安装与初始化设置 先查看WSL2中是否有git(我这里是Ubuntu18.04,比较老,是配合jetson nano 使用的) 输出如下格式就是有 没有的话就直接apt安装即可 然后设置GIT使用的邮箱和用户名 全局配置(SSH 公钥生成) 公钥生成         在本地生成公钥并上传到Gitee中,首先检查是否有SSH公钥,若有则复制使用,没有则创建新密钥。我这里就没有密钥,需要创建新公钥,后面会有三次提示,1-公钥文件保存路径(直接回车为默认路径,推荐)2- 密码短语,需要更高安全性可填,否则留空即可 3- 确认密码短语 ssh-keygen -t rsa -b

By Ne0inhk

FaceFusion开源换脸工具详解:支持高清视频与唇形同步

FaceFusion开源换脸工具详解:支持高清视频与唇形同步 在AI视觉技术飞速发展的今天,人脸替换早已不再是科幻电影中的特效专利。从短视频平台的趣味变脸,到影视后期中对演员形象的修复与重构,深度学习驱动的人脸合成工具正以前所未有的真实感和易用性走入大众视野。 其中,FaceFusion 作为当前最受欢迎的开源换脸项目之一,凭借其模块化架构、高保真输出和强大的扩展能力,成为众多创作者和技术爱好者的首选。它不仅实现了精准的人脸映射,更集成了面部增强、遮罩优化、音频驱动唇动等高级功能,真正将“换脸”从简单的图像叠加,推向了可应用于专业场景的成熟技术路径。 最新发布的 FaceFusion 3.1.x 版本 在性能与稳定性上进一步升级,全面支持4K视频处理,并显著提升了唇形同步的自然度。无论是为外语影片配音后自动匹配口型,还是构建AI数字人播报系统,这套工具链都展现出了极强的实用潜力。 项目地址:https://github.com/facefusion/facefusion 中文整合包 & 视频教程:ZEEKLOG 博客 | 换脸全流程指南 为什么是 FaceFusion?

By Ne0inhk