Использовать другой прокси для одной команды оболочки
Поставьте переменные прокси перед командой, если нужен временный маршрут без изменения родительской оболочки и правки файлов запуска.
Вы хотите, чтобы одна загрузка использовала другой прокси, а затем всё вернулось в обычное состояние. Не нужно править файл запуска оболочки и надеяться, что вы не забудете его откатить.
Для внешней команды в оболочке в стиле POSIX поставьте присваивание перед командой:
https_proxy=http://proxy.example:8080 curl https://example.com/
Используйте HTTP-эндпоинт, предназначенный для этой загрузки; список HTTP-прокси предлагает кандидатов для разрешённых публичных маршрутов. Присваивание передаётся в окружение этой команды. Её дочерние процессы могут унаследовать значение, но после завершения команды присваивание не заменяет существующее значение родительской оболочки.
Что читать, по-прежнему решает клиент
Синтаксис оболочки создаёт окружение; он не навязывает сетевой маршрут. Используйте имена переменных, которые поддерживает приложение. Существующие переменные обхода, явные параметры команды или собственная конфигурация приложения всё ещё могут повлиять на результат.
Документация по окружению Bash объясняет поведение префикса команды. Команды, являющиеся функциями оболочки, специальными встроенными командами или синтаксисом оболочки, могут иметь дополнительные правила области действия, поэтому в простом примере выше намеренно используется внешняя программа.
Для нескольких команд используйте подоболочку
(
export http_proxy=http://proxy.example:8080
export https_proxy=http://proxy.example:8080
command-one
command-two
)
Группа в скобках выполняется в собственном окружении оболочки. Замените иллюстративные имена команд на программы, которые собираетесь запускать. Этот шаблон позволяет избежать хрупкой последовательности: сохранить старое значение, перезаписать его и вручную восстановить после каждого возможного сбоя.
Держите секреты вне примеров, копируемых в историю оболочки. Помните также, что sudo может фильтровать окружение; переменная, видимая внешней команде, не передаётся автоматически через каждую границу привилегий. Временная область действия и фактический выбор прокси остаются разными вопросами.