Я использую Ubuntu WSL в Windows 10. Как настроить Прокси HTTP с аутентификацией на нем?
Я предполагаю, что вашему прокси требуется аутентификация пользователя на основе NTLM, которая не будет работать с учетными данными, указанными в $HTTP_PROXY
.
По умолчанию способ установки прокси-сервера должен был бы набрать sudo apt-get install cntlm
, но без какого-либо прокси это, очевидно, не удастся. Поэтому вам нужно вручную загрузить пакет cntlm_0.92.3-1ubuntu1_amd64.deb и скопировать его в экземпляр WSL.
Установите пакет с
$ sudo dpkg -i cntlm_0.92.3-1ubuntu1_amd64.deb
Для прокси-сервера cntlm требуется правильная конфигурация прокси-сервера NTLM в /etc/cntlm.conf
:
# /etc/cntlm.con
Domain Domain
Username username
Proxy 1.2.3.4:5678
NoProxy localhost, 127.0.0.*, 10.*, 192.168.*
Listen 3128
Это минимальная требуемая конфигурация для cntlm
. Вы можете проверить cntlm с помощью команд:
$ cntlm -M http://www.google.de
cntlm: Starting cntlm version 0.92.3 for LITTLE endian
cntlm: Proxy listening on 127.0.0.1:3128
cntlm: Workstation name used: hostname
Password:
Если аутентификация работает, вы можете сгенерировать хеши для аутентификации:
$ cntlm -H
cntlm: Starting cntlm version 0.92.3 for LITTLE endian
cntlm: Proxy listening on 127.0.0.1:3128
cntlm: Workstation name used: somehost
cntlm: Using following NTLM hashes: NTLMv2(1) NT(0) LM(0)
Password:
PassLM 123456789ABCDEF123456789ABCDEF12
PassNT 123456789ABCDEF123456789ABCDEF12
PassNTLMv2 123456789ABCDEF123456789ABCDEF12 # Only for user 'username', domain 'Domain'
cntlm: Terminating with 0 active threads
Добавить три хэша PassLM
, PassNT
и PassNTLMv2
- /etc/cntlm.conf
. Затем вы можете активировать прокси через systemd
:
$ sudo systemctl start cntlm
Теперь прокси должен прослушивать ваш локальный хост в порту 3128
.
Теперь вы можете настроить прокси, как описано в этом посте , но используйте:
$ export http_proxy=http://localhost:3128/
$ export https_proxy=http://localhost:3128/
Из вашей оболочки bash:
export http_proxy=http://[username]:[password]@[proxy-webaddress]:[port]
и, возможно,
export https_proxy=https://[username]:[password]@[proxy-webaddress]:[port]
Имя пользователя и пароль часто являются учетными данными домена Windows. Если пароль содержит какие-либо специальные символы, вам может потребоваться экранировать специальные символы с обратной косой чертой, чтобы защитить их от оболочки. Например, если ваша учетная запись Windows «gomer» с паролем «Pea $ 1rzz», а ваш прокси-сервер - bluecoat.acme.com на порту 8080, то вы должны сказать
export http_proxy=http://gomer:Pea\$1rzz@bluecoat.acme.com:8080
export https_proxy=https://gomer:Pea\$1rzz@bluecoat.acme.com:8080
echo $http_proxy
echo $https_proxy
должно отображаться правильные учетные данные. Вам нужно будет сделать это для каждой оболочки. Итак, если вы хотите поработать с apt, может быть удобнее открыть корневую оболочку
sudo bash
перед настройкой прокси.