Добавить в корзинуПозвонить
Найти в Дзене
Windows 11, 10, etc

⚙️ О поддержке прокси в winget

На прошлой неделе в РФ возникли перебои с доступом к GitHub. Скачивание файлов сильно тормозило или не работало вовсе. Это побудило меня изучить поддержку прокси в winget. Реализация меня удивила! Равно как и отсутствие внятной документации. 📄 Можно указать прокси в командной строке. Однако, чтобы это работало, сначала администратор должен разрешить использование прокси специальной командой: winget settings --enable ProxyCommandLineOptions И тогда обычный пользователь сможет задать прокси: winget install yt-dlp.yt-dlp --proxy http://127.0.0.1:1080 Администратор также может задать дефолтный прокси, чтобы пользователю не пришлось прописывать адрес каждый раз: winget settings set DefaultProxy http://127.0.0.1:1080 Я спросил ПМа winget в Твиттере, почему обычный пользователь не может использовать прокси. Он сослался на требования безопасников к реализации фичи. Ок, в случае с произвольным прокси я это могу понять. 🤷‍♂️ Однако это не объясняет, почему не реализована поддержка системн

⚙️ О поддержке прокси в winget

На прошлой неделе в РФ возникли перебои с доступом к GitHub. Скачивание файлов сильно тормозило или не работало вовсе. Это побудило меня изучить поддержку прокси в winget. Реализация меня удивила! Равно как и отсутствие внятной документации.

📄 Можно указать прокси в командной строке. Однако, чтобы это работало, сначала администратор должен разрешить использование прокси специальной командой:

winget settings --enable ProxyCommandLineOptions

И тогда обычный пользователь сможет задать прокси:

winget install yt-dlp.yt-dlp --proxy http://127.0.0.1:1080

Администратор также может задать дефолтный прокси, чтобы пользователю не пришлось прописывать адрес каждый раз:

winget settings set DefaultProxy http://127.0.0.1:1080

Я спросил ПМа winget в Твиттере, почему обычный пользователь не может использовать прокси. Он сослался на требования безопасников к реализации фичи. Ок, в случае с произвольным прокси я это могу понять.

🤷‍♂️ Однако это не объясняет, почему не реализована поддержка системного прокси. Его настройка не требует прав администратора, и при этом контролируется групповой политикой - например, Prevent changing proxy settings. Между тем, winget почти входит в состав системы и мог бы вести себя как приличное приложение Windows.

Вы скажете: "Да какая разница? Будучи администратором, я могу настроить свою систему как угодно". Это так. Но если вы пишете рассчитанный на стандартного пользователя скрипт для запуска в других системах, у вас нет такого контроля. Я раскрою этот тезис на конкретном примере в ближайших постах.

////

Из диалога с ПМом было непонятно, рассматривалась ли поддержка системного прокси в принципе. Он просто предложил мне создать запрос на GitHub. Что я и сделал: https://github.com/microsoft/winget-cli/issues/6219 Полайкайте там 👍