资讯动态

Gogs SSH 连接挂起 60 秒不返回怎么排查

发布时间:2026/9/10 10:00:15 来源:尧图企业网站定制
Gogs SSH 连接挂起 60 秒不返回怎么排查【免费下载链接】gogsThe painless way to host your own Git service项目地址: https://gitcode.com/GitHub_Trending/go/gogs如果你在通过 Git over SSH例如gitgogs.example.com:user/repo.git向 Gogs 推送代码时连接不报错、也不返回结果而是卡住约 60 秒后才超时失败这个问题通常不是 SSH 服务端本身的问题而是 Gogs 服务器无法回环访问自己的 HTTP 端口导致的。Gogs 在处理每一次 SSH push 之后都会向自己的 web 服务发起一次 HTTP 回调请求。一旦服务器防火墙或运营商ISP网络策略阻断了这条回环loopback连接该请求就会一直挂起直到超时表现就是客户端侧的 SSH 连接挂起 60 秒不返回。因此排查的核心目标是确认 Gogs 服务器能否在自己的 HTTP 端口上访问到本机。确认当前使用的 HTTP 端口排查前先弄清楚 Gogs 实际监听的 HTTP 端口是多少因为回调目标就是这个端口。Gogs 内置默认配置中[server] HTTP_PORT 3000见 conf/app.iniDOMAIN默认值为localhost。如果你修改过端口以自定义配置custom/conf/app.ini中的[server] HTTP_PORT为准。该文件位于二进制旁的custom/目录可用gogs web --help的输出查看当前 custom 目录路径详见 Configuration primer。如果首次启动时用了-port参数指定了其他端口记得custom/conf/app.ini中的[server] HTTP_PORT应与之一致否则后续重启会恢复到旧的端口值见 FAQ。检查回环连接是否被阻断确认端口后在 Gogs 所在服务器上执行排查。文档给出的解决方向是确保服务器能够在自己配置的 HTTP 端口上访问到本机逐项检查防火墙规则以及可能阻止回环连接的网络策略。在 Gogs 服务器上验证本机能否到达 HTTP 端口以默认端口 3000 为例若你改过HTTP_PORT把端口号替换为实际值curl -sS -o /dev/null -w %{http_code}\n http://127.0.0.1:3000/能正常返回 HTTP 状态码说明本机回环访问是通的问题大概率在客户端到服务器之间的链路上或不在本条排查范围内请求挂起或超时则符合“回环连接被阻断”的现象。此时检查服务器本地防火墙规则确认允许本进程/本机访问该 HTTP 端口。解决并验证按照 Troubleshooting 文档给出的方案处理检查并放行防火墙规则确保 Gogs 服务器可以访问自己配置的 HTTP 端口排查任何可能阻止回环连接的网络策略包括运营商侧的网络限制处理完成后在服务器上重新执行上一步的curl检查确认能立即返回状态码而不挂起。修复成功的判断方式重新执行git pushSSH 连接应正常返回推送结果不再出现约 60 秒的挂起。相关边界本文只针对“SSH 连接挂起 60 秒”这一现象。如果推送时直接报! [remote rejected] master - master (hook declined)那是 Git 无法执行 update hook 脚本的问题需要系统上有bash与本条排查路径不同。如果修改过HTTP_PORT务必同步custom/conf/app.ini中的[server] HTTP_PORT避免重启后端口回退、排查时检查错端口。【免费下载链接】gogsThe painless way to host your own Git service项目地址: https://gitcode.com/GitHub_Trending/go/gogs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价