Gitea SSH 克隆失败?域名、端口和 ROOT_URL 配置检查
Gitea SSH 克隆失败域名、端口和 ROOT_URL 配置检查Gitea 最容易出现“网页正常SSH clone 失败”。原因通常不是 Git 本身而是容器 22 端口映射、SSH_DOMAIN、SSH_PORT、ROOT_URL 和防火墙没统一。本文按配置项逐个检查。先说结论谁适合这样做适合小团队私有代码托管个人仓库和自动部署脚本希望轻量替代大型代码平台的人不适合需要复杂企业权限审计高并发 CI 平台不愿意维护备份和升级的人这一步要先讲清楚是因为很多服务器教程只告诉你“怎么装”却不告诉你“该不该装”。如果场景不匹配后面配置写得再漂亮也只是把问题推迟到上线之后。服务器配置怎么选Gitea 对资源很友好2 核 4G 可以托管不少小仓库。真正要规划的是数据目录、SSH 端口和备份。仓库多、附件多时磁盘比 CPU 更重要。我会把 Gitea 放在雨云服务器 rainyun-com的 2 核 4G 机型上小团队托管几十个仓库、Issue 和 Wiki 很轻松。注册填优惠码2026off领 5折这类配置更适合先稳定跑起来再按真实负载升级。落地步骤准备一台干净的 Ubuntu 22.04 或 Debian 12 服务器先确认 SSH、时间同步和防火墙状态。规划目录/opt/gitea-ssh-clone-port-20260601。配置、数据、备份脚本都放在同一主题目录下后面迁移更省事。根据主题放行端口3000/tcp 2222/tcp。游戏和网络服务尤其要分清 TCP/UDP。先用测试数据跑通再导入正式数据或邀请其他人使用。关键配置示例下面配置用于说明关键项发布前要按当前官方文档确认镜像版本、环境变量和端口。services:gitea:image:gitea/gitea:latestcontainer_name:gitearestart:unless-stoppedports:-127.0.0.1:3000:3000-2222:22environment:GITEA__server__ROOT_URL:https://git.example.com/GITEA__server__SSH_DOMAIN:git.example.comGITEA__server__SSH_PORT:2222volumes:-./data:/data如果需要 HTTPS可以让应用只监听本机端口再用 Caddy 反代giteasshcloneport.example.com { encode zstd gzip reverse_proxy 127.0.0.1:3000 }启动验证本地添加 SSH key 后执行ssh -p 2222 gitgit.example.com再 clone 一个测试仓库确认推拉都正常。验证时不要只看进程是否存在至少完成一次真实动作游戏服要让外部玩家连接应用要登录并写入一条数据运维项要确认状态变化真的生效。这样能提前发现端口、权限、反代和路径问题。常见问题和排错页面显示的 clone 地址来自配置不一定代表端口真的通。看到gitgit.example.com:repo.git失败时先用ssh -p 2222 gitgit.example.com测试。排查建议按这个顺序来看日志里第一条明确错误不要只看最后一屏。查端口监听和云安全组确认协议没有写错。检查数据目录权限尤其是容器用户和宿主机目录映射。回滚到上一个能工作的配置再逐项恢复新改动。备份和后续维护备份 data 目录和数据库。迁移前先在新机器恢复一个测试仓库确认 issue、附件、wiki 都还在。维护时建议保留一份“最小恢复说明”需要哪些文件、恢复命令是什么、域名和端口在哪里改。等真正出问题时人通常没那么冷静清单比记忆可靠。