Jak ustawić proxy dla wget?

224

Chcę pobrać coś za wgetpomocą proxy:

HTTP Proxy: 127.0.0.1
Port: 8080

Serwer proxy nie potrzebuje nazwy użytkownika i hasła.

W jaki sposób mogę to zrobić?

Hakim
źródło
15
Hakim - Zauważyłem, że nie zaakceptowałeś żadnej z odpowiedzi. Czy to oznacza, że ​​się mylą i nie powinienem stosować się do podanych wskazówek? Jeśli tak, to czy rozwiązałeś problem z czymś innym?
jww

Odpowiedzi:

413

Dla wszystkich użytkowników systemu za pośrednictwem /etc/wgetrclub tylko dla użytkownika z ~/.wgetrcplikiem:

use_proxy=yes
http_proxy=127.0.0.1:8080
https_proxy=127.0.0.1:8080

lub za pomocą -eopcji umieszczonych po adresie URL:

wget ... -e use_proxy=yes -e http_proxy=127.0.0.1:8080 ...
amaksr
źródło
4
Moja wget mówi to musi być use_proxy=on, nie use_proxy=yes. Działa dobrze inaczej.
barfuin
4
Sprawdzone. Działa z wget -e <http_proxy> = 127.0.0.01: 8080 < download > ..., pomijając parametr polecenia „use_proxy = yes”. Dzięki!
alejandrob
3
@Thomas Jensen Masz rację, że wgetrc-instrukcja stanowi, że powinna ona być onalbo off, ale rzeczywiście próbuje polecenie fałszywe: -e use_proxy=bnwdaje wget: use_proxy: Invalid boolean ‘bnw’; use 'on' or 'off'.natomiast =yesnie daje takiego błędu, więc wydaje się być inofficially dozwolone.
mxmlnkn
1
http_proxy=http://<user>:<password>@127.0.01:8080I podobnie. w przeciwnym razie może być konieczne karmienie ich jawnie podczas wywoływania wget (patrz - askubuntu.com/a/429943/350255 )
parasrish
1
Jak to wyłączyć?
Tessaracter
83

Wpisz w wierszu poleceń:

$ export http_proxy=http://proxy_host:proxy_port

dla uwierzytelnionego proxy,

$ export http_proxy=http://username:password@proxy_host:proxy_port

a następnie biegnij

$ wget fileurl

w przypadku https po prostu użyj https_proxy zamiast http_proxy. Możesz również umieścić te linie w pliku ~ / .bashrc, aby nie trzeba było wykonywać tego za każdym razem.

shivshnkr
źródło
Jak usunąć proxy
Tessaracter
1
$ unset http_proxy
shivshnkr
38

następujące możliwe konfiguracje są po /etc/wgetrcprostu odkomentowane i używają ...

# You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
#https_proxy = http://proxy.yoyodyne.com:18023/
#http_proxy = http://proxy.yoyodyne.com:18023/
#ftp_proxy = http://proxy.yoyodyne.com:18023/

# If you do not want to use proxy at all, set this to off.
#use_proxy = on
hovanessyan
źródło
19

wget używa zmiennych środowiskowych, które mogą działać w wierszu poleceń:

export http_proxy=http://your_ip_proxy:port/
export https_proxy=$http_proxy
export ftp_proxy=$http_proxy
export dns_proxy=$http_proxy
export rsync_proxy=$http_proxy
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
juan_liga
źródło
Pomogło to również homebrew!
Miao1007,
16

Po wypróbowaniu wielu samouczków w celu skonfigurowania mojego Ubuntu 16.04 LTS za uwierzytelnionym serwerem proxy, działał on w następujący sposób:

Edytuj /etc/wgetrc:

$ sudo nano /etc/wgetrc

Odkomentuj te linie:

#https_proxy = http://proxy.yoyodyne.com:18023/
#http_proxy = http://proxy.yoyodyne.com:18023/
#ftp_proxy = http://proxy.yoyodyne.com:18023/
#use_proxy = on

Zmień http://proxy.yoyodyne.com:18023/nahttp://username:password@domain:port/

WAŻNE: Jeśli nadal nie działa, sprawdź, czy hasło zawiera znaki specjalne, takie jak #, @... Jeśli jest to przypadek, ucieczka je (na przykład wymienić passw@rdz passw%40rd).

Janderson Silva
źródło
5

W Debianie Linux wget może być skonfigurowany do używania proxy zarówno przez zmienne środowiskowe, jak i przez wgetrc. W obu przypadkach nazwy zmiennych, które mają być używane dla połączeń HTTP i HTTPS, to

http_proxy=hostname_or_IP:portNumber
https_proxy=hostname_or_IP:portNumber

Zauważ, że plik / etc / wgetrc ma pierwszeństwo przed zmiennymi środowiskowymi, dlatego jeśli twój system ma skonfigurowane proxy i próbujesz użyć zmiennych środowiskowych, wydaje się, że nie mają one żadnego efektu!

a1an
źródło
3
export http_proxy=http://proxy_host:proxy_port/
export https_proxy=https://proxy_host:proxy_port/

lub

export http_proxy=http://username:password@proxy_host:proxy_port/
export https_proxy=https://username:password@proxy_host:proxy_port/

Jak wszystkie inne wyjaśnione tutaj, ta zmienna środowiskowa pomaga przekazywać proxy.

Uwaga: Proszę jednak nie pamiętać, że jeśli hasło zawiera jakiś znak specjalny, należy go skonfigurować jako %<hex_value_of_special_char>.

Przykład: Jeśli hasło jest pass#123, należy go użyć jak pass%23123w powyższych poleceniach eksportu.

rashok
źródło
2

W Windows - powiedzmy Fiddler - używając zmiennych środowiskowych:

set http_proxy=http://127.0.0.1:8888
set https_proxy=http://127.0.0.1:8888
placet
źródło
2

Jeśli musisz uruchomić wget tylko raz z proxy, najłatwiej jest to zrobić za pomocą takiego linku:

http_proxy=http://username:password@proxy_host:proxy_port wget http://fileurl

lub z docelowym adresem URL https:

https_proxy=http://username:password@proxy_host:proxy_port wget https://fileurl
jplandrain
źródło
0

Dodaj poniżej linii w pliku ~ / .wgetrc lub / etc / wgetrc (utwórz plik, jeśli go nie ma):

http_proxy = http://[Proxy_Server]:[port]
https_proxy = http://[Proxy_Server]:[port]
ftp_proxy = http://[Proxy_Server]:[port]

Aby uzyskać więcej informacji, https://www.thegeekdiary.com/how-to-use-wget-to-download-file-via-proxy/

Vinoj John Hosan
źródło
0

uruchomić wget przez socks5 proxy przy użyciu tsocks :

  1. zainstaluj tsocks: sudo apt install tsocks
  2. config tsocks

    # vi /etc/tsocks.conf
    
    server = 127.0.0.1
    server_type = 5
    server_port = 1080
  3. początek: tsocks wget http://url_to_get
Cggo
źródło