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; Torovo sučelje prihvaća 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 poslužitelj ne implementira. Uputa u nastavku to provjerava u nekoliko minuta, a zatim odabire prijevoz koji doista može raditi.

Provjerite što aplikacija doista šalje

Počnite prepoznavanjem prijevoza, a ne naziva protokola. Glasovni klijent može se prijaviti preko HTTPS-a i 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 nadzor i UDP za otkrivanje. Prva dva ponašanja izgledaju jednako dok prijava ne uspije, a poziv i dalje ne radi, zato „povezao se“ nije dokaz da cijela aplikacija radi. Neki se klijenti sami vraćaju s UDP-a na TCP, što čini djelomično radnu sesiju sličnom nestabilnoj mreži, a ne blokiranom prijevozu.

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

Što će Torovo SOCKS sučelje 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. Odsutnost naredbe za datagrame namjerna je: prosljeđivanje proizvoljnog UDP-a dalo bi mreži ulogu prosljeđivača za koju nikada nije bila projektirana.

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 omotač je s vlastitom pričom o povjerenju i održavanju, a ne značajka bilo kojeg od dvaju alata.

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

Pokrenite provjeru redom

Najprije potvrdite da proxy radi za struje, kako se kasniji neuspjeh ne bi pripisao nedostupnom portu. Zatim potvrdite vlastiti promet aplikacije i pogledajte koje utičnice doista 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 retku pokazuju da put kroz proxy radi kako je projektiran. Treća naredba traži lokalne utičnice za datagrame koje pripadaju aplikaciji; ako klijent otvori jednu i šalje izravno na udaljenu adresu, proxy nikada nije konzultirao 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 unatrag i odaberite 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, ponovno pokrenite aplikaciju i potvrdite da se izvorno ponašanje vraća kako bi usporedba bila čista. Vraćanje koje nije provjereno samo je nada da se stanje promijenilo.

Za prijevoz 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 posve drugačijih svojstava anonimnosti. Koristite svaki alat za ono što dokumentira i tretirajte svaki most između njih kao zaseban sustav koji treba vlastiti pregled. Zapišite u završnom izvještaju koji sloj prenosi koji prijevoz, da sljedeća osoba ne otkrije istu granicu s drugom aplikacijom.

Povezani članci