git 使用 CloudFlare 反向代理后推送不工作

git push not working after using CloudFlare reverse proxy

我最近开始使用 CloudFlare(反向代理)和我设置了 git push 部署的 DigitalOcean Droplet(根访问服务器)。

当然,git push 不再有效并且 returns 这个错误:

ssh: connect to host example.com port 22: Operation timed out

这很可能是因为 git 试图访问 CloudFlare 服务器上的存储库,而不是我的 DigitalOcean 服务器。

恢复 git push 功能的最佳方法是什么?

您需要更新遥控器的 URL 以使用原始 IP,或者在 CloudFlare 面板中添加 DNS A 记录,例如 raw.example.com 并禁用 CloudFlare 橙色云(因此它直接解析为您的主机)。然后更新您的 git 远程设置:

git remote set-url origin git@127.0.0.1:foo/bar.git

git remote set-url origin git@raw.example.com:foo/bar.git

已解决。

我注意到我可以 ssh 毫无问题地进入我的 digitalocean 服务器并意识到我是这样访问的:

root@35.25.234.243(假 IP)

所以我将 git config 更改为使用我服务器的 IP 地址而不是域名,现在它工作正常。

Cloudflare 不错;它隐藏了您的 public IP。

只需在 /etc/hosts 文件中输入一个条目或将其手动添加到本地 DNS 服务器。