एउटै प्रोक्सी पोर्टले HTTP र SOCKS दुवै कसरी स्वीकार गर्न सक्छ
जानाजान मिश्रित लिसनरले HTTP र SOCKS बीच कसरी भिन्नता गर्न सक्छ भनेर व्याख्या गर्छ, जबकि सामान्य एक-प्रोटोकल लिसनरले त्यसो गर्न सक्दैन।
मिश्रित प्रोक्सी लिसनरले एउटै TCP पोर्टमा HTTP र SOCKS स्वीकार गर्न सक्छ किनकि सर्भरले सुरुका प्रोटोकल बाइटहरू जाँच्छ। पोर्ट नम्बरले त्यो पहिचान गर्दैन।
HTTP प्रोक्सी अनुरोध HTTP विधिबाट सुरु हुन्छ, जस्तै GET वा CONNECT। SOCKS अभिवादन बाइनरी प्रोटोकल फिल्डबाट सुरु हुन्छ। यी इनपुटका लागि बनाइएको सफ्टवेयरले जडानलाई उपयुक्त ह्यान्डलरमा पठाउन सक्छ।
यो स्पष्ट कार्यान्वयन विशेषता हो। सामान्य Squid HTTP लिसनरले आफ्नो पोर्ट 1080 मा परिवर्तन गर्दा मिश्रित हुँदैन, र केवल SOCKS भएको लिसनरले ब्राउजरको सेटिङबाट HTTP सिक्दैन।
TLS अर्को सीमा थप्छ: इन्क्रिप्टेड प्रोक्सी जडान TLS बाट सुरु हुन्छ, देखिने HTTP विधिबाट होइन। त्यही एन्डपोइन्टमा यसलाई समर्थन गर्न थप जानाजान ह्यान्डलिङ आवश्यक पर्छ; सादा HTTP र SOCKS चिन्नुले त्यो क्षमता स्थापित गर्दैन।
एन्डपोइन्टका लागि कागजात गरिएको क्लाइन्ट प्रोटोकल प्रयोग गर्नुहोस्। यदि दुवै काम गर्छन् भने, त्यो त्यस सर्भरको मिश्रित लिसनरको प्रमाण हो, हरेक क्लाइन्टमा प्रोटोकल अनिर्दिष्ट छोड्ने कारण होइन।
Glider को मिश्रित लिसनरले ठोस उदाहरण दिन्छ: यसले एउटा बाइट नखाई हेर्छ, 0x05 आफ्नो SOCKS5 ह्यान्डलरमा पठाउँछ, र अन्यथा आफ्नो HTTP पार्सर बोलाउँछ। त्यो पार्सरले अझै आउने अनुरोध प्रमाणित गर्छ; पठाउने छनोटले मनपरी इनपुटलाई वैध HTTP बनाउँदैन।
TCP लिसनर साझा गर्नुले आफैंमा SOCKS5 UDP सम्बन्ध दिँदैन। Glider ले आफ्नो UDP लिसनर छुट्टै सुरु गर्छ। TCP प्रोटोकल छनोट र पछिको डेटाग्राम रिले छुट्टै क्षमता हुन्।