树莓派Ubuntu 20.04系统npm安装包报EHOSTUNREACH错误无法解决求助
npm安装依赖时报EHOSTUNREACH错误解决方案
报错详情
执行npm install -g yarn时出现如下报错:
ubuntu@ubuntu:~$ npm install -g yarn npm ERR! code EHOSTUNREACH npm ERR! errno EHOSTUNREACH npm ERR! request to http://registry.npmjs.ord/yarn failed, reason: connect EHOSTUNREACH 104.16.22.35:80
已确认的正常环境条件
- 网络稳定可正常访问互联网
- 可正常ping通
registry.npmjs.org及其他公共站点 registry.npmjs.org的DNS解析未指向本地地址- 已清除npm代理配置,当前环境无任何代理配置
- 运行环境:树莓派Ubuntu 20.04.3系统
排查解决步骤
1. 优先检查npm registry配置拼写错误
从报错信息可以看到,请求的源地址后缀为ord而非官方源的正确后缀org,属于典型的拼写错误导致无法访问。
执行命令查看当前npm配置的源地址:
npm config get registry
如果返回的地址存在拼写错误,执行以下命令修正为官方源:
npm config set registry https://registry.npmjs.org/
修正后重新执行安装命令即可。
2. 切换国内镜像源
如果官方源存在区域访问限制,可切换为国内稳定的淘宝npm镜像源:
npm config set registry https://registry.npmmirror.com/
3. 检查hosts文件配置
查看系统hosts文件是否存在npm源的错误IP映射:
cat /etc/hosts
如果有registry.npmjs.org相关的错误配置,删除对应行后保存生效。
4. 检查防火墙出站规则
查看ufw防火墙是否限制了80、443端口的出站请求:
sudo ufw status
如果存在端口限制,执行命令放行:
sudo ufw allow out 80/tcp sudo ufw allow out 443/tcp
5. 验证源访问能力
使用curl直接请求npm源验证连通性:
curl -v https://registry.npmjs.org/yarn
如果返回正常的JSON数据,说明网络连通无问题,可尝试重装npm修复软件本身的配置异常:
sudo apt update && sudo apt install --reinstall npm
内容的提问来源于stack exchange,提问作者dontfknow
相关产品推荐
相关产品推荐

