curl через SOCKS5-проксі: повний довідник
Вичерпний довідник по curl і проксі: SOCKS5 проти SOCKS5h, прапорці -x і --socks5-hostname, змінні оточення, постійний .curlrc та вузли s4m з автентифікацією. Готово до копіювання.
SOCKS5 проти SOCKS5h — і чому це важливо
curl підтримує HTTP- і SOCKS-проксі. socks5:// розв’язує імена цілей локально; socks5h:// передає ім’я хоста проксі для розв’язання. Параметр --socks5-hostname також обирає віддалений DNS. Це не шифрує узгодження SOCKS чи автентифікацію за логіном і паролем. HTTPS із перевіркою сертифіката захищає вміст застосунку. За потреби захищайте шлях від клієнта до проксі зашифрованим тунелем; віддалений DNS його не замінює.
s4m дає обидва протоколи на одному акаунті: SOCKS5 на порту 1080 і HTTP на порту 3128, обидва з автентифікацією USER:PASS на proxy.s4m.online. Універсальний прапорець -x / --proxy приймає повний URL разом зі схемою, тож одного прапорця вистачає на всі випадки. Про основи роботи curl через проксі — гайд про curl і проксі; ця сторінка — глибша довідка про SOCKS5, змінні середовища та постійний конфіг. Теорія протоколів — у що таке SOCKS5.
Усі способи задати проксі — в одному місці
Використовуйте хост і облікові дані, видані вашому акаунту. У прикладах проксі вибрано явно. Перегляньте наявну конфігурацію перед редагуванням: наведені рядки конфігурації є коментарями, а не командами перезапису файлу.
# Replace the host and dummy USER:PASS with your issued configuration. PROXY_HOST='HOST_FROM_ACCOUNT' # SOCKS5 with remote target DNS; this does not encrypt SOCKS authentication. curl --noproxy "" --proxy "socks5h://$PROXY_HOST:1080" --proxy-user USER:PASS https://api.ipify.org # Equivalent remote-DNS option with explicit authentication. curl --noproxy "" --socks5-hostname "$PROXY_HOST:1080" --proxy-user USER:PASS https://api.ipify.org # SOCKS5 with local target DNS, if that is specifically intended. curl --noproxy "" --proxy "socks5://$PROXY_HOST:1080" --proxy-user USER:PASS https://api.ipify.org # Plain HTTP proxy carrying HTTPS with CONNECT; keep TLS verification on. curl --noproxy "" --proxy "http://$PROXY_HOST:3128" --proxy-user USER:PASS https://api.ipify.org # Example default-config entries: edit your existing ~/.curlrc, preserving # other settings. Protect a file containing credentials; do not commit it. # proxy = "socks5h://HOST_FROM_ACCOUNT:1080" # proxy-user = "USER:PASS" # connect-timeout = 10 # Ignore the default config for this call while KEEPING an explicit proxy. # -q must be the first curl option. Empty --noproxy clears bypass exclusions. curl -q --noproxy "" --proxy "socks5h://$PROXY_HOST:1080" --proxy-user USER:PASS https://api.ipify.org
Постійний проксі для curl
Задайте явні налаштування за замовчуванням і перевірте фактичний маршрут, включно з правилами обходу проксі.
Оберіть схему
Використовуйте socks5h:// для DNS цілі на проксі або http:// для HTTP-проксі, що передає HTTPS через CONNECT. Перевіряйте виданий хост, порт і підтримуваний трафік. Жоден варіант сам по собі не шифрує з’єднання від клієнта до проксі.
Створіть ~/.curlrc
Перед редагуванням перегляньте наявний файл конфігурації за замовчуванням. Збережіть інші параметри й захистіть облікові дані у файлі. curl зазвичай читає його першим; -q як перший параметр пропускає його. Під час перевірки без файлу задавайте проксі явно.
Задайте змінні середовища для інших інструментів
Перевіряйте кожен інструмент окремо. У curl змінні проксі для конкретної схеми мають пріоритет над ALL_PROXY; NO_PROXY може обходити проксі. Інші інструменти не обов’язково підтримують ті самі змінні чи схеми SOCKS.
Перевірте і додайте винятки
Перевірте вихідний IP фактичного запиту через відповідний сервіс. NO_PROXY та --noproxy навмисно дозволяють прямі з’єднання з відповідними хостами; додавайте винятки лише тоді, коли такий обхід справді потрібний.
Способи автентифікації, пріоритет і NTLM
Задавайте облікові дані в URL проксі або через -U / --proxy-user. Кодуйте зарезервовані символи, коли вставляєте облікові дані в URL. Не записуйте секрети в журнали чи спільні файли. curl читає свій типовий ~/.curlrc перед звичайними параметрами командного рядка; пізніше явне налаштування проксі може перевизначити попереднє. Конфігурація проксі має пріоритет над запасними значеннями з оточення, а NO_PROXY все одно може спричинити обхід. Задавайте -q першим параметром, щоб пропустити типовий файл, а потім явно задавайте потрібний проксі.
Узгодження логіна й пароля SOCKS5 та автентифікація HTTP Basic на проксі є різними протоколами; обмін SOCKS не є HTTP Basic. Жоден із них сам по собі не забезпечує шифрування. --proxy-ntlm призначений для HTTP-проксі, яким потрібен NTLM, а не для звичайного доступу SOCKS5 за логіном і паролем. За 407 Proxy Authentication Required перевіряйте метод автентифікації HTTP-проксі та видані облікові дані; збій SOCKS5 має іншу протокольну відповідь. Дивіться посібник про 407, посібник wget, інструменти й окремий список безкоштовних публічних проксі.
Відповіді на питання
Яка різниця між socks5 і socks5h у curl?
socks5:// розв’язує ім’я цілі локально; socks5h:// доручає це проксі. --socks5-hostname також обирає розв’язання на проксі. Це не шифрує автентифікацію SOCKS; залишайте перевірку HTTPS-сертифікатів увімкненою для трафіку застосунку.
Як змусити curl ходити через проксі в кожній команді?
Налаштуйте типовий проксі в наявній конфігурації curl або використовуйте підтримувані змінні оточення. Явні параметри проксі, змінні конкретної схеми й винятки обходу впливають на результат. -q пропускає типовий файл, але сам по собі не обирає і не зберігає проксі.
Чи потрібна для s4m автентифікація NTLM?
Використовуйте метод, указаний для виданої адреси. Узгодження логіна й пароля SOCKS5 не є HTTP Basic; HTTP-проксі може використовувати HTTP Basic. --proxy-ntlm застосовується лише до HTTP-проксі, яким потрібен NTLM, а не до звичайного доступу SOCKS5.
Чому я отримую 407 Proxy Authentication Required?
HTTP-проксі запитує автентифікацію. Перевірте видані логін і пароль та підтримуваний метод автентифікації. Кодуйте зарезервовані символи, якщо облікові дані вставлено в URL. Збої автентифікації SOCKS5 повідомляються інакше; не діагностуйте їх як HTTP 407.
Один ендпоінт — усі трюки curl
Налаштуйте доступ SOCKS5 або HTTP у s4m з обліковими даними свого акаунта.
Цю сторінку знаходять за запитами
- curl через SOCKS5-проксі
- curl через SOCKS5-проксі для початківців
- curl через SOCKS5-проксі порівняння
- curl через SOCKS5-проксі для парсингу
- curl через SOCKS5-проксі інструкція
- як налаштувати проксі для парсингу
- як робити ротацію проксі в Python (requests і aiohttp)
- як перевірити авторизація проксі
- відбиток браузера
- http проксі провайдер
- wireguard
- як уникнути банів IP під час скрапінгу
Реальні пошукові фрази, на які відповідає ця сторінка — за посиланнями відкриються матеріали, що розкривають тему глибше.