Бір прокси порты HTTP мен SOCKS екеуін де қалай қабылдай алады
Әдейі аралас тыңдаушының HTTP мен SOCKS-ты қалай ажырата алатынын, ал кәдімгі бір протоколды тыңдаушының оны істей алмайтынын түсіндіреді.
Аралас прокси тыңдаушысы бір TCP портында HTTP мен SOCKS қабылдай алады, өйткені сервер протоколдың бастапқы байттарын тексереді. Порт нөмірі бұл анықтауды орындамайды.
HTTP прокси сұранысы HTTP әдісімен басталады, мысалы GET немесе CONNECT. SOCKS сәлемі екілік протокол өрістерімен басталады. Осы кірістерге арналған бағдарламалық жасақтама қосылымды тиісті өңдеушіге жібере алады.
Бұл айқын іске асыру ерекшелігі. Кәдімгі Squid HTTP тыңдаушысы порты 1080-ге өзгертілгендіктен аралас болмайды, ал тек SOCKS тыңдаушысы браузер параметрінен HTTP үйренбейді.
TLS тағы бір шекара қосады: шифрланған прокси қосылымы көрінетін HTTP әдісімен емес, TLS-пен басталады. Оны сол соңғы нүктеде қолдау қосымша әдейі өңдеуді талап етеді; ашық HTTP мен SOCKS-ты тану бұл қабілетті дәлелдемейді.
Соңғы нүкте үшін құжатталған клиент протоколын пайдаланыңыз. Екеуі де жұмыс істесе, бұл сол сервердің аралас тыңдаушысы туралы дәлел, протоколды әр клиентте белгісіз қалдыруға себеп емес.
Glider-дің аралас тыңдаушысы нақты мысал келтіреді: ол бір байтты тұтынбай оған көз салады, 0x05-ті өзінің SOCKS5 өңдеушісіне жібереді, әйтпесе өзінің HTTP талдағышын шақырады. Ол талдағыш кіріс сұранысын әлі де тексереді; жіберу таңдауы кез келген кірісті жарамды HTTP етпейді.
TCP тыңдаушысын бөлісу өздігінен SOCKS5 UDP байланысын бермейді. Glider өзінің UDP тыңдаушысын бөлек іске қосады. TCP протоколын таңдау және кейінгі дейтаграмма жеткізу — бөлек қабілеттер.