У меня есть этот прокси-адрес: 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:password@]proxyhost[:port]>
Use the specified HTTP proxy.
If the port number is not specified, it is assumed at port 1080.
-x user:password@proxyhost:port
Вышеуказанные решения могут не работать с некоторыми версиями curl, которые я пробовал для себя (curl 7.22.0). Но то, что работало для меня, было:
curl -x http://proxy_server:proxy_port --proxy-user username:password -L http://url
Надеюсь, это решит проблему лучше!
[1] 4812
Помните, что если вы используете прокси-сервер SOCKS вместо HTTP / HTTPS-прокси, вам нужно будет использовать --socks5
вместо этого переключатель:
curl --socks5 125.119.175.48:8909 http://example.com/
Вы также можете использовать --socks5-hostname
вместо --socks5
разрешения DNS на стороне прокси.
--socks5-hostname
сделал.
curl https://api.ipify.org --proxy socks5://189.100.246.182:37339
кажется, работает нормально для меня. Есть --proxy
вариант в некотором роде уступает --socks5
при использовании SOCKS5 прокси?
--proxy
это, вероятно, то, что вы хотите, сейчас, но это не всегда поддерживается. Также обратите внимание, что socks5://
и socks5h://
выполните разрешение имени хоста (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
как объяснил Карл
Поскольку curl
вы можете настроить прокси в своем ~/.curlrc
( _curlrc
в Windows) файле, добавив proxy
значение, синтаксис:
proxy = http://username:password@proxy-host:port
С прокси с аутентификацией я использую:
curl -x <protocol>://<user>:<password>@<host>:<port> --proxy-anyauth <url>
потому что я не знаю, почему curl не использует / перехватывает переменные окружения http [s] _proxy .
C:\Desktop>curl --head https://www.google.com/ --proxy 1.1.1.1:8080
Вам не нужно экспортировать http[s]_proxy
переменную оболочки, если вы просто устанавливаете прокси для команды off. например
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/ .
В случае, если прокси использует автоматический прокси с файлом PAC. Мы можем найти фактический прокси из javascript из URL PAC.
И если прокси-сервер нуждается в аутентификации, мы можем сначала использовать обычный веб-браузер для доступа к сайту, который будет продвигать диалог аутентификации. После аутентификации мы можем использовать wireshark для перехвата отправок пакета http на прокси-сервер, из пакета http мы можем получить токен аутентификации из заголовка http: Proxy-Authorization
Затем мы можем установить переменную среды http_proxy, а также включить токен авторизации в заголовок http: Proxy-Authorization
экспорт http_proxy = http: // proxyserver: порт
curl -H "Прокси-авторизация: xxxx" http: // targetURL