検索

ホームページ  >  に質問  >  本文

Git のプロキシを設定するにはどうすればよいですか?

最近、Bitbucket に頻繁にアクセスできなくなり、Github からコードをドラッグする速度が遅くなりました。その理由は誰もが知っています。
したがって、Git のプロキシを設定するのが最善の方法ですが、プロキシ方法を使用するためにいくつかのウェアハウスを指定したいのですが、その設定方法がわかりません。

別の状況を追加するには

ローカル環境で ssh エージェントを設定し、SOCKS 経由で 127.0.0.1:7070 に移動します。ローカル ssh エージェントがオンになっている場合は、別の方法はありますか?

巴扎黑巴扎黑2812日前1952

全員に返信(12)返信します

  • 滿天的星座

    滿天的星座2017-05-02 09:35:57

    Git は現在、git://ssh://http:// の 3 つのプロトコルをサポートしており、それらのプロキシ構成は異なります。 core.gitproxygit:// プロトコルに使用され、http.proxyhttp:// プロトコルに使用されます。 code> プロトコルの場合、ssh:// プロトコルのプロキシは ssh の ProxyCommand パラメータを設定する必要があります。 git://ssh://http://,其代理配置各不相同:core.gitproxy 用于 git:// 协议,http.proxy 用于 http:// 协议,ssh:// 协议的代理需要配置 ssh 的 ProxyCommand 参数。

    对于所有的协议全部使用 SSH 隧道进行代理

    GIT 协议的配置

    建立 /path/to/socks5proxywrapper 文件,使用 https://bitbucket.org/gotoh/connect 工具进行代理的转换,各发行版一般打包为 proxy-connect 或者 connect-proxy。

    #!/bin/sh
    connect -S 127.0.0.1:7070 "$@"
    

    配置 git

    [core]
            gitproxy = /path/to/socks5proxywrapper
    

    或者

    export GIT_PROXY_COMMAND="/path/to/socks5proxywrapper"
    

    SSH 协议的配置

    建立 /path/to/soks5proxyssh 文件

    #!/bin/sh
    ssh -o ProxyCommand="/path/to/socks5proxywrapper %h %p" "$@"
    

    配置 git 使用该 wrapper

    export GIT_SSH="/path/to/socks5proxyssh“
    

    当然也可以直接配置 ~/.ssh/configProxyCommand

    HTTP 协议的配置

    [http]
            #这里是因为 Git 使用 libcurl 提供 http 支持
            proxy = socks5://127.0.0.1:7070
    

    所有协议全部使用 http 代理

    在前一部分的基础上, /path/to/socks5proxywrapper 文件改为

    #!/bin/sh
    connect -H 192.168.1.100:8080 "$@"
    

    HTTP 协议配置

    [http]
        proxy = http://192.168.1.100:8080
    

    针对域名启用代理

    gitproxy 参数提供 * for * 结构,具体看 man git-config

    すべてのプロトコルに SSH トンネリングを使用する

    GIT プロトコルの構成

    /path/to/socks5proxywrapper ファイルを作成し、https://bitbucket.org/gotoh/connect ツールを使用してプロキシを変換します。各ディストリビューションは通常、proxy-connect または connect-proxy としてパッケージ化されています。 。 🎜 リーリー 🎜gitを構成する🎜 リーリー 🎜または🎜 リーリー

    SSH プロトコルの構成

    🎜/path/to/soks5proxyssh ファイルを作成します🎜 リーリー 🎜このラッパーを使用するように git を設定します🎜 リーリー 🎜もちろん、~/.ssh/configProxyCommand を直接設定することもできます🎜

    HTTP プロトコルの構成

    リーリー <時間>

    すべてのプロトコルに http プロキシを使用する

    前の部分に基づいて、/path/to/socks5proxywrapper ファイルは次のように変更されます。

    リーリー

    HTTP プロトコルの構成

    リーリー <時間>

    ドメイン名のプロキシを有効にする

    🎜gitproxy パラメーターは、* for * 構造を提供します。詳細については、man git-config の core.gitproxy セクションを参照してください。 🎜

    返事
    0
  • 高洛峰

    高洛峰2017-05-02 09:35:57

    このリポジトリには http.proxy または core.gitproxy を設定できます

    リーリー リーリー

    http://www.kernel.org/pub/software/sc...

    返事
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-02 09:35:57

    yanyaoer のメソッドを使用して git のプロキシを設定できます。
    あなたが言及した ssh+pac+socks エージェントに関しては、yanyaoer が言及した git エージェントと競合しません。
    Socks プロキシは回路レベルの基盤となるプロキシですが、git config で設定されたプロキシはアプリケーション レベルです。

    たとえば、pac は github.com が Socks 127.0.0.1:7070 を使用するように設定されており、git config は github.com がプロキシとして proxy.server.com を使用するように設定されています。

    このとき、git 操作を実行すると、すべてのネットワーク リクエストは Socks レイヤーに到達すると proxy.server.com に送信され、当然影響を受けずに直接送信されます。

    返事
    0
  • 習慣沉默

    習慣沉默2017-05-02 09:35:57

    tsocks - http://tsocks.sourceforge.net/

    $ tsocks git clone git@github.com:xxx/xxx.git

    返事
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-02 09:35:57

    bitbucket からクローンを作成し、ssh プロトコルを使用する場合は、すべての ssh プロキシ メソッドを使用できます

    たとえば、http プロキシまたは Socks プロキシの場合は、http://bent.latency.net/bent/git/goto... を使用できます。この小さなプログラムはホストの ProxyCommandProxyCommand

    如果是你说的有某个中转服务器的话,可以用远程主机上的ncProxyCommand http://www.undeadly.org/cgi?action=ar...

    关于你说的区分流量,可以在~/.ssh/config里进行区别设置。例如我之前用的配置

    Host bitbucket.org
        ProxyCommand ~/.ssh/connect -H 192.168.1.106:3128 %h 22

    这样git clone ssh://git@bitbucket.org/XXXX时会自动调用这里定义的ProxyCommand

    あなたが述べたようにリレーサーバーがある場合は、リモートホストで nc を使用して ProxyCommand http://www.undeadly.org/cgi?action= を実行できます。あれ…🎜 🎜あなたが言及したトラフィックの区別に関しては、~/.ssh/config でさまざまな設定を行うことができます。たとえば、以前使用した構成🎜 リーリー 🎜このようにして、git clone ssh://git@bitbucket.org/XXXX は、ここで定義された ProxyCommand を自動的に呼び出します🎜

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-05-02 09:35:57

    github ssh プロキシ | github ssh プロトコル プロキシ設定

    proxy-wrapper スクリプトを設定するproxy-wrapper 脚本

    bash
    cat > $HOME/bin/proxy-wrapper
    #!/bin/bash
    nc -x127.0.0.1:7080 -X5 $*

    给它增加一个可执行权限

    bash
    $ chmod +x $HOME/bin/proxy-wrapper

    配置 .ssh/config リーリー

    実行権限を追加します

    リーリー .ssh/config を構成し、github.com のプロキシ コマンドを設定します リーリー

    sshプロトコルを使用する必要があります

    リーリー

    git プロトコルについては、[SOCKS プロキシを介した GIT の使用](http://twopenguins.org/tips/git-throu...) を参照してください。
      参考
    1. [Git のプロキシを設定するにはどうすればよいですか? ](/q/10100000001...)
    2. [SOCKS プロキシを介した GIT の使用](http://twopenguins.org/tips/git-throu...)
    【無料ssh】(http://milnk.com/link/10645)🎜 🎜

    返事
    0
  • 滿天的星座

    滿天的星座2017-05-02 09:35:57

    1Lの回答に基づいて、httpプロキシ構成に基づいてさまざまなプロキシを自動的に識別して設定できるsmart_switcherを作成しました。オフィスにはプロキシがあり、自宅にはプロキシがない場合のさまざまなスイッチング状況に特に適しています。ただし、非常に簡略化されており、ゲートウェイの IP とポートを設定するだけです。
    ここでお読みください。 。 。

    スマートスイッチャー

    http、https、ftp、rsync、ssh、git プロトコルの自動検出プロキシ スイッチャー


    概要

    A smart プロキシスイッチャーラッパー、サポート http, https, ftp, # 🎜🎜#rsyncssh(connect depanded)、git(connect depanded) プロトコルを自動的に検出し、プロキシを設定します。 .

    普段ネットワーク環境を切り替えている場合(自宅ではプロキシなし、職場ではプロキシありなど)、非常に役立つかもしれません。

    zsh と bash でテスト済み。

    スクリーンショット

    インストール

    それを .zshrc または次のようなシェル スクリプト リソース ファイルにソースするだけです:

    ソース /path/to/smart_switcher.sh

    source /path/to/smart_switcher.sh

    and, make sure set your proxy_server/gateway in smart_switcher.sh.

    Usage

    Normally, it antomatically executes when you login in.

    smart_switcher supports cecho, who will bring some colors for you.

    connect is required if proxy is supported in ssh and git. You can install it easily in path /usr/bin/connect

    and#🎜🎜#、smart_switcher.sh で proxy_server/gateway を必ず設定してください。#🎜🎜# #🎜🎜#使用法#🎜🎜# #🎜🎜#通常、ログイン時に自動的に実行されます。#🎜🎜# #🎜🎜#smart_switcher は、いくつかの色を提供してくれる cecho をサポートしています。#🎜🎜# #🎜🎜#ssh#🎜🎜# および #🎜🎜#git#🎜🎜# でプロキシがサポートされている場合は、#🎜🎜#connect が必要です。パス /usr/bin/connect.#🎜🎜#

    返事
    0
  • 怪我咯

    怪我咯2017-05-02 09:35:57

    git プロトコルの接続方法では、ssh を使用してサーバーと通信します。sock5 プロキシを使用してサーバーに接続するように ssh を設定すると、git プロキシの問題も解決されます。

    1.

    リーリー

    gcc を使用して上記のコードをコンパイルし、環境変数ディレクトリに保存し、名前を connect に変更します
    .ssh ディレクトリに入り、新しいディレクトリを作成します

    ファイル構成

    リーリー

    ファイルプロキシラッパー

    リーリー

    返事
    0
  • 天蓬老师

    天蓬老师2017-05-02 09:35:57

    上記には多くの答えがあります。プログラムが -c参数可以在运行时重载git配置,包括关键的http.proxy

    を使用して、状態や作業ディレクトリなしで git コマンドを実行すると仮定します。

    例:

    リーリー

    返事
    0
  • 高洛峰

    高洛峰2017-05-02 09:35:57

    最良のソリューションはプロキシチェーン (https://github.com/haad/proxychains) です。
    次のコマンドはプログラムを実行します
    $プロキシチェーンプログラム
    これにより、特定のプログラムによって開始された TCP 接続が事前構成されたプロキシを経由するように強制されます。少なくとも Linux では、「SOCKS プロキシから HTTP プロキシへ」よりも汎用性が高くなります。この 2 つは相互に補完し合うため、代理店が必要なすべてのシナリオに対応できます。
    Git を例に挙げると、プロキシチェーンがないと、git ドキュメントの要件に従って各プロトコル (http、git、ssh) にプロキシを設定する必要があります。このプロセスは複雑で不安定です。プロキシチェーンを使用すると、これらすべてを忘れることができます。

    $ sudo apt-get インストールプロキシチェーン
    /etc/proxychains.conf を開き、次の行をコメントアウトします (リモート DNS 解決を無効にします。DNS 汚染のリスクがあります。有効にできない問題を解決する方法を以下に説明します。)
    プロキシ_dns
    最後に次の行を追加します:
    靴下5 134.64.206.85 1081
    $ proxychains git clone git://github.com/yuzhichang/cppdep
    $ sudo proxychains apt-get update
    ここで、134.64.206.85:1081 は SOCKS プロキシの場所です。

    返事
    0
  • キャンセル返事