Hexo部署至Github时连接失败,Safari也无法访问Github的问题求助
故障根因定位
Proxy CONNECT aborted报错本质是本地发起的代理CONNECT请求被主动中断,结合Safari和Hexo部署同时出现连接故障的现象,可以直接排除GitHub服务端故障、Hexo程序本身bug的可能性,问题根源集中在本地代理链路配置失效、权限拦截层面。
分步排查与解决方案
第一步:校验macOS系统全局代理配置
打开系统设置 → 网络 → 选择当前正在使用的网络连接(Wi-Fi/有线以太网)→ 进入「详细信息」→「代理」面板:- 检查是否存在代理工具退出后、系统代理配置未自动清除的残留项:如果面板里标注的HTTP/HTTPS/SOCKS代理端口没有对应程序在监听,会直接触发CONNECT中断报错
- 临时验证操作:取消所有代理选项的勾选,保存配置后,在终端执行
curl -I https://github.com测试连通性,同时刷新Safari访问GitHub首页,确认是否恢复正常
如果关闭全量代理后可以正常访问,后续只需要正常启动对应代理工具,再重新开启匹配的系统代理选项即可,无需额外修改其他配置
第二步:排查Git层的代理配置残留
Hexo部署本质是调用Git命令完成代码推送,如果Git单独配置了失效的代理,哪怕系统代理完全正常,也会触发对应报错:- 在终端依次执行命令,查看当前Git全局配置里的代理值:
git config --global --get http.proxygit config --global --get https.proxy - 如果命令返回了旧的代理地址(例如格式为
http://127.0.0.1:7890的本地端口),但当前运行的代理工具实际端口与配置值不匹配,就会直接中断连接 - 清除失效Git代理配置的命令:
git config --global --unset http.proxygit config --global --unset https.proxy
如果需要通过代理提升Git推送速度,必须以当前代理工具实际运行的端口值为准重新配置,不要沿用历史的旧端口参数
- 在终端依次执行命令,查看当前Git全局配置里的代理值:
第三步:排查终端Shell环境的代理变量残留
最新版macOS默认使用zsh作为终端Shell,如果之前手动在配置文件中写入过固定的代理环境变量,且对应代理已经失效,会直接影响终端内所有网络请求(包括Hexo部署操作):- 临时验证操作:在当前终端窗口执行
unset http_proxy https_proxy all_proxy,重新运行Hexo部署命令,观察报错是否消失 - 永久清除操作:打开用户目录下的
~/.zshrc文件,删除所有写死的代理地址配置行,保存后执行source ~/.zshrc让配置永久生效
- 临时验证操作:在当前终端窗口执行
第四步:校验代理工具的系统兼容性
如果本身需要通过代理访问GitHub,在完成上述基础配置修正后仍触发报错:- 检查当前运行的代理工具是否获得最新版macOS的完整网络权限,是否开启了拦截本地回环请求的规则,导致CONNECT请求被主动拦截
- 临时切换代理节点的传输协议(例如从SOCKS5切换为HTTP协议),测试连接稳定性
第五步:修正Hexo部署的基础配置
网络连通性恢复后,打开Hexo项目根目录下的_config.yml配置文件,检查deploy配置块:- 确认仓库远程地址拼写准确,HTTPS/SSH格式与本地Git凭据配置匹配,避免因为地址拼写错误、凭据失效被误判为连接类故障
内容的提问来源于stack exchange,提问作者Cino
相关产品推荐
相关产品推荐

