Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux bashrc配置全局代理导致etcd连接失败

Linux bashrc配置全局代理导致etcd连接失败问题及解决

作者:LorraineWen

作者在Ubuntu上通过Docker安装etcd时,由于在~/.bashrc中设置了全局代理,导致etcd连接失败,因为代理不会转发内部流量,etcd容器无法正常通信和选举Leader

Linux bashrc配置全局代理导致etcd连接失败

博主在Ubuntu上面通过Docker安装了etcd,结果一直连接失败:

问题排查

最后发现竟然是clash代理导致的问题。

由于博主在~/.bashrc中设置了全局代理,通过export命令将环境变量(如HTTP_PROXY)写入当前 shell 环境。

这会导致所有通过该 shell 启动的进程,包括etcd服务端和客户端,都会继承这些代理设置,也就是说这些环境变量会被Docker 继承,除非在docker rundocker-compose.yml中明确覆盖或删除它们。

etcd 容器内部会尝试通过这些代理地址访问集群节点(包括localhost127.0.0.1、容器 IP),但代理根本不会转发这些内部流量,于是就会出现问题:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文