Как можно ограничить количество подключений с различных IP-адресов в Xray (3X-UI)?

У меня установлена панель 3x-ui, и я настроил клиентов с использованием vless/reality. Все функционирует отлично. 

Однако я хочу ограничить одновременное подключение по одной ссылке (одному uuid) с разных IP-адресов. То есть, если пользователь уже подключился, например, с компьютера, то при попытке подключения по той же ссылке с телефона, текущее соединение должно обрываться.

Я понимаю, что в стандартной конфигурации подобной настройки нет ( <a href="https://github.com/XTLS/Xray-core/pull/2277" rel="nofollow">https://github.com/XTLS/Xray-core/pull/2277</a> обсуждает данный вопрос, но безрезультатно).

Подскажите, возможно ли реализовать это в настройках 3x-ui или использовать какой-либо альтернативный подход?
  • 25 сентября 2024 г. 13:03
Ответы на вопрос 2
К сожалению, в текущей версии Xray и интерфейсе 3X-UI нет встроенной функции для ограничения одновременных подключений по одному UUID с различных IP-адресов. Основной функционал Xray не включает управление сессиями пользователем на этом уровне.

Тем не менее, есть несколько подходов, которые могут помочь вам достичь желаемого поведения:

1. **Использование собственного прокси-сервера:** Вы можете разработать промежуточный прокси-сервер, который будет контролировать подключения. Этот сервер будет отслеживать подключения по UUID и разрывать старые соединения при возникновении новых с тем же UUID. Это может потребовать дополнительной разработки и поддержки, но дает более гибкий контроль.

2. **Скрипты и cron:** Если у вас есть возможность писать скрипты, вы можете периодически проверять активные соединения и управлять ими, основываясь на своих логах. Например, можно использовать cron-параметры для выполнения скрипта, который будет отключать старые соединения.

3. **Ограничение на уровне приложения:** Если вы контролируете клиентскую часть (например, собственные клиенты), вы можете добавить логику, которая будет разрывать соединения при новых попытках подключения с разных устройств.

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

5. **Участвовать в разработке:** Если у вас есть навыки программирования, вы можете рассмотреть возможность участия в разработке Xray, добавив возможность управления сессиями и одновременными подключениями, что решит проблему для вас и других пользователей.

В конечном итоге, для контроля за подключениями с каждого устройства требуется либо экспериментировать с нестандартными решениями, либо ждать дальнейших обновлений Xray, которые могут включить нужный вам функционал.
Что мешало перейти по ссылке в обсуждении? 
Вот новый пулл реквест, вы можете собрать 3x-ui с ним
https://github.com/XTLS/Xray-core/pull/3637

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