答案是更换镜像源和检查DNS可解决Composer的"Could not resolve host"问题。首先确认网络连通性,尝试访问packagist.org;其次推荐国内用户切换至阿里云或Laravel China镜像源并清除缓存;接着检查DNS设置,改为8.8.8.8或1.1.1.1;再排查代理配置,必要时取消或正确设置代理;最后排除防火墙或安全软件干扰。通常换源与调整DNS即可恢复。

遇到 Composer 报错 "Could not resolve host" 时,通常是因为 Composer 无法连接到远程服务器(如 packagist.org 或 github.com),这属于网络或 DNS 解析问题。下面是一些实用的解决方法,帮助你快速排查和修复。
检查网络连接
确保你的设备可以正常访问互联网:
- 尝试在浏览器中打开 https://packagist.org 或 https://github.com,看是否能正常加载。
- 在终端运行 ping packagist.org,观察是否有响应。如果提示“未知主机”,说明 DNS 解析失败。
更换 Composer 镜像源(推荐国内用户)
如果你在国内,官方源访问慢或不稳定,建议切换为国内镜像:
- 使用阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 或使用 Laravel China 镜像:
composer config -g repo.packagist composer https://packagist.laravel-china.org
设置后,执行 composer clear-cache 清除缓存再试。
配置 DNS 解决解析问题
如果域名无法解析,可能是本地 DNS 服务有问题:
- 修改 DNS 为公共解析服务,例如 Google 的 8.8.8.8 或 Cloudflare 的 1.1.1.1。
- Windows 用户可在网络设置中更改;Linux/macOS 可编辑 /etc/resolv.conf 添加:
nameserver 8.8.8.8
检查代理设置
如果你在公司网络或使用代理,Composer 可能需要配置代理:
- 查看是否设置了系统代理:echo $HTTP_PROXY 或 echo $HTTPS_PROXY。
- 若不需要代理,清除 Composer 的代理配置:
composer config -g --unset http-proxy
composer config -g --unset https-proxy - 若需使用代理,正确设置:
composer config -g http-proxy http://your-proxy:port
临时关闭防火墙或安全软件
某些防火墙、杀毒软件或企业安全策略会拦截 Composer 的请求:
- 尝试临时关闭防火墙或安全软件,测试 Composer 是否恢复正常。
- 确认是否被组织网络策略限制(如学校、公司网络)。










