Usmjeravanje aplikacije na SOCKS port radi za preglednik, a ne radi za igru, i razlog nije konfiguracija. SOCKS5 definira nekoliko naredbi, a implementacija je slobodna podržati samo neke od njih; Torov interfejs prihvata strujne veze i razrješavanje imena, ne proizvoljno prosljeđivanje datagrama. Klijent koji šalje UDP i očekuje da ih proxy prenese traži naredbu koju server ne implementira. Uputa ispod to provjerava u nekoliko minuta, a zatim bira transport koji zaista može raditi.

Provjerite šta aplikacija zaista šalje

Počnite identifikovanjem transporta, a ne naziva protokola. Glasovni klijent može se prijaviti preko HTTPS-a, a zatim prenositi medije preko UDP-a; igra se može autentificirati preko TCP-a i igrati preko UDP-a; prijenos datoteka može koristiti TCP za kontrolu i UDP za otkrivanje. Prva dva ponašanja izgledaju isto dok prijava ne uspije, a poziv i dalje ne radi, zato „povezao se“ nije dokaz da cijela aplikacija radi. Neki klijenti se sami vraćaju s UDP-a na TCP, što djelimično radnu sesiju čini sličnom nestabilnoj mreži, a ne blokiranom transportu.

Zapišite odredišni port i transport za dio koji ne radi. Taj jedan red odlučuje može li proxy uopće pomoći.

Šta će Torov SOCKS interfejs prihvatiti

Tor implementira naredbu SOCKS5 CONNECT za strujne veze i ekstenzijske naredbe za razrješavanje imena, zato preglednik kroz njega radi nepromijenjen. UDP ASSOCIATE, naredba koja bi klijentu omogućila da preda datagrame proxyju na prosljeđivanje, nije dio onoga što Tor nudi. Dokumentacija za ekstenzije nalazi se u specifikaciji SOCKS ekstenzija projekta i kratka je. Odsustvo naredbe za datagrame je namjerno: prosljeđivanje proizvoljnog UDP-a dalo bi mreži ulogu prosljeđivača za koju nikada nije bila projektovana.

To je i odgovor za WireGuard, koji je po dizajnu UDP i nema TCP rezervu. Ne postoji podržan put koji WireGuard usmjerava na SOCKS port, i sve što tvrdi suprotno je omotač s vlastitom pričom o povjerenju i održavanju, a ne značajka bilo kojeg od dva alata.

OpenVPN je djelimična iznimka, jer se može konfigurirati da tunelira preko TCP-a i razumije SOCKS proxy opciju. To ipak zahtijeva server konfiguriran za TCP i svjesnu odluku o posljedicama na performanse i otisak, pa je to dizajnerski izbor, a ne popravka kompatibilnosti.

Pokrenite provjeru po redu

Najprije potvrdite da proxy radi za struje, kako se kasniji neuspjeh ne bi pripisao nedostupnom portu. Zatim potvrdite vlastiti promet aplikacije i pogledajte koje sokete ona zaista otvara.

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'

Uspješna prva naredba i uspostavljena struja u drugom redu pokazuju da put kroz proxy radi kako je projektovan. Treća naredba traži lokalne sokete za datagrame koji pripadaju aplikaciji; ako klijent otvori jedan i šalje izravno na udaljenu adresu, proxy nikada nije konsultovao i nikakva proxy postavka to neće promijeniti. Ako ne uspije na prvom koraku, zaustavite se i popravite put kroz proxy prije nego što istražite aplikaciju, jer dvije greške odjednom daju izvještaj s kojim nitko ne može postupiti.

Vratite unazad i izaberite pravi alat

Uklonite sve proxy varijable okruženja ili proxy postavke po aplikaciji koje su usmjeravale UDP klijenta na SOCKS port; ako ih ostavite, kasniji testovi postaju dvosmisleni. Vratite prethodnu konfiguraciju iz kopije, ponovo pokrenite aplikaciju i potvrdite da se izvorno ponašanje vraća kako bi poređenje bilo čisto. Vraćanje koje nije provjereno samo je nada da se stanje promijenilo.

Za transport koji mora ostati UDP, VPN je obično bolji izbor: prenosi pakete aplikacije ne tražeći od nje da govori proxy protokol, po cijeni potpuno drugačijih svojstava anonimnosti. Koristite svaki alat za ono što dokumentira i tretirajte svaki most između njih kao zaseban sistem koji treba vlastiti pregled. Zapišite u završnom izvještaju koji sloj prenosi koji transport, da sljedeća osoba ne otkrije istu granicu s drugom aplikacijom.

Povezani članci