Jak zmusić wget do używania serwera proxy bez modyfikowania plików systemowych?

23

Chciałbym znać odpowiednik wget umożliwiający mi ustawienie proxy podczas wywoływania polecenia (jak wget --proxy=$http_proxy).

Jakieś pomysły ?

fxm
źródło

Odpowiedzi:

25

Bez modyfikowania plików systemowych /etc/wgetrcmożesz utworzyć plik w swoim katalogu domowym ~/.wgetrc. Umożliwi to lokalną modyfikację ustawień wget na poziomie użytkownika. Napisz teraz w at, ~/.wgetrcaby użyć wget za serwerem proxy:

use_proxy = on
http_proxy =  http://username:[email protected]:port/
https_proxy =  http://username:[email protected]:port/
ftp_proxy =  http://username:[email protected]:port/

Jeśli nie masz nazwy użytkownika proxy i hasła, po prostu napisz adres proxy i port wszędzie, np.

http_proxy =  http://proxy.server.address:port/

To powinno działać. Zakładam, że masz już ustawienia proxy dla wszystkich innych aplikacji.

souravc
źródło
38

Ta -eopcja umożliwia wprowadzanie poleceń w wierszu poleceń wgetrc, dzięki czemu nie trzeba zmieniać pliku ...

wget -e use_proxy=yes -e http_proxy=$proxy http://askubuntu.com
jhs
źródło
Znakomity. Zaoszczędziłeś wiele kłopotów, tak proste jak ta odpowiedź.
Wildcard
Jak to wyłączyć?
Tessaracter
3

Musisz edytować wgetrcplik znajdujący się pod adresem /etc/wgetrc.

Użyj swojego ulubionego edytora tekstu, tj .: nano /etc/wgetrcdo edycji

Poszukaj znacznika http_proxy i usuń # przed nim, dodaj serwer proxy po znaku = , tj .:

http_proxy=http://foo.proxy:8080

Następnie wyszukaj tag use_proxy i usuń # przed nim, zapisz plik.

wget będzie wtedy używać określonego serwera proxy.

Jeśli nie możesz zmienić konfiguracji systemu z użytkownikiem, możesz skopiować bieżącą konfigurację do miejsca, w którym możesz ją edytować, tj .: cp /etc/wgetrc ~i użyć --config=~/wgetrcopcji, aby zmusić wget do użycia konfiguracji, którą zmieniłeś zamiast konfiguracji globalnej.

Bruno Pereira
źródło
Jestem świadomy tej możliwości, ale nie mogę modyfikować plików konfiguracyjnych.
fxm
Pomyśl, że jest to jedyna opcja dostępna w programie wget.
Bruno Pereira,
Dlatego szukam odpowiednika wget, jak wskazałem w tytule.
fxm
Zredagowałem tytuł, aby to odzwierciedlić, po pierwsze było jasne, co próbujesz zrobić.
Bruno Pereira,
Sprawdź ostatni akapit odpowiedzi.
Bruno Pereira,
1

Opcja, która nie jest wymieniona, ale powinna zostać wymieniona: Użyj zmiennych środowiskowych (w zależności od dystrybucji):

http_proxy=http://<proxy-server-ip>:<port>
export http_proxy

lub po prostu

export http_proxy=http://<proxy-server-ip>:<port>

To samo dla:

https_proxy=http://<proxy-server-ip>:<port>
ftp_proxy=http://<proxy-server-ip>:<port>

Możesz podać nazwę użytkownika i hasło, jeśli w haśle masz znaki specjalne, pamiętaj o dodaniu „-s”.

http_proxy='http://<username>:<password>@<proxy-server-ip>:<port>'

Przykłady:

export http_proxy=http://172.16.1.100:8080
export https_proxy='http://johndoe:[email protected]:8080'
gjs
źródło
1

Tylko z linii poleceń znalazłem sukces poprzedzający wgetpolecenie z http_proxyinformacją bez potrzeby używania zmiennych środowiskowych. Na przykład:

'$ http_proxy=<proxy-server-ip>:<port> wget http://www.example.com/'
użytkownik819727
źródło