github连接超时可按五步排查:一、测ping和443端口连通性;二、换ghfast.top或gitcode镜像安装;三、配置git/curl代理;四、切ssh协议并配密钥;五、换8.8.8.8 dns并刷新缓存。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您尝试运行 Hermes Agent 的安装脚本,但终端报出 GitHub 连接超时错误(如 Failed to connect to github.com port 443 或 curl: (7) Failed to connect to raw.githubusercontent.com port 443),则可能是由于网络策略拦截、DNS 解析失败、代理配置缺失或 HTTPS 协议协商异常导致。以下是多种针对性的故障排查与解决方法:
一、验证基础网络连通性与端口可达性
该步骤用于确认系统能否抵达 GitHub 基础设施,排除底层网络阻断。若 ICMP 被禁用,仅依赖端口探测可更准确反映 HTTPS 流量是否放行。
1、执行 ping 测试:运行 ping github.com,观察是否收到响应;
2、执行 443 端口探测:在 Linux/macOS 中运行 nc -zv github.com 443,在 Windows 中运行 telnet github.com 443;
3、若端口不可达但 ping 可通,说明防火墙或企业网关明确拦截了 HTTPS 流量,需进入后续代理或镜像方案。
二、启用可信 GitHub 镜像代理服务
原始 GitHub Raw URL 在国内多数网络环境下直连失败率高,使用经验证的镜像代理可绕过 DNS 污染与连接超时,无需修改本地网络策略。
1、使用 ghfast.top 镜像执行安装:运行 curl -fsSL https://ghfast.top/https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash;
2、若 ghfast 不可用,改用 gitcode 镜像:运行 curl -fsSL https://gitcode.net/GitHub_Trending/he/hermes-agent/-/raw/main/scripts/install.sh | bash;
3、验证镜像返回内容:单独执行 curl -I https://ghfast.top/https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh,确认 HTTP 状态码为 200 OK。
三、配置 Git 与 curl 全局代理(适用于企业内网)
当网络出口强制要求通过 HTTP/HTTPS 代理访问外网时,Git 和 curl 必须显式配置代理参数,否则所有远程请求均会因无路由而超时。
1、设置 Git 全局 HTTPS 代理:运行 git config --global https.proxy http://your-proxy-ip:port;
2、设置 curl 默认代理:运行 echo "proxy = http://your-proxy-ip:port" >> ~/.curlrc;
3、若代理需认证,在上述命令中将地址替换为 http://username:password@your-proxy-ip:port;
4、临时禁用代理验证效果:运行 git config --global --unset https.proxy 并清除 ~/.curlrc 后重试。
四、切换 Git 协议为 SSH 并预置密钥
HTTPS 协议在某些网络中易被深度检测并限速或拦截,而 SSH 协议使用 22 端口且加密隧道更难被识别和干扰,适合规避 HTTPS 443 端口封锁场景。
1、生成 SSH 密钥对(若尚未创建):运行 ssh-keygen -t ed25519 -C "your_email@example.com";
2、将公钥添加至 GitHub 账户 Settings → SSH and GPG keys;
3、测试 SSH 连通性:运行 ssh -T git@github.com,确认输出包含 You've successfully authenticated;
4、修改安装脚本中所有 https://github.com/... 地址为 git@github.com:... 格式,或手动 clone 后本地执行 install.sh。
五、强制指定 DNS 并刷新解析缓存
DNS 污染会导致 github.com 解析至错误 IP,从而在 TCP 握手阶段即失败。强制使用公共 DNS 可恢复域名到真实 IP 的映射关系。
1、临时覆盖系统 DNS:运行 echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf;
2、刷新本地 DNS 缓存:Ubuntu/Debian 执行 sudo systemd-resolve --flush-caches,macOS 执行 sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder;
3、验证解析结果:运行 nslookup github.com 8.8.8.8,确认返回的 A 记录与官方公开 IP 一致(如 140.82.121.4)。











