【问题标题】:git:// through proxygit:// 通过代理
【发布时间】:2011-08-17 04:22:17
【问题描述】:

我位于阻止端口 9418 (git) 的防火墙后面,并且正在尝试安装一些明确执行git://github.com/... 结帐的工具,因此我无法切换到 https 进行结帐。

所以我想知道是否可以通过代理将所有流量重定向到端口 9418,如果可以:)

【问题讨论】:

    标签: git proxy git-config


    【解决方案1】:

    您是否尝试过基于 ssh 的 TCP 隧道?如果您的 ssh 服务器 (a) 在您的防火墙之外并且 (b) 允许 IP 转发,您可以这样做:

    ssh -L localhost:9418:<remote>:9418 me@remote-ssh-server
    

    或者,如果您必须在端口 443 上运行 sshd 以绕过防火墙,

    ssh -P 443 -L localhost:9418:<remote-host>:9418 me@remote-ssh-server
    

    然后,本地:

    git checkout git://localhost/...
    

    显然,这并不透明,而且有点令人费解 - 毫无疑问,存在更具体针对该问题的工具。但是,我通常使用这种方法,因为它使用我必须使用的工具(ssh 和我租用的便宜的虚拟服务器)。

    (实际上我从未尝试过使用 git 连接,但我看不出它为什么不起作用。我已经将它与许多其他单 TCP 端口协议一起使用,没有问题。)

    【讨论】:

    • 是的,我可以对特定的 repo 进行结帐工作正常,但我无法控制的事情正在尝试做 git clone git://github.com/...,所以我不能做这样的代理,因为我可以t 将 URL 更改为 localhost
    • 你可以尝试在/etc/hosts中临时配置github.com为127.0.0.1
    【解决方案2】:

    查看Git config 中的core.gitproxy 设置。

    快速谷歌搜索发现这个脚本可能有用(或者可能没有 - 我没有尝试过):https://gist.github.com/49288

    【讨论】:

    • 嗯,有趣。提问者是否愿意评论这是否可行,是否有任何缺点?
    • 其实我也对这些信息感兴趣,因为我说过我自己从未尝试过 :-)
    • 请考虑粘贴此脚本的内容,以防文件被删除。
    【解决方案3】:

    如果你在谈论 git 子模块,试试这个:

    git config --global url.https://github.com/.insteadOf git://github.com/
    

    ...取自here

    这样,您无需设置任何代理,也无需运行任何脚本。

    【讨论】:

    • 这是一种超级优雅的方法。工作得很好,没有涉及任何疯狂的代理废话。我以前只能更改 git:// URI,但在部署中处理捆绑程序使这成为一场真正的噩梦。您的解决方案非常轻松。
    • 也适用于 ssh:git config --global url.ssh://git@github.com/.insteadOf git://github.com/
    • 如果它是合法的,我会嫁给这个答案。
    • 这是 Stack Overflow 上的最佳答案!
    • 编辑了答案以添加另一种可能性 - Github 现在以git@github.com: 而不是git://github.com/ 开始SSH URL,因此您可能需要将命令的结尾更改为git@github.com:
    【解决方案4】:

    您需要使core.gitProxy 指向一个代理命令,该命令将通过您的 SOCKS 代理将 git 连接到远程服务器。您可以创建一个包含以下内容的脚本作为代理命令:

    nc -x <your_proxy_host>:<your_proxy_port> $1 $2
    

    这两个参数,代表远程主机和端口,将通过git传递给代理命令。如果您将此脚本命名为git-proxy 并使其可以从您的$PATH 访问,您可以调用git config 来设置它:

    git config --global --add core.gitProxy git-proxy
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-05
      • 2013-05-08
      • 2021-10-28
      • 2010-12-19
      • 2014-06-12
      • 2013-05-02
      • 2015-12-15
      • 1970-01-01
      相关资源
      最近更新 更多