Rumah > Soal Jawab > teks badan
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.
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?
滿天的星座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.
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"
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
[http]
#这里是因为 Git 使用 libcurl 提供 http 支持
proxy = socks5://127.0.0.1:7070
/path/to/socks5proxywrapper
ditukar kepada #!/bin/sh
connect -H 192.168.1.100:8080 "$@"
[http]
proxy = http://192.168.1.100:8080
gitproxy menyediakan struktur * for *
, lihat bahagian core.gitproxy man git-config
untuk mendapatkan butiran.
高洛峰2017-05-02 09:35:57
Anda boleh menetapkan http.proxy atau core.gitproxy
untuk repositori inigit 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...
过去多啦不再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.
習慣沉默2017-05-02 09:35:57
tsocks - http://tsocks.sourceforge.net/
$ tsocks git clone git@github.com:xxx/xxx.git
淡淡烟草味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
phpcn_u15822017-05-02 09:35:57
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-wrapperKonfigurasi
, 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.gitUntuk protokol git, sila rujuk [Menggunakan GIT melalui proksi SOCKS](http://twopenguins.org/tips/git-throu...).
Rujukan
滿天的星座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 proksi pengesan automatik untuk protokol http, https, ftp, rsync, ssh, git.
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.
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
.
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
.
怪我咯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
Konfigurasi fail
Host *
User git
ProxyCommand $HOME/.ssh/proxy-wrapper '%h %p'
Pembungkus proksi fail
#!/bin/bash
~/connect.exe -S http://IP:PORT $@
天蓬老师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
高洛峰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.