Как настроить 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

перед настройкой прокси.

Другие вопросы по тегам