У меня есть этот адрес прокси: 125.119.175.48:8909
Как я могу выполнить HTTP-запрос с использованием cURL, например curl http://www.example.com
, но указав адрес прокси-сервера моей сети?
У меня есть этот адрес прокси: 125.119.175.48:8909
Как я могу выполнить HTTP-запрос с использованием cURL, например curl http://www.example.com
, но указав адрес прокси-сервера моей сети?
Общий способ:
export http_proxy=http://your.proxy.server:port/
Затем вы можете подключиться через прокси из (многих) приложений.
И, согласно комментарию ниже, для https:
export https_proxy=https://your.proxy.server:port/
От man curl
:
-x, --proxy <[protocol://][user:[email protected]]proxyhost[:port]>
Use the specified HTTP proxy.
If the port number is not specified, it is assumed at port 1080.
Вышеупомянутые решения могут не работать с некоторыми версиями завитка, которые я попробовал для себя (curl 7.22.0). Но то, что сработало для меня, было:
curl -x http://proxy_server:proxy_port --proxy-user username:password -L http://url
Надеюсь, что он решает проблему лучше!
Помните, что если вы используете прокси-сервер SOCKS вместо прокси-сервера HTTP/HTTPS, вам нужно будет использовать вместо него переключатель --socks5
:
curl --socks5 125.119.175.48:8909 http://example.com/
Вы также можете использовать --socks5-hostname
вместо --socks5
для разрешения DNS на стороне прокси.
как дополнение к airween, еще одна хорошая идея - добавить это в свой .bashrc, чтобы вы могли переключиться с не прокси-сервера на прокси-сервер:
alias proxyon="export http_proxy='http://YOURPROXY:YOURPORT';export https_proxy='http://YOURPROXY:YOURPORT'"
alias proxyoff="export http_proxy='';export https_proxy=''"
WHERE YOURPROXY: YOURPORT - это именно то, что ваш ip и порт прокси: -).
Тогда просто выполняя
proxyon
ваша система начнет использовать прокси-сервер, а наоборот:
proxyoff
используйте следующие
curl -I -x 192.168.X.X:XX http://google.com
192.168.X.X:XX
введите ваш IP-адрес и порт прокси-сервера.
-v
Подробный режим даст более подробную информацию, включая заголовки и ответ.
вы можете использовать:
curl http://www.example.com --proxy http://125.119.175.48:8909
как объяснил Карл
Мне нравится использовать это, чтобы получить IP-адрес, под которым я вижу
curl -x http://proxy_server:proxy_port https://api.ipify.org?format=json && echo
Надеюсь, это поможет кому-то.
Для curl
вы можете настроить прокси в вашем ~/.curlrc
(_curlrc
в Windows), добавив значение proxy
, синтаксис:
proxy = http://username:[email protected]:port
Просто суммируя все замечательные упомянутые ответы:
curl -x http://<user>:<pass>@<proxyhost>:<port>/ -o <filename> -L <link>
С прокси с аутентификацией я использую:
curl -x <protocol>://<user>:<password>@<host>:<port> --proxy-anyauth <url>
потому что, я не знаю, почему curl не использует /catch http [s] _proxy переменные среды.
Вам не нужно экспортировать переменную оболочки http[s]_proxy
, если вы просто устанавливаете прокси для одной команды. например.
http_proxy=http://your.proxy.server:port curl http://www.example.com
Тем не менее, я бы предпочел curl -x
, если бы знал, что я всегда буду использовать прокси.
В зависимости от вашего рабочего места вам также может потребоваться указать -k
или --insecure
для curl, чтобы избежать потенциальных проблем с сертификатами CA.
curl -x <myCompanyProxy>:<port> -k -O -L <link to file to download>
sudo curl -x http://10.1.1.50:8080/ -fsSL https://download.docker.com/linux/ubuntu/gpg
У меня это отлично сработало, ошибка возникает из-за того, что curl нужно установить прокси
Напомним, замените прокси на ваш прокси, мой "пример" был http://10.1.1.50:8080/.
C:\Desktop>curl --head https://www.google.com/ --proxy 1.1.1.1:8080
Если прокси-сервер использует автоматический прокси-сервер с файлом PAC. Мы можем найти фактический прокси-сервер из javascript из URL-адреса PAC.
И если прокси-сервер нуждается в аутентификации, мы можем сначала использовать обычный веб-браузер для доступа к веб-сайту, который будет продвигать аутентификацию. После аутентификации мы можем использовать wirehark для захвата отправки пакетов HTTP на прокси-сервер, из пакета http, мы можем получить токен аутентификации из http-заголовка: Прокси-авторизация
Затем мы можем установить переменную среды http_proxy, а также включить токен аутентификации в заголовке http: Прокси-авторизация
export http_proxy = http://proxyserver:port
curl -H "Прокси-авторизация: xxxx" http://targetURL