Таны Java HTTP хүсэлт SOCKS-оор ажилладаг ч UDP функц трафикийг шууд илгээсээр байна эсвэл бүтэлгүйтдэг. JVM-ийн SOCKS шинж чанарыг тохируулах нь DatagramSocket-д SOCKS5 UDP хэрэгжилтийг өгөхгүй.

DatagramSocket API сүлжээний төгсгөлийн цэгүүд рүү хаягласан датаграмыг илгээж, хүлээн авдаг. Түүний connect() арга нь тухайн сокетод хосыг сонгоно. Энэ нь хосын хамт SOCKS хэлэлцээр хийдэггүй.

SOCKS5 UDP зам нэмэлт ажил шаарддаг

SOCKS5 нь TCP удирдлагын холболт дээр суурилуулсан UDP холбоог тодорхойлдог. Дараа нь клиент прокси өгсөн дамжуулалтын хаягтай бүрхүүлт датаграмыг солилцдог. Бүрхүүлт мессеж бүр өөрийн очих газрыг заана. Клиентийн хэрэгжилт тухайн хүрээлэлт болон удирдлагын холболтын насжилтыг удирдах ёстой.

Энгийн UDP сокетыг проксийн TCP сонсох порт руу чиглүүлэх нь эдгээр алхмыг алгасдаг. Аппликешны түүхий датаграмыг тэр хаяг руу илгээх нь холбоог орлохгүй.

SOCKS5 UDP дамжуулалтыг тодорхой дэмждэг номын сан эсвэл аппликешны функцийг сонгож, сервер ч үүнийг дэмждэг эсэхийг баталгаажуулаарай. SOCKS дэмжлэгийг сурталчилсан номын сан зөвхөн TCP CONNECT хэрэгжүүлсэн байж болно. Протоколын тодорхойлолт эдгээр командыг ялгадаг.

UDP дамжуулалтад бас ашиглах боломжтой зам хэрэгтэй

Прокси руу амжилттай TCP холбогдсон нь зөвхөн удирдлагын замыг бий болгоно. Галт хана эсвэл NAT-ын зан байдал дамжуулалт руу илгээсэн датаграмд саад болж болно. Аппликешны очих газар офлайн байна гэж дүгнэхээс өмнө буцаж ирсэн дамжуулалтын төгсгөлийн цэг болон дамжуулалтын алдааг цуглуулаарай.

Эцэст нь, SOCKS тээврийн дэмжлэг UDP-д хүргэлтийн баталгаа нэмдэггүй. Зам өөрчлөгдсөний дараа ч аппликешны өөрийн тайм-аут, алдагдлын зохицуулалт, мессежийн хэмжээний хязгаарлалт хүчинтэй хэвээр.

Холбоотой нийтлэлүүд