Git에서 프록시 서버를 사용하려면 어떻게해야합니까?
Git 서버에서 코드를 체크 아웃해야하지만 매번 "Request timed out"이 표시됩니다. 이 문제를 어떻게 해결합니까?
또는 프록시 서버를 어떻게 설정할 수 있습니까?
Git에서 프록시 서버를 사용하려면 어떻게해야합니까?
Git 서버에서 코드를 체크 아웃해야하지만 매번 "Request timed out"이 표시됩니다. 이 문제를 어떻게 해결합니까?
또는 프록시 서버를 어떻게 설정할 수 있습니까?
답변:
사용할 명령 :
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
proxyuser
프록시 사용자로 변경proxypwd
프록시 비밀번호로 변경proxy.server.com
프록시 서버의 URL로 변경8080
프록시 서버에 구성된 프록시 포트로 변경이것은 http 및 https repos 모두에서 작동합니다.
언제든지이 프록시를 재설정하고 프록시없이 작업하기로 결정한 경우 :
사용할 명령 :
git config --global --unset http.proxy
마지막으로 현재 설정된 프록시를 확인하려면
git config --global --get http.proxy
%40
의 대체물로 사용할 수 있습니다 @
. 도움이 되길 바랍니다. :-)
이것은 회사 방화벽 뒤의 Windows XP에서 저에게 효과적이었습니다.
http://code.google.com/p/msysgit/downloads/list?can=3 에서 git v1.771 이외의 로컬 프록시 또는 다른 소프트웨어를 설치할 필요가 없었습니다 .
$ 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
proxyuser = IT 부서에서 할당 한 프록시 사용자입니다. 필자의 경우 PC에 로그인 할 때 사용하는 Windows 사용자 인 Active Directory 사용자와 같습니다.
proxypwd = 프록시 사용자의 비밀번호
proxy.server.com:8080 = 프록시 이름 및 포트, 프록시 서버 섹션의 제어판, 인터넷 옵션, 연결, Lan 설정 버튼, 고급 버튼에서 가져 왔습니다. 첫 번째 (http) 행의 서버 이름 및 포트를 사용하십시오. .
mygithubuser = github.com 에 로그인 할 때 사용하는 사용자
mygithubpwd = 내 github.com 사용자의 비밀번호
repoUser = 리포지토리 의 사용자 소유자
repoName = 리포지토리 이름
git config --global http.sslcainfo MY_NEW_CERTS_BUNDLE.crt
설명 된대로 다운로드 한 인증서 (스택 덕분에 stackoverflow.com/a/7206627/98528 )가 나를 위해 해냈습니다!
git://
프로토콜을 사용하여 리포지토리를 복제하도록 요청하면 여전히 자식이 작동하지 않습니다 .
http_proxy
값으로 이름이 지정된 시스템 변수를 설정하십시오 ProxyServer:Port
. 이것이 가장 간단한 해결책입니다. 각각 https_proxy
의 의견에 언급 된 대 푸로 사용 하십시오.
sskeke가 언급 한 것처럼 gitproxy를 설정하는 것도 또 다른 옵션이지만, 위의 솔루션만큼 간단하지 않은 "명령"이 필요합니다.
참고 문헌 : http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html
http_proxy
HTTP URL https_proxy
에 필요하고 HTTPS URL에 필요합니다. 또는 all_proxy
모든 URL에 대해 설정할 수 있습니다 . curl (1)의ENVIRONMENT
섹션을 참조하십시오 . 그러나 git-config 옵션을 설정하는 동안 HTTP 및 HTTPS URL 모두에 사용됩니다. 보기 에 자식 - 설정 (1) . http.proxy
http.proxy
프록시 서버를 구성하는 명령 행 방법이 작동하지 않는 경우 .gitconfig (프로필의 루트에서 C : \ Documents and Settings 및 일부 네트워크 드라이브에서 숨길 수 있음)를 편집하고 추가하면됩니다. :
[http]
proxy = http://username:password@proxy.at.your.org:8080
그러나 YMMV는 명령 행 구성의 첫 번째 단계에만 적용됩니다. 시스템 git 구성도 편집해야 할 수도 있으며 어디에서 숨겼는지 모르겠습니다.
우분투를 사용하는 경우 다음을 수행하십시오 ...
1 단계 : 타래 송곳 설치
$ sudo apt-get install corkscrew
2 단계 : git-proxy.sh라는 스크립트를 작성하고 다음을 추가하십시오.
#!/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 $*
3 단계 : 스크립트를 실행 가능하게 만들기
$ chmod +x git-proxy.sh
4 단계 : 환경 변수를 설정하여 GIT에 대한 프록시 명령 설정
$ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"
이제 git 명령을 사용하십시오.
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
"$@"
대신을 사용해야 합니다 $*
. 자세한 내용은 쉘 설명서를 참조하십시오.
.gitconfig
Windows 의 여러 파일로 인해 동일한 문제가 발생 하여 아래 단계를 따라 동일한 문제를 해결했습니다.
1 단계 : Git BASH 열기
2 단계 : 을 찾아 .gitconfig
, 다음 명령을 실행 :
git config --list --global --show-origin
3 단계 : 아래 내용을 복사하십시오 .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
~ / .gitconfig 파일에 다음을 입력하십시오.
[http]
proxy = http://proxy:8080
[https]
proxy = http://proxy:8080
[url "https://"]
insteadOf = git://
git 프로토콜 (git : // ...)의 경우 socat을 설치하고 다음과 같은 스크립트를 작성하십시오.
#!/bin/sh
exec socat - socks4:your.company.com:$1:$2
실행 가능하게 만들고 경로와 스크립트 이름으로 ~/.gitconfig
설정 하십시오 core.gitproxy
.
socat STDIO PROXY:%proxy%:%1:%2,proxyport=%PROXYPORT%
set GIT_PROXY_COMMAND=path\to\script
git config를 망칠 필요없이 GIT가 프록시를 사용 하도록 할 수 있습니다 .
내가 알아 차리고 여기에 공유하고 싶은 것이 있습니다.
git config --global http.proxy http://<proxy address>:<port number>
위의 방법은 ssh URL (예 :)에서 작동하지 않습니다 git@github.com:<user name>/<project name>.git
.
git clone git@github.com:<user name>/<project name>.git // will not use the http proxy
HTTPS 포트 ( https://help.github.com/en/articles/using-ssh-over-the-https-port )를 통해 SSH를 설정 하면 포트가 변경되기 때문에 변경되지 않습니다 (기본적으로 22 ) ssh 연결이 연결됩니다.
(영어 원어민이 아니므로 필요한 경우 내 말을 수정하십시오)
나는 직장 (주 / 정부)에서 Windows XP를 사용하므로 연구를하고 여기서 찾았 으며 나에게 도움이되었습니다. 도움이 되었기를 바랍니다 :)
http_proxy 환경 변수
프록시 서버 또는 방화벽을 사용하는 경우 명령 행에서 일부 URL에 액세스하기 위해 http_proxy 환경 변수를 설정해야 할 수 있습니다. 예 : Linux에서 perl에 ppm 설치 또는 rpm을 적용하여 우분투 업데이트
http_proxy 변수를 프록시 서버의 호스트 이름 또는 IP 주소로 설정하십시오. http_proxy = http : // [proxy.example.org]
프록시 서버에 사용자 이름과 비밀번호가 필요한 경우 다음 형식으로 포함하십시오. http_proxy = http : // [username : password@proxy.example.org]
프록시 서버가 80 이외의 포트를 사용하는 경우 포트 번호를 포함하십시오. http_proxy = http : // [username : password@proxy.example.org : 8080]
윈도우 XP
- 제어판을 열고 시스템 아이콘을 클릭하십시오.
- 고급 탭에서 환경 변수를 클릭하십시오.
- 시스템 변수 패널에서 새로 작성을 클릭하십시오.
- 적절한 프록시 정보로 http_proxy를 추가하십시오 (위 예 참조).
Linux, Solaris 또는 HP-UX
쉘 고유의 명령을 사용하여 http_proxy 환경 변수를 설정하십시오 (예 : set 또는 export). 이 변경 사항을 지속적으로 유지하려면 명령을 쉘의 해당 프로파일 파일에 추가하십시오. 예를 들어, bash에서 .bash_profile 또는 .bashrc 파일에 다음과 같은 행을 추가하십시오.
- http_proxy = http : // [사용자 이름 : 암호 @ 호스트 이름 : 포트];
- $ http_proxy 내보내기
이 답변 외에도 다음 두 가지 사항을 고려하는 것이 도움이되었습니다.
인증 체계를 시행해야 할 수도 있습니다.
[http]
# https://github.com/git/git/blob/master/Documentation/config.txt
proxyAuthMethod = anyauth|basic|digest|negotiate|ntlm
또한 일반적으로 NTLM 인증 스키마를 사용하면 AD 도메인을 명시 적으로 제공해야 할 수 있습니다.
자식 배쉬에서 :
echo %userdomain%
그리고 http.proxy를 적절히 업데이트하십시오.
git config --global http.proxy http://DOMAIN\\proxyuser:proxypwd@proxy.server.com:8080
어쨌든 CURL 로그를 추가하면 조사가 도움이 될 수 있습니다.
export GIT_CURL_VERBOSE=1
git config --global http.proxyAuthMethod basic
. Git gersion 2.8.3은이 구성 매개 변수를 설정할 때까지 인증을 보내지 않았습니다.
당신이있는 경우 tsocks 또는 proxychains 설치 및 구성 작업을 수행 할 수 있습니다
$ tsocks git clone <you_repository>
또는
$ proxychains git clone <you_repository>
더 짧게하기 위해에 대한 기호 링크 /usr/bin/p
를 만들었 proxychains
으므로 다음과 같이 사용할 수 있습니다
p git clone <you_repository>
모든 명령을 프록시하는 데 사용할 수 있습니다.
p <cmd-need-be-proxied>
그건 그렇고, 프록시 체인은 오랫동안 업데이트되지 않습니다, 당신은 proxychians-ng를 시도하고 싶을 수도 있습니다
터미널에서 git 프록시 설정
만약
전 세계적으로 한 번 설정
git config --global http.proxy username:password@proxy_url:proxy_port
git config --global https.proxy username:password@proxy_url:proxy_port
하나의 git 프로젝트에 대해서만 프록시를 설정하려는 경우 (일부 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
현재 프록시 설정을 표시하려는 경우
git config --list
프록시를 전체적으로 제거하려는 경우
git config --global --unset http.proxy
git config --global --unset https.proxy
하나의 자식 루트에 대해서만 프록시를 제거하려는 경우
//go to project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy
여기 프록시 설정입니다
git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>
나는 여기에 권장되는 대부분의 답변을 따랐습니다. 먼저 다음과 같은 오류가 발생했습니다.
치명적 : ' https://github.com/folder/sample.git/ ' 에 액세스 할 수 없음 : schannel : next InitializeSecurityContext 실패 : 알 수없는 오류 (0x80092012)-해지 기능이 인증서 해지를 확인할 수 없습니다.
그런 다음 @Salim Hamidi의 다음 명령을 시도했습니다.
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
그러나 다음과 같은 오류가 발생했습니다.
치명적 : ' https://github.com/folder/sample.git/ ' 에 액세스 할 수 없음 : CONNECT 후 프록시에서 HTTP 코드 407을 수신함
프록시 서버가 SSL 인증서를 확인할 수없는 경우 발생할 수 있습니다. 따라서 우리는 ssl 확인이 꺼져 있는지 확인하고 (신뢰할 수없는 사이트에는 권장되지 않음) @Arpit에서 권장하지만 약간 변경하여 다음 단계를 수행했습니다.
1. 먼저 이전 프록시 설정을 제거하십시오.
git config --global --unset http.proxy
그런 다음 gitconfig 내용을 나열하고 가져옵니다.
git config --list --show-origin
다음과 같이 gitconfig 파일의 내용을 마지막으로 업데이트하십시오.
[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
프록시 비밀번호 인코딩 문제가 있었으므로 위의 모든 답변을 시도했지만 아무런 효과가 없었습니다.
이 명령은 효과가있었습니다.
git config --global http.proxy http://username@proxy.example.com:PortNumber
명령에 비밀번호를 입력하지 마십시오. git repo에 연결하려고 할 때 동적으로 묻습니다.