Naive proxy - пока лучший вариант

Это у вас из-за реализации протокола в конкретном клиенте или настроек клиента. В Naive мультиплексирование есть из коробки, потому что встроено в HTTP/2. Автор Naive в документации настаивает, чтобы использовалось только 1 соединение до прокси (а внутри него уже все конечные соединения).

–insecure-concurrency=
Use N concurrent tunnel connections to be more robust under bad network conditions. More connections make the tunneling easier to detect and less secure. This project strives for the strongest security against traffic analysis. Using it in an insecure way defeats its purpose.
If you must use this, try N=2 first to see if it solves your issues. Strongly recommend against using more than 4 connections here.

Автор sing-box по сути цитирует этой в своей документации:

insecure_concurrency
Number of concurrent tunnel connections. Multiple connections make the tunneling easier to detect through traffic analysis, which defeats the purpose of NaiveProxy’s design to resist traffic analysis.

Так что в нормальном клиенте по умолчанию до прокси будет только 1 соединение, как и задумано протоколом. Можно вручную установить 2 или более (что теоретически может улучшить работу на некачественном интернете), но автор не рекомендует.

Сегодня как раз решил поиграться с naive по статье hdrover, с телефона оператор мегафон всегда держится один коннект
ESTAB 0 267631 [::ffff:<IP сервера>]:443 [::ffff:<IP телефона>]:6224 users:(("caddy",pid=124983,fd=8))

Для xmux можно задать жесткое ограничение по числу коннектов. У mux.cool такой настройки нет, но это проблема сидящих на устаревших протоколах.

Еще в sing-box есть anytls, который тоже без проблем работает.

Я правильно понимаю, что его мультиплексирование не очень совместимо с сибирской блокировкой? У меня он вроде бы создает по отдельному соединению на каждый хост со страницы, и эти соединения очень долго висят (настройки таймаута не сильно влияют).

Не совсем. Anytls использует долгоживущие соединения и переиспользует их. VLESS Reality открывает новое соединение на каждое новое конечное. С anytls, если есть старое свободное соединение с прокси, то будет использоваться оно, а не создаваться новое. В итоге, новых соединений меньше, чем с VLESS Reality.
Еще есть дополнительные настройки:

  • idle_session_check_interval - интервал проверки неактивных сессий (30 секунд по умолчанию)
  • idle_session_timeout - через сколько секунд неактивности закрывать старые сессии (тоже 30 секунд)
  • min_idle_session - сколько держать неактивных сессий про запас (по умолчанию 0)

AnyTLS нормально подойдёт для совсем лёгкого использования. Я делал нагрузочное тестирование и получил в Wireshark 36 tls сессий (пакеты с ClientHello со sni аутбонда)

Настройки AnyTLS:

  • "min_idle_session": 1
  • "idle_session_timeout": "600s"
  • "idle_session_check_interval": "60s"

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

тестирование
date
for u in 
https://netflix.com 
https://vmware.com 
https://adobe.com 
https://netlify.com 
https://redis.io
do
for i in $(seq 1 5); do
curl --http1.0 -I -s “$u” >/dev/null
done
done

sleep 120
date

for u in 
https://salesforce.com 
https://habr.com 
https://x.ai 
https://intel.com 
https://terraform.io
do
for i in $(seq 1 5); do
curl --http1.0 -I -s “$u” >/dev/null
done
done

Нагрузочное тестирование это открыть 5 сайтов, подождать 2 минуты и снова открыть 5 сайтов? Тут 10 тлс сессий максимум, откуда 36?
Нормальный тест
Легкий
curl --http1.0 1.1.1.1?[1-100]
Пожёстче
curl --parallel --parallel-max 50 --http1.0 -I -m10 -k -s --show-error -o nul -w "%{response_code}\n" "https://1.1.1.1?[1-100]"
Можно через сокс --socks5 127.0.0.1:1080

Если соединения параллельные, то на каждое соединение будет новая сессия, да.

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

я ещё делал для себя сравнение по скорости AnyTLS и Naive
Получилось как-то так:
iperf3 Напрямую OpenWrt ↔ ВПС (Германия, 1 гбит), скорость моего провайдера заявлена 500 мбит:

  • forward 1 stream: около 475-477 Mbps
  • forward -P4: около 443-453 Mbps
  • reverse 1 stream: около 27-28 Mbps
  • reverse -P4: около 134-138 Mbps
    • AnyTLS:
      • forward 1 stream: около 438 Mbps
      • forward -P4: около 491 Mbps
      • reverse 1 stream: около 24.7 Mbps
      • reverse -P4: около 103 Mbps
    • Naive дефолтные настройки:
      • forward 1 stream: около 159 Mbps
      • forward -P4: около 160 Mbps
      • reverse 1 stream: около 27.0 Mbps
      • reverse -P4: около 27.4 Mbps
    • Naive "insecure_concurrency": 4:
      • forward 1 stream: about 165 Mbps
      • forward -P4: about 512 Mbps
      • reverse 1 stream: about 25.8 Mbps
      • reverse -P4: about 92.7 Mbps

А что так слабо на скачивание? bbr включен?

Нет, не включён BBR

А его на ВПС включать только или на роутере тоже?

на впс достаточно

МГТС Москва скорость даже до Selectel режет до 30 мегабит в секунду, когда все российские speedtest (яндекс, РТ, МГТС) показывают 500 мегабит. До зарубежных серверов реальная скачка 2-3 мегабайта в секунду.

А при чем тут naive? Может просто потери пакетов? Можно проверить iperf3
iperf3 -R -u -b 50M -c 91.238.123.130

До недавнего времени Наив работал через QUIC (Qwerty, Билайн, Мос. обл.). Сегодня проверил, везде не коннектит. Знающий народ, подскажите. Может, какие-то настройки поменять?

Опять заработал. Может, тестировали что-то…

У меня тоже нестабильно работает: то скорость низкая, то не подключается, хотя на trojan все норм.

Ребят, привет, я мало что шарю, не кидайте палками. Смог установить naive по одному проекту через панель на свой впс. Проблема: через мой каринг на айфоне соединение то работает, то нет. Иногда пишет “тайм аут” и вылезает красный треугольник. От мобильной сети и проводов это не зависит, может статься в любое время дня и ночи, но как правило больше часа-двух стабильно не работает. Есть ощущение что каринг как клиент обрабатывает его хреново. Тестил у друга на телефоне, на shadowrocket, почти два дня продержали - ни одного отвала. Реально ли лучше потратиться на ракету, или я просто чего то не догоняю в настройках каринга? У обоих айфоны.