Впн устойчивые к dpi

Доброго времени суток.
Хотелось бы узнать какие впн устойчивы к dpi? Хотелось бы услышать мнение знающих людей

Из того, что удалось найти, которые можно замаскировать под https трафик
openvpn + stunnel на 443 порту
openconnet по tcp на 443 порту

Если вкратце, то есть 2 основых подхода

  1. Сделать трафик не похожим ни на что => вариант мусора
  2. Сделать трафик похожим на разрешенный => вариант мимикрии

вариант 2 как правило привязывает к TCP. что еще может быть разрешенного из не TCP ?
VPNы в принципе лучше работают без TCP, TCP для них как кость в горле
потому подход следует дифференцировать в зависимости от степени эскалации блокировок
пока есть только черносписочный сигнатурный анализатор - лучше искажать не TCP трафик любым доступным способом. хоть модификацией кода VPN, хоть udp2raw или ipobfs
когда начнут блочить все подозрительное - время переходить к варианту 2. очевидный кандидат - TLS, потому что без него фактически нет инета совсем. а в TLS можно завернуть любой TCP, значит и любой VPN, базирующийся на TCP
дальнейшая эскалация приводит к активному пробингу. openconnect отметается, потому что сразу возвращает по https XMLку, которую легко распознать. openvpn - возможно, прокатит tlscrypt + TCP. в зависимости от того, возвращает ли openvpn какой-то стандартный ответ на плохой ключ tlscrypt
если VPN частный, то спастись можно ограничением по IP клиента или использовать кнокер

Важно понимать, что DPI сам по себе ничего не делает. Всё зависит от его настроек, целей администраторов и других людей, участвующих в управлении им, особых условий/политической ситуации, и т.п.

Как сказал @bolvan, есть два принципиальных подхода к маскировке трафика: маскировка под самый распространённый зашифрованный протокол и маскировка под совершенно случайные данные, которые нельзя идентифицировать/классифицировать.
Если говорить про Россию, то ТСПУ — наиболее продвинутый DPI — способен определять характерные TLS-признаки конкретных программ или сетевых библиотек (см. Фильтр TLS на домены youtube), и маскировку TLS потенциально можно обнаружить у программ, которые не разрабатывались с расчётом на обход блокировок.

Из наиболее продвинутых, поддерживаемых, удобных в использовании и доступных под все платформы программ можно отметить Outline — прокси-сервер и клиент shadowsocks с дополнительными функциями (эмуляция сетевого интерфейса) и удобным конфигуратором от разработчиков из Google, и V2Ray/V2Fly — мультипротокольный прокси-комбайн, поддерживающий маскировку под TLS/Websocket/HTTP2/QUIC, среди прочих функций.

Если вам нужен именно VPN, то можно использовать OpenVPN с tls-crypt-v2, либо же «прокинуть» его через V2ray.
Также можно присмотреться к SoftEther — он поддерживает множество протоколов, в том числе передачу данных через ICMP и маскировку под DNS-запросы.

Если будут блокировать по протоколам, то SoftEther будет в числе первых, вместе с WireGuard и прочей экзотикой. Ибо кому они нужны? В корпоративной среде они не используются, если их заблокировать, никто ничего не заметит, кроме нескольких человек. То же самое относится к ICMP, DNS, SSH. Сколько данных по этим протоколам проходит в норме? Вот столько и отмерят.

А что там у китайцев? Я знаю, в Китае работает несколько VPN-сервисов совершенно легально. Но какие возможности есть кроме этого и есть ли вообще? Но чтобы скорость была нормальная, а не как у модемов из 90-х.

SSH — в том числе распространённый файлообменный протокол.

Когда около года назад в Туркменистане «отключали интернет» во время наводнения, Softether’у удалось пробиться в мир через маскировку под DNS-запросы.
Отключение продождения DNS — самое последнее, что может предпринять провайдер для блокировки сетевого доступа.

Так то оно так, только провайдеры склонны блокировать доступ к не своим DNS или заворачивать такие запросы на свои, а значит напрямую к VPN серверу будет не пробиться , только лишь заворачиваясь в UDP DNS.
Придется использовать обычную DNS систему, запросы к DNS провайдера к какому-то своему домену, и на NS сервере поднимать серверную часть тоннеля.
Провайдер может легко сделать rate limit на DNS запросы к своим серверам
Это все будет медленно до жути

Таких провайдеров совсем немного в абсолютном исчислении.

Если DNS работает, а обычные UDP/TCP — нет, то выбирать не приходится. Либо есть хоть какой-то интернет, либо его нет вовсе.

Китайцы пользуются преимущественно протоколами Shadowsocks и VMESS (v2ray), поддержка которых есть в большом количестве ПО для обхода блокировок.

В RU - да, но в TM провайдеров совсем немного, и помнится они любят подставлять 127.0.0.1 на неугодные запросы. Причем даже от @8.8.8.8
Может быть, конечно, это пассивный инжект, не разбирался. Но судя по градусу творящегося с интернетом в TM, там заворот всех DNS - это цветочки. Там вообще налево направо как косой банят IP. Очень не любят UDP

Верно. но это уже последняя стадия, пожалуй

Here are some technical details about DNS injection in TM. It’s bidirectional, so easy to test. Their injector even has a bug.
https://github.com/net4people/bbs/issues/80#issue-975957747

  • It is easy to demonstrate the injection by sending queries to an IP address in Turkmenistan, using dig or netcat. The Turkmenistan IP address does not have to be a DNS resolver.
  • The way the injector constructs responses is naive: it copies the triggering query, overwrites the FLAGS and QDCOUNT/ADCOUNT/NSCOUNT/ARCOUNT fields, then appends a fixed suffix of c00c000100010000012c00047f000001.
    • The suffix is intended to be a resource record that maps the name in the query to the IPv4 address 127.0.0.1.
    • The technique of appending a fixed suffix results in a syntactically invalid DNS message whenever the query does not have exactly one entry in the Question section, and empty Answer, Authority, and Additional sections.
    • The TYPE of the response is A (IPv4 address), regardless of the TYPE in the query.
  • The injection occurs on any UDP port, not just port 53.
  • The injector’s DNS parser does not follow compression pointers in names. You can obfuscate a name in a query by writing it using compression pointers, and it will not get an injection.

They also poison DNS for the names of almost all DoH providers listed at https://github.com/curl/curl/wiki/DNS-over-HTTPS#publicly-available-servers:
https://github.com/net4people/bbs/issues/80#issuecomment-903200549