Socks5 прокси сервер за NAT с поддержкой UDP

Тест12345

Новичок
Регистрация
01.04.2019
Сообщения
6
Благодарностей
0
Баллы
1
Доброго времени суток.

Озадачился вопросом, как из своего домашнего ПК сделать Socks5 прокси сервер с поддержкой UDP.
Конфиг довольно обывательский. Есть домашний роутер с выделенным внешним Ip. ПК, подключен к роутеру, на ПК у меня Windows 10 и 3proxy.
Роутер из этой схемы не исключить (дома все хотят иметь интернет :-)), хоть вроде как именно он и создает основную проблему в моей задаче.

Под "поддержкой UDP" я подразумеваю, что если браузер (в какой-нибудь другой локации) подключен через мой прокси (про способ подключения - ниже), то я бы хотел видеть WebRTC "утекающий" именно с моим домашним Ip. То есть я хочу без всяких подмен (которые используются разными антидетект решениями) получить честную эмуляцию WebRTC через проксирование UDP трафика.

Браузер по умолчанию не умеет проксировать UDP через Socks5, поэтому я использую ProxyCap программу. Это проксификатор по своей сути. Он умеет вешаться на процесс и корректно работать с Socks5 UDP. В целом такого клиентского софта не так много я нашел (с поддержкой UDP). Про другой вариант тоже пониже немного напишу.

Проблема заключается в том, что где-то на этапе проброса портов в роутере, UDP пакеты теряются.
То есть пусть у меня прокси поднят на порту 10000. Я пробовал пробрасывать и порт 10000 (чтобы и для TCP и для UDP), пробовал пробрасывать диапазон портов, так как мне подсказали, что socks протокол UDP порт выбирает случайно из диапазона TCP/IP на системе. В Windows он по умолчанию 49152-65535. Этот диапазон для UDP я пробовал также пробрасывать - не работает. Пробовал на роутере функцию DMZ - это когда твой ПК (один из всей сети) как бы смотрит наружу, то есть все порты и пакеты автоматически прокидываются ему - это тоже не помогает.
Брандмауэр отключен, естественно, чтобы никаких помех. При всех этих попытках - обычный TCP трафик проксируется корректно, но как доходит до UDP и WebRTC проверки - ничего не происходит, UDP где-то обрубается.

Я думаю, что проблема в пробросе портов на роутере, так как если я пробую подключиться к своему прокси ПК из локальной сети (по локальному адресу соответственно) - UDP работает, как требуется (пусть и масло масляное получается с точки зрения ip адреса - он остается тот же, ведь мы в локальной сети, но факт, что в проксифаер вбита прокси и UDP проксируется). А как только снаружи пытаюсь подключиться - не проксируется.

Я нашел очень близкое решение своей проблемы в интернете в виде Double SSH Tunnel Manager. Но там она решается с помощью поднятия доп. меш сети, подключению к ней моего ПК и клиента. Мне это не подходит. Хочется как-то без посредников все сделать. Как будто кажется, что это возможно, так как в сети есть разного качества прокси на продажу, где люди действительно презентуют поддержку UDP и она работает без дополнительных усилий со стороны клиента в виде подключения к меш сети YG.

В конце скину конфиг 3proxy, который я использую, но он довольно бесхитростный. Тут 192.168.50.2 - это ip моего ПК в локальной сети. А на роутере соответственно проброс портов именно к нему.

maxconn 10000
users test:CL:password
flush
auth strong
allow test
socks -p10000 -i192.168.50.2 -e192.168.50.2

Прошу совета - где конкретно теряется UDP и как бы мне его не терять в моем конфиге?
Да, говорят, что если подключить ПК напрямую к наружней сети с выделенным ip (буквально к "проводу из стенки"), то без всякого NAT посередине, должна прокси завестись и поддерживать UDP. Но, к сожалению, это не мой случай и мне нужно как-то побороть свой роутер, чтобы не терял UDP пакеты.
 

pavelp1000

Новичок
Регистрация
16.02.2023
Сообщения
12
Благодарностей
4
Баллы
3
Да, надо прокидывать на роутере с внешки ВСЕ порты UDP на комп с 3proxy, т.к. для socks5 не существует аналога FTP conntrack. Примерно так -- https://github.com/3proxy/3proxy/issues/844
И да, еще надо сказать 3proxy чтоб говорил клиенту чтоб UDP слал на внешний IP а не на LAN IP.

Код:
socks --help
см ключи.
 
  • Спасибо
Реакции: Тест12345

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 303
Благодарностей
863
Баллы
113
А где можно проверить udp работает или нет на проксе?
 

pavelp1000

Новичок
Регистрация
16.02.2023
Сообщения
12
Благодарностей
4
Баллы
3

Тест12345

Новичок
Регистрация
01.04.2019
Сообщения
6
Благодарностей
0
Баллы
1
Да, надо прокидывать на роутере с внешки ВСЕ порты UDP на комп с 3proxy, т.к. для socks5 не существует аналога FTP conntrack. Примерно так -- https://github.com/3proxy/3proxy/issues/844
И да, еще надо сказать 3proxy чтоб говорил клиенту чтоб UDP слал на внешний IP а не на LAN IP.

Код:
socks --help
см ключи.
Я пробовал пробрасывать все порты снаружи на свой ПК. Даже вот DMZ режим пробовал. Кстати, не очень понятно в том ишью на гитхабе, как у товарища работало с пробросом, если ниже ЗАРАЗА говорит, что так не получится сделать.
И действительно вот вчера ночью нарыл вроде бы новую настройку к своему прежнему конфигу - надо через ключ "-N" прописывать еще и внешний ip ПК. Чтобы как раз в UDP Associate запросах подменялись айпишники на него.
Попробовал все вместе запустить и тоже не работает. Я уже прям поплыл. Может еще какой ключик есть и я пропустил?

То есть мой текущий конфиг выглядит так (185.123.123.123 - мой внешний айпи):


maxconn 10000
users test:CL:test123
flush
auth strong
allow test
socks -p49152 -i192.168.50.2 -e192.168.50.2 -N185.123.123.123

Фаервол отключен, порты проброшены. И все равно ерунда выходит.
 

Тест12345

Новичок
Регистрация
01.04.2019
Сообщения
6
Благодарностей
0
Баллы
1
А где можно проверить udp работает или нет на проксе?
Я могу предложить только ProxyCap прогу. Добавить в нее свой прокси, и после добавления там есть опция проверки прокси. Там есть возможность проверить UDP Associated запрос. Но честно - не знаю, как внутри это работает.
Для меня лучшая проверка, если я вижу на сайтах типа CreepJs утекающий айпишник прокси в графе WebRTC
 

Тест12345

Новичок
Регистрация
01.04.2019
Сообщения
6
Благодарностей
0
Баллы
1
Нашел похожее описание своей проблемы: https://github.com/3proxy/3proxy/issues/681
В целом я в логах 3прокси получаю туже самую ошибку 00012 - failed to bind(). И выходит, что раз ветка помечена до сих пор как bug - исправления до сих пор нет.
Может есть какая альтернатива 3proxy для моей задачи?
 

pavelp1000

Новичок
Регистрация
16.02.2023
Сообщения
12
Благодарностей
4
Баллы
3
альтернатива 3proxy
Gost https://v2.gost.run/en/ попробуй, стартани socks сервер в LAN, тоже придется порты ВСЕ пробросить.

как у товарища работало с пробросом
этот товарищ -- я (ezbik).

если ниже ЗАРАЗА говорит, что так не получится сделать.
Он такого не писал. Он писал, что по дефолту за NAT не заработает UDP, но есть ср-ва чтоб заработало.
 
  • Спасибо
Реакции: Тест12345

Тест12345

Новичок
Регистрация
01.04.2019
Сообщения
6
Благодарностей
0
Баллы
1
-
 
Последнее редактирование:

Тест12345

Новичок
Регистрация
01.04.2019
Сообщения
6
Благодарностей
0
Баллы
1
Gost https://v2.gost.run/en/ попробуй, стартани socks сервер в LAN, тоже придется порты ВСЕ пробросить.
Вот тут то и начинаются у меня проблемы. Я на Windows хочу это все дело поднять, а решения по туннелям, что смотрю - обычно все на юникс системы. Плюс не до конца я понимаю, какие требования к ПК. Вроде говорят можно ipv6 туннель прокинуть, но провайдер должен поддерживать этот ipv6, а это вроде не у всех есть.
 

westruk

Client
Регистрация
30.03.2020
Сообщения
353
Благодарностей
113
Баллы
43
Вот тут то и начинаются у меня проблемы. Я на Windows хочу это все дело поднять, а решения по туннелям, что смотрю - обычно все на юникс системы. Плюс не до конца я понимаю, какие требования к ПК. Вроде говорят можно ipv6 туннель прокинуть, но провайдер должен поддерживать этот ipv6, а это вроде не у всех есть.
 

FastSpace

Client
Read only
Регистрация
05.04.2018
Сообщения
665
Благодарностей
240
Баллы
43
Я бы искал нормальный айпишник без NAT
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)