Recentemente ho iniziato a guardare varie opzioni di proxy/tunneling che non possano essere facilmente rilevate dai firewall.
Ho trovato un sacco di cose, ma faccio fatica a capire come funziona tutto. Ho trovato dozzine di protocolli diversi, alcuni aperti, altri proprietari; alcuni hanno più nomi mentre alcuni si riferiscono a più protocolli… La maggior parte dei progetti open source che ho trovato ha una descrizione vaga, non tecnica di cosa siano e cosa facciano. E la maggior parte dei “proxy gratuiti” che posso trovare che usano questi protocolli, non forniscono abbastanza dettagli per configurare il mio endpoint locale (wtf?).
Sono un ingegnere del software / sysadmin Linux e ho una comprensione decente di reti (protocolli: IP, TCP, UDP, HTTP(S)… software: SSH, OpenVPN, WireGuard, iptables, Nginx, Apache… crittografia: simmetrica, asimmetrica, certificati… instradamento, NAT, e così via).
Vorrei capire come funzionano le tecnologie legate ai proxy; non in modo molto dettagliato, solo abbastanza per capire che tipo di dati invia il mio endpoint proxy: sono incapsulati in qualche altro protocollo di livello applicativo? incapsula dati di altri protocolli all’interno del suo payload? come gestisce l’instradamento?
Potrebbe qualcuno darmi una panoramica dei vari protocolli, come: Shadowsocks (AFAIK è solo una implementazione SOCKSv5 che invia i suoi dati nel payload di una connessione HTTP?), ShadowsocksR, V2Ray, XRay, XTLS, VMess, VLess, Trojan, Naive, Hysteria, Mieru, Psiphon, Eclipse, StealthVPN ecc? Ce ne sono altri di cui dovrei essere a conoscenza?
E infine, perché questa roba è così complicata? I vari protocolli sono notevolmente diversi tra loro, o questa è solo una questione di persone diverse che implementano cose simili in modi diversi, portando ad una situazione tipo XKCD 927?