问题描述
VS Code Codex 插件- failed to start login server: Port 127.0.0.1:1455 is already in useCodex CLI/Desktop- 以一种访问权限不允许的方式做了一个访问套接字的尝试 (os error 10013)
很显然是端口占用问题,让我们查询一下哪个程序占用了这个端口:
netstat -ano | findstr :1455
怎么会没有输出?!
系统问题
既然没有程序占用这个端口,那么会不会是系统问题呢?结合 os error 10013 ,得知 Windows 绑定到排除端口会触发 WSAEACCES (10013)。那么我们就来看看 Windows 的排除端口列表:
$ netsh int ipv4 show excludedportrange protocol=tcp
Protocol tcp Port Exclusion Ranges
Start Port End Port
---------- --------
1089 1188
1189 1288
1289 1388
1389 1488
2960 3059
5357 5357
9011 9110
50000 50059 *
* - Administered port exclusions.
成功定位。
问题结论
1455 端口并没有被某个进程占用,而是被 Windows 放进了排除端口范围。
这种 excludedportrange 很常见,通常是系统组件或虚拟化/网络组件预留出来的。
解决办法
只需要把这个范围调整一下,或者直接把 1455 从排除范围里移除。
使用管理员权限运行以下命令:
netsh int ipv4 set dynamic tcp start=49152 num=16384
netsh int ipv6 set dynamic tcp start=49152 num=16384
这会将动态端口范围设置为 49152-65535,避免与 Codex 使用的 1455 端口冲突。
执行完后,重启电脑,问题应该就解决了。