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

无人机低空智能巡飞巡检平台:全域感知与智能决策的低空作业中枢

无人机低空智能巡飞巡检平台:全域感知与智能决策的低空作业中枢

无人机低空智能巡飞巡检平台是融合无人机技术、AI 算法、5G/6G 通信、GIS 地理信息系统与物联网的一体化解决方案,通过 "空天地一体化" 协同作业,实现对 500 米以下低空空域目标的无人化、自动化、智能化巡检管理,彻底革新传统人工巡检模式,为能源、交通、市政、安防等多领域提供高效、安全、精准的巡检服务。 一、核心架构:端 - 边 - 云协同的三层体系 平台采用 "终端执行 - 边缘计算 - 云端管控" 的全栈架构,构建低空智能服务闭环: 终端层:工业级无人机(多旋翼 / 固定翼 / 复合翼)+ 智能机场(换电 / 充电式)

MK米客方德SD NAND:无人机存储的高效解决方案

MK米客方德SD NAND:无人机存储的高效解决方案

在无人机技术迅猛发展的当下,飞控系统的数据记录对于飞行性能剖析、故障排查以及飞行安全保障极为关键。以往,SD 卡是飞控 LOG 记录常见的存储介质,但随着技术的革新,新的存储方案不断涌现。本文聚焦于以 ESP32 芯片为主控制器的无人机,创新性采用 SD NAND 芯片 MKDV32GCL-STPA 芯片进行 SD NAND 存储,测试其在飞控 LOG 记录功能中的表现。 米客方德 SD NAND 芯片特性 免驱动优势:与普通存储设备不同,在该应用场景下,SD NAND 无需编写复杂的驱动程序。这极大地简化了开发流程,缩短了开发周期,减少了潜在的驱动兼容性问题,让开发者能够更专注于实现核心功能。 自带坏块管理功能:存储设备出现坏块难以避免,而 MKDV32GCL - STPA 芯片自带的坏块管理机制可自动检测并处理坏块。这确保了数据存储的可靠性,避免因坏块导致的数据丢失或错误写入,提升了整个存储系统的稳定性。 尺寸小巧与强兼容性:

2023年电赛H题(信号分离装置)-FPGA+stm32解法

2023年电赛H题(信号分离装置)-FPGA+stm32解法

目录 前言 题目 解题思路 基本框架 代码思路 第一部分(FPGA的FIFO以及串口发送接收) 1.FIFO 2.(FPGA串口发送) 3.FPGA串口接收 4.总结 第二部分(stm32接收数据进行FFT识别波形以及频率并发送) 1.stm32串口接收 2.stm32进行FFT 3.stm32串口发送 第三部分(FPGA得到波形与频率后生成波形) 第四部分(FPGA锁相) 1.鉴相 2.环路滤波 3.反馈 第五部分(DAC输出) 第六部分(移相) 1.按键消抖 2.按键设置相位差 3.数码管显示相位 第七部分(FPGA代码总结) 后记 前言 本文章除开要求一使用的增益为一的加法器以外,其余皆由FPGA+

开启AI绘画 “工作流时代” 的神奇应用----Comfy UI | 使用CNB平台搭建ComfyUI

开启AI绘画 “工作流时代” 的神奇应用----Comfy UI | 使用CNB平台搭建ComfyUI

文章目录 * 概要 * 操作流程 概要 ComfyUI 是一款基于节点流程的可视化 AI 生成工具,核心围绕 Stable Diffusion 等主流生成式 AI 算法构建,通过图形化节点拆解生成全流程,实现从文本 / 图像输入到图像 / 视频输出的 “精准可控创作”。 腾讯云 CNB(Cloud Native Build,官网:cnb.cool)是基于 Docker 生态的云原生开发协作平台,核心定位是通过容器化技术与资源池化能力,为开发者提供 “一键就绪” 的远程开发环境,尤其聚焦开源项目协作与 AI 工具落地,无需本地配置复杂硬件与环境即可开展开发、测试与创作。链接:cnb 操作流程 接下来展示使用腾讯云cnb搭建comfyui的流程: (1)到CNB网站 fork 项目 链接:cnb 可以直接使用已经搭建好的comfyui