UDP läbi Tori SOCKS-pordi: mis ei kandu
Tori SOCKS-liides võtab vastu voogühendusi, mitte suvalisi datagramme. Tehke kontroll järjekorras ja valige seejärel transport, mida rakendus tegelikult toetab.
Rakenduse suunamine SOCKS-pordile töötab brauseri puhul ja ebaõnnestub mängu puhul, ja põhjus ei ole konfiguratsioonis. SOCKS5 määratleb mitu käsku ja teostus võib toetada neist ainult mõnda; Tori liides võtab vastu voogühendusi ja nimede lahendamist, mitte suvalist datagrammide edastamist. Klient, kes saadab UDP-d ja ootab, et puhverserver selle edasi annab, nõuab käsku, mida server ei teosta. Allolev juhend kontrollib seda mõne minutiga ja valib seejärel transpordi, mis saab tegelikult töötada.
Kontrollige, mida rakendus tegelikult saadab
Alustage transpordi, mitte protokolli nime tuvastamisest. Hääleklients võib sisse logida HTTPS-i kaudu ja seejärel kanda meediat UDP kaudu; mäng võib autentida TCP kaudu ja mängida UDP kaudu; failiedastus võib kasutada TCP-d juhtimiseks ja UDP-d avastamiseks. Kaks esimest käitumist näevad identsed välja seni, kuni sisselogimine õnnestub ja kõne ikka ebaõnnestub, mistõttu „see ühendus” ei ole tõestus, et kogu rakendus töötab. Mõned kliendid lähevad ka ise UDP-lt TCP-le tagasi, mis paneb osaliselt töötava seansi näima ebastabiilse võrgu, mitte blokeeritud transpordina.
Kirjutage üles sihtport ja transport selle osa jaoks, mis ebaõnnestub. See üks rida otsustab, kas puhverserver saab üldse aidata.
Mida Tori SOCKS-liides vastu võtab
Tor teostab voogühenduste jaoks käsu SOCKS5 CONNECT ja nimede lahendamiseks laienduskäsud, mistõttu brauser töötab selle kaudu muutusteta. UDP ASSOCIATE, käsk, mis lubaks kliendil anda datagrammid edastamiseks puhverserverile, ei kuulu selle hulka, mida Tor pakub. Laienduste dokumentatsioon asub projekti SOCKS-i laienduste spetsifikatsioonis ja on lühike. Datagrammikäsu puudumine on tahtlik: suvalise UDP edasiandmine annaks võrgule edastaja rolli, milleks seda kunagi ei kavandatud.
See on ka vastus WireGuardi kohta, mis on disaini järgi UDP ega oma TCP varuvarianti. Puudub toetatud tee, mis suunaks WireGuardi SOCKS-pordile, ja kõik vastupidist väitev on ümbris omaenda usalduse ja hoolduse looga, mitte kummagi tööriista funktsioon.
OpenVPN on osaline erand, sest seda saab konfigureerida TCP kaudu tunnelitama ja see mõistab SOCKS-puhverserveri valikut. See nõuab siiski TCP jaoks konfigureeritud serverit ja teadlikku otsust jõudluse ja sõrmejälje tagajärgede kohta, seega on see disainiotsus, mitte ühilduvuse parandus.
Tehke kontroll järjekorras
Kinnitage esmalt, et puhverserver töötab voogude jaoks, et hilisemat ebaõnnestumist ei saaks süüdistada kättesaamatus pordis. Seejärel kinnitage rakenduse enda liiklus ja jälgige, milliseid sokleid see tegelikult avab.
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'
Edukas esimene käsk ja teisel real loodud voog näitavad, et puhverserveri tee töötab kavandatud viisil. Kolmas käsk otsib rakendusele kuuluvaid kohalikke datagramm-sokleid; kui klient avab ühe ja saadab otse kaugkohale, ei ole ta puhverserveriga kunagi konsulteerinud ja ükski puhverserveri säte ei muuda seda. Kui see ebaõnnestub juba esimesel sammul, peatuge ja parandage puhverserveri tee enne rakenduse uurimist, sest kaks viga korraga annavad aruande, millega keegi midagi teha ei saa.
Võtke tagasi ja valige õige tööriist
Eemaldage kõik puhverserveri keskkonnamuutujad või rakendusepõhised puhverserveri sätted, mis suunasid UDP-kliendi SOCKS-pordile; nende allesjätmine muudab hilisemad testid mitmetähenduslikuks. Taastage eelmine konfiguratsioon koopiast, taaskäivitage rakendus ja kinnitage, et algne käitumine naaseb, et võrdlus oleks puhas. Kontrollimata tagasipööramine on vaid lootus, et olek muutus.
Transpordi jaoks, mis peab jääma UDP-ks, sobib VPN tavaliselt paremini: see kannab rakenduse pakette ilma, et rakendus peaks rääkima puhverserveri protokolli, hinnaga täiesti teistsugused anonüümsuse omadused. Kasutage iga tööriista selle jaoks, mida see dokumenteerib, ja käsitlege mis tahes silda nende vahel eraldi süsteemina, mis vajab oma ülevaatust. Kirjutage lõpparuandesse, milline kiht kannab millist transporti, et järgmine inimene ei avastaks sama piiri uuesti teise rakendusega.