Любой прокси-сервер, будь то для TCP или UDP, должен знать, куда пересылать исходящие пакеты к. Это также позволяет прокси-серверу узнать, кто запрашивает переадресацию, чтобы он мог направлять соответствующие входящие пакеты обратно тому же самому реквестеру.
Предположим, что SOCKS, например. SOCKS v4 не поддерживает UDP (или IPv6), но SOCKS v5 делает. Однако для этого требуется, чтобы запрашивающее приложение установило TCP-соединение с прокси-сервером SOCKS и попросило его пересылать UDP-пакеты от имени приложения до тех пор, пока это TCP-соединение не будет закрыто.
Инструменты, такие как CCProxy, Proxycap, Proxifier и т. Д. Работают (для TCP, в любом случае), перехватывая исходящие TCP-соединения и перенаправляя их на прокси-сервер, прозрачно обрабатывая любые подтверждения прокси-сервера для настройки пересылки, до этого позволяя любым данным приложения поток через TCP-соединение. После того, как соединение TCP установлено, прокси-сервер не должен ничего делать с этим соединением, так как приложение теперь напрямую разговаривает с прокси-сервером.
Я не знаю, поддерживают ли такие инструменты UDP. Это было бы намного сложнее реализовать, так как нет никакого исходящего соединения для перенаправления. Каждый исходящий UDP-пакет должен быть перехвачен, тогда прокси-агент должен будет проверить, имеет ли он уже собственное TCP-соединение SOCKS v5, связанное с локальным/удаленным кортежем пакета, а если нет, то создайте новый и отправьте необходимое квитирование пересылки UDP, затем инкапсулируйте каждый исходящий UDP-пакет для этого кортежа и отправьте его на исходящий IP/порт прокси-сервера и получите каждый соответствующий входящий UDP-пакет для этого кортежа из прокси-сервера, чтобы он мог быть деинкапсулирован и перенаправлен на локальный IP-порт приложения, который отправил исходный исходящий UDP-пакет. И поскольку UDP не имеет отношения к подключению, прокси-агент должен также реализовать механизм тайм-аута на своем TCP-соединении SOCKS v5 с прокси-сервером, чтобы он мог быть закрыт после того, как период простоя UDP-трафика остался без работы.
Это больше работы для прокси-сервера UDP, чем по сравнению с TCP.
И это только для SOCKS. Прокси HTTP/FTP не поддерживают UDP вообще (поскольку HTTP/FTP - протоколы на основе TCP). Существуют и другие протоколы туннеля/прокси, которые могут иметь или не иметь возможности UDP.
Чтобы проверить, поддерживает ли он UDP, вам необходимо проверить возможности вашего прокси-сервера.