В данной статье будут рассмотрены настройки для корректной работы в WSL из-под прокси для:


  • apt-get
  • curl
  • wget
  • git
  • npm

Apt-get


Примечание здесь и далее используются следующие данные для прокси:


  • host: http://proxy.example.com
  • port: 7777
  • login: user@example.com
  • password: somePassword

Для корректной работы apt-get необходимо в файл /etc/apt/apt.conf.d/proxy.conf добавить строку Acquire::http::Proxy "http://user@example.com:somePassword@proxy.example.com:7777";
Для этого можно выполнить команду


sudo cat <<<EOF >>/etc/apt/apt.conf.d/proxy.conf
Acquire::http::Proxy "http://user@example.com:somePassword@proxy.example.com:7777";`
EOF

Проверим правильность сделанных настроек:


cat /etc/apt/apt.conf.d/proxy.conf

Результат должен содержать:


Acquire::http::Proxy "http://user@example.com:somePassword@proxy.example.com:7777";

Затем необходимо выйти из WSL и после повторного входа проверить правильность работы, например, выполнив:


sudo apt-get update -y

Curl


Если логин и/или пароль не содержат @, то можно ограничится добавлением переменной среды http_proxy со значением http://user:somePassword@proxy.example.com:7777.


Если прокси не требует авторизации, то http://proxy.example.com:7777.


Сделать это можно командой:


cat <<EOF >> ~/.profile
export http_proxy=http://user:somePassword@proxy.example.com:7777
EOF

Чтобы не перезагружать WSL можно выполнить команду:


source ~/.profile

Но в нашем случае придется создать файл ~/.curlrc со следующим содержимым:


proxy-user=user@example.com:somePassword
proxy=http://proxy.example.com:7777

Сделать это можно, выполнив команду:


cat <<EOF >> ~/.curlrc
proxy-user=user@example.com:somePassword
proxy=http://proxy.example.com:7777
EOF

Wget


Если логин и/или пароль не содержат @ или прокси не требует авторизации, то можно воспользоваться соответствующими шагами для curl, если они не были сделаны раньше.
В нашем случае, создадим файл ~/.wgetrc следующего содержания:


proxy-user=user@example.com
proxy-password=somePassword
http_proxy=http://proxy.example.com:7777
use_proxy=on

Сделать это можно командой:


cat <<EOF >> ~/.wgetrc
proxy-user=user@example.com
proxy-password=somePassword
http_proxy=http://proxy.example.com:7777
use_proxy=on
EOF

Осталось еще несколько команд для git и npm.


Git


git config --global http.proxy "http://user@example.com:somePasswrod@proxy.example.com:7777"

Npma


npm set proxy http://user@example.com:somePassword@proxy.example.com:7777/
npm set https-proxy http://user@example.com:somePassword@proxy.example.com:7777/

UPD 1: исправлены опечатки и неточности по комментариям DaemonGloom и achekalin.