Ник Пост Дата
runetfreedom

Всем привет, мое решение чем-то похоже на то, что уже тут, оказывается, публиковалось

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

Решение корректно обрабатывает обновления дискорда, так что работает по принципу “поставил и забыл”

Опционально в комплекте есть автоматический установщик для вашего удобства.

Скачать вы можете тут https://github.com/runetfreedom/discord-voice-proxy

Кучу технических подробностей можете прочитать в статье на хабре: https://habr.com/ru/articles/855164/

2024-11-01T08:33:17.431Z
easyone11

Интересная статья, спасибо.

2024-11-01T08:47:36.551Z
Xunlei

Интересно, поддерживается ли фрагментация пакетов UDP клиента релея и работет ли PMTUD дискорда или же там все голосовые пакеты до 1 КиБ?

2024-11-01T09:23:56.040Z
runetfreedom

Фрагментация со стороны клиента не поддерживается (флаг фрагментации всего установлен в 0, т.е автономная датаграмма). Но если верить документации socks5, то это не обязательно:

Implementation of fragmentation is optional; an implementation that does not support fragmentation MUST drop any datagram whose FRAG field is other than X’00’.

Что касается размеров пакетов, то даже со включенным скринкастом я не видел пакетов больше 72 байт

2024-11-01T09:33:27.001Z
Xunlei

Да, реализация со стороны сервера не обязательна.
72 байт что-то маловато, это в пустой комнате? В мамбле 200-300 байт, а в тимспике тоже до 100 байт.

2024-11-01T09:39:45.325Z
Xunlei
		CopyMemory(path + GetSystemDirectoryA(path, MAX_PATH - 12), "\\DWrite.dll", 13);
      
		OriginalDLL = LoadLibraryA(path);

Начиная с Windows NT 4.0 майкрософт рекомендует при работе с файлами поддерживать UNC пути длиной 32 КиБ в кодировке UCS-2 (сейчас UTF-16). Так же было бы здорово добавить поддержку IPv6 прокси (у меня прокси работают на IPv6, но приходится иногда поднимать инстансы IPv4 для программ, написанных ленивыми разработчиками).

2024-11-01T10:05:05.722Z
mutt-tamer-dinghy

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

Странно у меня ваше решение не коннектит к войсу. Подключение к rtc маршрут не найден. Подключаюсь Через локалхост на nekobox

2024-11-01T10:40:43.160Z
runetfreedom

Я тестировал на v2rayN, чуть позже проверю на nekobox

2024-11-01T10:51:56.739Z
runetfreedom

Так дискорд то к rtc подключается по ipv4.

Что касается длины путей - с одной стороны вы правы, с другой это совершенно бесполезно, ибо путь к system32 никогда не превысит MAX_PATH по очевидным причинам

2024-11-01T10:53:33.849Z
runetfreedom

Вы были правы, был баг с sing-box. Я проигнорировал пункт документации, в котором говорится, что я обязан держать tcp соединение с прокси сервером открытым пока действует udp ассоциация.

Если вам не сложно, то скачайте и проверьте, пожалуйста, новый релиз. (можно заменить только force-proxy.dll)

2024-11-01T12:34:09.955Z
mutt-tamer-dinghy

Да теперь работает.

2024-11-01T12:59:56.535Z
Xunlei

Я написал про IPv6 прокси клиент/сервер, который должен мочь подключатся по адресам IPv4, IPv6 и по домену.

2024-11-01T17:39:44.675Z
runetfreedom

Реализована поддержка авторизации для socks5 прокси.

2024-11-02T17:07:33.226Z
bv0

А в инсталлятор можно добавить ввод логина и пароля для прокси?

2024-11-02T17:42:47.131Z
Rattlerutrap(Rattlerutrap)

добрый день, искреннее спасибо, дискорд заработал, но как всегда есть нюанс. ситуация такая, не получается подключится к rtc, пишет не установлен маршрут. подключаюсь к прокси через proxifier

2024-11-02T18:11:05.896Z
Rattlerutrap(Rattlerutrap)

у меня через proxifier ввод логина и пароля в самом приложении, автоматический установщик всё сам сделал, так что я доволен. еще в readme написано:
Optionally, you can pass SOCKS5 credentials using:

SOCKS5_PROXY_LOGIN=login
SOCKS5_PROXY_PASSWORD=password

Don’t forget to restart Discord. Done!
както так

2024-11-02T18:14:13.407Z
runetfreedom

Добавил в версии 0.2.1 в интсаллятор запрос логина и пароля (можно оставить пустыми)

2024-11-02T18:24:41.747Z
runetfreedom

Вы используете последнюю версию? Уверены, что правильно задали порт и логин с паролем?

2024-11-02T18:25:30.807Z
Rattlerutrap(Rattlerutrap)

не именно дискорд то у меня заработал, я другому человеку отвечал, у меня проблема при подключении к rtc, если бы я не правильно задал логин с паролем, то у меня бы и само приложение не работало, а проблема только с войсом

2024-11-02T18:29:19.222Z
Durandal(Asperkun95)

После последнего обновления отваливается проксирование, нужно снова закидывать файлы. Как я заметил после апдейта создается еще одна папка с версией дискорда (помимо старой app-1.0.9173 теперь есть и app-1.0.9174)

2024-12-12T07:45:37.438Z