你一定遇到过这样的问题:本地codex(或cursor等Agent)在后台运行时需要挂着梯子,同时希望使用其他软件处理工作,如上知网检索文献、百度搜索网页,却无法自如切换代理的开关,导致只能等待后台Agent任务结束。类似的场景,对于需要来回切换科学上网的学术工作者来说屡见不鲜。

本文以网络既有方案为基础,探索基于代理端口配置的、为浏览器/软件单独设置代理的方法,从而解决上述问题。

前置:代理软件的端口配置(以v2rayN为例)

一般科学上网时,都在代理软件中直接开启系统代理,让所有软件一起走代理。要实现各个软件分别设置代理,可以配置代理端口,让某个软件单独配代理,其他软件不受影响。

以v2rayN为例,它默认启用两个本地端口。软件启动后,会在本机监听:

SOCKS5 代理:127.0.0.1:10808 # 本机10808端口
HTTP 代理:127.0.0.1:10809 # 本机10809端口

任何支持设置代理的软件,把代理地址填成上面之一,它的流量就会被v2rayN代理。

其余代理软件的端口可能不一样,如clash默认为7890,一般都支持自己设置这个端口

浏览器的代理端口配置

需下载浏览器的代理插件——SwitchyOmega(一般下载名称为Zero Omega的这一个)。下载后进行配置:

  1. 新增一个情景模式(命名为本地代理),填写本地代理软件的端口:代理协议SOCKS5、代理服务器127.0.0.1(本地)、代理端口填上述的(v2rayN为10808)
  2. 在auto switch中,可以配置不同域名的代理规则,如www.google.com选取上述情景模式、www.baidu.com选取直接连接
  3. 如下图:
  4. 选择直接连接时,不走代理直接访问(适用于国内网站)
  5. 选择系统代理时,若代理软件开启系统代理则发挥作用,否则无作用
  6. 选择上述新增的情景模式(本地代理)时,走代理软件(无论代理软件是否开启系统代理)
  7. 选择auto switch时,根据你配置的规则决定是否开启代理

Codex桌面端的代理端口配置

初步方法的讨论

Codex不提供内置的代理配置方法,并且桌面端已有方法讨论了以下的策略:

配置流程如下:

  1. 找到codex配置文件夹C:\Users\用户名\.codex
  2. 创建环境文件.env,用记事本打开
  3. 修改其内容如下并保存:

    HTTP_PROXY=http://127.0.0.1:10809 # HTTP代理端口
    HTTPS_PROXY=http://127.0.0.1:10809 # HTTPS代理端口
    ALL_PROXY=socks5h://127.0.0.1:10808 # SOCKS5代理端口
    NO_PROXY=localhost,127.0.0.1,::1 # 不开启代理时无操作
该方法的原理:许多现代应用(特别是基于Electron或Node.js等框架构建的)会使用dotenv这类库,在启动时自动从项目根目录加载.env文件,并将其中的变量(如HTTP_PROXY)注入到应用的环境变量中。

终极方法

上述方法虽然能成功代理、正常对话,但会出现Codex打开速度缓慢、无法查看用量的问题。根据相关讨论,原因是:Codex的部分服务(如UI与后端核心进程的通信)会走本地回环(Localhost),如果一股脑全把流量送去代理服务器,会导致本地通信死循环或被代理软件拦截。

为解决此问题,提供完美的代理方案,需要引入Proxifier进行进程级的代理接管。总体架构如下图:

PixPin_2026-11-09_22-36-14.png

具体配置流程如下:

  1. 安装proxifier后,在代理服务器新增本地代理软件的端口
  2. 按下图所示,设置代理规则:

PixPin_2026-11-09_21-53-16.png

其中:

该方法的原理:通过针对本地回环相关服务的Codex代理规则,让Codex目标为本地的通讯服务不被一同代理,而是正确通过本地直连。注意:针对本地回环相关服务的Codex代理规则,从优先级上确保其有效。

References