通过 cloudflare 和代理的 GitLab ssh

GitLab ssh over cloudflare and proxy

我已经在 proxmox 的 lxc 容器上安装了 gitlab。

它的工作方式类似于 gitlab<->proxy<->cloudflare

除 SSH clone/push/pull 之外一切正常,但是,如果我将条目添加到 /ets/hosts(在本地计算机或我使用 gitlab 的任何其他服务器上)行我的 public proxy 的 IP 和我的 gitlab 的域名 - 没问题。

proxy VM也是lxc容器。我只是使用规则

将 22 端口重定向到 gitlab 虚拟机
-A PREROUTING -d AAA.AAA.AAA.AAA/32 -p tcp -m tcp --dport 22 -j DNAT --to-destination 192.168.10.150:22
ssh -T git@git.MYHOST

这适用于 hosts 文件中的条目。但如果删除 - 它不起作用。

错误:

# git pull

ssh: connect to host git.peacedata.su port 22: Network is unreachable
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

2020 年 4 月 24 日更新

我发现 Cloudflare 会阻止 22 端口。 我有一些解决方法,但我最需要 "beautiful" 解决方案))。

所以,我只是将直接 IP 地址添加到 /etc/hosts 并且一切正常。

关于 cloudflare 打开端口的更多解释以及为什么 link:https://blog.cloudflare.com/cloudflare-now-supporting-more-ports/