RuProxy — Инструкция пользователя

Версия документа: 1.2
Актуальная версия ПО: 1.7.1
Официальный сайт: https://ru-proxy.ru
Поддержка: support@ru-proxy.ru · Telegram


Оглавление

  1. Описание продукта
  2. Системные требования
  3. Установка
  4. Первоначальная настройка
  5. Конфигурация (config.yaml)
    - 5.1 Лицензия
    - 5.2 Сетевые параметры
    - 5.3 Маскировка ОС (OS Fingerprinting)
    - 5.4 IPv6 подсети и ротация
    - 5.5 API и управление пользователями
    - 5.6 DNS-резолвер
    - 5.7 Ограничение скорости (Traffic Shaping)
    - 5.8 Тайм-ауты
    - 5.9 Сервисный аккаунт
    - 5.10 Чёрный список (Blacklist)
    - 5.11 Логирование
  6. HTTP API
  7. Web-Дашборд
  8. Управление службой
  9. Логирование и мониторинг
  10. Командная строка (CLI)
  11. Диагностика и устранение неполадок
  12. FAQ
  13. История изменений

1. Описание продукта

RuProxy — высокопроизводительный SOCKS5(h) / HTTP CONNECT IPv6 прокси-сервер, написанный на Rust. Предназначен для развёртывания на собственном выделенном или виртуальном сервере (VPS) и выступает в роли шлюза: принимает входящие подключения по IPv4, авторизует их и маршрутизирует трафик через настроенные IPv6 подсети.

Ключевые возможности

Функция Описание
SOCKS5 / SOCKS5h Полная поддержка протокола, включая Remote DNS (предотвращение DNS-утечек)
HTTP CONNECT Поддержка HTTP(S) прокси-режима через метод CONNECT (для браузеров, curl, системных настроек)
Hybrid Mode Автоматическое определение протокола (SOCKS5/HTTP) на одном порту
UDP / QUIC Полноценное проксирование UDP-трафика, включая протокол QUIC (HTTP/3)
Мультисеть Подключение нескольких IPv6 подсетей с балансировкой по весам
Ленивая ротация Смена IP только при новой авторизации — активные сессии не разрываются
Smart DNS Failover Встроенный резолвер с балансировкой и автопереключением на резервные DNS
OS Fingerprinting (p0f) Маскировка TCP/IP отпечатка под различные ОС (Linux, Android, Windows, iOS, macOS)
Traffic Shaping Ограничение общей пропускной способности с поддержкой burst
HTTP(S) API Мгновенная генерация учётных записей, статистика, управление через REST API
IP Whitelist Управление списком разрешённых IP и подсетей прямо из дашборда, с защитой системных записей
Web-Дашборд Встроенная панель мониторинга с графиками трафика, аналитикой соединений и поддержкой тем оформления
Чёрный список Блокировка доменов и IP-адресов через файл blacklist.txt
Сервисный аккаунт Специальный аккаунт для чекеров/мониторинга с ограниченным доступом

Как это работает

   Ваше ПО            RuProxy Server           IPv6 подсети         Интернет
  (SOCKS5h/HTTP)  →   Auth • DNS • Shaping   →  Subnet A (w:100)  →  Target
                                                 Subnet B (w:50)
ВажноДля максимальной анонимности ваш клиент должен использовать режим SOCKS5h (Remote DNS). В этом режиме DNS-запросы выполняются на стороне сервера RuProxy, а не на вашем локальном компьютере.
ПримечаниеRuProxy маршрутизирует трафик исключительно через IPv6. Целевой ресурс должен поддерживать IPv6.

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

Параметр Минимум Рекомендуется
ОС Debian 12 (Bookworm) x64 Debian 12 (Bookworm) x64
CPU 1 ядро 2+ ядра
RAM 512 МБ 1+ ГБ (зависит от max_accounts)
IPv6 /64 подсеть /48 или /32 подсеть
Права root (для установки) Служба запускается от пользователя ruproxy
ПримечаниеДля работы функции маскировки ОС (p0f fingerprinting) требуется установка кастомного ядра 6.1.162-ruproxy-p0f. Без него все остальные функции будут работать в обычном режиме.

3. Установка

ВажноРекомендуется устанавливать RuProxy на чистую, обновлённую Debian 12 (Bookworm). Кастомное ядро, которое устанавливается вместе с сервером, обеспечивает поддержку OS Fingerprinting, однако оно не является на 100% универсальным — на некоторых конфигурациях оборудования могут отсутствовать необходимые драйверы, что приведёт к тому, что сервер не загрузится после установки ядра. Если после перезагрузки сервер недоступен — обратитесь в поддержку по почте support@ru-proxy.ru или в Telegram.

3.1. Автоматическая установка (рекомендуется)

Запустите от имени root:

curl -fsSL https://ru-proxy.ru/downloads/install.sh | bash

Скрипт автоматически:
1. Скачает и установит кастомное ядро Linux с патчем p0f
2. Настроит загрузчик GRUB на приоритетную загрузку нового ядра
3. Скачает и установит пакет RuProxy
4. Создаст системного пользователя ruproxy
5. Настроит systemd-сервис
6. Предложит перезагрузить сервер

3.2. Ручная установка

  1. Скачайте .deb-пакет со страницы загрузки
  2. Установите пакет:
dpkg -i ruproxy_*.deb
# При ошибках зависимостей:
apt-get install -f -y
  1. (Опционально) Установите кастомное ядро для p0f:
dpkg -i linux-image-6.1.162-ruproxy-p0f_amd64.deb
update-grub

3.3. Что создаётся при установке

Путь Назначение
/usr/bin/ruproxy Исполняемый файл
/etc/ruproxy/config.yaml Основной конфигурационный файл
/etc/ruproxy/blacklist.txt Список заблокированных доменов/IP
/etc/ruproxy/whitelist.txt Белый список разрешённых IP и подсетей
/etc/rc.local Правила маршрутизации IPv6 (создаётся при установке, если отсутствует)
/etc/sysctl.d/90-ruproxy.conf Настройки ядра (sysctl)
/usr/lib/systemd/system/ruproxy.service Файл службы systemd
/etc/logrotate.d/ruproxy Конфигурация ротации логов
/var/log/ruproxy/ Каталог логов
/var/lib/ruproxy/ Каталог данных (экспорт аккаунтов)

4. Первоначальная настройка

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

Шаг 1. Отредактируйте конфигурацию

nano /etc/ruproxy/config.yaml

Обязательно заполните:
- license_key — ваш лицензионный ключ (получить в Telegram)
- public_ip — внешний IPv4 адрес вашего сервера
- ipv6_subnets — ваши IPv6 подсети
- master_token — секретный токен для API (замените на свой!)

Шаг 2. Настройте маршрутизацию IPv6

Отредактируйте файл /etc/rc.local и раскомментируйте строку маршрута:

nano /etc/rc.local

Замените шаблон на вашу реальную подсеть:

ip -6 route add local 2a01:xxxx::/32 dev lo
ВниманиеБез правильной маршрутизации IPv6 прокси не сможет привязываться к адресам из указанных подсетей.

Шаг 3. Проверьте конфигурацию

ruproxy -t /etc/ruproxy/config.yaml

Должно вывести ✅ Syntax OK. с перечислением основных параметров.

Шаг 4. Перезагрузите сервер

reboot

Это необходимо для применения кастомного ядра и правил маршрутизации.

Шаг 5. Запустите сервис

systemctl start ruproxy
systemctl status ruproxy

5. Конфигурация (config.yaml)

Все настройки находятся в файле /etc/ruproxy/config.yaml. Для применения изменений необходимо перезапустить службу.

СоветПеред перезапуском всегда проверяйте конфигурацию командой ruproxy -t.

5.1. Лицензия

license_key: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

license_servers:
  - "L1.license-server.ru:8000"
  - "L2.license-server.ru:8000"
Параметр Описание
license_key Обязательный. Лицензионный ключ, полученный при покупке
license_servers Список серверов лицензирования. При недоступности одного — используется следующий
ВажноБез валидной лицензии сервер не запустится. Проверить доступность лицензионного сервера можно командой ruproxy --ping [address:port], где address:port — значение из параметра license_servers в конфигурации.

5.2. Сетевые параметры

listen_ip: "0.0.0.0"
public_ip: "123.45.67.89"
# ext_iface: "eth0"  # Опционально
Параметр Описание По умолчанию
listen_ip Интерфейс для приёма входящих подключений 0.0.0.0 (все интерфейсы)
public_ip Обязательный. Публичный IPv4 адрес сервера (используется в API и генерации ссылок)
ext_iface Внешний сетевой интерфейс для QoS. Если не указан — определяется автоматически auto

5.3. Маскировка ОС (OS Fingerprinting)

Секция listeners позволяет создать несколько портов, каждый с собственным профилем маскировки TCP/IP отпечатка. Антифрод-системы, анализирующие трафик утилитами типа p0f, увидят характерные для указанной ОС параметры.

Каждый listener поддерживает поле mode, определяющее протокол:

Режим Описание
socks SOCKS5/SOCKS5h (по умолчанию)
http HTTP CONNECT прокси (метод CONNECT с авторизацией Proxy-Authorization: Basic)
hybrid Автодетект: SOCKS5 и HTTP на одном порту. Сервер определяет протокол по первому байту
listeners:
  - port: 1080
    os_preset: "linux"
    # mode: "socks"  # По умолчанию, можно не указывать

  - port: 1081
    os_preset: "android"
    mode: "hybrid"    # Принимает и SOCKS5, и HTTP CONNECT

  - port: 1082
    os_preset: "windows"
    mode: "http"

  - port: 1083
    os_preset: "ios"
    mode: "socks"

  - port: 1084
    os_preset: "macos"
    mode: "http"
СоветРежим hybrid — рекомендуемый. Один порт обслуживает оба протокола, не нужно открывать дополнительные порты. Определение протокола происходит мгновенно по первому байту.

Доступные профили:

Профиль TTL TCP MSS Congestion Control Описание
linux 64 1440 cubic Стандартный Linux сервер
android 64 1380 bbr Мобильный Android-клиент
windows 128 1440 cubic Windows-устройство
ios 64 1326 cubic iPhone / iPad
macos 64 1440 cubic macOS десктоп

Тонкая настройка (только для опытных пользователей):

Каждый listener поддерживает ручную настройку сетевых параметров:

  - port: 1081
    os_preset: "android"
    tcp_congestion: "bbr"      # Алгоритм контроля перегрузок
    tcp_window_size: 1048576   # Размер TCP окна (байт)
    latency_base_ms: 60        # Базовая задержка (мс)
    jitter_ms: 30              # Джиттер (разброс задержки, мс)
    tos: 10                    # Traffic Class (QoS-маркер)
ВниманиеБездумное изменение параметров тонкой настройки может привести к нестабильной работе или ухудшению маскировки. Если вы не уверены — оставьте значения по умолчанию.

5.4. IPv6 подсети и ротация

ipv6_subnets:
  - cidr: "2a01:xxxx::/32"
    weight: 427
  - cidr: "2a02:yyyy:yyyy:yyyy::/64"
    weight: 16

rotation_interval: 10
Параметр Описание
cidr IPv6 подсеть в CIDR-нотации. Поддерживаются подсети любого размера (/29, /32, /48, /64 и т.д.)
weight Вес подсети. Чем больше значение, тем чаще подсеть используется при генерации исходящих адресов
rotation_interval Интервал ротации IP в минутах. 0 — ротация отключена (IP сохраняется до перезагрузки)

Как работает ротация:
- IP-адрес привязан к паре логин/пароль (Sticky Session)
- При каждой авторизации проверяется, не истёк ли rotation_interval
- Если истёк — генерируется новый IPv6 из подсети (с учётом весов)
- Активные соединения НЕ разрываются — смена IP происходит только при новом подключении
- При простое сессии более 5 минут (настраиваемо через timeouts.idle) она закрывается

СоветПример: Если у Подсети-A вес 100, а у Подсети-B вес 50, то Подсеть-A будет выдавать адреса в 2 раза чаще.

5.5. API и управление пользователями

api_port: 8080
api_port_https: 8443  # Опционально — HTTPS с самоподписным сертификатом

master_token: "my-secret-token"

max_accounts: 100000

accounts_file: "/var/lib/ruproxy/accounts_[port]_[os]_[mode].txt"

# account_seed: 123456789
Параметр Описание По умолчанию
api_port Порт HTTP API 8080
api_port_https Порт HTTPS API (самоподписной сертификат, опционально)
master_token Обязательный. Секретный токен для аутентификации запросов к API
max_accounts Максимум генерируемых уникальных аккаунтов (каждый со своим IPv6) 100000
accounts_file Путь для экспорта аккаунтов. Поддерживает шаблоны [port], [os] и [mode] accounts.txt
account_seed Зерно генерации. При одинаковом seed логины/пароли будут идентичны после перезагрузки случайный
СоветИспользуйте account_seed, если хотите, чтобы аккаунты оставались неизменными между перезапусками. Это полезно для интеграции с внешними системами — не нужно обновлять учётные данные.

5.6. DNS-резолвер

dns:
  timeout: 2
  cache_size: 8000
  suppress_aaaa_not_found: true

  servers:
    # Основные (с балансировкой)
    - address: "[2001:4860:4860::8888]:53"
      weight: 53
    - address: "1.1.1.1:53"
      weight: 7

    # Резервные (failover)
    - address: "[2001:4860:4860::8844]:53"
    - address: "9.9.9.9:53"
Параметр Описание По умолчанию
timeout Тайм-аут DNS-запроса (секунд) 2
cache_size Количество закешированных DNS-записей 1024
suppress_aaaa_not_found Подавлять предупреждения о доменах без AAAA-записи false

Логика работы:
1. Запрос отправляется на один из основных серверов с весом (выбирается по weight — чем больше вес, тем чаще сервер используется). Основных серверов может быть несколько.
2. Если основной сервер не ответил (таймаут/ошибка) — запрос идёт в резервный пул. Резервных серверов также может быть несколько (указываются без параметра weight).
3. Если домен существует, но не имеет AAAA-записи — это не ошибка соединения, бэкап не используется

СоветРекомендация: Добавьте DNS вашего хостинг-провайдера с высоким весом. Адреса DNS бывают указаны в файле /etc/resolv.conf или их можно узнать в отделе поддержки провайдера. Провайдерские DNS обычно отвечают за 1–2 мс (против 10–50 мс у Google/Cloudflare).

5.7. Ограничение скорости (Traffic Shaping)

shaping:
  rate: 12500000   # 100 Мбит/с
  burst: 25000000  # 200 Мбит/с (burst)
Параметр Описание
rate Максимальная скорость в байтах/сек. 0 = без ограничения
burst Размер «взрывного» буфера в байтах. Позволяет кратковременно превысить rate
ПримечаниеОграничение действует суммарно на весь сервер (все пользователи, оба направления). Один и тот же лимит применяется отдельно к upload и download.

Шпаргалка:

Скорость Значение rate
1 Мбит/с 125 000
10 Мбит/с 1 250 000
100 Мбит/с 12 500 000
1 Гбит/с 125 000 000

5.8. Тайм-ауты

timeouts:
  shutdown: 10    # Ожидание завершения сессий при остановке (сек)
  idle: 300       # Максимальное бездействие сессии (сек)
Параметр Описание По умолчанию
shutdown Время ожидания (сек) для завершения активных соединений при остановке/перезапуске сервиса 15
idle Максимальное время неактивности TCP/UDP сессии, после которого она разрывается 300 (5 мин)

5.9. Сервисный аккаунт

service_account:
  enabled: true
  login: "checker"
  password: "strong_password"
  allowed_domain: "ifconfig.me"

Сервисный аккаунт предназначен для мониторинга и проверки работоспособности прокси. Особенности:
- Статический логин/пароль (не генерируется, не ротируется)
- Имеет доступ только к одному домену (allowed_domain)
- Не расходует лимиты ротации
- Не сменяет IP

СоветИдеально подходит для внешних чекеров: настройте allowed_domain: "ifconfig.me" и проверяйте исходящий IP командой curl --proxy socks5://checker:password@IP:PORT ifconfig.me.

5.10. Чёрный список (Blacklist)

blocked_file: "/etc/ruproxy/blacklist.txt"

Файл содержит список заблокированных доменов и IP-адресов (по одному на строку). Комментарии начинаются с #.

# Блокировка рекламных доменов
doubleclick.net
ads.google.com

# Блокировка приватных IPv6 сетей
fc00::/7
fe80::/10
ВажноБлокировка работает с учётом поддоменов. Если заблокирован google.com, то mail.google.com и ads.google.com тоже будут недоступны.

5.11. Логирование

log:
  dir: "/var/log/ruproxy"
  level: "info"
Уровень Описание
error Только критические ошибки
warn Ошибки и предупреждения
info Основные события (подключения, DNS, ротация) — рекомендуется
debug Детальная отладка (каждая сессия, каждый запрос DNS)

Создаются два файла логов:
- ruproxy.log — полный лог (уровень задаётся параметром level)
- error.log — только ошибки (всегда)


6. HTTP API

API доступен по адресу http://YOUR_IP:PORT или https://YOUR_IP:PORT, где PORT задаётся параметрами api_port и api_port_https в конфигурации (8080 и 8443 по умолчанию).

Для аутентификации используется параметр token (значение из master_token).

6.1. Получение нового прокси — GET /allocate

Возвращает строку подключения с новой парой логин/пароль.

curl "http://YOUR_IP:8080/allocate?token=YOUR_TOKEN"

Ответ:

socks5://user_AbCdEfGh:KlMnOpQrSt@YOUR_IP:1080

Параметры запроса:

Параметр Описание По умолчанию
token Обязательный. Секретный master_token
os Профиль маскировки ОС (linux, android, windows, ios, macos) linux
mode Протокол: socks5 или http socks5

Примеры:

# SOCKS5 прокси с профилем Android
curl "http://YOUR_IP:8080/allocate?token=YOUR_TOKEN&os=android"
# Ответ: socks5://user_xxx:pass_xxx@YOUR_IP:1081

# HTTP прокси с профилем Android
curl "http://YOUR_IP:8080/allocate?token=YOUR_TOKEN&os=android&mode=http"
# Ответ: http://user_xxx:pass_xxx@YOUR_IP:1081
ПримечаниеПри запросе mode=http для listener'а с mode: socks API вернёт ошибку: Error: http mode is not enabled for 'linux' profile (port 1080). Listener mode: socks
СоветВ режиме hybrid оба варианта (mode=socks5 и mode=http) работают на одном порту.

6.2. Статистика — GET /stats

Возвращает полную статистику сервера в JSON.

curl "http://YOUR_IP:8080/stats?token=YOUR_TOKEN"

Пример ответа:

{
  "version": "1.7.1",
  "uptime_seconds": 9980,
  "active_connections": { "tcp": 56, "udp": 4 },
  "traffic": {
    "ingress_bytes": 264074969,
    "egress_bytes": 35524983
  },
  "dns": { "total_queries": 18905 },
  "events": {
    "total_connections": 18963,
    "connection_errors": 12,
    "access_denied": 0,
    "blocked_domains": 0
  },
  "license": {
    "expires_at_unix": 1770484105,
    "days_left": 29,
    "servers": {
      "L1": "online",
      "L2": "online"
    }
  }
}
ПримечаниеСтатистика доступна без токена с localhost (127.0.0.1). Это позволяет использовать её в скриптах мониторинга непосредственно на сервере.

7. Web-Дашборд

Встроенный дашборд доступен по адресу:

http://YOUR_IP:8080/dashboard?token=YOUR_TOKEN

7.1. Мониторинг в реальном времени

Дашборд доступен по адресу http://YOUR_IP:PORT/dashboard?token=YOUR_TOKEN, где PORT задаётся параметром api_port в конфигурации. Поддерживается также HTTPS-режим через api_port_https.

Дашборд обновляется каждые 10 секунд и отображает:
- Аппаратные ресурсы — загрузка CPU (с указанием числа ядер) и использование RAM с прогресс-барами
- Сетевой трафик — суммарный Ingress/Egress в удобочитаемом формате (КБ/МБ/ГБ), количество всех и активных TCP/UDP соединений
- Лицензия и статус — оставшиеся дни и статус каждого сервера лицензирования (online/offline) в режиме реального времени
- Версия и аптайм — в шапке дашборда

7.2. Графики трафика

Два графика скорости (Rx/Tx в Мбит/с) с подписями средних значений:
- Почасовой — последние 60 минут с шагом 1 минута
- Суточный — последние 24 часа с шагом 1 час

7.3. Connection Analytics

Круговая диаграмма показывает разбивку всех соединений по категориям:

Категория Цвет Описание
Success зелёный Успешно проксированные соединения
Auth Denied жёлтый Отклонённые по причине неверной авторизации
Conn Errors фиолетовый Сетевые ошибки при установке соединения
Blocked (DPI) серый Заблокированные по чёрному списку доменов
No IPv6 синий Домены без AAAA-записи (не поддерживают IPv6)
Firewall Blocks красный Отклонённые IP Whitelist'ом

7.4. Управление IP Whitelist

Панель «IP Whitelist» позволяет управлять списком разрешённых IP-адресов и подсетей прямо из браузера, без перезапуска сервиса:
- Просмотр — отображает все записи с индикатором защищённости (🔒 — системная запись, недоступная для удаления)
- Добавление — поле ввода принимает отдельный IP или подсеть в CIDR-нотации (например, 192.168.1.0/24). Нажмите + Add Entry или Enter
- Удаление — кнопка «×» напротив каждой записи. Удаление 0.0.0.0/0 требует подтверждения во избежание случайной блокировки доступа
- Импорт из файла — кнопка «📁 Import» позволяет загрузить .txt-файл с перечнем IP/CIDR (по одному на строку, поддерживаются комментарии через #)

Список автоматически обновляется каждые 10 секунд — изменения, внесённые с другого устройства или администратором, отразятся без перезагрузки страницы.

ВниманиеЗапись 0.0.0.0/0 разрешает подключения со всех IP-адресов. Если вы её удалите, доступ к прокси получат только адреса, явно перечисленные в списке. Убедитесь, что ваш IP добавлен, прежде чем это делать.

7.5. Recent Blocks

Панель «🚨 Recent Blocks» отображает последние заблокированные соединения (до 10 записей) с IP-адресом и временем блокировки. Счётчик Total показывает суммарное число блокировок с момента последнего запуска сервиса.

В верхней части дашборда автоматически генерируются кнопки быстрого копирования прокси-ссылок, сгруппированные по профилям ОС (Linux, Android, Windows, iOS, macOS). Кнопки SOCKS5 и HTTP неактивны, если соответствующий протокол не включён для данного профиля.

При нажатии на кнопку в буфер обмена копируется ссылка для получения нового прокси (запрос GET /allocate?os=...&mode=...), а в нижнем правом углу появляется уведомление.

7.7. Темы оформления

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

Тема Описание
RuProxy Dark Фирменная тёмная тема (по умолчанию)
Light Classic Светлая классическая
Dracula Фиолетово-розовая тёмная
Deep Ocean Тёмно-синяя морская
Hacker Монохромная зелёная на чёрном

8. Управление службой

RuProxy устанавливается как systemd-сервис и запускается от пользователя ruproxy.

# Запуск
systemctl start ruproxy

# Остановка (graceful — ждёт завершения активных сессий)
systemctl stop ruproxy

# Перезапуск
systemctl restart ruproxy

# Статус
systemctl status ruproxy

# Включить автозапуск
systemctl enable ruproxy

# Просмотр логов в реальном времени
journalctl -u ruproxy -f
ВниманиеНе запускайте RuProxy напрямую от root! При запуске от root файлы логов и данных будут принадлежать root, что вызовет ошибки прав доступа при последующих запусках через systemd. Правильный способ — запускать сервис командой systemctl start ruproxy: systemd автоматически переключается на пользователя ruproxy, прописанного в юнит-файле службы.

9. Логирование и мониторинг

Файлы логов

Файл Описание
/var/log/ruproxy/ruproxy.log Основной лог (уровень задаётся в конфиге)
/var/log/ruproxy/error.log Только ошибки

Ротация логов

Логи ротируются автоматически через logrotate:
- Ежедневно или при достижении 100 МБ
- Хранится 10 предыдущих версий
- Сжатие gzip

Системная телеметрия

Каждые 10 секунд в лог выводится строка [SYS_STATS]:

[SYS_STATS] System Mem: 524/2048 MB | App Mem: 85 MB | CPU: 12.3% | Conns: 42 / 4096

10. Командная строка (CLI)

ruproxy [OPTIONS]

Опции:
  -c, --config <PATH>      Путь к файлу конфигурации (по умолчанию: config.yaml)
  -t, --test [<PATH>]      Проверить синтаксис конфигурации
  -g, --generate           Сгенерировать пример config.yaml.example
  -b, --blacklist          Сгенерировать пример blacklist.txt.example
  -H, --hwid               Показать HWID сервера
  -p, --ping <HOST:PORT>   Проверить доступность лицензионного сервера
  -V, --version            Показать версию
  -h, --help               Показать справку

Примеры:

# Запуск с конфигом по умолчанию
ruproxy

# Запуск с указанием конкретного конфига
ruproxy -c /etc/ruproxy/config.yaml

# Проверка конфига перед деплоем
ruproxy -t /etc/ruproxy/config.yaml

# Генерация примера конфигурации
ruproxy -g

# Проверка доступности сервера лицензий
ruproxy --ping L1.license-server.ru:8000

# Получение HWID
ruproxy -H

11. Диагностика и устранение неполадок

Сервис не запускается

  1. Проверьте конфигурацию:
    ruproxy -t /etc/ruproxy/config.yaml

  2. Проверьте логи:
    journalctl -u ruproxy --no-pager -n 50

  3. Проверьте лицензионный сервер:
    ruproxy --ping <HOST:PORT>
    Адрес HOST:PORT берётся из параметра license_servers в конфигурации.

Нет подключения через прокси

  1. Убедитесь, что клиент использует правильный протокол — SOCKS5, SOCKS5h или HTTP CONNECT (все поддерживаются). Для максимальной анонимности рекомендуется SOCKS5h (DNS-запросы разрешаются на стороне сервера).
  2. Проверьте маршрутизацию IPv6 — осмотрите содержимое файла /etc/rc.local и вывод команды:
    ip -6 route show
  3. Проверьте, что порт доступен извне:
    ss -tlnp | grep ruproxy
  4. Проверьте файрвол (iptables/nftables)

Не открываются некоторые сайты

RuProxy работает только через IPv6. Если целевой сайт не имеет AAAA-записи (IPv6), подключение невозможно.

Проверить наличие AAAA:

dig AAAA example.com

IP не меняется

RuProxy использует Sticky Sessions. IP привязан к паре логин/пароль. Для смены IP:
- Запросите нового пользователя через GET /allocate
- Или дождитесь истечения rotation_interval и переподключитесь


12. FAQ

В: Что такое SOCKS5h и чем отличается от SOCKS5?

О: В режиме SOCKS5h DNS-запросы выполняются на стороне прокси-сервера (Remote DNS). В обычном SOCKS5 DNS разрешается на стороне клиента — это может привести к DNS-утечкам и раскрыть реальный IP. Всегда используйте SOCKS5h.


В: Почему при каждом перезапуске генерируются новые логины/пароли?

О: По умолчанию аккаунты генерируются из случайного энтропийного зерна. Раскомментируйте и задайте account_seed в конфиге — логины/пароли станут постоянными между перезапусками.


В: Можно ли использовать несколько IPv6 подсетей?

О: Да, добавьте их в секцию ipv6_subnets с разными весами. Трафик будет распределяться пропорционально весам.


В: Как узнать HWID моего сервера?

О: Выполните ruproxy -H. HWID нужен для привязки лицензии к серверу.


В: Сколько ресурсов потребляет RuProxy?

О: При 100 000 аккаунтов и ~50 активных соединениях — около 80–120 МБ RAM и ~5% CPU на 1 ядре. Сервер написан на Rust — это обеспечивает высокую производительность и предсказуемое потребление памяти.


В: Безопасен ли API?

О: При включённом api_port_https API работает через HTTPS с самоподписным сертификатом. Для cURL используйте флаг -k. Доступ к API защищён master_token. Статистика (/stats) доступна без токена только с localhost.


В: Что такое HTTP CONNECT режим?

О: HTTP CONNECT — стандартный метод проксирования HTTPS-трафика. Клиент отправляет CONNECT host:443 HTTP/1.1 с заголовком Proxy-Authorization: Basic, после чего устанавливается зашифрованный туннель. Поддерживается всеми браузерами, curl, системными настройками прокси и большинством ПО.

Пример использования через curl:

curl -x http://user_xxx:pass_xxx@YOUR_IP:1081 https://ifconfig.me

В: Чем hybrid отличается от отдельных socks/http портов?

О: В режиме hybrid сервер принимает оба протокола на одном порту. Протокол определяется автоматически по первому байту соединения (0x05 = SOCKS5, иначе HTTP). Это удобнее — не нужно открывать дополнительные порты. Все фишки (p0f, shaping, DNS, лимиты) работают одинаково для обоих протоколов.


В: Что делает переменная [mode] в accounts_file?

О: При экспорте аккаунтов [mode] заменяется на протокол (socks5 или http). Для hybrid-листенеров создаются два файла — один с socks5:// ссылками, другой с http://. Пример: accounts_1081_android_socks5.txt и accounts_1081_android_http.txt.


13. История изменений

v1.7.1 — апрель 2026

v1.7.0 — март 2026

v1.6.0 — январь 2026