Skip to main content

yarn tunneling socket could not be established, cause=getaddrinfo ENOTFOUND xxxx

前段时间,我的 yarn 一直报错:

tunneling socket could not be established, cause=getaddrinfo ENOTFOUND xxx
// xxx 是代理端口

错误原因

我看到 xxx 就知道是我代理出了问题。我也做了测试: yarn 设置了代理之后是可以正常运行的, 设置如下:

yarn config set proxy http://127.0.0.1:xxxx

但是, 我删除代理之后还是 yarn 不能访问网络:

yarn config delete proxy
yarn config delete https-proxy

我也查了相关资料,可以确定是代理出了问题。

解决

知道了原因,就慢慢排查。

  1. 首先,确定 yarn 的配置里面是不是有代理配置:
yarn config get proxy
yarn config get http-proxy
  1. 查看 yarn 的配置文件: C:\Users\xxx\.yarnrc
    另外,我还用 everything 查找了所有 .yarnrc 文件,都没有 proxy 配置(没什么用)
  2. 确认了一下 npm 是不是有代理配置(没用);
  3. 最后,查看了环境变量,在用户变量中有一个https-proxy=http://127.0.0.1:xxx。至此,终于找了根源。
  4. 删除https-proxy环境变量,重启,完成!

后记

这个问题困扰了我差不多一个月,终于解决了,在解决之前我一直配代理用 yarn。有些问题就是这样,虽然简单,但是想不到的时候很抓狂。