Мобильный прокси cURL из командной строки — полное руководство
Используйте мобильные прокси с cURL из командной строки. Настройте аутентификацию через прокси, пользовательские заголовки, удалённое разрешение DNS по протоколу SOCKS5 и автоматическую смену IP-адресов.
- Флаг -x поддерживает все протоколы — конечные точки HTTP, HTTPS и SOCKS5 указываются непосредственно в командной строке.
- socks5h предотвращает утечки DNS — разрешение целевых доменных имен осуществляется на прокси-сервере, а не через локальный резолвер вашего интернет-провайдера.
- Чистая кодировка учетных данных — передача комбинаций «имя пользователя-пароль» с помощью параметра -U или в виде встроенного формата с URL-кодировкой для обработки специальных символов.
- Мгновенная проверка и ротация — проверьте работоспособность соединения и инициируйте мгновенную смену мобильного IP-адреса с помощью одного запроса cURL.
Основы работы с прокси cURL
cURL — это универсальная утилита для диагностики и автоматизации, предназначенная для сетевых инженеров и разработчиков. При работе с мобильными прокси-серверами cURL обеспечивает мгновенный и непосредственный обзор вашего соединения без искажения результатов со стороны промежуточного программного обеспечения приложений, хранилищ файлов cookie или уровней кэширования браузера. Тестирование прокси с помощью cURL позволяет сначала убедиться в работоспособности учетных данных, IP-адресов операторов связи и маршрутизации модема, прежде чем вы напишете хотя бы одну строку кода приложения.
Чтобы направить запрос через прокси в cURL, используйте флаг командной строки -x или --proxy, за которым следует указать схему прокси, хост и порт. cURL поддерживает как HTTP-, так и SOCKS5-конечные точки, что позволяет напрямую взаимодействовать с выделенными модемами PXM2.
# Basic HTTP proxy request curl -x http://proxy.pxm2.io:8000 https://ipinfo.io/json # Short-form proxy argument curl --proxy http://proxy.pxm2.io:8000 https://api.ipify.org
Если ваш мобильный модем защищен с помощью белого списка IP-адресов, приведенная выше команда обеспечит прямое подключение без ввода учетных данных. Однако коммерческие мобильные прокси-серверы обычно требуют аутентификации с указанием имени пользователя и пароля, что предполагает использование специального синтаксиса командной строки.
Аутентификация через прокси с помощью cURL
cURL предлагает два различных способа указания учетных данных прокси: встраивание в URL и использование специального флага -U. Хотя встраивание в URL является распространенным методом, использование флага -U более безопасно для скриптов bash и терминалов, поскольку оно предотвращает расширение специальных символов, таких как восклицательные знаки, кавычки и знаки доллара, в оболочке.
# Method 1: Using the -U (--proxy-user) flag (recommended) curl -x http://proxy.pxm2.io:8000 -U "client123:Secr3t!Pass" https://ipinfo.io/json # Method 2: Inline user:password in the proxy URL curl -x http://client123:Secr3t%21Pass@proxy.pxm2.io:8000 https://ipinfo.io/json
When using inline URLs in shell scripts, special characters in passwords must be percent-encoded (for example, %40 for @ or %23 for #). Passing credentials via -U "user:pass" avoids shell escape complications entirely.
HTTP- и HTTPS-запросы
Очень важно понимать разницу между HTTP-прокси и HTTPS-прокси. Когда cURL отправляет запрос на адрес https:// через HTTP-прокси, он не передает прокси запрос в виде открытого текста. Вместо этого он отправляет запрос с методом HTTP CONNECT для установления двунаправленного TCP-туннеля (SSL/TLS-туннеля).
Прокси-сервер пересылает незашифрованные пакеты данных между вашим клиентом и целевым сервером, не расшифровывая их содержимое. Это гарантирует, что ваши конфиденциальные учетные данные, ключи API и сессионные куки остаются полностью зашифрованными по принципу «от конца до конца» при передаче через сотовую сеть.
curl -v -x http://user:pass@proxy.pxm2.io:8000 https://httpbin.org/headers # Output snippet: # * Establish HTTP proxy tunnel to httpbin.org:443 # > CONNECT httpbin.org:443 HTTP/1.1 # > Host: httpbin.org:443 # > Proxy-Authorization: Basic dXNlcjpwYXNz # < HTTP/1.1 200 Connection established # * TLSv1.3 connection using TLS_AES_256_GCM_SHA384
Расширенные параметры прокси-сервера cURL
Для высокопроизводительной автоматизации, скрейперов и аудита конфиденциальности cURL обеспечивает точный контроль над разрешением DNS, переключением на альтернативные протоколы и временем установления соединения.
Предотвращение утечек DNS с помощью socks5h://
При использовании SOCKS5-прокси cURL различает форматы socks5:// и socks5h://. Буква «h» в конце адреса указывает cURL на необходимость удаленного разрешения доменных имен на модеме прокси-сервера. Если вы используете стандартный протокол socks5://, ваша операционная система разрешает имена хостов через локальный DNS-сервер вашего интернет-провайдера перед установлением прокси-туннеля, что приводит к утечке информации о каждом целевом домене, который вы посещаете.
# Remote DNS resolution on the carrier modem (Leak-free) curl -x socks5h://user:pass@proxy.pxm2.io:1080 https://ipinfo.io/json # Local DNS resolution (Avoid this in production) curl -x socks5://user:pass@proxy.pxm2.io:1080 https://ipinfo.io/json
Запуск ротации IP-адресов по запросу с помощью cURL
Специализированные мобильные модемы PXM2 оснащены функцией мгновенной смены конечной точки. Простой вызов cURL заставляет физический модем отключить радиоканал и получить новый IP-адрес из пула оператора.
#!/usr/bin/env bash # Trigger new carrier IP on PXM2 modem curl -s "https://pxm2.io/api/v1/modem/rotate?key=YOUR_API_TOKEN" # Wait 5 seconds for cellular tower reconnection sleep 5 # Verify the newly acquired IP address curl -s -x http://user:pass@proxy.pxm2.io:8000 https://api.ipify.org
Устранение неполадок с прокси-сервером cURL
Когда запрос через прокси cURL заканчивается сбоем, сообщение об ошибке и код статуса HTTP позволяют сразу же определить первопричину:
| Состояние / Ошибка | Основная проблема | Резолюция |
|---|---|---|
| HTTP 407: Требуется аутентификация прокси-сервера | Учетные данные отклонены или отсутствуют. | Проверьте имя пользователя и пароль. Убедитесь, что вы не отправляете учетные данные HTTP на порт SOCKS5. |
| curl: (7) Не удалось установить соединение с прокси-сервером | Порт недоступен или сеть заблокирована. | Проверьте имя хоста прокси-сервера и номер порта. Убедитесь, что ваш локальный брандмауэр разрешает исходящие соединения. |
| curl: (28) Истекло время ожидания соединения | Повторное подключение сотового модема или задержка связи с базовой станцией. | Добавьте параметры --connect-timeout 10 и --max-time 30 в команды cURL. |
| curl: (35) Ошибка подключения по SSL | Сбой при установлении соединения TLS. | Убедитесь, что вы используете туннель CONNECT через http://proxy, а не подключаетесь напрямую через «сырой» TLS. |
Великобритания
Испания
Индия
Часто задаваемые вопросы
Как запустить cURL через мобильный прокси с аутентификацией?
Передайте флаг -x вместе с URL-адресом прокси, содержащим имя пользователя и пароль, например: curl -x http://username:password@proxy.example.com:8000 https://ipinfo.io. В качестве альтернативы можно указать учетные данные отдельно с помощью флага -U username:password, который позволяет не включать пароли в строку URL и корректно обрабатывать символы оболочки.
В чём разница между socks5:// и socks5h:// в cURL?
Схема socks5:// осуществляет разрешение доменных имен локально перед маршрутизацией TCP-трафика через прокси, раскрывая посещаемые имена хостов DNS вашей локальной сети. Схема socks5h:// передаёт доменное имя хосту прокси для удалённого разрешения, предотвращая утечки DNS и обеспечивая точность геотаргетированного DNS.
Почему cURL возвращает HTTP-код 407 «Требуется аутентификация прокси»?
Ошибка 407 означает, что ваш запрос успешно достиг прокси-сервера, но указанное имя пользователя или пароль были отклонены либо отсутствовали. Убедитесь, что ваши учетные данные соответствуют протоколу конкретного порта, поскольку конечные точки HTTP и SOCKS5 на PXM2 используют независимые учетные данные для аутентификации.
Можно ли с помощью cURL менять IP-адрес мобильного прокси?
Да. Специализированные мобильные прокси PXM2 поддерживают ротацию IP-адресов по запросу с помощью URL-адреса сброса HTTP. Отправка запроса cURL на ваш веб-хук ротации запускает процесс, в результате которого сотовый модем за считанные секунды повторно подключается к базовой станции и получает новый IP-адрес оператора.
Как можно игнорировать предупреждения о SSL-сертификатах при отладке прокси-серверов cURL?
Используйте флаг -k или --insecure, чтобы отключить проверку сертификатов TLS на этапе разработки. Однако при работе в производственной среде убедитесь, что соответствующие сертификаты центра сертификации (CA) внесены в список доверенных, чтобы трафик оставался защищенным и не подвергался перехвату.
Связанные руководства по мобильным прокси-серверам
Ознакомьтесь с руководствами по настройке языков программирования, операционных систем и платформ автоматизации в сети PXM2.
Руководства по языкам программирования и для разработчиков
Руководства по платформам и ОС
Запуск cURL через IP-адреса мобильных операторов с высоким уровнем доверия
Специализированные мобильные модемы 4G/5G с неограниченным трафиком, мгновенной сменой URL-адресов по запросу и полной совместимостью с протоколами HTTP и SOCKS5.
Получить мобильный прокси