Connection refused 错误源于网络层连接失败,常见原因包括代理配置错误、DNS 解析失败、防火墙拦截或 GFW 影响;应先用 curl 和 nslookup 验证连通性,再切换国内镜像源(如清华源)或禁用代理快速定位问题。

composer install 或 update 时提示 Connection refused
这通常不是 Composer 本身出错,而是它尝试连接 packagist.org(或你配置的私库)时,HTTP 请求在系统层面被拒绝。最常见原因是本地网络策略、代理设置错误,或 DNS 解析失败导致 TCP 连接无法建立。
检查当前使用的仓库地址和网络可达性
先确认 Composer 正在用哪个源:
composer config -g repo.packagist
默认应返回类似:{"type": "composer", "url": "https://packagist.org"}
然后手动测试能否连通:
- 执行
curl -I https://packagist.org—— 若返回Connection refused或超时,说明网络层不通 - 执行
ping packagist.org—— 若不通,可能是 DNS 或防火墙问题 - 执行
nslookup packagist.org—— 看是否能解析出 IP;若无响应,换 DNS(如8.8.8.8)再试
临时切换国内镜像源(推荐快速验证)
国内直连 packagist.org 经常因 TLS 握手、GFW 或 CDN 节点异常失败。切到清华、阿里或腾讯镜像可绕过多数连接问题:
- 全局切换:
composer config -g repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/ - 仅当前项目:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/ - 恢复默认:
composer config -g --unset repos.packagist
注意:镜像 URL 必须以 / 结尾,否则部分版本会拼接错误路径导致 404 或连接异常。
排查代理和 HTTPS 环境干扰
如果你设过 http_proxy / https_proxy 环境变量,或在公司内网、IDE 内置终端中运行,Composer 可能被强制走代理——而代理服务已停、认证失效或不支持 HTTPS CONNECT,就会报 Connection refused:
- 查代理:
echo $http_proxy $https_proxy(Linux/macOS)或set http_proxy(Windows cmd) - 临时禁用:
unset http_proxy https_proxy(Linux/macOS),或set http_proxy= && set https_proxy=(Windows) - 如果必须走代理,确认代理地址可连:
curl -x http://your-proxy:port -I https://packagist.org - 某些杀毒软件(如 360、火绒)会劫持 HTTPS 流量并自签证书,导致 Composer 的 OpenSSL 校验失败,表现也像连接被拒;可临时退出这类软件测试
真正卡住的地方往往不是 Composer 配置,而是 curl 底层调用时拿不到有效 TCP 连接——盯着 curl 和 nslookup 的输出比反复 run composer update 更快定位问题。










