Как настроить HTTP-прокси с аутентификацией на Ubuntu WSL на Windows 10?
Я использую Ubuntu WSL в Windows 10. Как настроить HTTP-прокси с аутентификацией на нем?
2 ответа
cntlm прокси для аутентификации NTLM
Я предполагаю, что ваш прокси требует аутентификации пользователя на основе NTLM, которая не будет работать с учетными данными, указанными в $HTTP_PROXY
,
Установите cntlm прокси
Стандартный способ установки прокси-сервера: sudo apt-get install cntlm
, но без какого-либо прокси это, очевидно, потерпит неудачу. Поэтому вам нужно вручную загрузить пакет cntlm_0.92.3-1ubuntu1_amd64.deb и скопировать его в экземпляр WSL.
Установите пакет с
$ sudo dpkg -i cntlm_0.92.3-1ubuntu1_amd64.deb
Настроить прокси cntlm
Прокси cntlm требует правильной конфигурации NTLM-Proxy в /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
перед настройкой прокси.