项目场景:
系统 & App:OSX MAC m1 、zsh、clashX
命令行运行 git 时,与 github 服务器无法建立连接。
failed to connect to github.com: Operation timed out; class=Os (2)
问题描述
Input:
cargo install --git https://github.com/project-serum/anchor anchor-cli --locked
Output:
Caused by:
failed to fetch `https://github.com/xxx`
Caused by:
failed to send request: 无法与服务器建立连接; class=Os (2)
解决方案
假设屏幕面前的菜鸟你使用的是 zsh ,并且你有ClashX~不懂请 Google~
你需要点击 ClashX ,点击复制终端代理命令,然后将其放在本地 zsh 配置文件中。
通用的操作设置为:
vi ~/.zshrc
修改配置文件- 将对应的终端代理命令写入 zshrc 文件
source ~/.zshrc
是配置文件生效
OK,这时候你就会发现你的 git 命令可以正常运行了。
原因分析
命令行未设置正确的 proxy,导致访问 github 服务器失败。
我们可以看一下我们复制得到的终端代理命令:
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
PS:这里为了高度还原 fix bug 的过程,我将自己电脑中的配置贴了出来,实际上每个人的配置应该是因程序而异的,所以你应该找到属于自己的那个最合适的 proxy address~
什么是 http proxy?
HTTP 代理充当 HTTP 客户端和 HTTP 服务器的两个中间角色,用于安全、管理和缓存功能。HTTP 代理将 HTTP 客户端请求从 Web 浏览器路由到 Internet,同时支持 Internet 数据的缓存。
代理服务器的优势包括
- 保持身份匿名性作为安全预防措施。
- 加快缓存速度。
- 访问被禁止的网站。
- 在某些网站上执行访问策略。
- 允许站点发出外部服务器请求。
- 避免安全控制。
- 绕过 Internet 过滤以访问被禁止的内容。
如果这篇 Bug 日志对你有所帮助~
欢迎关注我的公众号夏虫不可语冰也
这里有更多你需要的信息哦~