Введение

Вы держите в руках подробный пошаговый гайд, который научит вас, как с нуля собрать и настроить бюджетную мобильную прокси-ноду на мини-ПК Raspberry Pi или Orange Pi. Мы разберем весь путь: от выбора платы, модема и питания до установки операционной системы, драйверов и программ, конфигурации прокси-сервера, его автозапуска, стабильности и тестирования. Конечный результат: у вас будет локальный или удаленно доступный HTTP(S)/SOCKS5 мобильный прокси, работающий на базе 4G/5G модема, с возможностью перезапуска сессии для получения нового мобильного IP и с базовой системой мониторинга и логирования.

Для кого этот гайд: для начинающих, которые впервые сталкиваются с Raspberry Pi или Orange Pi и хотят получить понятную инструкцию без «дырок». Параллельно мы дадим несколько продвинутых приемов для тех, кто хочет выжать максимум из железа. Гайд подходит для домашней лаборатории, отдела тестирования мобильных продуктов, внутренней инфраструктуры компании, а также для образовательных проектов.

Что нужно знать заранее: базовые навыки работы с терминалом Linux на уровне копировать-вставить команды, умение записать образ системы на microSD-карту и подключить кабели. Все остальное мы объясним. Мы намеренно избегаем профессионального жаргона или тут же его расшифровываем.

Сколько времени потребуется: при наличии всех комплектующих 2–4 часа, включая установку операционной системы и обновления. На загрузку пакетов и прошивок может уйти больше времени, если интернет медленный.

Быстрые переходы по разделам: перейти к выбору платы, модема и питания, перейти к настройке прокси-сервера.

⚠️ Внимание: Используйте этот гайд исключительно в рамках действующего законодательства. Не применяйте прокси для противоправных действий и не пытайтесь обойти ограничения или блокировки. Соблюдайте условия договора с вашим оператором связи.

Совет: Если вам нужен готовый облачный вариант управления мобильными IP без самостоятельной сборки, рассмотрите профильные сервисы. Например, упомянем mobileproxy.space как ориентир для понимания возможностей таких решений и функционала, который вы сможете частично повторить на своей ноде.

Предварительная подготовка

Перед началом убедитесь, что у вас есть все инструменты, доступы и программное обеспечение. Этот раздел убережет вас от остановок посреди процесса.

Необходимые инструменты, программы и доступы

  • Компьютер с Windows, macOS или Linux для записи образа системы на microSD-карту.
  • Картридер для microSD.
  • Доступ в интернет для загрузки образов ОС и пакетов.
  • Терминал SSH-клиента (Windows: встроенный PowerShell или любой SSH-клиент; macOS/Linux: встроенный терминал).
  • Программа для записи образов: Raspberry Pi Imager или любая утилита записи образов на microSD-карту.

Системные требования

  • Мини-ПК: Raspberry Pi 3B/3B+/4B/5 или Orange Pi (например, Orange Pi PC, Orange Pi Zero2, Orange Pi 3 LTS, Orange Pi 5). Рекомендуем не ниже Raspberry Pi 3B+ или сопоставимый Orange Pi.
  • Накопитель: microSD-карта 16–32 ГБ класса A1/A2. Для стабильности лучше 32 ГБ.
  • Блок питания: для Raspberry Pi 4 — 5V 3A с USB-C; для Raspberry Pi 3 — 5V 2.5A micro-USB; для Orange Pi — согласно модели (обычно 5V 3A USB-C или 5V 2–3A DC).
  • Мобильный модем: 4G/5G USB-модем или модем в виде мини-PCIe/M.2 в USB-адаптере. Популярные: Huawei E3372 (Stick или HiLink), ZTE MF833, Quectel EC25/EG25-G/EP06/EM12, Sierra Wireless EM7455/EM7565 (через USB-адаптер). Для 5G: Quectel RM500Q/RM520N (через M.2-USB адаптер с питанием и антенной).
  • SIM-карта с активным тарифом передачи данных. Уточните у оператора APN и ограничения.
  • Ethernet-кабель или доступ к Wi‑Fi для первичной настройки.

Что нужно скачать и установить заранее

  1. Скачайте Raspberry Pi Imager или подготовьте утилиту записи образов.
  2. Для Raspberry Pi: используйте Raspberry Pi OS Lite (Bookworm, 64-bit) для минимальной системы. Для Orange Pi: скачайте подходящий Armbian (на базе Debian 12, ядро 6.x), Lite-версию без графики.
  3. Подготовьте SSH-клиент (например, стандартный OpenSSH).
  4. Соберите параметры APN вашего оператора: название APN, при необходимости логин и пароль. Пример: APN — internet, логин — пусто, пароль — пусто. Точные данные ищите в документах оператора.

Создание резервных копий

Если вы переиспользуете уже настроенную microSD-карту, сделайте резервную копию образа. На Windows можно использовать любую утилиту чтения образа карты; на macOS/Linux — команду dd для создания файла-образа. Храните копию на внешнем диске.

Совет: Ведите файл заметок, куда копируете все команды и настройки. Это сэкономит время при повторной настройке или переносе на другую плату.

Базовые понятия

Ключевые термины простым языком

  • Мобильный прокси — прокси-сервер, который выходит в интернет через мобильную сеть (4G/5G). Сайты видят мобильный IP.
  • ModemManager — служба Linux для управления мобильными модемами через стандартные интерфейсы (QMI, MBIM, PPP, AT-команды).
  • QMI/MBIM/NCM — способы связи Linux с модемом. QMI и MBIM — современные и быстрые; PPP — устаревший и медленный; NCM — Ethernet-эмуляция для некоторых модемов.
  • 3proxy — легкий прокси-сервер, умеет HTTP, HTTPS (CONNECT), SOCKS5, авторизацию и логирование.
  • Смена IP — перезапуск модемной сессии (или «режим самолёта») для выдачи нового мобильного IP оператором. Гарантии нет: оператор может вернуть тот же адрес.

Основные принципы работы

Мини-ПК подключается к мобильному модему по USB. Модем регистрируется в сети, поднимает мобильный интерфейс и получает IP от оператора. На мини-ПК запускается прокси-сервер, который слушает заданный порт и принимает подключения из локальной сети или по порт-проксированию с роутера. Трафик клиентов проходит через модем. По запросу вы можете перезапустить сессию модема для ротации IP.

Что важно понимать перед началом

  • Питание критично: USB-модемы потребляют до 0.5–1 А при пиках. Нужен качественный БП и хороший USB-кабель. Для 5G модемов предусмотрите активный USB-хаб с внешним питанием.
  • Охлаждение: Raspberry Pi 4/5 и мощные Orange Pi греются. Установите радиатор и вентилятор.
  • Покрытие сети: скорость и стабильность зависят от качества сигнала LTE/NR. Используйте внешние антенны и правильное размещение.
  • Законность: работайте строго в рамках законодательства и правил оператора.

⚠️ Внимание: Не пытайтесь модифицировать IMEI или иные идентификаторы устройств. Это противозаконно. Все настройки в этом гайде — легальные и основаны на стандартных средствах Linux.

Шаг 1: Выбираем мини-ПК, модем и питание

Цель этапа

Подобрать совместимые и надежные железо-компоненты, чтобы избежать проблем на старте.

Детальная пошаговая инструкция

  1. Выберите плату. Если хотите максимально стабильный старт — Raspberry Pi 4B с 2–4 ГБ RAM. Если нужна современная мощность — Raspberry Pi 5. Альтернатива: Orange Pi 3 LTS или Orange Pi 5 (учтите отличия в образах Armbian).
  2. Подберите USB-модем. Для простоты — Huawei E3372 в режиме Stick или ZTE MF833. Для гибкости и скорости — Quectel EG25-G или EP06/EM12 через USB-адаптер с питанием и антеннами. Для 5G — Quectel RM520N-GL с USB 3.0 адаптером и внешним питанием.
  3. Проверьте частоты. Убедитесь, что модем и оператор поддерживают нужные диапазоны LTE/5G в вашем регионе.
  4. Подготовьте питание. Для Raspberry Pi 4 — БП 5V 3A с хорошим кабелем; для 5G модема — активный USB-хаб 5V 2–3A.
  5. Возьмите microSD 32 ГБ A1/A2. Карта надежного бренда уменьшит вероятность сбоев.
  6. Подготовьте охлаждение: радиаторы и вентилятор в корпусе.
  7. Приобретите антенны для модема, если они не идут в комплекте. Для Quectel часто нужны 2×LTE/NR антенны SMA.

Важные моменты

  • Стабильность питания определяет, будет ли модем отваливаться под нагрузкой.
  • Антенны и размещение улучшают сигнал и итоговую скорость.
  • Совместимость: Raspberry Pi OS и Armbian поддерживают большинство модемов через ModemManager и драйверы qmi_wwan/cdc_mbim/option.

Совет: Если сомневаетесь в модеме — берите Quectel EG25-G как «золотую середину» по совместимости и стабильности на 4G.

Ожидаемый результат

У вас на столе собран комплект: мини-ПК, карта памяти, блок питания, USB-модем с SIM-картой, антенны, кабели и охлаждение.

Возможные проблемы и их решения

  • Проблема: Модем сильно греется. Решение: Используйте активный хаб, выносите модем на USB-удлинитель, добавьте теплоотводящий радиатор на адаптер.
  • Проблема: Слабый сигнал в комнате. Решение: Используйте внешнюю антенну, вынесите модем к окну, примените длинный USB-кабель.
  • Проблема: Не уверены, Stick или HiLink у Huawei E3372. Решение: Мы настраиваем оба типа; для HiLink будет другой способ управления соединением.

✅ Проверка: Проверьте комплектность и соответствие требованиям. Запишите IMEI модема и модель для инвентаризации (только для учета, не изменяйте IMEI).

Шаг 2: Устанавливаем ОС и базовые пакеты

Цель этапа

Развернуть актуальную ОС без графики, включить SSH, обновить систему и установить инструменты, которые понадобятся дальше.

Детальная пошаговая инструкция

  1. Запишите образ. Вставьте microSD в картридер. Откройте Raspberry Pi Imager или вашу утилиту. Выберите Raspberry Pi OS Lite (Bookworm, 64-bit) для Raspberry Pi или подходящий Armbian Lite для Orange Pi. Укажите карту памяти и нажмите кнопку записи. Дождитесь завершения и верификации.
  2. Включите SSH. Для Raspberry Pi: после записи извлеките и вновь подключите карту к ПК. В разделе загрузочного раздела создайте пустой файл с именем ssh без расширения. Для Armbian SSH активирован по умолчанию.
  3. Первый запуск. Вставьте microSD в плату, подключите Ethernet к роутеру, подключите питание. Подождите 1–2 минуты на первое развертывание системы.
  4. Найдите IP платы. На роутере посмотрите список клиентов DHCP и найдите устройство Raspberry Pi/Orange Pi. Или используйте сканер сети. Предположим, адрес 192.168.1.50.
  5. Подключитесь по SSH. На Windows откройте PowerShell и выполните: ssh [email protected] (для Raspberry Pi, пароль по умолчанию raspberry, если не меняли в имеджере). Для Armbian первый вход потребует задать пароль и создать пользователя.
  6. Обновите систему. Выполните поочередно: sudo apt update, затем sudo apt full-upgrade -y. Дождитесь завершения. Перезагрузитесь: sudo reboot. Подключитесь снова по SSH.
  7. Установите базовые пакеты: sudo apt install -y modemmanager usb-modeswitch usbutils psmisc jq curl socat netcat-traditional. Для QMI/MBIM модемов добавьте: sudo apt install -y libqmi-utils libmbim-utils.
  8. Установите инструменты сети: sudo apt install -y iproute2 iptables ufw ca-certificates.
  9. Настройте часовой пояс: sudo timedatectl set-timezone Europe/Moscow (или ваш город). Включите синхронизацию времени: sudo timedatectl set-ntp true.

Важные моменты

  • Используйте Lite-образы без графики. Они потребляют меньше ресурсов и стабильнее.
  • Делайте перезагрузку после крупных обновлений ядра и прошивок.
  • Храните доступы: смените пароли по умолчанию и запишите их в надежном месте.

Совет: Задайте статический hostname: sudo hostnamectl set-hostname mobi-proxy-01. Это упростит навигацию в сети.

Ожидаемый результат

Мини-ПК доступен по SSH, обновлен, имеет установленный ModemManager, инструменты QMI/MBIM и сетевые утилиты.

Возможные проблемы и их решения

  • Проблема: Нет подключения по SSH. Решение: Проверьте, включен ли файл ssh на boot-разделе (для Raspberry Pi), сетевой кабель и таблицу DHCP на роутере.
  • Проблема: Обновление зависло. Решение: Подождите, затем проверьте, не закончилась ли карта памяти. Возможен перезапуск через sudo reboot. При повторном сбое перепишите образ.
  • Проблема: Недоступны пакеты. Решение: Проверьте дату/время, DNS и маршрут по команде ping 1.1.1.1 и ping debian.org. Исправьте сеть.

✅ Проверка: Выполните mmcli -L. Пока модема может не быть, но команда должна работать и не возвращать ошибок о не найденном ModemManager.

Шаг 3: Подключаем и настраиваем мобильный модем

Цель этапа

Чтобы модем стабильно определялся системой, регистрировался в сети и поднимал мобильное соединение на Linux.

Детальная пошаговая инструкция

  1. Подключите модем к плате. Для энергоемких модемов используйте активный USB-хаб. Вставьте SIM-карту в модем до подключения.
  2. Проверьте обнаружение устройства: lsusb. Вы должны увидеть строку с названием модема (Huawei, ZTE, Qualcomm, Quectel). Сохраните вывод для заметок.
  3. Проверьте порты: dmesg | tail -n 50. Должны появиться устройства /dev/ttyUSBx или сетевые интерфейсы вроде wwan0, cdc-wdm0, usb0 или eth1 в зависимости от режима.
  4. Проверьте, видит ли ModemManager модем: mmcli -L. Должен появиться модем, например /org/freedesktop/ModemManager1/Modem/0.
  5. Разблокируйте модем при запросе PIN: mmcli -m 0 --pin=1234 (замените на ваш PIN, если включен). PIN лучше отключить заранее в телефоне.
  6. Задайте APN. Для профиля по умолчанию: mmcli -m 0 --simple-connect="apn=internet,user=,password=" или mmcli -m 0 --3gpp-operator-format=long при необходимости. Для MBIM: используйте mbimcli -d /dev/cdc-wdm0 --attach-packet-service с последующей конфигурацией через ModemManager — чаще проще mmcli --simple-connect.
  7. Проверьте статус: mmcli -m 0. В разделе Status вы увидите state: connected, а в Bearer — параметры подключения.
  8. Проверьте интерфейс: ip a. Должен появиться интерфейс типа wwan0 или usb0/ncm0 в зависимости от режима. Выполните ip route, чтобы увидеть маршрут по умолчанию через мобильный интерфейс.
  9. Проверьте интернет: curl -4 ifconfig.me и curl -4 ipinfo.io/ip (или любой аналогичный сервис). Вы должны увидеть публичный мобильный IP.

Важные моменты

  • Режимы модема: E3372 может работать как HiLink (роутер) или Stick (модем). В HiLink интерфейс будет как eth1/usb0 с внутренним адресом, управление через веб-интерфейс модема. В Stick — через QMI/NCM/PPP. Мы рекомендуем Stick или полноценный QMI/MBIM модем (Quectel).
  • Никаких сторонних патчей без необходимости: современные ядра поддерживают большинство модемов.
  • Антенны: подключите обе антенны MIMO для стабильности 4G/5G.

Совет: Для Quectel модемов основным AT-портом обычно является /dev/ttyUSB2. Команда echo -e "AT+CSQ\r" | socat - /dev/ttyUSB2,crnl покажет уровень сигнала. Хорошо, если CSQ 15 и выше.

Совет: Если у вас HiLink модем, сначала откройте его веб-интерфейс в браузере по адресу, отображаемому в ip a (обычно 192.168.8.1), затем включите мобильные данные и проверьте статус соединения.

Ожидаемый результат

Модем успешно регистрируется и подключается к сети. Команды curl возвращают публичный мобильный IP.

Возможные проблемы и их решения

  • Проблема: Модем не появляется в mmcli -L. Причина: неправильный режим или недостаток питания. Решение: подключите через активный USB-хаб; для Huawei — убедитесь, что он в Stick-режиме, установите usb-modeswitch (уже установлен), перезапустите.
  • Проблема: Аппарат блокирован PIN. Решение: отключите PIN на SIM в телефоне; либо снимите блокировку через mmcli -m 0 --pin=XXXX.
  • Проблема: Нет интернета. Причина: неверный APN. Решение: уточните APN у оператора; для некоторых тарифов требуются логин/пароль, примените --simple-connect с параметрами.
  • Проблема: IP не меняется при переподключении. Причина: оператор может кэшировать адрес. Решение: дождитесь таймаута или примените полную перерегистрацию (см. раздел о ротации ниже).

✅ Проверка: Выполните mmcli -m 0 и ip a. Вы должны видеть состояние connected и активный интерфейс с адресацией. curl -4 ifconfig.me должен вернуть мобильный IP.

Шаг 4: Настраиваем прокси-сервер

Цель этапа

Установить и сконфигурировать легковесный прокси-сервер 3proxy, который будет раздавать доступ к интернету через мобильный модем.

Детальная пошаговая инструкция

  1. Установите 3proxy. На Debian/Ubuntu-подобных системах часто доступен пакет: sudo apt install -y 3proxy. Если пакет недоступен, установите через сборку из исходников или альтернативу tinyproxy/dante. Мы продолжим с 3proxy.
  2. Создайте каталог конфигурации и логов, если их нет: sudo mkdir -p /etc/3proxy /var/log/3proxy. Проверьте, где лежит файл конфигурации в вашей сборке (обычно /etc/3proxy/3proxy.cfg).
  3. Создайте файл конфигурации: sudo nano /etc/3proxy/3proxy.cfg и вставьте базовый конфиг: daemon nscache 65536 config /etc/3proxy/3proxy.cfg monitor /etc/3proxy/3proxy.cfg log /var/log/3proxy/3proxy.log D logformat "%d %H:%M:%S %u %C:%c %R:%r %O %I %T" rotate 10 users user:CL:strongpassword auth strong allow user proxy -p3128 -a socks -p1080 flush. Пояснение: мы включаем демонизацию, логирование, задаем пользователя user с паролем strongpassword, поднимаем HTTP-прокси на 3128 и SOCKS5 на 1080. При необходимости смените порты и креденшлы.
  4. Ограничьте доступ по IP (рекомендуется). Добавьте строки перед запуском прокси: allow user * 192.168.0.0/16 или конкретный доверенный IP/подсеть; или используйте фаервол. Пример упрощенной строки: allow user для доступа только с авторизацией.
  5. Разрешите бинд на всех интерфейсах. По умолчанию сервис слушает 0.0.0.0. Если хотите слушать только локальную сеть — используйте ключ -i с IP мини-ПК в LAN, например: proxy -p3128 -a -i192.168.1.50. Для SOCKS аналогично: socks -p1080 -i192.168.1.50.
  6. Создайте systemd unit (если не создан пакетом). Откройте: sudo nano /etc/systemd/system/3proxy.service. Вставьте: [Unit] Description=3proxy After=network-online.target Wants=network-online.target [Service] Type=simple ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy.cfg Restart=always RestartSec=3 LimitNOFILE=65536 [Install] WantedBy=multi-user.target. Сохраните файл, затем выполните: sudo systemctl daemon-reload, sudo systemctl enable --now 3proxy.
  7. Проверьте статус: systemctl status 3proxy. Вы должны видеть состояние active (running). Если ошибка — смотрите journalctl -u 3proxy -e.
  8. Настройте UFW. Включите фаервол: sudo ufw default deny incoming, sudo ufw default allow outgoing, sudo ufw allow 22/tcp (SSH), sudo ufw allow 3128/tcp, sudo ufw allow 1080/tcp при необходимости. Включите: sudo ufw enable. Проверьте правила: sudo ufw status.
  9. Проверьте доступ к прокси с клиента в локальной сети. Укажите IP мини-ПК и порт 3128 (HTTP) или 1080 (SOCKS5), введите логин/пароль user/strongpassword. Откройте сайт определения IP и убедитесь, что он мобильный.

Важные моменты

  • Не оставляйте прокси открытым. Всегда используйте авторизацию и ограничение по IP или фаервол.
  • Храните пароли в менеджере паролей. Меняйте их регулярно.
  • Логи: регулярно проверяйте /var/log/3proxy/3proxy.log.

Совет: Если вы хотите только SOCKS5, уберите строку proxy -p3128 -a и оставьте socks -p1080. Это снизит поверхность атаки.

Совет: Для нескольких пользователей добавляйте их в секцию users через двоеточие, например: users alice:CL:pass1 bob:CL:pass2.

Ожидаемый результат

3proxy запущен как служба, доступен по нужным портам, защищен паролем и фаерволом.

Возможные проблемы и их решения

  • Проблема: Сервис не стартует. Причина: ошибка в конфиге. Решение: проверьте синтаксис, упростите до минимальной конфигурации и добавляйте опции по одной.
  • Проблема: Клиент не может подключиться. Причина: блокировка UFW. Решение: проверьте ufw status и корректность разрешенных портов.
  • Проблема: Авторизация не проходит. Решение: проверьте секцию users, отсутствие лишних пробелов, перезапустите сервис.

✅ Проверка: С клиента укажите прокси-сервер, авторизуйтесь и откройте страницу с выводом IP. Должен отображаться мобильный IP модема.

Шаг 5: Делаем автозапуск и повышаем стабильность

Цель этапа

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

Детальная пошаговая инструкция

  1. Проверьте автозапуск 3proxy. Мы уже включили systemctl enable --now 3proxy. Убедитесь, что после sudo reboot сервис поднимается.
  2. Добавьте сервис для подключения модема при старте. Хотя ModemManager сам поднимет Bearer с --simple-connect, надежнее оформить небольшую службу. Создайте файл /usr/local/bin/cell-up.sh с содержимым: подключение через mmcli -m 0 --simple-connect="apn=internet" с проверкой статуса. Сделайте файл исполняемым: sudo chmod +x /usr/local/bin/cell-up.sh.
  3. Создайте unit /etc/systemd/system/cell-up.service со строками: [Unit] Description=Cellular bring-up After=ModemManager.service network-online.target Wants=network-online.target [Service] Type=oneshot ExecStart=/usr/local/bin/cell-up.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target. Примените: sudo systemctl daemon-reload && sudo systemctl enable --now cell-up.
  4. Скрипт ротации IP. Создайте /usr/local/bin/cell-rotate.sh. Вариант 1 для QMI/MBIM/Quectel: отключить, подождать, включить: mmcli -m 0 --disconnect; затем mmcli -m 0 --set-power-state=low, пауза 3–5 сек, затем mmcli -m 0 --set-power-state=on и повторный --simple-connect. Для AT-поддержки можно послать AT+CFUN=1,1 на порт /dev/ttyUSB2 перезагрузкой модема. Для HiLink используйте HTTP API модема для disconnect/connect (если доступно). Добавьте логи и таймауты 10–30 сек на регистрацию.
  5. Убедитесь в корректной работе ротации. Запустите sudo /usr/local/bin/cell-rotate.sh и сравните curl -4 ifconfig.me до и после. Запланируйте крон-задачу при необходимости, но не ротируйте слишком часто, чтобы не нарушать правила оператора.
  6. Watchdog модема. Создайте /usr/local/bin/cell-watchdog.sh, который каждые 60 сек пингует надежный адрес (например, 1.1.1.1), и при 3 неудачах подряд выполняет cell-rotate.sh. Оформите systemd unit с типом simple и Restart=always.
  7. Мониторинг логов. Включите ротацию логов 3proxy уже прописанную параметром rotate 10. Для системных логов убедитесь, что journald имеет лимиты хранения по умолчанию.
  8. Тонкая настройка UFW. Оставьте открытыми только нужные порты. При доступе из интернета настройте порт-проброс на роутере и ограничение по IP на уровне 3proxy или UFW.

Важные моменты

  • Интервалы ротации не должны быть слишком частыми. Это влияет на стабильность и может противоречить политике оператора.
  • Безопасность: при удаленном доступе используйте только закрытый список IP и надежные пароли.
  • Логи и метрики: храните логи в ограниченном объеме, чтобы не заполнять microSD.

Совет: Если у вас несколько модемов, дайте имена интерфейсам и устройствам через udev-правила, чтобы они не путались при перезагрузке. Например, по серийному номеру присваивайте символьные ссылки.

Совет: Для 5G модемов не экономьте на активном USB-хабе и питании. Это ключ к стабильной работе под нагрузкой.

Ожидаемый результат

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

Возможные проблемы и их решения

  • Проблема: Ротация не меняет IP. Причина: оператор возвращает тот же пул. Решение: увеличьте время ожидания между disconnect/connect до 30–60 сек; выполняйте полную перерегистрацию питания модема; при необходимости меняйте точку подключения (Band) или локацию.
  • Проблема: Watchdog перезапускает слишком часто. Решение: увеличьте пороги срабатывания (например, 5–7 неудачных проверок) и интервал между проверками.

✅ Проверка: Перезагрузите мини-ПК. Убедитесь, что через 1–2 минуты 3proxy доступен, мобильный интернет активен, а скрипт ротации действительно меняет IP.

Шаг 6: Тестируем, мониторим, журналируем

Цель этапа

Проверить итоговую конфигурацию, измерить базовую производительность, настроить простое наблюдение за состоянием узла.

Детальная пошаговая инструкция

  1. Проверьте доступность портов. С клиента выполните: открыть браузер с настройкой прокси и зайти на любой сайт. Или используйте утилиты: curl -x http://user:strongpassword@IP:3128 http://example.com. Для SOCKS5: curl --socks5 user:strongpassword@IP:1080 http://example.com.
  2. Проверьте смену IP. Сравните результаты curl -4 ifconfig.me до и после cell-rotate.sh.
  3. Оцените скорость. Используйте speedtest-cli (установить: sudo apt install -y speedtest-cli) через прокси на клиенте или напрямую на плате. Имейте в виду, что скорость зависит от оператора и сигнала.
  4. Проверьте логи 3proxy: tail -f /var/log/3proxy/3proxy.log. Должны отображаться строки о подключениях, пользователях и трафике.
  5. Проверьте системный журнал: journalctl -u ModemManager -e, journalctl -u 3proxy -e. Убедитесь в отсутствии ошибок.
  6. Включите базовую телеметрию. Можно запланировать в cron сбор метрик уровня сигнала через AT-команды (например, AT+CSQ) и запись в файл для анализа динамики покрытия.

Важные моменты

  • Реалистичные ожидания: мобильный канал подвержен колебаниям. Планируйте резервы.
  • Журналирование поможет разбирать нештатные ситуации и оптимизировать конфигурацию.

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

Ожидаемый результат

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

Возможные проблемы и их решения

  • Проблема: Скорость низкая. Причина: слабый сигнал или перегруженная сотая. Решение: смените расположение модема, используйте внешние антенны, попробуйте другой оператор.
  • Проблема: Нестабильность под нагрузкой. Причина: питание. Решение: более мощный БП, активный хаб, качественный кабель, включите охлаждение.

✅ Проверка: Получите мобильный IP через прокси и убедитесь, что простые сайты открываются быстро. Запустите speedtest и сравните с ожиданиями.

Проверка результата

Чек-лист

  • SSH-доступ к мини-ПК работает.
  • ModemManager видит модем, соединение поднимается автоматически.
  • 3proxy запущен как служба, слушает указанные порты.
  • Доступ к прокси ограничен паролями и фаерволом.
  • Ротация IP меняет публичный адрес хотя бы в части случаев.
  • Логи пишутся, система не перегревается и не теряет питание.

Как протестировать

  • Откройте 2–3 сайта определения IP через прокси. Сравните адреса до и после ротации.
  • Выполните серию коротких запросов через прокси и оцените задержку: curl -w "%{time_connect} %{time_starttransfer}\n" -o /dev/null -s http://example.com.
  • Перезагрузите устройство. Убедитесь, что все сервисы стартуют самостоятельно.

Показатели успешности

  • Время восстановления после перезагрузки до полностью работоспособного состояния меньше 2 минут.
  • Процент успешных ротаций с изменением IP не ниже 50–70% (зависит от оператора).
  • Стабильность под нагрузкой 1–2 Мбит/с без падений в течение нескольких часов.

Типичные ошибки и решения

  • Проблема: Прокси доступен из интернета без пароля. Причина: пропущена настройка авторизации и UFW. Решение: включить auth strong и users в 3proxy, ограничить доступ UFW и по IP.
  • Проблема: Модем периодически отваливается. Причина: недостаточное питание или перегрев. Решение: активный USB-хаб, лучший БП, охлаждение, watchdog со скриптом перезапуска.
  • Проблема: mmcli не находит модем после перезагрузки. Причина: последовательность инициализации. Решение: добавить зависимость After=ModemManager.service и задержку в cell-up.service, проверить udev-правила.
  • Проблема: Ротация не дает новый IP. Причина: политика оператора. Решение: увеличить паузу между disconnect/connect, сменить локацию, при использовании HiLink делать полную перерегистрацию модема.
  • Проблема: Логи переполняют microSD. Причина: слишком подробное логирование. Решение: уменьшить детализацию, включить ротацию и автоочистку, перенести логи в /var/log с ротацией.
  • Проблема: Низкая скорость на 5G модеме. Причина: использование USB 2.0 или слабый кабель. Решение: подключить к USB 3.0, использовать короткий экранированный кабель, активный хаб, обновить прошивку модема при наличии.
  • Проблема: Конфликт портов. Причина: на этих портах уже слушают другие сервисы. Решение: сменить порты в 3proxy и UFW, проверить ss -tulpen.

Дополнительные возможности

Продвинутые настройки

  • Мульти-модем конфигурация. Подключите 2–4 модема через активный хаб. Создайте отдельные инстансы 3proxy с уникальными портами и учетками для каждого модема. Привяжите исходящий интерфейс через ip rule и ip route (политическая маршрутизация), если нужно явное разделение трафика.
  • API для ротации. Запустите легкий HTTP-сервис через socat или tiny web server, который по GET-запросу вызывает cell-rotate.sh. Добавьте базовую авторизацию и ограничение IP.
  • Привязка к интерфейсу. В конфиге 3proxy используйте опцию -e для исходящего IP/интерфейса, если у вас несколько активных каналов и нужно форсировать исход через нужный модем.

Оптимизация

  • Стабильность файловой системы. Включите zram или перенесите интенсивные логи в /tmp или на внешний SSD, если нагрузка высока.
  • Снижение задержек. Разместите модем ближе к окну, используйте качественные антенны, отключите лишние демоны в системе.
  • Обновление прошивок. При необходимости обновите модем до последней стабильной версии через официальный софт производителя. Всегда делайте резервные копии и не прерывайте обновление.

Что еще можно сделать

  • Интеграция с панелью управления. Реализуйте простую HTML-страницу с кнопками «подключить», «отключить», «ротация» и отображением состояния.
  • Балансировка клиентов. При нескольких модемах можно ручным образом распределить пользователей по портам различных инстансов 3proxy для равномерной нагрузки.
  • Сравнение с готовыми решениями. Если нужна масштабируемость, автоматика биллинга, гибкие API, обратите внимание на специализированные сервисы класса mobileproxy.space как на пример функционала, который можно адаптировать в своем локальном решении. Это поможет понимать, куда развиваться.

Совет: Храните все скрипты в /usr/local/bin и помечайте их версией и датой. Это облегчит поддержку.

Совет: Добавьте внутренние закладки по разделам в самом гайде и ваших документах. Например, «См. Шаг 4 для конфигурации 3proxy».

FAQ

  1. Сколько модемов можно подключить к одному мини-ПК? В зависимости от питания и хаба — обычно 2–4 без проблем. Убедитесь, что у каждого модема хватает тока, и используйте активный хаб.
  2. Будет ли работать без Ethernet, только по Wi‑Fi? Да. Подключите мини-ПК к Wi‑Fi и убедитесь, что роутер видит устройство. Прокси будет доступен по Wi‑Fi IP.
  3. Можно ли использовать только SOCKS5? Да, оставьте в 3proxy только строку socks и уберите HTTP-прокси. Это упростит конфигурацию.
  4. Нужно ли белый статический IP на вход? Нет, если доступ только из вашей локальной сети. Если требуется доступ из интернета, настройте проброс портов на вашем роутере и ограничьте доступ по IP и паролю. Учитывайте правила провайдера.
  5. Как часто можно ротировать IP? Безопасно — не чаще нескольких раз в час. Чрезмерная ротация снижает стабильность и может нарушать политику оператора.
  6. Можно ли развернуть на старом Raspberry Pi 2? Технически да, но производительность будет ограничена. Рекомендуем Pi 3B+ или новее.
  7. Что делать, если 3proxy отсутствует в репозитории? Используйте сборку из исходников или альтернативы tinyproxy (HTTP) и dante-server (SOCKS). Конфигурация принципиально схожа.
  8. Как узнать уровень сигнала? Для Quectel: отправьте AT+CSQ на основной порт модема, интерпретация: 15–20 средне, 20+ хорошо. Для HiLink — смотрите статус в веб-интерфейсе модема.
  9. Как защититься от перегрева? Установите радиаторы и вентилятор, следите за температурой vcgencmd measure_temp на Raspberry Pi, держите ее ниже 70–75°C под нагрузкой.
  10. Можно ли повторно использовать скрипты на другой плате? Да. Перенесите файлы из /usr/local/bin и systemd unit’ы, скорректируйте пути к модему и APN.

Заключение

Вы собрали полноценную мобильную прокси-ноду на Raspberry Pi или Orange Pi: выбрали плату, модем и питание, установили ОС, активировали ModemManager, подняли соединение, настроили 3proxy с авторизацией и фаерволом, обеспечили автозапуск, ротацию IP и базовый мониторинг. Теперь у вас есть практический опыт и рабочий инструмент для тестирования мобильного трафика, интеграции с внутренними системами и образовательных целей. Дальше вы можете развивать решение: добавлять несколько модемов, строить панель управления, интегрировать API ротации, оптимизировать железо и логику отказоустойчивости. А для понимания лучших практик и готовых функций удобно ориентироваться на сервисы класса mobileproxy.space, сопоставляя их возможности с вашим локальным окружением. Если вам нужно быстро масштабироваться, можно комбинировать собственные ноды с готовыми управляемыми решениями.

⚠️ Внимание: Всегда соблюдайте законодательство и договор с вашим оператором связи. Не используйте прокси для противоправных задач и не пытайтесь обходить ограничения. Поддерживайте устройство в исправном состоянии, следите за питанием и температурой.

Совет: Сохраните резервную копию карты microSD после полной настройки. Это позволит быстро восстановиться при сбое накопителя или экспериментальных изменениях.