Git через прокси. Что вызывает ошибку 407 при клонировании?
Я пытаюсь использовать Git через прокси. Я попытался установить параметры "git config -global" многими способами, но всегда безуспешно при клонировании репозиториев.
Я сделал:
git config --global http.proxy http://DOMAIN\\\username:[email protected]:8080
git config --global http.sslverify false
git clone http://github.com/project/project.git
И я получил:
$ git clone http://github.com/project/project.git folder
Cloning into 'folder'...
error: The requested URL returned error: 407 while accessing http://github.com/project/project.git/info/refs
fatal: HTTP request failed
Итак, как я могу отладить это или включить ведение журнала в Git, чтобы узнать, почему я все еще получаю ошибку 407? Есть ли какой-либо параметр в Git, чтобы подробно показать, что происходит, чтобы поймать правильную точку, где происходит ошибка?
Ответы
Ответ 1
Вы можете включить ведение журнала трассировки, чтобы получить больше информации о том, что делает Git. Ниже приведен пример:
GIT_TRACE=$HOME/trace.log git co master
Вы должны использовать абсолютные пути, если вы хотите отправить вывод в файл. В противном случае используйте true или 1 для отправки вывода в стандартную ошибку; например GIT_TRACE=1
.
Ответ 2
У меня была аналогичная проблема с попыткой git push
от клиента Git Bash в Windows.
Я исправил его только с помощью просмотра на сайте с помощью Chrome.
Затем я вернулся к Git Bash, и он сразу сработал
Для ясности мой URL-адрес репозитория Git выглядит как http://[email protected]/myproject.git
И я просмотрел http://www.cloudforge.com
Я понимаю, что он заставляет прокси-сервер разрешать этот домен.
Ответ 3
Я думаю, что вы должны начать с ошибки HTTP: Ошибка HTTP 407.
И из этого вы можете прийти к ответу: ошибка прокси-сервера. Надеюсь, что это поможет.
Ответ 4
Следующее решение проблемы для меня
- Rightclick в папке git- > TortoiseGit- > Настройки- > Сеть
- Включить прокси-сервер и входной прокси, порт, пользователь, пароль
Ответ 5
Эта ошибка может возникнуть, если указаны учетные данные прокси-сервера, но недействительны. В моем случае это был старый пароль.
Ответ 6
Я скопировал раздел http proxy моего .gitconfig в https:
[http]
proxy = http://user:[email protected]_or_host:port
[https]
proxy = http://user:[email protected]_or_host:port
Я установил неверный пароль в прокси-сервере http только для проверки, и он был проигнорирован, поэтому для него отсутствовал раздел https.
Странно, в другой день это не сработало. Я не знаю, схожу ли я с ума, или если еще один шаг я забыл. В сегодняшнем случае этот метод настройки прокси работал (с очищенным .gitconfig) из командной строки:
HTTPS_PROXY="http://user:[email protected]_or_host:port/" git clone --progress -v "https://github.com/repo" local_folder
Примечания:
- Если вы находитесь в домене, вам может понадобиться использовать синтаксис
DOMAIN\user
.
- Это не работало для TortoiseGit, но работало в gitbash в Windows.
Ответ 7
Ваш прокси-сервер также может быть установлен как переменная среды. Убедитесь, что в вашей среде есть какие-либо из env-переменных http_proxy или https_proxy, настроенных и отключенных.
Использование командной строки
# Linux
export http://user:[email protected]_or_host:port
export http://user:[email protected]_or_host:port
# Windows
set HTTP_PROXY = http://user:[email protected]_or_host:port
set HTTPS_PROXY = http://user:[email protected]_or_host:port
изменить вручную
- Щелкните правой кнопкой мыши на моем компьютере.
- выберите свойства
- расширенные системные настройки advanced- > системные переменные → add
Ответ 8
Если вы находитесь внутри корпоративного брандмауэра и используете окна git bash, то:
Откройте глобальный файл gitconfig, обычно это будет находиться под C:\Users\USER_NAME.gitconfig и добавьте ниже строки, если они не существуют.
[http]
proxy = http://USER_NAME:[email protected]_URL:PROXY_PORT
sslverify = false
[https]
proxy = http://USER_NAME:[email protected]_URL:PROXY_PORT
sslverify = false
Убедитесь, что ваш пароль не имеет символа "@".
Если у вас все еще есть проблема, и вместо этого вы используете URL-адрес прокси-сервера, выполните следующие действия:
Откройте команду "Windows Key + R" и введите cmd, а затем нажмите enter.
выполните команду:
nslookup PROXY_URL
Это даст некоторые IP-адреса. Попробуйте эти IP-адреса в .giconfig вместо PROXY_URL.
Ответ 9
Это работает для пользователей домена и за прокси с проверкой подлинности и HTTPS.
Используйте следующее, если вместо "\" используется% 5c.
то есть. DOMAIN% 5cusername @прокси: порт
Откройте GIT config в редакторе:
git config --global e
Добавить/обновить следующие разделы и сохранить:
[http]
proxy = http://domain%5cusername:[email protected]:port
sslVerify = false
[https]
proxy = http://domain%5cusername:[email protected]proxy:port
sslVerify = false
Ответ 10
Обратите внимание, что для любого Git между 2.8 (февраль 2016, через пять лет после вопроса OP) и Git 2.13 (Q2 2017) некорректная прокси-конфигурация будет игнорироваться (даже не 407)
См. commit ae51d91, commit 5741508 ( 11 апреля 2017 года) Сергей Рязанов (acteek
).
Помог: Джефф Кинг (peff
).
(Слияние Junio C Hamano - gitster
- в совершить 6b51cb6, 24 апреля 2017 года)
http: исправить молчание игнорирования неправильной настройки прокси-сервера
Раньше вся строка опций http.proxy
передавалась curl
без любая предварительная обработка, поэтому curl
может жаловаться на недопустимый прокси-сервер конфигурации.
После совершить 372370f ( "http
: использовать API учетных данных для обработки прокси-сервера аутентификация", 2016-01-26), если пользователь указал неверный протокол HTTP proxy в конфигурации, затем синтаксический разбор параметров сбой и NULL будет передан в curl в качестве прокси-сервера.
Это заставляет curl
возвращаться к обнаружению конфигурации прокси-сервера из среды, вызывая игнорирование опции http.proxy
.
Исправить эту проблему, проверив результат анализа синтаксиса прокси. Если разбор не удалось распечатать сообщение об ошибке и умереть.
Такое поведение позволяет чтобы быстро определить неправильную конфигурацию прокси-сервера и исправить ее.