UDP iwwer dem Tor seng SOCKS-Port: wat net duerchkënnt
Dem Tor seng SOCKS-Schnittstell hëlt Streamverbindungen un, net belibeg Datagrammen. Fuert d’Kontroll an der Rei aus an wielt duerno en Transport, deen d’App wierklech ënnerstëtzt.
En App op eng SOCKS-Port ze weisen funktionéiert fir e Browser a schléit fehl fir e Spill, an de Grond ass net d’Konfiguratioun. SOCKS5 definéiert verschidden Uerderen, an eng Implementatioun däerf nëmmen der eng puer dovun ënnerstëtzen; dem Tor seng Schnittstell hëlt Streamverbindungen an Nummopléisung un, net belibeg Weiderleeung vun Datagrammen. E Client, deen UDP schéckt an erwaart, datt de Proxy et weiderleet, freet en Uerder, dee vum Server net implementéiert gëtt. D’Uleedung hei drënner iwwerpréift dat an e puer Minutten an wielt duerno en Transport, dee wierklech ka funktionéieren.
Iwwerpréift, wat den App wierklech schéckt
Fänkt domat un, den Transport z’identifizéieren an net den Numm vum Protokoll. E Stëmmclient kann iwwer HTTPS ageloggt ginn an duerno d’Medien iwwer UDP droen; e Spill kann iwwer TCP authentifizéieren a iwwer UDP spillen; en Dateitransfer kann TCP fir d’Steierung an UDP fir d’Entdeckung benotzen. Déi éischt zwou Verhalen ausgesinn identesch, bis d’Aloggen geléngt an den Uruff nach ëmmer feelt, dofir ass „et huet sech verbonnen“ kee Beweis, datt den App ganz funktionéiert. Eenige Clientë falen och vun sech aus vun UDP op TCP zréck, wat eng deelweis funktionéierend Sëtzung wéi en onstabilen Netzwierk anstatt wéi en blockéierten Transport ausgesäit.
Schreift den Zilport an den Transport fir deen Deel op, deen feelt. Déi eng Linn decidéiert, ob e Proxy iwwerhaapt ka hëllefen.
Wat dem Tor seng SOCKS-Schnittstell unhëlt
Den Tor implementéiert den Uerder SOCKS5 CONNECT fir Streamverbindungen an Erweiderungsuerderen fir Nimm opzeléisen, dofir funktionéiert e Browser duerch et ouni Ännerung. UDP ASSOCIATE, den Uerder, deen et engem Client erlabe kéint, Datagrammen un de Proxy weiderzeleeën, ass net Deel vun deem, wat den Tor ubitt. D’Dokumentatioun vun den Erweiderungen ass an der Spezifikatioun vun den SOCKS-Erweiderungen vum Projet, an et ass kuerz. D’Feele vun engem Datagrammuerder ass bewosst: belibeg UDP weiderzeleeën géif dem Netzwierk eng Weiderleeungsroll ginn, fir déi et ni entworf gouf.
Dat ass och d’Äntwert fir WireGuard, deen aus Design UDP ass an keen TCP-Ersatzwee huet. Et gëtt kee ënnerstëtztenwee, deen de WireGuard op eng SOCKS-Port weist, an alles wat dat Géigendeel behaapt ass eng Hüll mat hirer eegener Geschicht iwwer Vertrauen an Ënnerhalt, net eng Funktioun vun engem vun deenen zwou Geschier.
OpenVPN ass déi deelweis Ausnam, well et konfiguréiert ka ginn iwwer TCP ze tunnelen an et eng SOCKS-Proxyoptioun versteet. Dat erfuerdert nach ëmmer e Server, deen fir TCP konfiguréiert ass, an eng bewosst Entscheedung iwwer d’Konsequenzen fir Leeschtung an d’Fangerofdrock, also ass et eng Designentscheedung an net eng Kompatibilitéitskorrektur.
Fuert d’Kontroll an der Rei aus
Confirméiert d’éischt, datt de Proxy fir Stréim funktionéiert, sou datt e méi spéide Feeler net op eng onereechbar Port geschloe ka ginn. Confirméiert duerno den eegene Verkéier vum App, a beobacht, wéi eng Sockets et wierklech opmécht.
curl --socks5-hostname 127.0.0.1:9050 -sS https://check.torproject.org/api/ip
ss -tupn | grep 9050
ss -aun | grep -E ':(3478|5060|27015)\b'
En erfollegräichen éischten Uerder an en opgeriichten Stream an der zweeter Linn weisen, datt de Proxywee funktionéiert wéi entworf. Den drëtten Uerder sicht lokal Datagramm-Sockets, déi zum App gehéieren; wann de Client een opmécht a direkt op eng wäit Adress schéckt, huet et de Proxy ni gefrot a keng Proxy-Astellung wäert dat änneren. Wann et beim éischten Schrëtt feelt, stoppt a reparéiert de Proxywee, ier Dir den App ënnersicht, well zwee Feeler gläichzäiteg e Rapport erginn, mat deem keen eppes ka maachen.
Maacht zréck a wielt dat richtegt Geschier
Entfernt all Proxy-Ëmweltvariabelen oder Proxy-Astellungen pro App, déi den UDP-Client op d’SOCKS-Port gewisen hunn; se stoen ze loossen mécht spéider Tester zweedeiteg. Stellt déi vireg Konfiguratioun aus enger Kopie erëm hier, start den App nei a confirméiert, datt d’ursprénglech Verhalen zréckkënnt, sou datt de Verglach propper ass. Eng Zréckrollung, déi net iwwerpréift gëtt, ass just eng Hoffnung, datt den Zoustand sech geännert huet.
Fir en Transport, deen UDP musse bleiwen, passt eng VPN meeschtens besser: et dréit d’Pakete vum App, ouni vum App ze froen, e Proxyprotokoll ze schwätzen, op Käschte vun ganz aneren Anonymitéitseigenschaften. Benotzt all Geschier fir dat, wat et dokumentéiert, a behandelt all Bréck tëschent hinnen als en eegene System, deen eng eege Iwwerpréiwung brauch. Schreift am Schlussrapport op, wéi eng Schicht wéi en Transport dréit, sou datt déi nächst Persoun déiselwecht Grenz net nach eng Kéier mat engem aneren App entdeckt.