Bitta proksi porti qanday qilib HTTP va SOCKS ikkalasini qabul qiladi
Ataylab aralashtirilgan tinglovchi HTTP va SOCKS ni qanday ajratishini, oddiy bir protokolli tinglovchi esa buni qila olmasligini tushuntiradi.
Aralash proksi tinglovchisi bitta TCP portida HTTP va SOCKS ni qabul qila oladi, chunki server protokolning dastlabki baytlarini tekshiradi. Port raqami bu aniqlashni bajarmaydi.
HTTP proksi so'rovi HTTP usuli bilan boshlanadi, masalan GET yoki CONNECT. SOCKS salomi ikkilik protokol maydonlari bilan boshlanadi. Ushbu kirishlar uchun yaratilgan dasturiy ta'minot ulanishni tegishli ishlovchiga yo'naltirishi mumkin.
Bu aniq amalga oshirish xususiyati. Oddiy Squid HTTP tinglovchisi porti 1080 ga o'zgartirilgani uchun aralash bo'lib qolmaydi, va faqat SOCKS tinglovchisi brauzer sozlamasidan HTTP ni o'rganmaydi.
TLS yana bir chegara qo'shadi: shifrlangan proksi ulanishi ko'rinadigan HTTP usuli bilan emas, TLS bilan boshlanadi. Uni o'sha oxirgi nuqtada qo'llab-quvvatlash qo'shimcha ataylab ishlov berishni talab qiladi; oddiy HTTP va SOCKS ni tanish bu qobiliyatni isbotlamaydi.
Oxirgi nuqta uchun hujjatlashtirilgan mijozi protokolidan foydalaning. Agar ikkalasi ishlasa, bu o'sha serverning aralash tinglovchisi haqidagi dalil, protokolni har bir mijozda noaniq qoldirish uchun sabab emas.
Glider ning aralash tinglovchisi aniq misol keltiradi: u bir baytni iste'mol qilmasdan unga qaraydi, 0x05 ni o'zining SOCKS5 ishlovchisiga yuboradi, aks holda o'zining HTTP tahlilchisini chaqiradi. O'sha tahlilchi kiruvchi so'rovni hanuz tekshiradi; yuborish tanlovi ixtiyoriy kirishni haqiqiy HTTP ga aylantirmaydi.
TCP tinglovchisini bo'lishish o'z-o'zidan SOCKS5 UDP aloqasini ta'minlamaydi. Glider o'zining UDP tinglovchisini alohida ishga tushiradi. TCP protokolini tanlash va keyingi datagram uzatish alohida qobiliyatlardir.