cURL и прокси: команды и примеры
cURL — универсальный инструмент для HTTP-запросов из терминала, cron и CI. Прокси NEONPROXY подключается флагами -x / --proxy или переменными окружения. Данные из кабинета: host:port:login:password. Ниже — рабочие примеры для HTTPS и SOCKS5 на Linux, macOS и Windows.
HTTPS-прокси: базовый запрос
Ответ должен показать IP прокси. Сверьте с /tools/myip/ и чекером.
SOCKS5
--socks5-hostname резолвит DNS на стороне прокси — полезно против DNS-утечек; подробнее в статье про DNS.
Переменные окружения
Многие утилиты (wget, apt в некоторых конфигах) читают те же переменные. Для отмены: unset http_proxy https_proxy.
Windows PowerShell и cmd
Системный прокси Windows влияет не на все вызовы curl — явный -x надёжнее. См. также системный прокси Windows.
Отладка и POST/загрузка файлов
Флаг -v показывает handshake с прокси и код 407 при ошибке auth. Таймауты: --connect-timeout 10 --max-time 60. Для PHP-аналогов — PHP cURL.
Файл конфигурации ~/.curlrc
Не храните пароли в world-readable файлах — chmod 600 ~/.curlrc. В CI передавайте proxy через env, а не файл.
IPv6 и спецсимволы в пароле
Для IPv6 host используйте URL-encoding или отдельные флаги. Пароль со спецсимволами (@, :, /) кодируйте percent-encoding в URL или используйте --proxy-user с кавычками в shell.
Цепочка с несколькими прокси
cURL не поддерживает цепочку HTTP-прокси нативно — только один hop. Для «прокси через прокси» используйте SSH tunnel или локальный mitmproxy. Для ротации в bash-скрипте читайте список host:port:login:password и выбирайте случайную строку перед каждым запросом.
Проверяйте egress IP после деплоя cron-скрипта: curl -s ... | jq .ip и сравнение с /tools/myip/. Мёртвый прокси в скрипте бэкапа — частая причина «тихих» сбоев ночью.
Загрузка и отправка файлов
Multipart и PUT работают через CONNECT-туннель так же, как GET. При таймаутах на больших файлах увеличьте --max-time и проверьте лимиты bandwidth на тарифе NEONPROXY.
Интеграция с jq и пайпами
Цепочка curl ... | jq .data[] удобна для мониторинга. В скриптах bash используйте set -euo pipefail и явную проверку HTTP-кода: curl -w "%{http_code}" -o /tmp/body. Код 407 означает проблему с login/password в строке host:port:login:password.
В GitHub Actions передайте прокси через secrets и используйте в step: env: HTTPS_PROXY: ${{ secrets.NEONPROXY_URL }}. Перед merge в main добавьте step с curl к /tools/myip/ для smoke-проверки egress IP runner'а через NEONPROXY.
Итог: curl -x с URL http://login:pass@host:port — минимальный способ проверить NEONPROXY из любого shell. Для скриптов предпочитайте env-переменные и явные таймауты.
Для сложных сценариев парсинга рассмотрите Python requests или Go net/http — там проще ротация пула и обработка retry при 429.
Храните список прокси NEONPROXY в файле по одной строке host:port:login:password и подставляйте в curl через $(shuf -n1 pool.txt | awk -F: '{print "http://"$3":"$4"@"$1":"$2}') для простой ротации в bash.
При работе с API, защищёнными Cloudflare, иногда нужны дополнительные заголовки — базовый curl через NEONPROXY решает IP-whitelist, но не заменяет browser fingerprint.
Сохраняйте рабочие one-liner'ы в team wiki — onboarding новых инженеров ускорится, а формат host:port:login:password останется единым для всего отдела.
Прокси для скриптов и cron
Пул IPv4/IPv6 — host:port:login:password, HTTPS и SOCKS5 на одном тарифе.
Перейти к заказу