Как мне получить git для использования прокси-сервера?
Мне нужно проверить код с сервера git, он показывает "Время ожидания запроса" каждый раз. Как мне обойти это?
В качестве альтернативы, как я могу установить прокси-сервер?
Как мне получить git для использования прокси-сервера?
Мне нужно проверить код с сервера git, он показывает "Время ожидания запроса" каждый раз. Как мне обойти это?
В качестве альтернативы, как я могу установить прокси-сервер?
Команда для использования:
git config --global http.proxy http://proxyuser:[email protected]:8080
proxyuser
на своего прокси-пользователяproxypwd
на свой прокси-парольproxy.server.com
на URL вашего прокси-сервера8080
на порт прокси, настроенный на вашем прокси-сервереЕсли вы решите в любое время reset этот прокси-сервер и работать без прокси-сервера:
Команда для использования:
git config --global --unset http.proxy
Наконец, чтобы проверить установленный в настоящий момент прокси-сервер:
git config --global --get http.proxy
Это сработало для меня, в Windows XP за корпоративным брандмауэром.
Мне не нужно было устанавливать какой-либо локальный прокси-сервер или любое другое программное обеспечение, кроме git v1.771 из 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= прокси-пользователь, которому я был назначен нашим ИТ-отделом, в моем случае это тот же пользователь Windows, который я использую для входа на мой компьютер, пользователя Active Directory
proxypwd= пароль моего пользователя-прокси.
proxy.server.com:8080= имя и порт прокси, я получил его из панели управления, параметров обозревателя, подключений, настроек Lan Settings, кнопки Advanced внутри раздела Proxy Server, используя имя сервера и порт в первой (http) строке.
mygithubuser= пользователь, которого я использую для входа в github.com
mygithubpwd= пароль для моего пользователя github.com
repoUser= пользователь-владелец репо
repoName= имя репо
Задайте системную переменную с именем http_proxy
со значением ProxyServer:Port
.
Это самое простое решение. Соответственно, используйте https_proxy
, как указано в комментариях daefu.
Настройка gitproxy (как упоминается sleske) - это еще один вариант, но для этого требуется "команда", что не так прямолинейно, как вышеприведенное решение.
Литература: http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html
Если способ настройки прокси-сервера командной строки не работает, вы можете, возможно, просто отредактировать файл .gitconfig(в корне вашего профиля, который может скрываться как в C:\Documents and Settings, так и на каком-то сетевом диске) и добавить это:
[http]
proxy = http://username:[email protected]:8080
YMMV, однако, это охватывает только первый шаг конфигурации командной строки. Возможно, вам придется отредактировать конфигурацию системы git, и я не знаю, где они спрятали это.
В качестве альтернативы использованию git config --global http.proxy address:port
вы можете установить прокси-сервер в командной строке:
git -c "http.proxy=address:port" clone https://...
Преимущество в том, что прокси-сервер не устанавливается постоянно. В разделе Bash вы можете установить псевдоним:
alias git-proxy='git -c "http.proxy=address:port"'
Если вы используете ubuntu, выполните следующие действия...
Шаг 1: Установите штопор
$ sudo apt-get install corkscrew
Шаг 2: напишите script с именем 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. Сделайте исполняемый файл script
$ 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:[email protected]:YOUR.PROXY.SERVER.PORT
sslverify = false
[https]
proxy = http://YOUR_PROXY_USERNAME:[email protected]R:YOUR.PROXY.SERVER.PORT
sslverify = false
[url "http://github.com/"]
insteadOf = git://github.com/
[user]
name = Arpit Aggarwal
email = [email protected]
Попробуйте поместить следующее в файл ~/.gitconfig:
[http]
proxy = http://proxy:8080
[https]
proxy = http://proxy:8080
[url "https://"]
insteadOf = git://
Для протокола git (git://...) установите socat и напишите script, например:
#!/bin/sh
exec socat - socks4:your.company.com:$1:$2
сделайте его выполнимым, поместите его в свой путь и в ~/.gitconfig
установите core.gitproxy
на имя этого script.
В дополнение к этим ответам я нашел полезным рассмотреть эти 2 пункта:
Возможно, потребуется ввести схему аутентификации:
[http]
# https://github.com/git/git/blob/master/Documentation/config.txt
proxyAuthMethod = anyauth|basic|digest|negotiate|ntlm
Кроме того, как правило, с помощью схемы проверки подлинности NTLM может потребоваться явно указать домен AD.
В git bash:
echo %userdomain%
И обновите http.proxy соответственно:
git config --global http.proxy http://DOMAIN\\proxyuser:[email protected]:8080
В любом случае, исследование может помочь, добавив журналы CURL:
export GIT_CURL_VERBOSE=1
Там кое-что я заметил и хочу поделиться здесь:
git config --global http.proxy http://<proxy address>:<port number>
Приведенный выше метод не будет работать для URL-адресов ssh (т.е. [email protected]:<user name>/<project name>.git
):
git clone [email protected]:<user name>/<project name>.git // will not use the http proxy
И ничего не изменится, если мы установим SSH через порт HTTPS (https://help.github.com/en/articles/using-ssh-over-the-https-port), потому что он меняет только порт (по умолчанию 22), к которому подключается ssh-соединение.
(Не носитель английского языка, пожалуйста, уточните мои слова, если это необходимо)
Я работаю на Windows XP на работе (штат/правительство), поэтому я провел исследование и обнаружил, что это здесь, и это сработало для меня. Надеюсь, это поможет :)
Переменная среды http_proxy
Если вы используете прокси-сервер или брандмауэр, вам может потребоваться установить переменную среды http_proxy, чтобы получить доступ к некоторым URL-адресам из командной строки. Пример: установка ppm для perl или применение rpm в linux, обновление ubuntu
Задайте для переменной http_proxy имя хоста или IP-адрес прокси-сервера: http_proxy = http://[proxy.example.org]
Если прокси-серверу требуются имя пользователя и пароль, включите их в следующую форму: http_proxy = http://[имя пользователя: пароль@proxy.example.org]
Если прокси-сервер использует порт, отличный от 80, укажите номер порта: http_proxy = http://[имя пользователя: пароль@proxy.example.org: 8080]
Windows XP
- Откройте панель управления и щелкните значок "Система".
- На вкладке "Дополнительно" нажмите "Переменные среды".
- Нажмите "Создать" на панели "Системные переменные".
- Добавьте http_proxy с соответствующей информацией о прокси (см. примеры выше).
Linux, Solaris или HP-UX
Установите переменную среды http_proxy с помощью команды, специфичной для вашей оболочки (например, set или export). Чтобы сделать это изменение постоянным, добавьте команду в соответствующий файл профиля для оболочки. Например, в bash добавьте следующую строку в ваш файл .bash_profile или .bashrc:
- http_proxy = http://[имя пользователя: пароль @имя хоста: порт];
- экспорт $ http_proxy
Если у вас установлены и настроены tsocks или proxychain, вы можете
$ tsocks git clone <you_repository>
или же
$ proxychains git clone <you_repository>
чтобы сделать его короче, я создал символьную ссылку /usr/bin/p
для proxychains
, поэтому я могу использовать ее следующим образом
p git clone <you_repository>
и я могу использовать его для прокси любой команды,
p <cmd-need-be-proxied>
кстати, proxychains давно не обновляется, вы можете попробовать proxychians-ng
Настройка git прокси-сервера на терминале
если
Установить глобально один раз
git config --global http.proxy username:[email protected]_url:proxy_port
git config --global https.proxy username:[email protected]_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:[email protected]_url:proxy_port
git config https.proxy username:[email protected]_url:proxy_port
если вы хотите отображать текущие настройки прокси-сервера
git config --list
если вы хотите удалить прокси глобально
git config --global --unset http.proxy
git config --global --unset https.proxy
если вы хотите удалить прокси только для одного git root
//go to project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy
Я следовал большинству ответов, которые были рекомендованы здесь. Сначала я получил следующую ошибку:
неустранимый: невозможно получить доступ к https://github.com/folder/sample.git/: schannel: next InitializeSecurityContext не удалось: неизвестная ошибка (0x80092012) - функция отзыва не смогла проверить отзыв сертификата.
Затем я попробовал следующую команду @Salim Hamidi
git config --global http.proxy http://proxyuser:[email protected]:8080
Но я получил следующую ошибку:
Неустранимый: невозможно получить доступ к https://github.com/folder/sample.git/: Получен HTTP-код 407 от прокси-сервера после CONNECT
Это может произойти, если прокси-сервер не может проверить сертификат SSL. Поэтому мы хотим убедиться, что проверка ssl отключена (не рекомендуется для ненадежных сайтов), поэтому я сделал следующие шаги, которые были рекомендованы @Arpit, но с небольшими изменениями:
1. Сначала убедитесь, что удалили все предыдущие настройки прокси:
git config --global --unset http.proxy
2. Затем перечислите и получите содержимое gitconfig.
git config --list --show-origin
3.Последнее обновление содержимого файла gitconfig, как показано ниже:
[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
Для пользователей Windows: если git config
или set http_proxy=
не работает, этот ответ может помочь:
замените протокол git://
репозитория git на http://
. Обратите внимание: сначала вам нужно установить http_proxy
.
вот настройка прокси
git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>
Я перепробовал все приведенные выше ответы, и у меня ничего не получалось, так как были проблемы с кодировкой пароля прокси.
Эта команда сработала:
git config --global http.proxy http://[email protected]:PortNumber
Не вводите пароль в вашей команде. Он будет динамически запрашивать при попытке подключиться к любому git-репо.
После того, как я без устали попробовал каждое решение на этой странице, я решил использовать вместо него ключ SSH!