使用一些网络代理程序的时候,可能默认只能影响浏览器等软件的网络代理,在cmd等环境下默认不会生效。
此时可以手动设置环境变量,使该cmd窗口适应对应网络代理。
此处用的是v2rayN代理工具(机场另找),v2rayN 的本地代理端口,通常 HTTP 端口是 10809,SOCKS 端口是 10808,可以在 v2rayN 界面底部或“参数设置”中查看确认。
因为不同的软件支持的代理协议不一样。v2rayN 为了兼容更多程序,就同时提供了两种“语言”的代理服。
10809 端口:接待说 HTTP 协议的程序(比如浏览器、Claude Code、Git 等)。
10808 端口:接待说 SOCKS 协议的程序(一些下载工具、游戏加速器、特定命令行工具等)。
因此,在cmd窗口中设置:
set HTTP_PROXY=http://127.0.0.1:10809
set HTTPS_PROXY=http://127.0.0.1:10809
这两条命令的作用,是手动告诉 CMD 里的程序(比如 Git、Claude Code):“上网请走本机 10809 端口的 HTTP 代理”。如果变量不存在,会直接原样显示 %HTTP_PROXY% 和 %HTTPS_PROXY%,而不是一个具体的地址。也就是说,原本没有值,等于空。命令行程序看到这两个变量为空,就认为“不需要代理,直接连”。
这是临时堆该cmd的环境变量设置,仅在当前窗口生效。若想长期生效可以直接去找设置的环境变量,修改全局环境变量。
但设置全局代理后,所有支持该变量的程序都会尝试通过代理连接,包括访问本机或公司内网的服务。程序在尝试连接 localhost、127.0.0.1 或内网服务器时,会被错误地路由到代理,导致连接失败或超时。此外也可能导致一些其他潜在问题,此处不一一列举。