Четыре типа групп, четыре характера

  • select: используется то, на что вы нажали, ядро не вмешивается. Предсказуемо, но упавший узел останется выбранным, пока вы сами это не заметите.
  • url-test: по таймеру проверяет всех участников и берёт самого быстрого. Повседневный рабочий вариант.
  • fallback: идёт по вашему списку сверху вниз и берёт первый живой. Скорость он не сравнивает, только живучесть — подходит под схему «держимся за дешёвую линию, резерв поднимаем только когда она умерла».
  • load-balance: раскидывает запросы по нескольким участникам — либо по хешу сессии, чтобы один сайт всегда попадал на один узел, либо по кругу на каждый запрос. Для параллельных загрузок полезно, для сайтов с авторизацией — не очень: вас начинают считать подозрительным.
Партнёрский материалОткуда взять ссылку на подписку?Партнёрский сервис даёт 1 ГБ высокоскоростного трафика Гонконга при регистрации — импорт в один клик.Получить быстрые серверы

Параметры, с которыми группа ведёт себя тихо

proxy-groups:
  - name: HK-Auto
    type: url-test
    url: https://www.gstatic.com/generate_204
    interval: 300
    tolerance: 50
    lazy: true
    filter: "(?i)hong ?kong|hk|香港"
    use:
      - my-provider
  • url: что-то лёгкое, отвечающее 204. Не главная страница с редиректами и лимитами. И этот адрес должен уходить наружу через прокси по вашим правилам, иначе вы измеряете прямое соединение.
  • interval: секунды между проверками. 300 — безопасное число. Поставьте 30, и несколько десятков узлов превратятся в сотни запросов в минуту: провайдер может начать резать, а ноутбук расплатится батареей.
  • tolerance: на сколько миллисекунд претендент должен быть быстрее, чтобы группа переключилась. Без этого поля терпимость нулевая, и два узла с похожей задержкой бесконечно меняются местами. Обычно хватает значения от 50 до 100.
  • lazy: со значением true группа без трафика вообще не проверяется. Для региональных групп, которыми вы сейчас не пользуетесь, это надо включать.
  • filter: регулярное выражение, отбирающее участников из подписки. С фильтром узлы, которые провайдер добавит позже, попадают в группу сами, и никакой список вручную вы не ведёте.

Группы внутри групп

Хорошо стареет двухуровневая схема. Внизу три группы url-test, каждая по своему фильтру собирает узлы Гонконга, Японии и Сингапура и проверяет их отдельно. Сверху одна группа select, для которой эти три группы — три варианта. В обычной работе вы меняете регион только в верхней группе, а конкретный узел выбирается ниже.

Второй плюс в том, что правила всегда упоминают одно имя группы. Стриминг указывает на Japan-Auto, блокировка рекламы на REJECT, замыкающее правило на верхнюю ручную группу. Подписка может меняться как угодно — правила остаются нетронутыми.

Чем приходится платить за автопереключение

Автоматическая группа влияет только на новые соединения. Всё, что уже установлено, остаётся на месте: качающийся файл, идущий видеозвонок, сессия SSH — все они по-прежнему привязаны к прежнему узлу. И наоборот: когда группа переключается сама, ничего в полёте не обрывается мгновенно, но следующий запрос уходит через другой выход, и некоторые сайты именно поэтому вас разлогинивают.

Поэтому на созвон, на долгую загрузку и на всё, чему нужен постоянный внешний адрес, проще временно перейти в группу select и закрепить один узел. Закончили — вернулись к автоматической.

Цифра задержки говорит, как быстро проходит круг до одного тестового адреса, и ничего не говорит о пропускной способности. Узел на 80 мс может упереться в 2 МБ/с, а узел на 200 мс — забить весь канал. Автогруппы хороши, чтобы отделить доступное от недоступного и понять относительный порядок, но не чтобы найти узел, который качает быстрее всех.