Автоподбор против блокировок
mikan следит, доходят ли реальные клиенты до каждого протокола. Если порт заблокировали по дороге, панель переносит протокол на свободный HTTPS-порт. Если сайт маскировки REALITY перестал подходить, подбирает новый рядом с сервером. Клиенты получают изменения со следующим обновлением подписки (приложения обновляют её раз в час), а до тех пор группа «Авто» в приложении обходит сломанное подключение.
Где включить
Заголовок раздела «Где включить»Настройки → Основное → Автоподбор, два переключателя:
- «Менять порт, если его блокируют»;
- «Менять сайт маскировки, если он перестал подходить».
Те же переключатели есть в настройках каждого подключения. Если в общих настройках переключатель выключен, на подключении он не действует.
Как панель понимает, что протокол заблокирован
Заголовок раздела «Как панель понимает, что протокол заблокирован»Раз в 5 минут панель смотрит на устройства за последние 30 минут. В расчёт идут только устройства, которые сами пробуют все подключения: например, Clash-приложения с группой автовыбора. Клиент с одной ссылкой не считается.
Устройство считается отрезанным от подключения, если:
- подключение есть в его подписке, и подписку оно обновило после последнего изменения подключения;
- до других подключений этой ноды, в том числе по той же сети (TCP или UDP), оно доходит;
- до этого подключения оно раньше доходило;
- из той же подсети (/24 для IPv4, /64 для IPv6) до него сейчас никто не доходит.
Протокол признаётся заблокированным, когда отрезанные устройства есть минимум из двух разных сетей и их не меньше четверти от тех, что доходят. Одной сети мало никогда: это может быть второй VPN на устройстве или домашний роутер, который режет порт. Состояние должно продержаться 30 минут, прежде чем панель что-то поменяет. Для оценки на ноде нужно хотя бы три включённых подключения.
Что панель делает
Заголовок раздела «Что панель делает»- Если сайт маскировки REALITY не проходит проверку, меняет сайт.
- Иначе переносит порт.
- Если новый порт не помог за час, меняет и сайт.
Одно и то же изменение повторяется не чаще раза в 6 часов, и не больше трёх автоматических изменений на подключение за 48 часов. Если и этого не хватило, панель пишет, что заблокирован, видимо, сам протокол: попробуйте другой.
Новый порт берётся случайный свободный из запасных: 2053, 2083, 2087, 2096, 2443, 3443, 4443, 5443, 6443, 7443, 8443, 9443, 10443, 11443, 12443. Порты, которые подключения ноды покинули за последние 7 дней, не берутся. Диапазон портов Hysteria2 автоматически не переносится.
Новый сайт ищется в той же /24-сети, что и нода: до 16 кандидатов с TLS 1.3, HTTP/2 и X25519, чьё имя в DNS указывает на этот адрес. Свои домены панели и нод не берутся, как и сайты, которые не прошли проверку за последние сутки. Сайт маскировки проверяется каждые 15 минут, после трёх неудач подряд он меняется.
Занятый порт
Заголовок раздела «Занятый порт»Отдельно от блокировок панель каждые 15 секунд проверяет, не заняла ли порт подключения другая программа, например nginx или Caddy на 443. Тогда подключение переезжает на первый свободный запасной порт, на сервере панели и на нодах. Это тоже зависит от переключателя «Менять порт», но не ждёт двух сетей. Так же переезжает ретранслятор каскада.
Когда автоподбор не работает
Заголовок раздела «Когда автоподбор не работает»- Подключение за прокси: порт и сайт не меняются, иначе прокси потеряет клиентов. См. Подключение за прокси.
- Hysteria2 с диапазоном портов.
- Протоколы с одним ключом на всех: Shadowsocks-2022, Sudoku, Snell.
- Переключатель выключен в настройках или на подключении.
Где это видно
Заголовок раздела «Где это видно»В списке подключений: «Не доходят устройства: N из M», «Порт изменён автоматически» и «Сайт маскировки изменён автоматически» с причиной. Каждое изменение пишется в журнал аудита. Уведомления «Автонастройка изменила подключение» и «Автонастройка не смогла восстановить подключение» приходят в Telegram, если подключён чат администратора, см. Уведомления.
