Getting Git to work with a proxy server-fails with " Request timed out"

Jak zmusić Git do używania serwera proxy?

Muszę sprawdzić kod z serwera Git, ale za każdym razem pokazuje "Request timed out". Jak to obejść?

Alternatywnie, Jak mogę ustawić serwer proxy?

Author: Peter Mortensen, 2009-04-23

20 answers

Polecenie do użycia:

git config --global http.proxy http://proxyuser:[email protected]:8080
  • Zmień proxyuser na swojego użytkownika proxy
  • Zmień proxypwd na hasło proxy
  • Zmień proxy.server.com na adres URL serwera proxy
  • Zmień 8080 na port proxy skonfigurowany na serwerze proxy

Zauważ, że działa to zarówno dla transakcji repo http, jak i https.

Jeśli zdecydujesz się w dowolnym momencie zresetować proxy i działać bez proxy:

Polecenie do użycia:

git config --global --unset http.proxy

Wreszcie, aby sprawdzić aktualnie ustawione "proxy": {]}

git config --global --get http.proxy
 1700
Author: Salim Hamidi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-07 22:10:14

To działało dla mnie, w windows XP za firmowym firewallem.

Nie musiałem instalować żadnego lokalnego proxy ani żadnego innego oprogramowania poza git v1.771 z http://code.google.com/p/msysgit/downloads/list?can=3

$ git config --global http.proxy http://proxyuser:[email protected]:8080
$ git config --system http.sslcainfo /bin/curl-ca-bundle.crt
$ git remote add origin https://mygithubuser:[email protected]/repoUser/repoName.git
$ git push origin master

Proxyuser = użytkownik proxy został przypisany przez nasz dział IT, w moim przypadku jest to ten sam użytkownik windows, którego używam do logowania się na moim komputerze, użytkownik Active Directory

Proxypwd = hasło mojego proxy user

Proxy. server. com:8080 = nazwa i port proxy, dostałem to z Panelu sterowania, Opcje internetowe, połączenia, przycisk Ustawienia Lan, przycisk zaawansowany wewnątrz sekcji Serwer Proxy, użyj nazwy serwera i portu w pierwszym wierszu (http).

Mygithubuser = użytkownik, którego używam do logowania github.com

Mygithubpwd = hasło do mojego github.com user

RepoUser = właściciel użytkownika repo

RepoName = the nazwa repo

 135
Author: alvaro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-31 14:00:54

Ustaw zmienną systemową o nazwie {[0] } o wartości ProxyServer:Port. To najprostsze rozwiązanie. Odpowiednio, użyj https_proxy, Jak zauważył daefu w komentarzach.

Ustawienie gitproxy (jak wspomina sleske) jest inną opcją, ale wymaga "polecenia", które nie jest tak proste jak powyższe rozwiązanie.

Bibliografia: http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html

 53
Author: Debajit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-18 09:36:35

Jako alternatywę dla użycia git config --global http.proxy address:port, możesz ustawić proxy w wierszu poleceń:

git -c "http.proxy=address:port" clone https://...

Zaletą jest to, że proxy nie jest ustawiany uporczywie. Pod Bash możesz ustawić alias:

alias git-proxy='git -c "http.proxy=address:port"'
 44
Author: Steve Pitchers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-05 14:46:11

Jeśli konfiguracja serwera proxy w wierszu poleceń nie działa, prawdopodobnie możesz po prostu edytować .gitconfig (w katalogu głównym Twojego profilu, który może ukryć zarówno w C:\Documents i ustawienia oraz na jakimś dysku sieciowym) i dodaj to:

[http]
    proxy = http://username:[email protected]:8080

YMMV dotyczy to jednak tylko pierwszego kroku konfiguracji wiersza poleceń. Być może będziesz musiał również edytować konfigurację systemu git i nie mam pojęcia, gdzie to ukryli.

 43
Author: Randakar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-08 13:39:51

Jeśli używasz ubuntu, wykonaj następujące czynności ...

Krok 1: Zainstaluj korkociąg

$ sudo apt-get install corkscrew

Krok 2: Napisz skrypt o nazwie git-proxy.sh i dodać następujące

#!/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 $*

Krok 3: Uczyń skrypt wykonywalnym

$ chmod +x git-proxy.sh

Krok 4: skonfigurowanie polecenia proxy dla GIT poprzez ustawienie zmiennej środowiskowej

$ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"

Teraz używaj komend git, takich jak

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
 22
Author: Sk Hasanujjaman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-15 11:30:09

Wystąpił ten sam problem z powodu wielu plików .gitconfig w systemie windows, wykonując poniższe kroki, aby rozwiązać ten sam problem:

Krok 1: Open Git BASH

Krok 2: poszukaj .gitconfig, wykonując następujące polecenie:

git config --list --global --show-origin

Krok 3: skopiuj poniższą treść w .gitconfig:

[http]
    proxy = http://YOUR_PROXY_USERNAME:[email protected]:YOUR.PROXY.SERVER.PORT
    sslverify = false
[https]
    proxy = http://YOUR_PROXY_USERNAME:[email protected]:YOUR.PROXY.SERVER.PORT
    sslverify = false
[url "http://github.com/"]
    insteadOf = git://github.com/

[user]
    name = Arpit Aggarwal
    email = [email protected]
 15
Author: Arpit Aggarwal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-02 09:22:24

Spróbuj umieścić następujące do~/.plik gitconfig:

[http]
    proxy = http://proxy:8080
[https]
    proxy = http://proxy:8080
[url "https://"]
    insteadOf = git://
 12
Author: augustocbx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-22 20:51:38

Jest coś, co zauważyłem i chcę się tutaj podzielić:

git config --global http.proxy http://<proxy address>:<port number>

Powyższa metoda nie będzie działać dla adresów URL SSH (tj., [email protected]:<user name>/<project name>.git):

git clone [email protected]:<user name>/<project name>.git // will not use the http proxy

I nic się nie zmieni jeśli ustawimy SSH przez port HTTPS ( https://help.github.com/en/articles/using-ssh-over-the-https-port ), ponieważ zmienia tylko port (domyślnie 22), z którym łączy się połączenie SSH.

 12
Author: miáo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-09-07 09:25:45

Dla protokołu git (git://...), zainstaluj socat i napisz skrypt taki jak:

#!/bin/sh

exec socat - socks4:your.company.com:$1:$2

Uczyń go wykonywalnym, umieść go w swojej ścieżce i w swojej ~/.gitconfig Ustaw core.gitproxy na nazwę tego skryptu.

 11
Author: ashutosh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-12 03:25:47

Pracuję na Windows XP w pracy (stan/gov), więc zrobiłem swoje badania i znalazłem to tutaj i to działało dla mnie. Mam nadzieję, że to pomoże :)

zmienna środowiskowa http_proxy

Jeśli używasz serwera proxy lub zapory sieciowej, może być konieczne ustawienie zmiennej środowiskowej http_proxy, aby uzyskać dostęp do niektórych adresów url z wiersza poleceń. Przykład: instalacja ppm dla Perla lub zastosowanie rpm w Linuksie, aktualizacja ubuntu

Ustaw zmienną http_proxy z Nazwa hosta lub adres IP serwera proxy: http_proxy=http: / / [proxy.example.org]

Jeśli serwer proxy wymaga nazwy użytkownika i hasła, dołącz je w poniższym formularzu: http_proxy=http: / / [username:[email protected]]

Jeśli serwer proxy używa portu innego niż 80, Należy podać numer portu: http_proxy=http: / / [username:[email protected]:8080]

Windows XP

  1. otwórz Panel sterowania i kliknij System icon.
  2. na karcie Zaawansowane kliknij zmienne środowiskowe.
  3. kliknij przycisk Nowy w panelu zmienne systemowe.
  4. Dodaj http_proxy z odpowiednimi informacjami proxy(patrz przykłady powyżej).

Linux, Solaris czy HP-UX

Ustaw zmienną środowiskową http_proxy za pomocą polecenia właściwego dla powłoki (np. set lub export). Aby ta zmiana stała się trwała, dodaj polecenie do odpowiedniego pliku profilu powłoki. Na przykład, w bash, Dodaj wiersz jak poniżej do swojego .bash_profile lub .plik bashrc:

  1. http_proxy=http: / / [username:password@hostname:port];
  2. export $http_proxy
 7
Author: Shak Daniel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-24 18:54:10

Oprócz tych odpowiedzi, znalazłem pomocne, aby rozważyć te 2 punkty:

Może być konieczne wymuszenie schematu uwierzytelniania:

[http]
    # https://github.com/git/git/blob/master/Documentation/config.txt
    proxyAuthMethod = anyauth|basic|digest|negotiate|ntlm

Również, zazwyczaj w przypadku schematu uwierzytelniania NTLM, może być konieczne podanie domeny AD.

W git bash:

echo %userdomain%

I zaktualizuj http."proxy": {]}

git config --global http.proxy http://DOMAIN\\proxyuser:[email protected]:8080

W każdym razie, dochodzenie może być pomocne, dodając logi CURL:

export GIT_CURL_VERBOSE=1
 7
Author: blacelle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-15 11:44:50

Jeśli masz tsocks lub proxychains zainstalowane i skonfigurowane, można

$ tsocks git clone <you_repository>

Lub

$ proxychains git clone <you_repository>

Aby go skrócić, stworzyłem symbol link /usr/bin/p dla proxychains, więc mogę go używać w ten sposób

p git clone <you_repository>

I mogę go użyć do zastąpienia dowolnego polecenia,

p <cmd-need-be-proxied>

Przy okazji, proxychains nie jest aktualizowany przez długi czas, możesz spróbować proxychians-ng

 6
Author: fangxing,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-18 01:19:13

Ustawienie proxy git na terminalu

If

  • nie chcesz ręcznie ustawiać proxy dla każdego z twoich projektów git, jeden po drugim
  • zawsze chcesz używać tego samego proxy dla wszystkich twoich projektów

Ustaw globalnie raz

git config --global http.proxy username:password@proxy_url:proxy_port
git config --global https.proxy username:password@proxy_url:proxy_port

Jeśli chcesz ustawić proxy tylko dla jednego projektu git (mogą być sytuacje, w których możesz nie chcieć używać tego samego proxy lub jakiegokolwiek proxy w ogóle dla niektórych połączeń z Gitem)

//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

Jeśli chcesz wyświetlić bieżący ustawienia proxy

git config --list 

Jeśli chcesz usunąć proxy globalnie

git config --global --unset http.proxy
git config --global --unset https.proxy

Jeśli chcesz usunąć proxy tylko dla jednego roota git

//go to project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy
 5
Author: Add080bbA,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-12 08:34:12

Oto ustawienie proxy

git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>
 3
Author: hannad rehman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-27 09:54:46

Zastosowałem się do większości zalecanych tutaj odpowiedzi. Najpierw dostałem następujący błąd:

Fatal: unable to access " https://github.com/folder/sample.git/': schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The funkcja odwołania nie była w stanie sprawdzić odwołania dla certyfikat.

Następnie wypróbowałem następujące polecenie @Salim Hamidi

git config --global http.proxy http://proxyuser:[email protected]:8080

Ale mam następujący błąd:

Fatal: unable to access " https://github.com/folder/sample.git/': otrzymany kod HTTP 407 z proxy po podłączeniu

Może się to zdarzyć, jeśli serwer proxy nie może zweryfikować certyfikatu SSL. Chcemy się upewnić, że weryfikacja ssl jest wyłączona( nie jest zalecana dla witryn niezaufanych), więc wykonałem następujące kroki, które zostały zalecane przez @Arpit, ale z niewielkimi zmianami:

1.Najpierw upewnij się, że usuniesz poprzedni serwer proxy Ustawienia:

git config --global --unset http.proxy

2.Następnie lista i pobierz zawartość gitconfig

git config --list --show-origin

3.Ostatnia aktualizacja zawartości pliku gitconfig jak poniżej:

[http]
sslCAInfo = C:/yourfolder/AppData/Local/Programs/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
proxy = http://proxyuser:[email protected]:8080
sslverify = false
[https]
proxy = http://proxyuser:[email protected]:8080
sslverify = false
 3
Author: Wael Almadhoun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-01 04:30:08

Próbowałem wszystkich powyższych odpowiedzi i nic mi nie działało, ponieważ były problemy z kodowaniem hasła proxy.

To polecenie zadziałało:

git config --global http.proxy http://[email protected]:PortNumber 

Nie wpisuj hasła w poleceniu. Będzie dynamicznie pytać o połączenie z dowolnym repo git.

 3
Author: Ishtdeep Hora,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-16 02:34:14

Dla użytkowników windows: jeśli git config LUB set http_proxy= nie działa, ta ODPOWIEDŹ może pomóc:

Zamień git:// protokół repozytorium git na http://. Uwaga, musisz najpierw ustawić http_proxy.

 2
Author: DomTomCat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:23

Po niestrudzonym wypróbowaniu każdego rozwiązania na tej stronie, Moja praca wokół było użycie i klucz SSH zamiast!

  1. Open Git Bash
  2. $ ssh-keygen.exe-t rsa-C
  3. Otwórz swojego dostawcę Gita (Github, Bitbucket, itp.)
  4. Dodaj skopiuj id_rsa.zawartość pliku pub na stronie wejściowej dostawcy Git (sprawdź swój profil)
 1
Author: Janac Meena,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-26 20:03:33

Alternatywą dla używania proxy jest użycie SSH W git configs, skonfiguruj pilota origin na adresie ssh.Następnie użyj polecenia ssh-keygen, które daje Ci klucz publiczny, który możesz ustawić w ustawieniach konta GitLab lub Gitab i odpowiednio się zalogować...

1-Sprawdź, które piloty są używane przez uruchomienie git remote -v w Twoim kliencie Git.

2-jeśli jest to adres http(S), zmień go na adres ssh, uruchom: git remote set-url <remote name, e.g. origin> <new SSH URL>

3-aby wygenerować klucz ssh do logowania, uruchom: ssh-keygen -o, to polecenie generate public (id_rsa.plik pub) oraz klucze prywatne.

4-Kopiuj klucz publiczny zawartość. (z id_rsa.plik pub)

5-przejdź do gitlab / githup/.... w profilu w Ustawieniach . utwórz nowy klucz ssh i wklej zawartość klucza publicznego

 0
Author: fatemeh sadeghi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-06 08:47:39