运行codex时出现登录失败:failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013) 解决方案 运行codex时出现登录失败:failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013) 解决方案问题描述在 Windows 系统上运行codex命令登录时出现以下报错Error logging in: failed to start login server 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013)输入codex回车后浏览器打开 OAuth 认证页面但终端一直卡在等待登录完成最终超时报出os error 10013套接字权限错误。原因分析Codex CLI 的登录机制是在本地127.0.0.1:1455启动一个临时 HTTP 服务器监听浏览器 OAuth 回调。但 Windows 系统的Hyper-V、WSL、或 Windows 网络地址转换服务 (WinNAT)会动态保留一段端口范围通常是 1024-2000恰好包含了 1455 端口。即使端口空闲没有被任何进程占用Windows 也会因为端口保留策略拒绝 Codex 绑定该端口报出os error 10013WSAEACCES - 权限被拒绝。可以通过以下命令验证# 查看被系统保留的端口范围 netsh interface ipv4 show excludedportrange protocoltcp输出示例协议 tcp 端口排除范围 开始端口 结束端口 ---------- -------- 1455 1555 ← 1455 端口被排除解决方案方案一调整 Windows 端口排除范围推荐步骤1以管理员身份打开 PowerShell停止相关服务# 停止 WinNAT 服务Windows 网络地址转换 net stop winnat ![配图](https://i-blog.csdnimg.cn/img_convert/c3f066086f261c6d9df844c12ebbc0ba.png) # 停止 Hyper-V 主机计算服务 net stop vmms # 如果有 Docker Desktop也停掉 net stop com.docker.service步骤2重新设置端口排除范围# 将动态端口排除范围设为从 1555 开始释放 1455 端口 netsh int ipv4 set dynamicport tcp start1555 num64000 # 如果是 IPv6 也存在相同问题 netsh int ipv6 set dynamicport tcp start1555 num64000步骤3恢复服务net start winnat net start vmms步骤4重新登录 Codexcodex此时浏览器 OAuth 回调会正常被 1455 端口接收登录成功。方案二停用 Hyper-V如果不需要如果你的电脑不需要使用 WSL2、Docker Desktop、虚拟机等功能可以直接关闭 Hyper-V# 以管理员身份运行 dism.exe /Online /Disable-Feature:Microsoft-Hyper-V-All # 重启电脑后生效 shutdown /r /t 0重启后重新运行codex即可正常登录。方案三使用 WSL2 环境登录曲线救国如果你不能修改系统端口配置可以通过 WSL2 内的 Linux 环境来运行 Codex# 在 WSL2 中安装 Codex npm install -g openai/codex # 在 WSL2 中运行 Codex端口不会被 Windows 保留策略影响 codexWSL2 有自己的网络栈1455 端口不会受 Windows 端口排除策略的限制。总结os error 10013的本质是Windows 系统端口保留策略而非代码 bug。推荐使用方案一调整动态端口范围一劳永逸解决。如果你安装了 Docker Desktop 或启用了 WSL2调整端口范围后记得检查相关服务是否正常运行。