Как заставить wget использовать прокси-сервер без изменения системных файлов?

Я хотел бы знать эквивалент wget, позволяющий мне устанавливать прокси-сервер при вызове команды (например wget --proxy=$http_proxy).

Есть какие-нибудь идеи?

То -e опция позволяет вам предоставлять команды, как в wgetrc, в командной строке, поэтому вам не нужно изменять файл...

wget -e use_proxy=yes -e http_proxy=$proxy http://askubuntu.com

Без изменения ваших системных файлов на /etc/wgetrc вы можете создать файл в своем домашнем каталоге ~/.wgetrc. Это позволит вам изменять настройки wget локально на уровне пользователя. Теперь напишите следующее по адресу ~/.wgetrc чтобы использовать wget за прокси-сервером:

use_proxy = onhttp_proxy =  http://username:password@proxy.server.address:port/https_proxy =  http://username:password@proxy.server.address:port/ftp_proxy =  http://username:password@proxy.server.address:port/

Если у вас нет имени пользователя и пароля прокси-сервера, просто напишите прокси-адрес и порт везде, как,

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

Это должно сработать. Я предполагаю, что у вас уже есть настройки прокси-сервера для всех других приложений.

Вам нужно отредактировать wgetrc файл, расположенный по адресу /etc/wgetrc.

Используйте свой любимый текстовый редактор, т.е.: nano /etc/wgetrc чтобы отредактировать его

Ищите то, что http_proxy пометьте и удалите # перед ним добавьте прокси-сервер после = знак, то есть:

http_proxy=http://foo.proxy:8080

Затем найдите use_proxy пометьте и удалите # перед ним сохраните файл.

wget затем будет использоваться указанный прокси-сервер.

Если вы не можете изменить конфигурацию системы с помощью своего пользователя, вы можете скопировать текущую конфигурацию в место, где вы можете ее отредактировать, т.Е.: cp /etc/wgetrc ~ и использовать --config=~/wgetrc возможность заставить wget использовать измененную вами конфигурацию вместо глобальной конфигурации.

Опция, которая не упоминается, но должна быть упомянута: Используйте переменные среды (в зависимости от вашего дистрибутива):

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

или просто

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

То же самое для:

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

Вы можете указать имя пользователя и пароль, если в вашем пароле есть специальные символы, обязательно укажите '-s.

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

Примеры:

export http_proxy=http://172.16.1.100:8080export https_proxy='http://johndoe:ABC!123@172.16.1.100:8080'

Только из командной строки я обнаружил успех, предшествующий wget команда с помощью http_proxy информация без необходимости использования переменных среды. Например:

  • $ http_proxy=<proxy-server-ip>:<port> wget http://www.example.com/
  • $ https_proxy=<proxy-server-ip>:<port> wget https://www.example.com/

Отвечает ли это на ваш вопрос? Как использовать прокси-сервер в командной строке?