You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

GitLab SSH克隆连接超时求助:修改端口后问题仍未解决

解决修改SSH端口改回22后仍无法克隆GitLab项目的问题

看起来你遇到的问题挺典型的——改了SSH端口又改回来,但Git克隆还是超时。别担心,咱们一步步排查,大概率是配置残留或者网络规则没同步的问题:

1. 先检查SSH客户端的配置文件

你当初改端口到2233的时候,很可能在SSH配置文件里加了针对GitLab的端口规则,改回22后没清理掉。这是最常见的原因:

  • 打开~/.ssh/config(Linux/macOS)或者C:\Users\<你的用户名>\.ssh\config(Windows);
  • 看看有没有类似这样的代码块:
    Host gitlab.com
        Port 2233
    
  • 如果有,直接删掉这两行,或者在开头加#注释掉,保存后再试克隆。

2. 确认Git远程仓库的地址没被改坏

有时候折腾端口的时候,可能不小心把Git的远程URL改成了带2233端口的错误格式。运行这条命令看看当前仓库的远程地址:

git remote -v

正常的SSH格式应该是git@gitlab.com:<你的用户名>/<仓库名>.git。如果看到类似ssh://git@gitlab.com:2233/...或者git@gitlab.com:2233/...(注意这里的冒号后面如果是端口就是错的,Git里冒号后是仓库路径),那就用下面的命令把地址改回正确的:

git remote set-url origin git@gitlab.com:<你的用户名>/<仓库名>.git

3. 跳过Git,直接测试SSH连通性

先排除Git的问题,直接用SSH命令连GitLab,看看网络和权限是否正常:

ssh -T git@gitlab.com -p 22

如果成功,会输出Welcome to GitLab, @<你的用户名>!。如果还是超时,那问题出在网络层面:

  • 本地防火墙:检查是否允许22端口的出站流量(Linux用ufw status看规则,Windows去防火墙高级设置里找),可能你开了2233的规则后,不小心禁用了22的出站;
  • 路由器设置:如果路由器做过端口转发或限制,确认22端口的出站没被拦截;
  • 清理DNS缓存:不同系统命令不一样:
    • Linux:sudo systemd-resolve --flush-caches
    • macOS:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
    • Windows:ipconfig /flushdns
      清理后再测试连接。

4. 检查SSH代理或环境变量

如果你平时用SSH代理(比如socks5),或者之前设置过SSH_PORT环境变量,可能残留了2233的设置:

  • 运行echo $SSH_PORT,如果输出是2233,就用unset SSH_PORT取消这个变量;
  • 检查~/.bashrc~/.zshrc这类配置文件,有没有export SSH_PORT=2233的行,有的话删掉并重启终端。

一般来说,按这个顺序排查,很快就能解决问题。先从SSH配置文件和Git远程地址开始,这两个是最容易出问题的地方。

内容的提问来源于stack exchange,提问作者Ali

火山引擎 最新活动