PS E:flutter_codemonorepo> wsl
wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。

使用的 clash 科学上网,在 Windows 11 设备使用编译器插件还是 cli 尝试登录 codex 都无法正常访问登录,提示如下异常

Token exchange failed: token endpoint returned status 403 Forbidden

原因分析

开始以为浏览器问题,尝试清空缓存,重启设备多次无效

检索多篇文档,分析是 wsl 网络配置问题,WSL(Windows Subsystem for Linux)环境的代理配置没有正确设置,导致无法通过代理访问 Codex 的服务。网络访问不通或请求被拒绝会导致此错误。

为了解决这个问题,我们需要确保 WSL 环境能够通过正确的代理访问外部网络。在此之前,可能会有一些误解,认为 WSL 会自动使用宿主机的网络配置,但实际上,WSL 内部的网络设置与宿主机的网络配置是独立的。默认情况下,WSL 使用的是内部虚拟网络接口,而不是宿主机的全局代理。

解决方案

简单处理

直接将 nat 模式更改为镜像尝试解决,如果可以正常访问就不需要手动设置

wsl 网络.png

手动设置

通过以下几个步骤,你可以在 WSL 中正确配置代理,并确保可以通过 Codex 登录。

graph TD;
    A[获取宿主机 IP 地址] --> B[设置代理配置];
    B --> C[验证网络连接];
    C --> D[尝试 Codex 登录];
    D --> E[登录成功];
    D --> F[登录失败: 403 错误];
    F --> B[检查并重新配置代理];
    E --> G[成功使用 Codex];

步骤详细说明

  1. 获取宿主机 IP 地址
    使用命令获取宿主机的 IP 地址,它是 WSL 和宿主机之间通信的桥梁。执行以下命令:

    ip route show | grep -i default | awk '{ print $3 }'
    

    这将返回宿主机的 IP 地址,例如 192.168.1.100

  2. 设置代理配置
    根据第一步获取的宿主机 IP 地址,设置 HTTP 和 HTTPS 代理。这将确保 WSL 可以通过宿主机的代理进行网络访问。

    export http_proxy="http://192.168.1.100:7890"
    export https_proxy="https://192.168.1.100:7890"
    

    这里 7890 是你的代理端口,默认情况下,科学上网工具通常使用这个端口。

  3. 验证网络连接
    配置完代理后,最好验证网络是否能够正常工作。可以通过 curl 命令测试访问外部网站:

    curl https://www.google.com
    

    如果返回了正常的网页内容,说明网络配置成功。

  4. 尝试 Codex 登录
    在网络配置正确的情况下,重新尝试 Codex 登录。此时应该能够通过代理成功登录。

  5. 检查和修复登录失败
    如果仍然出现 403 错误,检查代理配置是否正确,并重新配置。可能是代理端口或其他设置问题。


end

通过以上步骤确保 WSL 正常配置网络并通过代理访问 Codex。如果配置正确,登录应该不会再遇到 403 Forbidden 错误,Codex 的使用也将变得更加顺畅。

本站提供的所有下载资源均来自互联网,仅提供学习交流使用,版权归原作者所有。如需商业使用,请联系原作者获得授权。 如您发现有涉嫌侵权的内容,请联系我们 邮箱:[email protected]