IPFLY — обзор прокси-сервиса

Введение

IPFLY — китайский прокси-сервис, работающий на международном рынке. Бренд принадлежит компании Chengdu Zhihui Lantu Technology Co., Ltd., штаб-квартира которой находится в Чэнду, одном из крупных технологических центров Китая. Нынешний домен IPFLY.net зарегистрирован в марте 2023 года, поэтому публичную историю сервиса можно уверенно проследить как минимум с этого времени.

IPFLY — прокси-сервис, предлагающий резидентские, статические ISP и серверные прокси для разных сценариев использования: от работы с браузерными профилями до автоматизации и сбора данных.

По данным IPFLY, резидентская сеть сервиса насчитывает более 90 миллионов IP-адресов и охватывает свыше 190 стран и регионов. Для резидентских прокси доступны геотаргетинг, ротация IP и sticky sessions, а для задач, где требуется постоянный адрес, можно использовать статические ISP или Datacenter-прокси.

Сервис поддерживает HTTP, HTTPS и SOCKS5, а одной из наиболее интересных технических особенностей является заявленная поддержка UDP через SOCKS5. В этом обзоре мы не ограничимся описанием возможностей IPFLY и отдельно проверим передачу UDP-трафика на практике.

Для работы с антидетект-браузерами IPFLY предлагает стандартное подключение по адресу сервера, порту, логину и паролю, а также собственные инструкции по интеграции с AdsPower, DICloak, BitBrowser и другим программным обеспечением. Мы дополнительно проверили прокси IPFLY в Afina, Dolphin Anty, GeeLark и Vision.

Далее рассмотрим типы прокси IPFLY, возможности управления IP, интеграции, экспорт данных и результаты нашего тестирования SOCKS5 с UDP.

Услуги IPFLY

IPFLY предлагает три основных типа прокси:

  • резидентские прокси;
  • статические ISP-прокси;
  • серверные (Datacenter) прокси.

Резидентские прокси

Резидентские прокси IPFLY используют IP-адреса интернет-пользователей из различных стран и регионов.

По данным провайдера, резидентская сеть насчитывает более 90 миллионов IP-адресов и охватывает свыше 190 стран и регионов.

Доступен выбор IP по стране, региону и городу, а также таргетинг по ASN. Для задач, где необходимо некоторое время сохранять один IP, предусмотрены sticky sessions.

Резидентские прокси подходят для:

  • сбора открытых данных;

  • мониторинга цен и сайтов;

  • проверки региональной выдачи и контента;

  • автоматизированных запросов;

  • работы с сайтами, чувствительными к IP-адресам дата-центров.

При выборе такого прокси важно учитывать, что размер всей сети не означает одинаковое количество доступных адресов в каждой стране или городе. Если нужна конкретная география, ее лучше предварительно проверить.

Статические ISP-прокси

ISP-прокси объединяют постоянный статический IP с адресным пространством интернет-провайдера.

IPFLY заявляет для этой категории выделенные IP с реальным ISP ASN, поддержку HTTP(S) и SOCKS5 и отсутствие ограничений по объему трафика.

В отличие от резидентских прокси с ротацией, адрес здесь не меняется при каждом новом подключении. Поэтому ISP-прокси удобны там, где требуется длительное использование одного IP.

Например, их можно рассматривать для постоянных профилей антидетект-браузеров и других задач, в которых нежелательна частая смена сетевого окружения.

Серверные прокси

Datacenter-прокси используют IP-адреса дата-центров. IPFLY предлагает выделенные статические серверные IP с поддержкой HTTP, HTTPS и SOCKS5.

Для этой категории также заявлен неограниченный трафик.

Серверные прокси обычно имеют смысл для автоматизации, мониторинга и регулярных запросов к ресурсам, которые нормально работают с IP дата-центров.

Преимущества IPFLY

К сильным сторонам IPFLY можно отнести сочетание нескольких типов прокси в одном сервисе. Пользователь может выбрать между ротацией большого пула резидентских адресов и постоянными ISP или Datacenter IP в зависимости от задачи.

Отдельно стоит отметить:

  • более 90 млн резидентских IP по данным IPFLY;

  • покрытие более 190 стран и регионов;

  • выбор страны, региона и города;

  • таргетинг по ASN;

  • sticky sessions;

  • статические ISP-прокси;

  • выделенные Datacenter IP;

  • HTTP, HTTPS и SOCKS5;

  • поддержку UDP через SOCKS5;

  • инструкции по подключению к популярным антидетект-браузерам;

  • оплату через PayPal, банковские карты и USDT.

Наличие сразу резидентских, ISP и серверных прокси удобно еще и тем, что для разных проектов не обязательно использовать разных провайдеров.

Проверка поддержки UDP через SOCKS5

На поддержке UDP через SOCKS5 у IPFLY стоит остановиться отдельно.

Само наличие SOCKS5 еще не означает, что прокси умеет передавать UDP. Некоторые прокси-серверы поддерживают SOCKS5 только для TCP-соединений.

IPFLY заявляет поддержку UDP. В частности, провайдер прямо упоминает ее в своей документации при описании использования прокси для Telegram, включая голосовые и видеозвонки.

Технически протокол SOCKS5 предусматривает команду UDP ASSOCIATE, позволяющую клиенту передавать UDP-дейтаграммы через прокси-сервер.

Это может быть важно для приложений и протоколов, использующих UDP, например для голосовой связи и некоторых сценариев работы мессенджеров.

При этом поддержку UDP должны обеспечивать не только сами прокси IPFLY, но и используемая программа или клиент. Если приложение умеет отправлять через SOCKS5 только TCP, наличие UDP на стороне прокси ситуацию не изменит.

Обычная проверка IP через браузер также не подтверждает работу UDP — она показывает только то, что соединение через прокси установлено.

Чтобы не ограничиваться заявлением IPFLY, мы проверили поддержку UDP самостоятельно. Для этого был подготовлен небольшой PHP-скрипт, который устанавливает SOCKS5-соединение, выполняет команду UDP ASSOCIATE, а затем отправляет через полученный UDP-relay реальный DNS-запрос к 1.1.1.1:53.

Таким образом проверяется не только то, что прокси формально принимает команду UDP ASSOCIATE, но и фактическая передача UDP-трафика через SOCKS5.

Скрипт можно использовать и для проверки других прокси-провайдеров — достаточно заменить адрес сервера, порт, логин и пароль.

php <<'PHP'
<?php
$proxy = "accel.ipflygates.com";
$port = 5001;
$user = "USERNAME";
$pass = "PASSWORD";

function readExact($s, $n) {
    $data = "";
    while (strlen($data) < $n) {
        $part = fread($s, $n - strlen($data));
        if ($part === false || $part === "") {
            throw new Exception("Incomplete TCP response or timeout");
        }
        $data .= $part;
    }
    return $data;
}

function readAddress($s, $type) {
    switch ($type) {
        case 1: return inet_ntop(readExact($s, 4));
        case 3: return readExact($s, ord(readExact($s, 1)));
        case 4: return inet_ntop(readExact($s, 16));
        default: throw new Exception("Unknown address type");
    }
}

try {
    $tcp = @stream_socket_client("tcp://$proxy:$port", $errno, $errstr, 5);
    if (!$tcp) throw new Exception("TCP: $errstr");
    stream_set_timeout($tcp, 5);

    fwrite($tcp, "\x05\x01\x02");
    if (readExact($tcp, 2) !== "\x05\x02") {
        throw new Exception("Server did not select username/password authentication");
    }
    fwrite($tcp, "\x01".chr(strlen($user)).$user.chr(strlen($pass)).$pass);
    if (readExact($tcp, 2) !== "\x01\x00") {
        throw new Exception("Authentication failed");
    }

    fwrite($tcp, "\x05\x03\x00\x01".str_repeat("\x00", 6));
    $h = readExact($tcp, 4);
    if ($h[0] !== "\x05" || $h[2] !== "\x00") {
        throw new Exception("Invalid SOCKS5 response");
    }
    if (ord($h[1]) !== 0) {
        throw new Exception("UDP ASSOCIATE: reply code ".ord($h[1]));
    }

    $relay = readAddress($tcp, ord($h[3]));
    $relayPort = unpack("n", readExact($tcp, 2))[1];
    if ($relay === "0.0.0.0" || $relay === "::") {
        $peer = stream_socket_get_name($tcp, true);
        $relay = trim(substr($peer, 0, strrpos($peer, ":")), "[]");
    }
    if (!$relayPort) throw new Exception("Server returned UDP port zero");

    $host = strpos($relay, ":") !== false ? "[$relay]" : $relay;
    $udp = @stream_socket_client("udp://$host:$relayPort", $errno, $errstr, 5);
    if (!$udp) throw new Exception("UDP: $errstr");
    stream_set_timeout($udp, 5);

    // DNS A query for example.com sent through the UDP relay to 1.1.1.1:53.
    $id = random_bytes(2);
    $dns = $id.pack("nnnnn", 0x0100, 1, 0, 0, 0)
         . "\x07example\x03com\x00".pack("nn", 1, 1);
    $packet = "\x00\x00\x00\x01".inet_pton("1.1.1.1").pack("n", 53).$dns;

    fwrite($udp, $packet);
    $reply = fread($udp, 4096);
    if ($reply === false || strlen($reply) < 4) {
        throw new Exception("No UDP response: UDP data transfer not confirmed");
    }
    if (substr($reply, 0, 3) !== "\x00\x00\x00") {
        throw new Exception("Invalid SOCKS5 UDP header or fragmented datagram");
    }

    $type = ord($reply[3]);
    switch ($type) {
        case 1: $offset = 10; break;
        case 4: $offset = 22; break;
        case 3:
            if (strlen($reply) < 5) throw new Exception("Response too short");
            $offset = 7 + ord($reply[4]);
            break;
        default: throw new Exception("Unknown UDP address type");
    }
    $answer = substr($reply, $offset);
    if (strlen($answer) < 12 || substr($answer, 0, 2) !== $id
        || !(ord($answer[2]) & 0x80)) {
        throw new Exception("No matching DNS response received");
    }

    echo "[OK] UDP is working: DNS response received through SOCKS5.\n";
} catch (Throwable $e) {
    echo "[FAIL] ".$e->getMessage()."\n";
    exit(1);
}
PHP

В нашем случае тест завершился успешно:

[OK] UDP is working: DNS response received through SOCKS5.

Это подтверждает, что протестированный прокси IPFLY действительно передает UDP-трафик через SOCKS5: DNS-запрос прошел через UDP-relay, а ответ был получен обратно через тот же прокси.

При этом такой тест подтверждает именно работоспособность UDP, но не оценивает качество соединения для голосовой связи или видеозвонков. Для этого отдельно нужно измерять задержку, jitter, потери пакетов и стабильность соединения.

Интеграции с антидетект-браузерами

У IPFLY есть отдельный раздел с инструкциями по подключению прокси к стороннему программному обеспечению. Среди известных антидетект-браузеров представлены руководства для AdsPower, DICloak и BitBrowser.

Но прокси IPFLY не привязаны к этим браузерам. Подключение выполняется стандартным способом: пользователь выбирает тип прокси, после чего указывает сервер, порт и данные авторизации в настройках браузерного профиля.

Например, в официальной инструкции для AdsPower предлагается:

  1. Выбрать необходимый тип прокси и географию в IPFLY.

  2. Получить параметры подключения в личном кабинете.

  3. Создать профиль в AdsPower.

  4. Выбрать HTTP, HTTPS или SOCKS5.

  5. Указать сервер, порт, логин и пароль.

  6. Проверить соединение и сохранить профиль.

Плюс такого подхода в том, что прокси не привязаны к специальному расширению или собственному браузеру IPFLY. Их можно использовать в программах, поддерживающих соответствующие протоколы и способ авторизации.

Мы дополнительно проверили подключение IPFLY к Afina, Dolphin Anty, GeeLark и Vision.

Для теста использовался прокси со следующими параметрами:

  • IP: xxx.xxx.xxx.xxx`;
  • ISP: SkyQuantum Internet Service;
  • геолокация: Houston, Texas, US;
  • часовой пояс: America/Chicago.

Во всех четырех браузерах прокси удалось добавить и использовать через стандартные настройки профиля.

Экспорт и импорт прокси

В панели IPFLY можно экспортировать выбранные прокси в JSON и XLSX. Это особенно удобно при работе не с одним адресом, а с большим списком прокси.

При этом формат экспортированного файла не обязательно совпадает с шаблоном импорта конкретного антидетект-браузера. В наших тестах готовый файл IPFLY нельзя было напрямую импортировать в Afina, Dolphin Anty и Vision, поэтому для проверки мы добавляли прокси вручную.

GeeLark поддерживает импорт прокси из XLSX, однако файл, экспортированный непосредственно из IPFLY, в нашем случае также не удалось импортировать без дополнительной подготовки.

Серьезной проблемой это назвать нельзя. Наличие экспорта в JSON позволяет достаточно легко преобразовать список прокси в структуру, которую требует конкретный браузер: CSV, XLSX, текстовый список или другой шаблон импорта. Особенно это удобно при автоматизации или работе с большим количеством адресов.

То есть IPFLY предоставляет сами данные в удобном структурированном виде, но для массового импорта иногда потребуется привести их к формату конкретного антидетект-браузера.

Управление несколькими прокси

В панели IPFLY предусмотрены и групповые операции с выбранными прокси. Например, можно изменить порт сразу для нескольких адресов.

При работе с большим количеством прокси это удобнее, чем редактировать каждый адрес отдельно, и дополняет возможности экспорта данных.

По результатам нашей проверки прокси IPFLY нормально работают с Afina, Dolphin Anty, GeeLark и Vision. Для нескольких профилей их проще добавить вручную, а при массовой работе можно использовать экспорт в JSON или XLSX и при необходимости преобразовать данные под формат импорта конкретного браузера.

Тарифы IPFLY

На момент проверки на сайте IPFLY указаны следующие стартовые цены:

Тип проксиЦена от
Резидентские прокси$1 за ГБ
ISP-прокси$2,5 за IP
Datacenter-прокси$4,5 за IP

Это именно начальные цены. Стоимость зависит от выбранного пакета, количества IP, трафика и других условий.

Для ISP и Datacenter на основном ценовом блоке стоимость указана за IP без достаточной информации о сроке аренды, поэтому воспринимать эти цифры как стоимость IP в месяц без проверки конкретного тарифа не стоит.

Среди доступных способов оплаты IPFLY указывает PayPal, Visa и USDT.

Заключение

IPFLY — универсальный прокси-провайдер с тремя основными направлениями: резидентские, статические ISP и серверные прокси.

Резидентская сеть интересна большим выбором геолокаций и возможностью управлять ротацией IP. Статические ISP-прокси подходят для задач, где требуется длительное использование одного адреса, а Datacenter-прокси предоставляют более традиционный вариант выделенных серверных IP.

Отдельным преимуществом IPFLY является заявленная поддержка UDP через SOCKS5. Это особенно интересно для программ, которым недостаточно обычного TCP-прокси.

Также к плюсам сервиса можно отнести готовые инструкции по интеграции с антидетект-браузерами, поддержку нескольких типов прокси в одном аккаунте и возможность оплаты через PayPal и USDT.

Перед покупкой большого пакета я бы рекомендовал начать с небольшого объема и проверить нужную страну, скорость, стабильность IP и работу прокси непосредственно с теми сайтами или приложениями, для которых они приобретаются.

Контакты IPFLY

  • Сайт: ipfly.net

  • Компания: Chengdu Zhihui Lantu Technology Co., Ltd. (成都智绘蓝图科技有限公司), Китай

  • Штаб-квартира: Чэнду, провинция Сычуань, Китай, Tianfu Software Park

  • Дата регистрации компании: 11.05.2024

Языки: китайский и английский. Сайт, документация и личный кабинет имеют англоязычные версии.

Контактная информация технической поддержки

  • E-mail: [email protected], [email protected]

  • Онлайн-поддержка: доступна через сайт IPFLY, время работы поддержки: 24/7, а для крупных клиентов — персональный менеджер.

Способы оплаты: PayPal, Visa, USDT и Alipay.

Клиенты и партнёры: IPFLY заявляет более 10 000 глобальных партнёров.