Доброго времени суток.
Озадачился вопросом, как из своего домашнего ПК сделать 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 пакеты.
Озадачился вопросом, как из своего домашнего ПК сделать 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 пакеты.