Вопрос или проблема
Я не могу настроить Powershell Core 6.1.0 на Linux для успешного доступа к прокси. Наш корпоративный прокси использует аутентификацию на основе IP, а не на основе пользователя.
Когда я пытаюсь выполнить Invoke-WebRequest для несуществующего URL, он возвращает HTML-прокси-сервера, отклоняющего URL. Когда я пытаюсь выполнить iwr для действительного разрешенного URL (например, того, который я могу просматривать в Firefox на своем сервере Ubuntu).
Всё это попытка скачать модули из Powershell Gallery, которые я снова могу просматривать из VM, но не могу получить доступ к галерее из Powershell, хотя он знает, что нужно использовать прокси.
Я получаю распространенную ошибку на Invoke-WebRequests: ‘Нет такого устройства или адреса’.
Чтобы правильно пройти через ваш прокси, я советую экспортировать вашу переменную окружения прокси из вашего Linux-слоя. Вот так:
export HTTP_PROXY=http://your-proxy:3128
export HTTPS_PROXY=http://your-proxy:3128
Будьте осторожны с URI, не добавляйте завершающий / в конце вашего прокси (см. этот пост)
Затем на вашем уровне PowerShell вы должны быть в состоянии установить репозиторий по умолчанию с помощью:
Register-PSRepository -Default
Эта команда не работает из моей сессии Windows, но работает в консоли PowerShell из Linux
В конечном итоге вы можете попробовать последнюю команду из этой темы, которую я пробовал до того, как PowerShell выдал мне ошибку, что-то вроде
Если вы хотите зарегистрировать репозиторий PSRepository по умолчанию PSGallery, используйте Register-PSRepository -Default
Ответ или решение
Проблема с доступом к PowerShell Core на Linux через прокси-соединение, особенно при использовании IP-ориентированной аутентификации, может стать серьёзным препятствием при выполнении ваших задач. Давайте рассмотрим основные шаги для устранения этой проблемы и получения доступа к PowerShell Gallery.
1. Настройка переменных окружения для прокси
Первое, что необходимо сделать, это установить переменные окружения, которые указывают, как PowerShell должен взаимодействовать с вашим корпоративным прокси. Для этого выполните следующие команды в вашей терминале Linux:
export HTTP_PROXY=http://your-proxy:3128
export HTTPS_PROXY=http://your-proxy:3128
Важно обратить внимание на то, что в URL прокси не должно быть завершающего слэша (/
), так как это может вызвать проблемы при обработке запросов.
2. Проверка интернет-доступа
Убедитесь, что ваш Ubuntu-сервер действительно может получить доступ к интернету через прокси. Попробуйте использовать команды curl
или wget
для проверки. Например:
curl -I https://www.google.com
Эта команда должна вернуть информацию о заголовках ответа, если прокси настроен корректно.
3. Регистрация репозитория PowerShell
Теперь, когда переменные окружения установлены, откройте PowerShell Core и выполните следующую команду для регистрации стандартного репозитория PSGallery:
Register-PSRepository -Default
Эта команда должна успешно зарегистрировать PSGallery как основной репозиторий для загрузки модулей.
4. Тестирование Invoke-WebRequest
Попробуйте выполнить команду Invoke-WebRequest
с допустимым URL, чтобы проверить, корректно ли работает прокси и зарегистрирован ли репозиторий:
Invoke-WebRequest -Uri "https://www.powershellgallery.com"
Если всё настроено правильно, вы должны получить ответ о статусе сайта.
5. Решение проблемы "No such device or address"
Если вы продолжаете получать ошибку "No such device or address", проверьте настройки сетевого соединения на вашем сервере. Возможно, следует убедиться в том, что ваш сервер физически может обращаться к указанному прокси через IP-адрес. Убедитесь, что:
- Прокси-сервер доступен по указанному адресу.
- Файервол на сервере не блокирует соединения к прокси.
- Сервер не настроен на использование другого типа соединения (например, IPv6 вместо IPv4).
Заключение
Следуя этим шагам, вы сможете настроить PowerShell Core на Linux для работы через прокси с IP-ориентированной аутентификацией. Убедитесь, что ваше сетевое окружение правильно настроено, и что все необходимые переменные окружения указаны для успешного выполнения команд. Если проблема не решается, рекомендуется проконсультироваться с вашим сетевым администратором для получения дополнительной информации о конфигурации прокси-сервера.