问题表现
如果你有以下问题之一:

- 对话没有输出

- 显示 fetch failed

- 模型名称不显示

问题分析
查看 copilot chat 的 output 显示:


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

WSL 环境下 VS Code Remote 连接时 GitHub Copilot 因继承宿主机代理设置导致无法使用。常见问题包括对话无输出、fetch failed 或模型名称不显示。解决方案是关闭本地代理配置或使用宿主机 IP 替代 127.0.0.1 进行代理转发。提供脚本自动获取宿主机 IP 并配置环境变量以解决网络互访问题。

如果你有以下问题之一:




查看 copilot chat 的 output 显示:


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

这个选项似乎是默认开启的,会在 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 Remote Windows Host (宿主机) Listens on Port X Listens on Port X Returns 172.25.48.1 Default Proxy: 127.0.0.1 X Connection Refused (Self) ✅ Correct Proxy: 172.25.48.1:Port X Traffic Forwarded WSL Application Loopback: 127.0.0.1 Query: ip route show | awk '{ print $3}' Proxy AppHost IP: 172.25.48.1 Loopback: 127.0.0.1
http: Use Local Proxy Configuration.
上面已经说明了如何在 WSL 命令行中访问宿主机程序,那么我们可以将之应用到代理设置上,以下脚本解决了一个问题——在 wsl 命令行中如何利用宿主机代理软件?
#!/bin/sh
hostip=$(ip route show |grep -i default |awk'{ print $3}')
wslip=$(hostname -I |awk'{print $1}')
port=7890
PROXY_HTTP="http://${hostip}:${port}"
PROXY_SOCKS5="socks5://${hostip}:${port}"
set_proxy(){
export http_proxy="${PROXY_HTTP}"
export HTTP_PROXY="${PROXY_HTTP}"
export https_proxy="${PROXY_HTTP}"
export HTTPS_proxy="${PROXY_HTTP}"
export ALL_PROXY="${PROXY_SOCKS5}"
export all_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];then
echo "Proxy setup succeeded!"
else
echo "Proxy setup failed!"
fi
}
if ["$1"="set"]
then set_proxy
elif ["$1"="unset"]
then unset_proxy
elif ["$1"="test"]
then test_setting
else
echo "Unsupported arguments."
fi
这个脚本自动获取宿主机的 ip,并利用宿主机上的本地代理软件来代理 wsl 中的网络请求,可以通过参数控制行为:
source proxy.sh set
# 开启代理,设置代理变量
source proxy.sh set
# 用 google.com 测试代理是否成功
source proxy.sh unset
# 关闭代理,清楚代理变量设置
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online