如何为 Git 设置代理?
巴扎黑
巴扎黑 2017-05-02 09:33:57
0
12
1796

最近从 Bitbucket经常访问不了,Github拖代码的速度也抽风,什么原因大家都知道。
所以,最好的方法就是给Git设置代理了,我希望能指定部分仓库走代理方式,不知该如何设置?

补充另一种情况

本地环境下,本人设置了ssh代理,通过SOCKS走127.0.0.1:7070实现,如果在本地ssh代理开启的情况下,是不是又有另外的方法?

巴扎黑
巴扎黑

全員に返信(12)
滿天的星座

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
小葫芦

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

リーリー リーリー

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

いいねを押す +0
过去多啦不再A梦

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
習慣沉默

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

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

いいねを押す +0
淡淡烟草味

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

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

如果是你说的有某个中转服务器的话,可以用远程主机上的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

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
滿天的星座

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
刘奇

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

1.

リーリー

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

ファイル構成

リーリー

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

リーリー
いいねを押す +0
Peter_Zhu

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

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

例:

リーリー
いいねを押す +0
小葫芦

最良のソリューションはプロキシチェーン (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
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!