Chcę pobrać coś za wget
pomocą 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ć?
Chcę pobrać coś za wget
pomocą 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ć?
Odpowiedzi:
Dla wszystkich użytkowników systemu za pośrednictwem /etc/wgetrc
lub tylko dla użytkownika z ~/.wgetrc
plikiem:
use_proxy=yes
http_proxy=127.0.0.1:8080
https_proxy=127.0.0.1:8080
lub za pomocą -e
opcji umieszczonych po adresie URL:
wget ... -e use_proxy=yes -e http_proxy=127.0.0.1:8080 ...
use_proxy=on
, nie use_proxy=yes
. Działa dobrze inaczej.
on
albo off
, ale rzeczywiście próbuje polecenie fałszywe: -e use_proxy=bnw
daje wget: use_proxy: Invalid boolean ‘bnw’; use 'on' or 'off'.
natomiast =yes
nie daje takiego błędu, więc wydaje się być inofficially dozwolone.
http_proxy=http://<user>:<password>@127.0.01:8080
I podobnie. w przeciwnym razie może być konieczne karmienie ich jawnie podczas wywoływania wget (patrz - askubuntu.com/a/429943/350255 )
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.
następujące możliwe konfiguracje są po /etc/wgetrc
prostu 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
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"
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@rd
zpassw%40rd
).
W Ubuntu 12.x dodałem następujące wiersze w $ HOME / .wgetrc
http_proxy = http: // uname: passwd@proxy.blah.com: 8080
use_proxy = on
W moim Ubuntu załatwiło to następujące wiersze w $ HOME / .wgetrc!
http_proxy = http: // uname: passwd@proxy.blah.com: 8080
use_proxy = on
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!
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%23123
w powyższych poleceniach eksportu.
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
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/