Jestem w sieci za pomocą proxy. Mam maszyny używające tu i ówdzie wielu skryptów, uzyskujących dostęp do siebie przez HTTP.
- Sieć to 10.0.0.0/8.
Mój serwer proxy to 10.1.1.1:81, więc skonfigurowałem go odpowiednio:
export http_proxy=http://10.1.1.1:81/
Chcę wykluczyć mój własny zakres, do którego można uzyskać dostęp za pośrednictwem serwera proxy. Próbowałem dowolnej dostępnej kombinacji.
export no_proxy='10.*' export no_proxy='10.*.*.*' export no_proxy='10.0.0.0/8'
Żadna z powyższych nie działa!
Testuję wget
i zawsze próbuje wysłać zapytanie do serwera proxy, bez względu na adres IP, z którym chcę się połączyć.
- Ponieważ wiele skryptów znajduje się wszędzie we wszystkich systemach,
--no-proxy
opcja tak naprawdę nie jest opcją. Chcę ustawić go na cały system.
bash
wget
curl
http-proxy
SamK
źródło
źródło
no_proxy
zmiennej środowiskowej? Co do cholery Linus Torvalds !!Odpowiedzi:
Patrzysz na to niewłaściwie.
no_proxy
Zmienna zawiera listę przyrostków domen, a nie prefiksów. Z dokumentacji :W przypadku adresów IP masz dwie opcje:
1) Dodaj każdy adres IP w całości:
2) Zmiana nazwy
wget
nawget-original
i napisać skrypt otoki (zwanywget
), który wyszukuje IP dla hosta Podany URL, a określa, czy powinna ona korzystać z serwera proxy, czy nie:źródło
/etc/environment
pliku, może to spowodować uszkodzenie serwera.info wget
mówi:Zatem zmienna powinna zawierać listę domen , a nie zakresy adresów IP . Musisz ustawić odpowiednie lokalne aliasy dla swoich lokalnych komputerów w
/etc/hosts
plikach.Oprócz tego należy pamiętać, że ustawienie zmiennej środowiskowej nie gwarantuje, że serwer proxy będzie używany lub nie będzie używany. To tylko informacja, z której mogą korzystać programy, które ją obsługują.
źródło
Nie do końca poprawne rozwiązanie, ale może rozwiązać problem. Jeśli zakładasz, że dostęp do czegokolwiek z zewnątrz serwera proxy będzie korzystał z nazw DNS, a nie bezpośrednio z adresów IP, możesz to ustawić w następujący sposób:
O ile mi wiadomo, żadna najwyższa domena nie kończy się na numerze, więc jeśli tak, musi to być adres IP.
źródło
Oto nieco prostsze (jednowierszowe) podejście oparte na rozwiązaniu janmoesen.
który został dodatkowo ulepszony w oparciu o wkład Cory Ringdahla:
sed udławił się wszystkimi argumentami przekazanymi z rozszerzenia
10.1.{1..255}.{1..255}
, zarówno w jego kodzie, jak i moim. Więc jeśli naprawdę potrzebujesz rozszerzyć do 256 * 256 adresów IP, możesz być w stanie dodatkowo dostosować podejście Cory Ringdahla, ale jeśli potrzebujesz tylko 256, każde z nich powinno działać idealnie dla Ciebie.Zgaduję, że wersja z rozszerzonymi 2 oktetami wyglądałaby mniej więcej tak:
ale iTerm podaje mi błędy dotyczące zbyt długich list argumentów, więc nie jestem pewien, czy istnieje rozwiązanie, które sprawi, że to zadziała ...
źródło
"export no_proxy=`echo 10.1.1.{1..254},`10.1.1.255"