cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menyediakan proksi untuk Git?

Baru-baru ini, saya tidak dapat mengakses Bitbucket dengan kerap, dan kelajuan menyeret kod daripada Github adalah perlahan.
Oleh itu, cara terbaik adalah dengan menyediakan proksi untuk Git Saya berharap untuk menentukan beberapa gudang untuk menggunakan kaedah proksi saya tidak tahu bagaimana untuk menyediakannya.

Untuk menambah situasi lain

Dalam persekitaran tempatan, saya menyediakan ejen ssh dan pergi ke 127.0.0.1:7070 melalui SOCKS Jika ejen ssh tempatan dihidupkan, Adakah cara lain?

巴扎黑巴扎黑2807 hari yang lalu1938

membalas semua(12)saya akan balas

  • 滿天的星座

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

    Git kini menyokong tiga protokol git://, ssh:// dan http://, dengan konfigurasi proksi yang berbeza: core.gitproxy untuk protokol git://, http.proxy untuk protokol http://, ssh:// Proksi daripada protokol perlu mengkonfigurasi parameter ProxyCommand ssh.

    Gunakan terowong SSH untuk semua protokol

    Konfigurasi protokol GIT

    Buat fail /path/to/socks5proxywrapper dan gunakan alat https://bitbucket.org/gotoh/connect untuk menukar proksi Setiap pengedaran biasanya dibungkus sebagai proksi-sambung atau proksi-sambung.

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

    Konfigurasikan git

    [core]
            gitproxy = /path/to/socks5proxywrapper
    

    atau

    export GIT_PROXY_COMMAND="/path/to/socks5proxywrapper"
    

    Konfigurasi protokol SSH

    Buat /path/to/soks5proxyssh fail

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

    Konfigurasikan git untuk menggunakan pembalut ini

    export GIT_SSH="/path/to/socks5proxyssh“
    

    Sudah tentu, anda juga boleh mengkonfigurasi terus ~/.ssh/config's ProxyCommand

    Konfigurasi protokol HTTP

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

    Gunakan proksi http untuk semua protokol

    Berdasarkan bahagian sebelumnya, fail /path/to/socks5proxywrapper ditukar kepada

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

    Konfigurasi protokol HTTP

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

    Dayakan proksi untuk nama domain

    Parameter

    gitproxy menyediakan struktur * for *, lihat bahagian core.gitproxy man git-config untuk mendapatkan butiran.

    balas
    0
  • 高洛峰

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

    Anda boleh menetapkan http.proxy atau core.gitproxy

    untuk repositori ini
    git config http.proxy http://user:pwd@server.com:port
    git config core.gitproxy '"proxy-command" for example.com'

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

    balas
    0
  • 过去多啦不再A梦

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

    Anda boleh menggunakan kaedah yanyaoer untuk menetapkan proksi untuk git.
    Bagi ejen ssh+pac+socks yang anda nyatakan, ia tidak bercanggah dengan ejen git yang disebut oleh yanyaoer.
    Proksi stokin ialah proksi asas peringkat litar, manakala set proksi dalam konfigurasi git ialah peringkat aplikasi.

    Sebagai contoh, pac anda disediakan untuk github.com untuk menggunakan stokin 127.0.0.1:7070 dan konfigurasi git disediakan untuk github.com untuk menggunakan proxy.server.com sebagai proksi.
    Kemudian pada masa ini, apabila anda melakukan operasi git, semua permintaan rangkaian akan pergi ke proxy.server.com apabila mereka mencapai lapisan stoking Sememangnya, mereka tidak akan terjejas dan akan keluar secara langsung.

    balas
    0
  • 習慣沉默

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

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

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

    balas
    0
  • 淡淡烟草味

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

    Jika anda mengklon daripada bitbucket dan menggunakan protokol ssh, anda boleh menggunakan semua kaedah proksi ssh

    Sebagai contoh, jika ia adalah proksi http atau proksi stokin, anda boleh menggunakan http://bent.latency.net/bent/git/goto... Program kecil ini digunakan sebagai hos ProxyCommand

    Jika terdapat pelayan geganti yang anda nyatakan, anda boleh menggunakan nc pada hos jauh untuk melakukannyaProxyCommand http://www.undeadly.org/cgi?action=ar...

    Bagi pembezaan trafik yang anda nyatakan, anda boleh membuat tetapan berbeza dalam ~/.ssh/config. Contohnya, konfigurasi yang saya gunakan sebelum

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

    Dengan cara ini, git clone ssh://git@bitbucket.org/XXXX akan secara automatik memanggil ProxyCommand

    yang ditakrifkan di sini

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-05-02 09:35:57

    konfigurasi proksi protokol github ssh |

    Konfigurasikan skrip

    proxy-wrapper

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

    Tambahkan kebenaran boleh laku padanya

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

    Konfigurasi

    , tetapkan arahan proksi untuk github.com .ssh/config

    bash
    Host github github.com
        Hostname github.com
        User git
        ProxyCommand $HOME/bin/proxy-wrapper '%h %p'

    Semua mesti menggunakan protokol ssh

    bash
    $ git clone git@github.com:jjrdn/node-open.git

    Untuk protokol git, sila rujuk [Menggunakan GIT melalui proksi SOCKS](http://twopenguins.org/tips/git-throu...).

    Rujukan

      [Bagaimana untuk menyediakan proksi untuk Git? ](/q/10100000001...)
    1. [Menggunakan GIT melalui proksi SOCKS](http://twopenguins.org/tips/git-throu...)
    2. [Ssh percuma](http://milnk.com/link/10645)
    3. balas
      0
  • 滿天的星座

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

    Saya menulis smart_switcher berdasarkan jawapan 1L, yang secara automatik boleh mengenal pasti dan menetapkan pelbagai proksi Berdasarkan konfigurasi proksi http, ia amat sesuai untuk pelbagai situasi pensuisan di mana pejabat mempunyai proksi dan tiada proksi di rumah , ia dipermudahkan kepada sangat mudah, dan hanya perlu ditetapkan hanya IP dan Port gerbang anda.
    Baca Saya di sini. . .

    penukar_pintar

    Penukar proksi pengesan automatik untuk protokol http, https, ftp, rsync, ssh, git.


    Ikhtisar

    Pembungkus penukar proksi pintar, menyokong http, https, ftp, rsync, ssh(sambung depanded), git(sambung depanded) protokol Ia boleh mengesan persekitaran rangkaian anda secara automatik dan menetapkan proksi untuk anda.

    Jika anda biasanya menukar persekitaran rangkaian (mungkin di rumah tanpa proksi dan tempat kerja dengan proksi), ini mungkin banyak membantu anda.

    Diuji dalam zsh dan bash.

    Tangkapan skrin

    Pasang

    Cuma sumbernya dalam .zshrc anda, atau mana-mana fail sumber skrip shell seperti ini:

    source /path/to/smart_switcher.sh

    dan, pastikan tetapkan pelayan_proksi/gerbang anda dalam smart_switcher.sh.

    Penggunaan

    Biasanya, ia dijalankan secara automatik apabila anda log masuk.

    smart_switcher menyokong cecho, yang akan membawakan beberapa warna untuk anda.

    sambungan diperlukan jika proksi disokong dalam ssh dan git Anda boleh memasangnya dengan mudah dalam laluan /usr/bin/connect.

    balas
    0
  • 怪我咯

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

    Kaedah sambungan protokol git menggunakan ssh untuk berkomunikasi dengan pelayan Menetapkan ssh untuk menggunakan proksi sock5 untuk menyambung ke pelayan juga menyelesaikan masalah proksi git.

    1.

    https://raw.githubusercontent.com/bronzeee/ssh_connect/master/connect.c
    

    Kompilkan kod di atas menggunakan gcc dan simpan dalam direktori pembolehubah persekitaran dan namakan semula ia sambung
    Masukkan direktori .ssh dan buat

    baharu

    Konfigurasi fail

    Host *
        User git
        ProxyCommand $HOME/.ssh/proxy-wrapper '%h %p'
    

    Pembungkus proksi fail

    #!/bin/bash
    ~/connect.exe -S http://IP:PORT $@
    

    balas
    0
  • 天蓬老师

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

    Terdapat banyak jawapan di atas. Dengan mengandaikan bahawa program menjalankan arahan git tanpa keadaan atau direktori kerja, parameter -c boleh digunakan untuk memuatkan semula konfigurasi git pada masa jalan, termasuk kunci http.proxy

    Contohnya:

    git clone -c http.proxy=http://192.168.117.131:8888  http://github.com/me/test1.git
    

    balas
    0
  • 高洛峰

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

    Penyelesaian terbaik ialah rantaian proksi (https://github.com/haad/proxychains).
    Perintah berikut menjalankan program program
    $ program rantaian proksi
    Ia memaksa sambungan TCP yang dimulakan oleh program tertentu untuk melalui proksi pra-konfigurasi. Sekurang-kurangnya pada Linux, ia lebih serba boleh daripada "proksi SOCKS kepada proksi HTTP". Kedua-duanya saling melengkapi dan boleh merangkumi semua senario yang memerlukan agensi.
    Ambil Git sebagai contoh Tanpa rantaian proksi, anda mesti menyediakan proksi untuk setiap protokol (http, git, ssh) mengikut keperluan dokumentasi git. Dengan rantaian proksi, anda boleh melupakan semua ini!

    $ sudo apt-get pasang rantai proksi
    Buka /etc/proxychains.conf dan ulas baris berikut (lumpuhkan resolusi DNS jauh. Terdapat risiko pencemaran DNS. Perkara berikut menerangkan cara menyelesaikan masalah daya tidak berfungsi.)
    proxy_dns
    Akhir sekali tambah baris berikut:
    stokin5 134.64.206.85 1081
    $ rantaian proksi git klon git://github.com/yuzhichang/cppdep
    $ sudo proxychains apt-get kemas kini
    Di sini 134.64.206.85:1081 ialah lokasi proksi SOCKS.

    balas
    0
  • Batalbalas