Начало работы с прокси-сервером

Я бы использовал сокеты; локальная связь была сильно оптимизирована, поэтому у вас не должно быть проблем с производительностью, и это дает вам возможность распространять ваше приложение на разные физические узлы, если это необходимо.

Что касается «низкого уровня», подход, ты прав. Но вы всегда можете использовать обертку более высокого уровня в зависимости от ваших потребностей. XMLRPC может быть хорошим кандидатом, но это может быть чрезмерным для задачи, которую вы пытаетесь выполнить.

Twisted предлагает несколько хороших простых простейших протоколов , например LineReceiver (для простых сообщений на основе строки) или более элегантный AMP (который, кстати, стандартизирован и реализован на разных языках ).

856
задан Arpit 9 October 2017 в 12:03
поделиться

7 ответов

Я следовал большинству ответов, которые были рекомендованы здесь. Сначала я получил следующую ошибку:

неустранимый: невозможно получить доступ к ' https://github.com/folder/sample.git/ ': schannel: next Ошибка InitializeSecurityContext: Неизвестная ошибка (0x80092012) - Функция отзыва не смогла проверить отзыв для сертификата.

Затем я попробовал следующую команду @Salim Hamidi

git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080

Но я получил следующую ошибку:

fatal: неспособен получить доступ ' 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:proxypwd@proxy.server.com:8080
sslverify = false
[https]
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
1
ответ дан Wael Almadhoun 9 October 2017 в 12:03
поделиться

Есть кое-что, что я заметил и хочу поделиться здесь:

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

Приведенный выше метод не будет работать для URL-адресов ssh: (т. Е. git@github.com:<user name>/<project name>.git)

git clone git@github.com:<user name>/<project name>.git // this will not use the above proxy!

И прочего не изменится, если мы установим SSH через порт HTTPS ( https://help.github.com/en/articles/using-ssh-over-the-https-port ), потому что он меняет только порт (По умолчанию 22) ssh-соединение подключается к.

(не носитель языка, пожалуйста, уточните мои слова, если необходимо)

5
ответ дан miāo 9 October 2017 в 12:03
поделиться

Столкнулся с той же проблемой из-за нескольких файлов .gitconfig в окнах, следуя приведенным ниже инструкциям, чтобы исправить это:

Шаг 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
12
ответ дан Arpit 9 October 2017 в 12:03
поделиться

Попробуйте добавить в файл ~ / .gitconfig следующее:

[http]
    proxy = http://proxy:8080
[https]
    proxy = http://proxy:8080
[url "https://"]
    insteadOf = git://
10
ответ дан augustocbx 9 October 2017 в 12:03
поделиться

Установите системную переменную с именем http_proxy со значением ProxyServer:Port. Это самое простое решение. Соответственно, используйте https_proxy, как указано в комментариях daefu.

Установка gitproxy (как упоминает sleske) является еще одним вариантом, но для этого требуется «команда», которая не так проста, как приведенное выше решение.

Ссылки: http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html

49
ответ дан Jens Wirth 9 October 2017 в 12:03
поделиться

Это сработало для меня в Windows XP за корпоративным брандмауэром.

Мне не нужно было устанавливать какой-либо локальный прокси или любое другое программное обеспечение, кроме git v1.771 из 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

proxyuser = прокси-пользователь, которого я назначил нашим ИТ-отделом, в моем случае это тот же пользователь Windows, которого я использую для входа на свой ПК, пользователь Active Directory

proxypwd = пароль моего прокси-пользователя

proxy.server.com:8080 = имя и порт прокси, я получил его из панели управления , Свойства обозревателя, Соединения, Кнопка «Настройки локальной сети», Кнопка «Дополнительно» в разделе «Прокси-сервер», используйте имя сервера и порт в первой строке (http).

mygithubuser = пользователь, которого я использую для входа на github.com

mygithubpwd = пароль для моего пользователя github.com

repoUser = пользователь-владелец репо

repoName = имя репо

127
ответ дан alvaro 9 October 2017 в 12:03
поделиться

В дополнение к этим ответам я счел полезным рассмотреть следующие 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:proxypwd@proxy.server.com:8080

В любом случае, расследованию может помочь добавление журналов CURL:

export GIT_CURL_VERBOSE=1
5
ответ дан blacelle 9 October 2017 в 12:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: