Sovelluksen osoittaminen SOCKS-porttiin toimii selaimelle ja epäonnistuu pelille, eikä syy ole kokoonpanossa. SOCKS5 määrittelee useita komentoja, ja toteutus voi vapaasti tukea vain joitakin niistä; Torsin rajapinta hyväksyy virta-yhteydet ja nimien ratkaisun, ei mielivaltaista datagrammien välitystä. Asiakasohjelma, joka lähettää UDP:tä ja odottaa välityspalvelimen välittävän sen, pyytää komentoa, jota palvelin ei toteuta. Alla oleva ohje tarkistaa tämän muutamassa minuutissa ja valitsee sitten siirron, joka voi todella toimia.

Tarkista, mitä sovellus todella lähettää

Aloita tunnistamalla siirtokerros protokollan nimen sijaan. Äänisasiakasohjelma voi kirjautua sisään HTTPS:n kautta ja kuljettaa sitten mediaa UDP:n kautta; peli voi todentaa TCP:n kautta ja pelata UDP:n kautta; tiedostonsiirto voi käyttää TCP:tä ohjaukseen ja UDP:tä löytämiseen. Kaksi ensimmäistä käyttäytymistä näyttävät samoilta, kunnes kirjautuminen onnistuu ja puhelu epäonnistuu edelleen, minkä vuoksi ”se yhdisti” ei ole todiste siitä, että koko sovellus toimii. Jotkin asiakasohjelmat palaavat myös itsestään UDP:stä TCP:hen, mikä saa osittain toimivan istunnon näyttämään epävakaalta verkolta eikä estetyltä siirrolta.

Kirjoita kohdeportti ja siirto sille osalle, joka epäonnistuu. Se yksi rivi ratkaisee, voiko välityspalvelin ylipäätään auttaa.

Mitä Torsin SOCKS-rajapinta hyväksyy

Tor toteuttaa SOCKS5 CONNECT -komennon virta-yhteyksille ja laajennuskomennot nimien ratkaisemiseen, minkä vuoksi selain toimii sen kautta muuttumattomana. UDP ASSOCIATE, komento, joka antaisi asiakasohjelman luovuttaa datagrammit välityspalvelimelle välitettäviksi, ei kuulu siihen, mitä Tor tarjoaa. Laajennusten dokumentaatio on projektin SOCKS-laajennusten määrittelyssä, ja se on lyhyt. Datagrammikomennon puuttuminen on tahallista: mielivaltaisen UDP:n välittäminen antaisi verkolle välittäjän roolin, jota varten sitä ei koskaan suunniteltu.

Tämä on myös vastaus WireGuardille, joka on suunnittelultaan UDP eikä sillä ole TCP-varareittiä. Ei ole tuettua polkua, joka osoittaisi WireGuardin SOCKS-porttiin, ja kaikki muuta väittävä on kääre, jolla on oma luottamus- ja ylläpitotarinansa, ei kummankaan työkalun ominaisuus.

OpenVPN on osittainen poikkeus, koska se voidaan määrittää tunnelointiin TCP:n yli ja se ymmärtää SOCKS-välityspalvelinasetuksen. Se vaatii silti TCP:tä varten määritetyn palvelimen ja tietoisen päätöksen suorituskyvyn ja sormenjäljen seurauksista, joten se on suunnitteluratkaisu eikä yhteensopivuuskorjaus.

Suorita tarkistus järjestyksessä

Vahvista ensin, että välityspalvelin toimii virroille, jotta myöhempää epäonnistumista ei voi syyttää saavuttamattomasta portista. Vahvista sitten sovelluksen oma liikenne ja seuraa, mitkä socketit se todella avaa.

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'

Onnistunut ensimmäinen komento ja toisella rivillä muodostettu virta osoittavat, että välityspalvelimen polku toimii suunnitellusti. Kolmas komento etsii sovellukselle kuuluvia paikallisia datagrammi-socketeja; jos asiakasohjelma avaa sellaisen ja lähettää suoraan etäosoitteeseen, se ei ole koskaan kysynyt välityspalvelimelta, eikä mikään välityspalvelinasetus muuta sitä. Jos se epäonnistuu jo ensimmäisessä vaiheessa, pysähdy ja korjaa välityspalvelimen polku ennen sovelluksen tutkimista, koska kaksi vikaa kerralla tuottaa raportin, jolla kukaan ei voi tehdä mitään.

Peruuta ja valitse oikea työkalu

Poista kaikki välityspalvelimen ympäristömuuttujat tai sovelluskohtaiset välityspalvelinasetukset, jotka ohjasivat UDP-asiakasohjelman SOCKS-porttiin; niiden jättäminen tekee myöhemmistä testeistä monitulkintaisia. Palauta edellinen kokoonpano kopiosta, käynnistä sovellus uudelleen ja vahvista, että alkuperäinen käyttäytyminen palaa, jotta vertailu on puhdas. Vahvistamaton peruutus on vain toivo siitä, että tila muuttui.

Siirrolle, jonka on pysyttävä UDP:nä, VPN sopii yleensä paremmin: se kuljettaa sovelluksen paketit vaatimatta sovellukselta välityspalvelinprotokollaa, hintana täysin erilaiset anonymiteettiominaisuudet. Käytä kutakin työkalua siihen, minkä se dokumentoi, ja käsittele mitä tahansa niiden välistä siltaa erillisenä järjestelmänä, joka tarvitsee oman tarkastelunsa. Kirjoita loppuraporttiin, mikä kerros kuljettaa mitäkin siirtoa, jotta seuraava henkilö ei löydä samaa rajaa uudelleen toisen sovelluksen kanssa.

Aiheeseen liittyvät artikkelit