Как использовать curl с прокси на Linux/Unix
Системный администратор выдал мне доступ к прокси
IP: 202.54.1.1
Порт: 3128
Пользователь: foo
Пароль: bar
Настройки прекрасно работают с Google Chrome и Firefox браузерами. Как же мне их использовать в команде curl? Как сказать команде curl использовать настройки прокси сервера с моего браузера Chrome?
Многие Linux команды командной строки такие как curl, wget, lynx и другие используют переменные окружения http_proxy, https_proxy, ftp_proxy для определения настроек прокси. Это позволяет подключаться к сессии через текстовую строку.
Unix and Linux curl команда с настройками прокси
Синтаксис:
1 2 3 4 5 6 7 8 |
export http_proxy=http://your-ip-address:port/ ## http прокси с именем и паролем ## HTTPS версия ## export https_proxy=https://your-ip-address:port/ |
Кроме этого существует опция -x для команды curl что бы указать прокси сервер
1 2 3 4 |
curl -x <[protocol://][user:password@]proxyhost[:port]> url --proxy <[protocol://][user:password@]proxyhost[:port]> url |
Например, сначала устанавливаем переменные для прокси
1 2 3 4 5 |
export https_proxy=$http_proxy ## Use curl command ## curl -I www.system-admins.ru curl -v -I www.system-admins.ru |
Для скачивания с использованием опции -x
1 2 |
' -v -O http://system-admins.ru/downloads/b8bf71be927a0a6960cb3/123.pdf |
Как использовать протокол socks?
Синтаксис следующий
1 2 |
curl -x socks5://[user:password@]proxyhost[:port]/ url curl --socks5 192.168.1.254:3099 http://www.system-admins.ru/ |
Учитывайте то что строка прокси может быть указана с приставкой протокола, любого специфического. Например socks4://, socks4a://, socks5:// или socks5h:// для каждой версии соответственно. Если протокол не указан,то по умолчанию считается http, если порт не указан, то по умолчанию используется 1080. Опция -x переопределяет установленные переменные окружения для прокси. Если параметры прокси установлены, то сбросить их можно указав «», таким образом перезаписав их.