Bagaimana saya membuat Git menggunakan server proxy?
Saya perlu memeriksa kode dari server Git, tetapi ini menunjukkan "Permintaan habis waktu" setiap kali. Bagaimana saya mengatasi ini?
Atau, bagaimana saya bisa mengatur server proxy?
Bagaimana saya membuat Git menggunakan server proxy?
Saya perlu memeriksa kode dari server Git, tetapi ini menunjukkan "Permintaan habis waktu" setiap kali. Bagaimana saya mengatasi ini?
Atau, bagaimana saya bisa mengatur server proxy?
Jawaban:
Perintah untuk menggunakan:
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
proxyuser
ke pengguna proxy Andaproxypwd
kata sandi proxy Andaproxy.server.com
ke URL server proxy Anda8080
ke port proxy yang dikonfigurasi di server proxy AndaPerhatikan bahwa ini berfungsi untuk repos http dan https.
Jika Anda memutuskan kapan saja untuk mengatur ulang proxy ini dan bekerja tanpa proxy:
Perintah untuk menggunakan:
git config --global --unset http.proxy
Akhirnya, untuk memeriksa proxy yang saat ini ditetapkan:
git config --global --get http.proxy
%40
sebagai pengganti untuk @
string nama pengguna / kata sandi, meskipun saya belum mengujinya sendiri. Semoga ini bisa membantu. :-)
Ini bekerja untuk saya, di windows XP di belakang firewall perusahaan.
Saya tidak perlu menginstal proxy lokal atau perangkat lunak lain selain git v1.771 dari http://code.google.com/p/msysgit/downloads/list?can=3
$ git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
$ git config --system http.sslcainfo /bin/curl-ca-bundle.crt
$ git remote add origin https://mygithubuser:mygithubpwd@github.com/repoUser/repoName.git
$ git push origin master
pengguna proxy = pengguna proxy yang ditugaskan oleh departemen TI kami, dalam kasus saya ini adalah pengguna windows yang sama yang saya gunakan untuk masuk ke PC saya, pengguna Active Directory
proxypwd = kata sandi pengguna proxy saya
proxy.server.com:8080 = nama dan port proxy, saya mendapatkannya dari Control Panel, Opsi Internet, Koneksi, tombol Pengaturan Lan, tombol Advanced di dalam bagian Server Proxy, gunakan nama server dan port pada baris (http) pertama .
mygithubuser = pengguna yang saya gunakan untuk masuk ke github.com
mygithubpwd = kata sandi untuk pengguna github.com saya
repoUser = pemilik pengguna repo
repoName = nama repo
git config --global http.sslcainfo MY_NEW_CERTS_BUNDLE.crt
ditambah sertifikat yang diunduh seperti dijelaskan dalam simplicidade.org/notes/archives/2011/06/… (terima kasih kepada: stackoverflow.com/a/7206627/98528 ) melakukannya untuk saya!
git://
protokol.
Setel variabel sistem yang dinamai http_proxy
dengan nilai ProxyServer:Port
. Itu adalah solusi paling sederhana. Masing-masing, gunakan https_proxy
seperti yang ditunjukkan daefu dalam komentar.
Pengaturan gitproxy (seperti sleske menyebutkan) adalah pilihan lain, tetapi itu membutuhkan "perintah", yang tidak semudah solusi di atas.
Referensi: http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html
http_proxy
diperlukan untuk URL HTTP dan https_proxy
diperlukan untuk URL HTTPS. Atau, seseorang bisa mengatur all_proxy
untuk semua URL. Lihat ENVIRONMENT
bagian dalam ikal (1) . Namun, saat mengatur opsi git-config, http.proxy
digunakan untuk URL HTTP dan HTTPS. Lihat http.proxy
di git-config (1) .
Jika cara baris perintah untuk mengonfigurasi server proxy Anda tidak berfungsi, Anda mungkin dapat mengedit .gitconfig (di root profil Anda, yang mungkin menyembunyikan keduanya di C: \ Documents and Settings dan pada beberapa drive jaringan) dan tambahkan ini :
[http]
proxy = http://username:password@proxy.at.your.org:8080
YMMV, ini hanya mencakup langkah pertama dari konfigurasi baris perintah. Anda mungkin harus mengedit konfigurasi sistem git juga dan saya tidak tahu di mana mereka menyembunyikannya.
Sebagai alternatif untuk menggunakan git config --global http.proxy address:port
, Anda dapat mengatur proxy di baris perintah:
git -c "http.proxy=address:port" clone https://...
Keuntungannya adalah proxy tidak diset secara terus-menerus. Di bawah Bash Anda mungkin menetapkan alias:
alias git-proxy='git -c "http.proxy=address:port"'
Jika Anda menggunakan ubuntu, maka lakukan hal berikut ...
Langkah 1: Instal pembuka botol
$ sudo apt-get install corkscrew
Langkah 2: Tulis skrip bernama git-proxy.sh dan tambahkan berikut ini
#!/bin/sh
exec corkscrew <name of proxy server> <port> $*
# <name_of_proxy_server> and <port> are the ip address and port of the server
# e.g. exec corkscrew 192.168.0.1 808 $*
Langkah 3: Buat skrip dapat dieksekusi
$ chmod +x git-proxy.sh
Langkah 4: Siapkan perintah proxy untuk GIT dengan mengatur variabel lingkungan
$ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"
Sekarang gunakan perintah git, seperti
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
"$@"
sebagai gantinya $*
. Lihat manual shell Anda untuk lebih jelasnya.
Menghadapi masalah yang sama karena beberapa .gitconfig
file di windows, ikuti langkah-langkah di bawah ini untuk memperbaiki yang sama:
Langkah 1: Buka Git BASH
Langkah 2: Cari .gitconfig
, jalankan perintah berikut:
git config --list --global --show-origin
Langkah 3: Salin konten di bawah ini di .gitconfig
:
[http]
proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
sslverify = false
[https]
proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
sslverify = false
[url "http://github.com/"]
insteadOf = git://github.com/
[user]
name = Arpit Aggarwal
email = aggarwalarpit.89@gmail.com
Coba letakkan yang berikut ini ke file ~ / .gitconfig:
[http]
proxy = http://proxy:8080
[https]
proxy = http://proxy:8080
[url "https://"]
insteadOf = git://
Untuk protokol git (git: // ...), instal socat dan tulis skrip seperti:
#!/bin/sh
exec socat - socks4:your.company.com:$1:$2
membuatnya dapat dieksekusi, letakkan di jalur Anda, dan di ~/.gitconfig
set Anda core.gitproxy
dengan nama skrip itu.
socat STDIO PROXY:%proxy%:%1:%2,proxyport=%PROXYPORT%
set GIT_PROXY_COMMAND=path\to\script
untuk membuat GIT menggunakan proxy tanpa mengacaukan konfigurasi git.
Ada sesuatu yang saya perhatikan dan ingin saya bagikan di sini:
git config --global http.proxy http://<proxy address>:<port number>
Metode di atas tidak akan berfungsi untuk ssh URL (yaitu, git@github.com:<user name>/<project name>.git
):
git clone git@github.com:<user name>/<project name>.git // will not use the http proxy
Dan hal-hal tidak akan berubah jika kita menetapkan SSH di atas port HTTPS ( https://help.github.com/en/articles/using-ssh-over-the-https-port ) karena hanya mengubah port (22 secara default) ) koneksi ssh terhubung ke.
(Bukan penutur asli bahasa Inggris, harap perbaiki kata-kata saya jika perlu)
Saya bekerja pada Windows XP di tempat kerja (negara bagian / gov), jadi saya melakukan penelitian dan menemukan ini di sini dan itu berhasil untuk saya. Semoga ini membantu :)
Variabel Lingkungan http_proxy
Jika Anda menggunakan server proxy atau firewall, Anda mungkin perlu mengatur variabel lingkungan http_proxy untuk mengakses beberapa url dari commandline. Contoh: Menginstal ppm untuk perl atau menerapkan rpm di linux, memperbarui ubuntu
Setel variabel http_proxy dengan nama host atau alamat IP dari server proxy: http_proxy = http: // [proxy.example.org]
Jika server proksi memerlukan nama pengguna dan kata sandi, masukkan mereka dalam bentuk berikut: http_proxy = http: // [nama pengguna: kata sandi@proxy.example.org]
Jika server proxy menggunakan port selain 80, sertakan nomor port: http_proxy = http: // [nama pengguna: password@proxy.example.org: 8080]
Windows XP
- Buka Control Panel dan klik ikon System.
- Pada tab Lanjut, klik pada Variabel Lingkungan.
- Klik Baru di panel variabel Sistem.
- Tambahkan http_proxy dengan informasi proxy yang sesuai (lihat contoh di atas).
Linux, Solaris atau HP-UX
Setel variabel lingkungan http_proxy menggunakan perintah khusus untuk shell Anda (mis. Set atau ekspor). Untuk membuat perubahan ini terus-menerus, tambahkan perintah ke file profil yang sesuai untuk shell. Misalnya, di bash, tambahkan baris seperti berikut ke file .bash_profile atau .bashrc Anda:
- http_proxy = http: // [nama pengguna: kata sandi @ hostname: port];
- ekspor $ http_proxy
Sebagai tambahan dari jawaban-jawaban ini, saya merasa terbantu untuk mempertimbangkan 2 poin ini:
Seseorang mungkin perlu menegakkan skema otentikasi:
[http]
# https://github.com/git/git/blob/master/Documentation/config.txt
proxyAuthMethod = anyauth|basic|digest|negotiate|ntlm
Juga, biasanya dengan skema otentikasi NTLM, seseorang mungkin perlu memberikan secara eksplisit domain AD.
Dalam git bash:
echo %userdomain%
Dan perbarui http.proxy sesuai:
git config --global http.proxy http://DOMAIN\\proxyuser:proxypwd@proxy.server.com:8080
Bagaimanapun, investigasi dapat dibantu dengan menambahkan log CURL:
export GIT_CURL_VERBOSE=1
git config --global http.proxyAuthMethod basic
. Git gersion 2.8.3 tidak mengirim otentikasi apa pun hingga saya menetapkan parameter konfigurasi ini.
Jika Anda memiliki tsocks atau rantai proxy diinstal dan dikonfigurasi, Anda bisa
$ tsocks git clone <you_repository>
atau
$ proxychains git clone <you_repository>
untuk membuatnya lebih pendek, saya membuat link simbol /usr/bin/p
untuk proxychains
, sehingga saya dapat menggunakannya seperti ini
p git clone <you_repository>
dan saya bisa menggunakannya untuk mem-proxy perintah apa saja,
p <cmd-need-be-proxied>
Ngomong- ngomong, proxychains tidak diperbarui untuk waktu yang lama, Anda mungkin ingin mencoba proxychians-ng
Mengatur git proxy di terminal
jika
Atur secara global sekali
git config --global http.proxy username:password@proxy_url:proxy_port
git config --global https.proxy username:password@proxy_url:proxy_port
jika Anda ingin menetapkan proxy hanya untuk satu proyek git (mungkin ada beberapa situasi di mana Anda mungkin tidak ingin menggunakan proxy yang sama atau proxy apa pun sama sekali untuk beberapa koneksi git)
//go to project root
cd /bla_bla/project_root
//set proxy for both http and https
git config http.proxy username:password@proxy_url:proxy_port
git config https.proxy username:password@proxy_url:proxy_port
jika Anda ingin menampilkan pengaturan proxy saat ini
git config --list
jika Anda ingin menghapus proxy secara global
git config --global --unset http.proxy
git config --global --unset https.proxy
jika Anda ingin menghapus proxy hanya untuk satu root git
//go to project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy
di sini adalah pengaturan proxy
git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>
Saya mengikuti sebagian besar jawaban yang direkomendasikan di sini. Pertama saya mendapat kesalahan berikut:
fatal: tidak dapat mengakses ' https://github.com/folder/sample.git/ ': schannel: next InitializeSecurityContext gagal: Kesalahan tidak dikenal (0x80092012) - Fungsi pencabutan tidak dapat memeriksa pencabutan sertifikat.
Kemudian saya sudah mencoba perintah berikut oleh @Salim Hamidi
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
Tapi saya mendapat kesalahan berikut:
fatal: tidak dapat mengakses ' https://github.com/folder/sample.git/ ': Menerima kode HTTP 407 dari proksi setelah CONNECT
Ini bisa terjadi jika server proxy tidak dapat memverifikasi sertifikat SSL. Jadi kami ingin memastikan bahwa verifikasi ssl tidak aktif (tidak disarankan untuk situs yang tidak tepercaya), jadi saya telah melakukan langkah-langkah berikut yang direkomendasikan oleh @Arpit tetapi dengan sedikit perubahan:
1.Pertama kali pastikan untuk menghapus pengaturan proxy sebelumnya:
git config --global --unset http.proxy
2.Lalu daftar dan dapatkan konten gitconfig
git config --list --show-origin
3. Terakhir perbarui konten file gitconfig seperti di bawah ini:
[http]
sslCAInfo = C:/yourfolder/AppData/Local/Programs/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
[https]
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
Saya telah mencoba semua jawaban di atas dan tidak ada yang berhasil untuk saya, karena ada masalah penyandian kata sandi proxy.
Perintah ini berhasil:
git config --global http.proxy http://username@proxy.example.com:PortNumber
Jangan masukkan kata sandi dalam perintah Anda. Itu akan secara dinamis meminta ketika Anda mencoba terhubung ke repo git.
Untuk pengguna windows: jika git config
atau set http_proxy=
tidak berfungsi, jawaban ini dapat membantu:
ganti git://
protokol repositori git dengan http://
. Catatan, Anda harus mengatur yang http_proxy
pertama.
Setelah tanpa lelah mencoba setiap solusi di halaman ini, pekerjaan saya adalah menggunakan dan kunci SSH!