Балансировка и Ротация Трафика

Балансировка и Ротация Трафика


Adam

<<<<Вернуться назад

Обновление Xray

Скачать последнюю версию:

Чтобы узнать архитектуру процессора роутера, выполните команду xkeen -restart:

Распаковать архив:

  • Извлеките содержимое архива на вашем устройстве.

Резервное копирование старого бинарника:

  • Переименуйте старый бинарник в /sbin Entware в xray.bak для возможности восстановления предыдущей версии при необходимости.

Остановить xkeen:

  • Выполните команду xkeen -stop, чтобы остановить текущий экземпляр.

Заменить бинарник:

  • Скопируйте новый бинарник из распакованной папки (Xray-linux-arm64-v8a/xray) в директорию /sbin Entware.

Запустить xkeen:

  • Выполните команду xkeen -start, чтобы запустить обновленный Xray.


Настройка балансировки трафика

Подготовка нескольких рабочих outbounds:

  • Убедитесь, что у вас есть несколько настроенных outbounds на разных серверах.

Добавление новых outbounds:

  • Если нужно добавить новый outbound, сделайте это по аналогии с предыдущими конфигурациями. Каждый outbound должен иметь уникальный tag.
Пример конфигурации для 04_outbounds.json:
{
  "outbounds": [
    {
      "protocol": "vless",
      "tag": "de-1"
    },
    {
      "protocol": "vless",
      "tag": "de-2"
    },
    {
      "protocol": "vless",
      "tag": "gb-1"
    },
    {
      "protocol": "freedom",
      "tag": "direct"
    },
    {
      "protocol": "blackhole",
      "tag": "block",
      "settings": {
        "response": {
          "type": "http"
        }
      }
    }
  ]
}

Добавление балансировщиков в 05_routing.json:

  • В конфигурационный файл 05_routing.json добавьте секцию balancers, в которой укажите все outbounds, которые вы хотите использовать для балансировки.

Стратегии Распределения Нагрузки:

  1. leastPing:
  • Описание: Выбирает сервер с наименьшим временем отклика (ping). Это позволяет снизить задержки при подключении к серверу.
  • Когда использовать: Когда важно минимизировать задержки и обеспечить быструю реакцию сервера.

2. leastLoad:

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

3. random:

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

4. roundRobin:

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

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


Пример настройки для стратегий leastPing, leastLoad, random, и roundRobin:
{
  "balancers": [
    {
      "tag": "leastPingBalancer",
      "fallbackTag": "de-1",
      "strategy": {
        "type": "leastPing"
      },
      "selector": [
        "gb-1",
        "de-1",
        "de-2"
      ]
    },
    {
      "tag": "leastLoadBalancer",
      "fallbackTag": "de-1",
      "strategy": {
        "type": "leastLoad"
      },
      "selector": [
        "gb-1",
        "de-1",
        "de-2"
      ]
    },
    {
      "tag": "randomBalancer",
      "fallbackTag": "de-1",
      "strategy": {
        "type": "random"
      },
      "selector": [
        "gb-1",
        "de-1",
        "de-2"
      ]
    },
    {
      "tag": "roundRobinBalancer",
      "fallbackTag": "de-1",
      "strategy": {
        "type": "roundRobin"
      },
      "selector": [
        "gb-1",
        "de-1",
        "de-2"
      ]
    }
  ]
}

Настройка leastPing с использованием observatory:

Создайте файл 06_observatory.json с содержимым:
{
  "observatory": {
    "subjectSelector": [
      "gb-1",
      "de-1",
      "de-2"
    ],
    "probeURL": "URL для измерения стабильности",
    "interval": 300,
    "tolerance": 2
  }
}

Параметры:

  • subjectSelector: список тегов outbound, которые нужно отслеживать.
  • probeURL: URL для измерения пинга.
  • interval: интервал проверки в секундах.
  • tolerance: допустимое количество ошибок перед отключением сервера.


Настройка leastLoad с использованием burstObservatory:

Создайте файл 07_burstObservatory.json с содержимым:
{
  "burstObservatory": {
    "subjectSelector": [
      "gb-1",
      "de-1",
      "de-2"
    ],
    "probeURL": "URL для измерения стабильности",
    "interval": 300,
    "tolerance": 2,
    "maxConcurrency": 10,
    "minRTT": 100
  }
}

Параметры:

  • subjectSelector: список отслеживаемых outbound.
  • probeURL: URL для измерения стабильности.
  • interval: интервал проверки.
  • tolerance: допустимое количество ошибок.
  • maxConcurrency: максимальное количество одновременных запросов.
  • minRTT: минимальное время отклика (Round-Trip Time), считаемое нормальным.


Примеры конфигурации правил

Добавление правил маршрутизации в 05_routing.json:

{
  "rules": [
    {
      "inboundTag": ["dokodemo-in"],
      "domain": [
        "ext:geosite_antifilter.dat:antifilter-community",
        "ext:geosite_v2fly.dat:google",
        "ext:geosite_v2fly.dat:openai",
        "ext:geosite_v2fly.dat:github",
        "ext:geosite_v2fly.dat:paypal",
        "ext:geosite_v2fly.dat:facebook",
        "ext:geosite_v2fly.dat:discord",
        "ext:geosite_v2fly.dat:instagram",
        "ext:geosite_v2fly.dat:netflix",
        "ext:geosite_v2fly.dat:spotify",
        "ext:geosite_v2fly.dat:x"
      ],
      "balancerTag": "leastPingBalancer",  // Замените на нужный тег балancer
      "type": "field"
    },
    {
      "inboundTag": ["dokodemo-in"],
      "domain": [
        "ext:geosite_v2fly.dat:news",
        "ext:geosite_v2fly.dat:social-media"
      ],
      "balancerTag": "leastLoadBalancer",  // Замените на нужный тег балancer
      "type": "field"
    },
    {
      "inboundTag": ["dokodemo-in"],
      "outboundTag": "direct",
      "type": "field"
    }
  ]
}

Перезапуск Xray

  • После всех изменений, перезапустите Xray с помощью команды xkeen -restart.


Report Page