Обсуждение: Блокировка VPN-протоколов на ТСПУ (05.08.2023 - xx.xx.2024)

На ростелекоме psiphon соединяется только через 5 минут, а на йоте вообще не соединяется. Жалобы были и от других людей.

Последние 2-3 дня начали замедлять openvpn, tcp и udp.
Ростелеком, ДВ.

Прямой тест с россии до сервера, где находится мой vps. Выбирает все 100Мбит как по тарифу. Отдача только почему-то 33Мбит.

      Server: Studenten Net Twente - Enschede (id: 24887)
         ISP: Rostelecom
Idle Latency:   153.84 ms   (jitter: 0.45ms, low: 153.67ms, high: 154.49ms)
    Download:   114.51 Mbps (data used: 196.7 MB)
                430.77 ms   (jitter: 82.29ms, low: 174.74ms, high: 1235.52ms)
      Upload:    33.70 Mbps (data used: 38.4 MB)
                226.62 ms   (jitter: 67.53ms, low: 152.92ms, high: 305.48ms)

Тест через чистый openvpn:

      Server: Studenten Net Twente - Enschede (id: 24887)
         ISP: NovoServe B.V.
Idle Latency:   521.50 ms   (jitter: 110.17ms, low: 329.50ms, high: 598.38ms)
    Download:     4.25 Mbps (data used: 5.5 MB)
               1043.83 ms   (jitter: 82.87ms, low: 222.12ms, high: 4461.14ms)
      Upload:    13.88 Mbps (data used: 18.7 MB)
                392.21 ms   (jitter: 77.73ms, low: 187.79ms, high: 1213.40ms)

Через openvpn+cloak:

      Server: Studenten Net Twente - Enschede (id: 24887)
         ISP: NovoServe B.V.
Idle Latency:   163.78 ms   (jitter: 0.92ms, low: 163.59ms, high: 167.22ms)
    Download:    37.60 Mbps (data used: 65.5 MB)
                798.36 ms   (jitter: 92.23ms, low: 185.83ms, high: 2341.19ms)
      Upload:    25.09 Mbps (data used: 44.0 MB)
                290.73 ms   (jitter: 73.77ms, low: 174.98ms, high: 675.25ms)

Через openvpn +kcptun:

      Server: Studenten Net Twente - Enschede (id: 24887)
         ISP: NovoServe B.V.
Idle Latency:   166.39 ms   (jitter: 2.05ms, low: 165.68ms, high: 169.61ms)
    Download:    35.71 Mbps (data used: 52.6 MB)
                735.29 ms   (jitter: 90.07ms, low: 173.31ms, high: 1231.17ms)
      Upload:     6.07 Mbps (data used: 6.9 MB)
               1147.34 ms   (jitter: 98.55ms, low: 217.99ms, high: 2225.70ms)

Чистый wireguard:

      Server: Studenten Net Twente - Enschede (id: 24887)
         ISP: NovoServe B.V.
Idle Latency:   156.13 ms   (jitter: 0.46ms, low: 155.76ms, high: 157.07ms)
    Download:    70.10 Mbps (data used: 107.9 MB)
                341.41 ms   (jitter: 79.63ms, low: 154.98ms, high: 1142.28ms)
      Upload:    28.06 Mbps (data used: 26.0 MB)
                233.69 ms   (jitter: 68.28ms, low: 155.71ms, high: 337.15ms)

Через xtls+reality тоже проблем со скоростью не наблюдаю.

Ростелеком, Москва (бывший Onlime).
Научились замедлять SSTP, скорость загрузки ограничивается до 128 кбит/сек. С исходящей при этом проблем нету.

Получается, теперь еще один протокол непригоден для использования…

Никто часом не знает как замаскировать рабочий OpenVPN с помощью xray? Всё что нахожу в интернете на эту тему подразумевает что OpenVPN сервер мы менеджим сами, но это не совсем то что нужно. Пока удалось замаскировать только через Shadowsocks, а вот через VLESS, VLESS-Reality и VLESS-WebSockets никак не получается. Притом такое ощущение складывается что именно ТСПУ как-то это палит, т.к. сам VPN коннектится одинаково что с VLESS что напрямую, просто постоянно рестартует.

Завернуть OVРN в Xrаy, указав в настройках socks-proxy 127.0.0.1 1080 не подходит?

Я так и делаю. Ещё пробовал в режиме TUN через NekoBox, тоже не работает.

Значит пришла пора разворачивать свой Zerotier-подобный контроллер, например Headscale.

Можно прокинуть порт для openvpn через xray, тестировал такую схему и для openvpn и для WG, для WG описана тут Wireguard через sing-box

Но честно говоря, поверх vless и WG и OpenVPN работают весьма посредственно. OPenVPN лучше пустить поверх Cloak или OBFS4 - результат будет лучше…

В последнюю неделю начал тормозить ssh (scp’шчкой файлы туда-сюда хотят со скоростью в сотни килобит) и рваться спустя несколько минут к зарубежным серверам. Через vpn скорости полные.
ЮФО, домру, на мобильном билайн вобще перестал работать.

Ох, тебе ещё повезло. У меня на TTK ssh сессия дольше 30 мин не живёт

Да, имеется такая проблема и в Кемеровской области. Клонирование больших Git-репозиториев по SSH очень медленное, и в итоге процедура обрывается через несколько минут.

В клиенте github-cli?

Нет, просто git ванильный

Реализации для sing-box как я понял там как раз и нет. Реализацию с dokodemo-door я тоже где-то находил, но не совсем понял как мне это использовать.

dokodemo это просто проброс порта на другой адрес и порт, аналогично port-mapping на обычном firewall, только можно этот проброс направить поверх любого протокола через routing внутри xray, так как это inbound

Ещё бы понять как это всё конфигурится правильно, по их документации что-то у меня не получается. Все эти inbounds, outbounds, тэги, где сервер где клиент. Достаточно на клиенте dokodemo-door сконфигурить чтобы его можно было использовать как socks-proxy до рабочего OpenVPN или на сервере тоже нужно что-то менять?

Dokodemo-door должен упираться в адрес openvpn-сервера уже на vps, никакой socks не нужен

Не совсем понял, т.е. dokodemo-door настраивается на сервере?

Так, по порядку. Вам надо пустить openvpn поверх Xray. Значит у вас условно два узла с Xray - клиент и сервер

На сервере вы поднимаете сервер openvpn и вешаете на какой-то локальный порт, хоть на 127.0.0.1:1194.

На клиенте вы делаете inbound dokodemo-door, routing и outbound до сервера - например по vless или shadowsocks.

Inbound на клиенте можно сделать даже таким:

"inbounds": [
    {
      "tag": "in-vpn",
      "listen": "127.0.0.1","port": 1190,
      "protocol": "dokodemo-door",
      "settings": {
        	"address": "127.0.0.1",
	    	"port": 1194,
	    	"network": "udp"
      }
    },

То есть на клиенте у вас поднят порт 1190, и вы цепляете клиентский openvpn на свой локальный адрес и порт 127.0.0.1:1090, пакеты будут попадать на dokodemo, адрес назначения и порт сразу заменяются на указанные в settings, затем Xray идет в routing, чтобы определить - куда их отправлять, поэтому делаете так:

"routing": {
		{
			"inboundTag": ["in-vpn"],
			"outboundTag": "vless-vps1", # куда-то по нужному вам протоколу обфускации
		},

Поэтому в итоге клиент openvpn будет подключаться не к локальному порту, а к порту на удаленном сервере, пройдя по туннелю vless…

Само собой, что на клиентском узле в Xray надо настроить outbound с vless (который vless-vps1), а на сервере настроить на Xray inbound соответствующий на белом адреса, чтобы узлы могли установить соединение, по которому уже пойдет подключение openvpn… То есть Xray на клиенте должен достигать внутренние адреса сервера поверх vless.