composer必须显式配置http-proxy和https-proxy,端口须写在代理url中(如http://p:3128),且https-proxy也须用http://协议;ntlm代理需通过cntlm等工具中转。

Composer 不会自动读取系统代理端口,必须显式配置 http-proxy 和 https-proxy 字段,且端口号要写在代理地址里(如 http://proxy:3128),不能单独设“端口”配置项。
composer config -g http-proxy 的端口写在哪
端口是代理 URL 的一部分,不是独立参数。比如公司代理服务运行在 10.10.5.200 的 8080 端口,带认证用户名 dev、密码 P@ssw0rd,那完整命令是:
composer config -g http-proxy http://dev%40company:P%40ssw0rd%21@10.10.5.200:8080
注意三点:
-
:8080必须紧贴主机名后,中间不能有空格或斜杠 - 用户名/密码含
@、/、:等字符,必须 URL 编码(@→%40,/→%2F) -
https-proxy值也得用http://协议 + 同样端口,不是https://—— 这是 Composer 的硬性限制
局域网代理连不上?先确认端口是否可达
很多“配置完还是超时”的问题,其实根本没走到 Composer 逻辑层,而是本地连不通代理端口。快速验证方法:
- 用
curl -x http://10.10.5.200:8080 https://packagist.org/packages.json测试端口通不通 - 如果报
Connection refused,说明代理服务没开、IP 写错、端口被防火墙拦了,或代理本身不监听该 IP - Windows 用户注意:有些内网代理只监听
127.0.0.1,不响应localhost或机器名,务必用127.0.0.1:port测试
NTLM 代理(如 Windows 域代理)的端口怎么配
NTLM 代理本身不支持直接填端口进 Composer —— 因为 Composer 根本不解析 NTLM 认证。你填了 http://user:pass@proxy:8080 也会卡在 407 Proxy Authentication Required。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
真正能用的方案只有一条路:起一个本地中转代理,把 NTLM 转成普通 HTTP 代理,再让 Composer 连它。例如用 cntlm:
- 安装 cntlm 后配置
cntlm.ini,填入域、用户名、密码和原始 NTLM 代理地址+端口(如Proxy 10.10.5.200:8080) - 启动 cntlm,默认监听
127.0.0.1:3128(这个3128就是你给 Composer 配的端口) - 然后执行:
composer config -g http-proxy http://127.0.0.1:3128
绕过认证或换端口都没用,只要底层协议不匹配,端口再对也没意义。
为什么改了 http-proxy 还是走不了指定端口
常见干扰源有三个:
- 环境变量
http_proxy/HTTPS_PROXY仍存在,且值错误——Composer 虽然不优先读它们,但某些旧版本或特殊运行模式下会 fallback 使用,建议清掉:unset http_proxy HTTPS_PROXY(Linux/macOS)或set http_proxy=(Windows cmd) - 配置写进了项目级
composer.json而非全局,导致只在当前目录生效;查一下:composer config --list输出里有没有http-proxy在 global 区域 - 用了
proxy(无 s)这个已废弃字段,它会被忽略;只认http-proxy和https-proxy
端口本身很简单,难的是确认流量真从那个端口出去了——别信配置文件写了就等于通了。










