Я маю цю проксі-адресу: 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) до і після підключення до проксі відповідно.
як доповнення до аеродрому, ще одна хороша ідея - додати це у свій.
alias proxyon="export http_proxy='http://YOURPROXY:YOURPORT';export https_proxy='http://YOURPROXY:YOURPORT'"
alias proxyoff="export http_proxy='';export https_proxy=''"
ДЕ ВАША ПРАКТИКА: ВАШИЙ ДОПОМОГА - це саме те, ваш 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
змінну оболонки, якщо ви просто встановлюєте проксі-сервер для одноразової команди. напр
http_proxy=http://your.proxy.server:port curl http://www.example.com
Це curl -x
означає , що я вважаю за краще, якби знав, що завжди буду використовувати проксі.
Залежно від робочого місця, вам може знадобитися вказати -k
або --insecure
варіант для завитка, щоб усунути можливі проблеми з сертифікатами 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: port
curl -H "Авторизація проксі: xxxx" http: // targetURL