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 при скрапинге
Реальные поисковые фразы, на которые отвечает эта страница — по ссылкам откроются материалы, раскрывающие тему глубже.