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