Как я могу отправлять UDP-пакеты через прокси-сервер SOCKS

Я смотрю на трафик, генерируемый моим компьютером, когда определен сервер socks. Я читал в Интернете и вижу, что можно маршрутизировать udp также через прокси-сервер. когда я пытаюсь использовать разные приложения, которые используют UDP и разрешают настройки socks, он использует их только для трафика TCP. Зачем? Я определил SOCKS5, так как понимаю, что v4 не поддерживает udp (почему?). Я попробовал пример, клиент Vuze - его экспертный режим позволяет предпочитать трафик udp, настраивать сервер socks и даже на этом этапе любой udp идет напрямую к одноранговым узлам. Я хочу отслеживать трафик и видеть, как он передается, через UDP-соединение с сервером socks, или он действительно подключается к серверу socks в TCP и отправляет данные, которые затем отправляются через udp в пункт назначения?


person buddy123    schedule 26.12.2012    source источник
comment
Вы подключаетесь через локальный прокси-сервер SOCKS5 или удаленный? Если прокси-сервер SOCKS недоступен, трафик будет отправлен напрямую.   -  person Fls'Zen    schedule 26.12.2012
comment
Я подключаюсь к работающему socks5, который я нашел на sockslist.net, он работает безупречно для tcp-соединений, но мне интересно, можно ли через него также маршрутизировать udp-трафик. это?   -  person buddy123    schedule 27.12.2012
comment
Вы обнюхиваете сеть, пока это происходит? Вы должны увидеть, как ваше клиентское программное обеспечение выполняет UDP ASSOCIATE с прокси-сервером SOCKS5. Эта ассоциация выполняется через TCP-соединение с прокси. Подробнее см. В спецификации: tools.ietf.org/html/rfc1928   -  person Fls'Zen    schedule 27.12.2012
comment
Происходит ли UDP ASSOCIATE только после окончания первого согласования (когда сервер отправляет обратно 0x05 ‹method-chosen›?   -  person buddy123    schedule 30.12.2012
comment
RFC, кажется, указывает на это.   -  person Fls'Zen    schedule 31.12.2012


Ответы (1)


Когда клиент хочет ретранслировать UDP-трафик через прокси-сервер SOCKS5, клиент делает запрос на связывание UDP по TCP. Затем сервер SOCKS5 возвращает доступный порт UDP клиенту для отправки пакетов UDP.

Затем клиент начинает отправлять пакеты UDP, которые необходимо ретранслировать на новый порт UDP, доступный на сервере SOCKS5. Сервер SOCKS5 перенаправляет эти пакеты UDP на удаленный сервер и перенаправляет пакеты UDP, приходящие с удаленного сервера, обратно клиенту.

Когда клиент хочет разорвать соединение, он отправляет пакет FIN по TCP. Затем сервер SOCKS5 завершает UDP-соединение, созданное для клиента, а затем завершает TCP-соединение.

person Koray Gocmen    schedule 02.11.2017