Перейти до вмісту
Гайды 5 хв читання 33 переглядів

Використання проксі з cURL

Ця стаття детально описує, як ефективно використовувати проксі з cURL. Знайдіть приклади команд для безпечних, анонімних та ефективних веб-запитів.

Використання проксі з cURL

Використання проксі з cURL передбачає вказання адреси та порту проксі-сервера за допомогою опції командного рядка -x або --proxy, що дозволяє маршрутизувати запити cURL через проміжний сервер.

Ця стаття детально описує різні методи та опції командного рядка, доступні в cURL для взаємодії з проксі-сервісами, охоплюючи базові HTTP/HTTPS проксі, проксі з автентифікацією, SOCKS проксі та конфігурацію через змінні середовища.

Базова конфігурація проксі

Найпоширеніший метод вказати cURL використовувати проксі — це опція -x або --proxy, за якою слідує адреса та порт проксі-сервера.

HTTP/HTTPS проксі

Щоб маршрутизувати HTTP або HTTPS запит через HTTP/HTTPS проксі, вкажіть адресу та порт проксі.

Синтаксис:

curl -x [protocol://][user:password@]proxyhost[:port] [URL]

Приклади:

  1. Використання HTTP проксі для HTTP призначення:
    bash curl -x http://your.proxy.server:8080 http://example.com
    Ця команда наказує cURL надсилати запит для http://example.com через your.proxy.server на порт 8080 за допомогою протоколу HTTP проксі.

  2. Використання HTTP проксі для HTTPS призначення:
    bash curl -x http://your.proxy.server:8080 https://secure.example.com
    При проксіюванні HTTPS призначення через HTTP проксі, cURL зазвичай використовує метод CONNECT для встановлення тунелю через проксі до сервера призначення. Потім SSL/TLS рукостискання відбувається безпосередньо між cURL та secure.example.com, не залучаючи HTTP проксі до шифрування.

  3. Використання HTTPS проксі для HTTP призначення:
    bash curl -x https://your.secure.proxy.server:8443 http://example.com
    Це маршрутизує запит через проксі, який сам використовує HTTPS. З'єднання між cURL та your.secure.proxy.server є зашифрованим.

Проксі з автентифікацією

Багато проксі-сервісів вимагають автентифікації. cURL підтримує різні методи автентифікації для проксі, головним чином Basic, NTLM та Digest.

Базова автентифікація

Для проксі, що вимагають ім'я користувача та пароль, використовуйте опцію --proxy-user або вбудуйте облікові дані безпосередньо в URL проксі.

Синтаксис:

curl -x [protocol://]proxyhost[:port] --proxy-user "username:password" [URL]
curl -x [protocol://]username:password@proxyhost[:port] [URL]

Приклади:

  1. Використання --proxy-user:
    bash curl -x http://your.proxy.server:8080 --proxy-user "proxyuser:proxypass" http://example.com

  2. Вбудовування облікових даних в URL:
    bash curl -x http://proxyuser:proxypass@your.proxy.server:8080 http://example.com
    URL-кодування спеціальних символів в імені користувача або паролі є обов'язковим, якщо вони присутні. Наприклад, пароль p@ssword має бути p%40ssword.

Інші методи автентифікації

Хоча базова автентифікація є поширеною, cURL підтримує інші методи для специфічних середовищ.

  • --proxy-ntlm: Вмикає NTLM автентифікацію для проксі.
  • --proxy-digest: Вмикає Digest автентифікацію для проксі.

Приклад (NTLM):

curl -x http://your.proxy.server:8080 --proxy-ntlm --proxy-user "DOMAIN\proxyuser:proxypass" http://example.com

SOCKS проксі

SOCKS (Socket Secure) проксі працюють на нижчому рівні, ніж HTTP проксі, обробляючи різні мережеві протоколи. cURL підтримує SOCKS4, SOCKS4a та SOCKS5.

SOCKS5 проксі

SOCKS5 є найуніверсальнішим протоколом SOCKS, що підтримує IPv4, IPv6, UDP та автентифікацію.

Синтаксис:

curl --socks5 [user:password@]proxyhost[:port] [URL]

Приклади:

  1. Базовий SOCKS5 проксі:
    bash curl --socks5 your.socks5.server:1080 http://example.com
    За замовчуванням cURL розв'язує ім'я хоста example.com локально, перш ніж відправити IP-адресу SOCKS5 проксі.

  2. SOCKS5 проксі з віддаленим розв'язанням DNS:
    bash curl --socks5-hostname your.socks5.server:1080 http://example.com
    Опція --socks5-hostname наказує cURL відправити ім'я хоста example.com SOCKS5 проксі, дозволяючи проксі виконати розв'язання DNS. Це має вирішальне значення для анонімності та обходу гео-обмежень, де локальне розв'язання DNS може розкрити ваше місцезнаходження.

  3. SOCKS5 проксі з автентифікацією:
    bash curl --socks5-hostname socksuser:sockspass@your.socks5.server:1080 http://example.com

SOCKS4/SOCKS4a проксі

SOCKS4 — це старіший протокол, переважно для IPv4, і не підтримує автентифікацію. SOCKS4a розширює SOCKS4, дозволяючи проксі розв'язувати імена хостів.

Синтаксис:

curl --socks4 proxyhost[:port] [URL]
curl --socks4a proxyhost[:port] [URL]

Приклад (SOCKS4a):

curl --socks4a your.socks4.server:1080 http://example.com

Подібно до --socks5-hostname, --socks4a забезпечує розв'язання проксі імені хоста призначення.

Проксіювання HTTPS призначень з SSL/TLS

Коли cURL проксіює HTTPS запит через HTTP проксі, він ініціює CONNECT запит до проксі. Потім проксі встановлює TCP тунель до цільового HTTPS сервера. cURL виконує SSL/TLS рукостискання безпосередньо з сервером призначення через цей тунель.

Перевірка SSL сертифіката

За замовчуванням cURL перевіряє SSL сертифікат сервера призначення. Якщо сертифікат недійсний, прострочений або самопідписаний, cURL перерве з'єднання.

  • --insecure або -k: Вимикає перевірку SSL сертифіката. Використовуйте з обережністю, переважно для тестування або відомих довірених середовищ із самопідписаними сертифікатами.
    bash curl -x http://your.proxy.server:8080 https://self-signed.example.com -k

  • --cacert [file]: Вказує користувацький пакет CA сертифікатів для перевірки.
    bash curl -x http://your.proxy.server:8080 https://secure.example.com --cacert /path/to/custom_ca.pem

Змінні середовища для конфігурації проксі

cURL також може отримувати налаштування проксі зі змінних середовища. Це корисно для системних або сесійних конфігурацій проксі без вказання опції -x для кожної команди.

Поширені змінні середовища

  • http_proxy: Проксі для HTTP запитів.
  • https_proxy: Проксі для HTTPS запитів.
  • all_proxy: Резервний проксі для всіх протоколів, якщо http_proxy або https_proxy не встановлені.
  • no_proxy: Список імен хостів, доменів або IP-адрес, розділених комами, які повинні обходити проксі.

Синтаксис:

export http_proxy="http://your.proxy.server:8080"
export https_proxy="http://your.proxy.server:8080" # Примітка: часто HTTP проксі використовується для HTTPS призначень
export no_proxy="localhost,127.0.0.1,.localdomain"

Приклади:

  1. Встановлення HTTP проксі:
    bash export http_proxy="http://proxyuser:proxypass@your.proxy.server:8080" curl http://example.com

  2. Встановлення HTTPS проксі (через HTTP проксі):
    bash export https_proxy="http://your.proxy.server:8080" curl https://secure.example.com

  3. Обхід проксі для конкретних хостів:
    bash export http_proxy="http://your.proxy.server:8080" export no_proxy="internal.example.com" curl http://internal.example.com # Цей запит обійде проксі curl http://external.example.com # Цей запит використовуватиме проксі

Пріоритет

Опції командного рядка мають пріоритет над змінними середовища. Якщо вказано -x, він перевизначає будь-які змінні середовища http_proxy, https_proxy або all_proxy.

Усунення несправностей підключень до проксі

При виникненні проблем з cURL та проксі, кілька опцій можуть допомогти в діагностиці.

  • --verbose або -v: Надає детальну інформацію про запит та відповідь, включаючи спроби підключення до проксі, заголовки та узгодження SSL/TLS. Це часто є першим кроком у налагодженні.
    bash curl -v -x http://your.proxy.server:8080 http://example.com

  • --trace [file]: Виводить повний трасування всіх вхідних та вихідних даних, включаючи заголовки та тіло, у вказаний файл.
    bash curl --trace debug.log -x http://your.proxy.server:8080 http://example.com

  • Журнали проксі-сервера: Перевірте журнали вашого проксі-сервера на наявність спроб підключення, помилок автентифікації або повідомлень про помилки, пов'язаних з вашими запитами cURL.

  • Мережеве підключення: Переконайтеся, що машина, на якій працює cURL, може досягти проксі-сервера на вказаному порту за допомогою таких інструментів, як ping, telnet або netcat.
    bash telnet your.proxy.server 8080
    Успішне з'єднання telnet вказує на базову мережеву доступність.

Порівняння ключових опцій проксі

Опція cURL Опис Протоколи Автентифікація Розв'язання DNS
-x, --proxy Загальна специфікація проксі (HTTP/HTTPS проксі) HTTP, HTTPS Так Локальне
--proxy-user Вказує ім'я користувача та пароль для автентифікації проксі HTTP, HTTPS Так Н/Д
--socks5 SOCKS5 проксі, локальне розв'язання DNS за замовчуванням Усі Так Локальне
--socks5-hostname SOCKS5 проксі, віддалене розв'язання DNS Усі Так Віддалене (проксі)
--socks4 SOCKS4 проксі, локальне розв'язання DNS Усі Ні Локальне
--socks4a SOCKS4a проксі, віддалене розв'язання DNS Усі Ні Віддалене (проксі)
http_proxy (змінна) Змінна середовища для HTTP проксі HTTP Так Локальне
https_proxy (змінна) Змінна середовища для HTTPS проксі (часто HTTP проксі для тунелювання) HTTPS Так Локальне
all_proxy (змінна) Змінна середовища для всіх протоколів, якщо інші не встановлені Усі Так Локальне
no_proxy (змінна) Змінна середовища для вказівки хостів, які повинні обходити проксі Н/Д Н/Д Н/Д
Оновлено: 03.03.2026
Назад до категорії

Читайте також

Гайды 1 хв

Налаштування проксі в Cypress для E2E тестування

Налаштування проксі в Cypress: змінні HTTP_PROXY, cy-proxy-middleware та тестування геозалежного контенту.

Гайды 1 хв

Як автоматизувати купівлю проксі через API

Автоматизація купівлі та управління проксі через API провайдерів: інтеграція, моніторинг використання та автопоновлення.

Гайды 1 хв

Створення інформаційної панелі моніторингу проксі в Grafana

Покрокове створення інформаційної панелі для моніторингу проксі в Grafana: метрики,

Гайды 1 хв

Як тестувати проксі перед покупкою

Чек-лист тестування проксі перед покупкою: швидкість, стабільність, анонімність, гео та сумісність з ціллю

Гайды 1 хв

Як налаштувати липкі сесії через проксі

Липкі сесії: підтримка однієї IP-адреси протягом усієї сесії, налаштовуються через провайдера та самостійно.

Гайды 1 хв

Використання проксі з Camoufox

Camoufox — це модифікований Firefox для обходу антиботів. Налаштування проксі, відбиток та режим невидимості.

Спробуйте наші проксі

20,000+ проксі в 100+ країнах світу

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.