Steam prisijungimas veikia, žaidimas ne: patikrinkite kiekvieną kelią
Steam prisijungimas, atsisiuntimas ir varžovų paieškos sesija gali eiti skirtingais keliais. Eikite kontrolinį sąrašą iš eilės ir užsirašykite, kuris žingsnis iš tikrųjų nepavyko.
Paleiskite Steam, prisijunkite ir viskas atrodo sveikai, kol žaidimas neranda sesijos. Traktuokite tai kaip tris atskirus tinklo klausimus, o ne vieną. Parduotuvė ir paskyros ekranai, turinio atsisiuntimas ir žaidimo sesija kiekvienas gali pasiekti skirtingus galinius taškus skirtingais transportais. Atlikite šiuos patikrinimus iš eilės ir sustokite ties pirmuoju, kuris nepavyksta, nes viskas po jo yra spėjimas.
1 žingsnis: patvirtinkite, kad prisijungimas buvo vienintelis dalykas, kuris veikė
Prisijungimas įrodo, kad paskyra pasiekė tapatybės paslaugą su prisijungimo duomenimis ir bet kokiu antruoju veiksniu, kurio paskyra reikalauja. Jis nieko nesako apie turinio pristatymą ir nieko nesako apie paties žaidimo prieglobos tvarką. Užsirašykite, kurią iš trijų operacijų iš tikrųjų išbandėte, nes žmonės dažniausiai praneša apie nepavykusį žaidimą, išbandę tik paleidiklį.
Perskaitykite klaidos tekstą prieš tinklą. Žaidimas, kuris praneša, kad nėra pasiekiamų serverių, jums sako ką kita nei paleidiklis, kuris nepasiekia parduotuvės. Abi klaidos ateina iš skirtingų sluoksnių ir retai reiškia tą patį. Šis skirtumas lemia, ar kitas patikrinimas susijęs su vardų sprendimu, UDP, ar regiono nustatymu.
Užsirašykite paskyrą, regioną, žaidimą ir laiką. Be šių keturių reikšmių vėlesnis palyginimas bus tarp dviejų skirtingų testų, kurie atsitiktinai turi tą patį pavadinimą.
2 žingsnis: įvardykite kiekvienos operacijos transportą
Turinio pristatymas elgiasi kaip didelis HTTP perdavimas ir latenciją toleruoja daug geriau nei nuostolius. Varžovų paieška ir sesijos žaidimo viduje dažnai naudoja UDP, kur paketus metantis kelias atrodo kaip sulaužytas žaidimas, o ne lėtas atsisiuntimas. Šie du profiliai tame pačiame tunelyje nepavyksta skirtingai, todėl greitas atsisiuntimas nenuspėja veikiančios sesijos.
Pirmiausia tikrinkite paskirties vietas ir aktyvius lizdus, o ne tiekėjo portų sąrašą. Sąrašas nurodo, ką platforma gali naudoti, o lizdai nurodo, ką šis klientas daro dabar.
nslookup api.steampowered.com
ss -uanp | head -20
curl -sS -o /dev/null -w '%{http_code} %{time_total}\n' https://store.steampowered.com/Jei žaidimo procesas laiko UDP lizdą su srautu, o perdavimo kelias tvarkingas, gedimas yra UDP dalyje. Tai susiaurina problemą iki tunelio elgesio su UDP, o ne paskyros ar parduotuvės.
3 žingsnis: prieš portų sąrašą patikrinkite įtraukimo politiką
Daugelis VPN klientų taiko politiką pagal programą, adresų diapazoną ar adresų šeimą, o ne visai mašinai. Paleidiklis gali būti tunelio viduje, o atskirai paleistas žaidimo binarais failas – už jo, ir tada abu nesutaria dėl pasaulio. Įtraukimas programos lygmeniu yra įprastas kaltininkas žaidimų nešiojamuosiuose kompiuteriuose su įdiegtu tiekėjo klientu. Skaitykite politiką, kuri iš tikrųjų galioja, o ne profilį, kurį išsaugojote praėjusį mėnesį.
Pažiūrėkite į maršrutų lentelę ir sąsają, kuriai priklauso numatytasis maršrutas. Skirstomojo tunelio taisyklė, pagrįsta paskirties prefiksais, ten pasirodys, o programos lygmens išimtis – ne. Šį skirtumą verta žinoti prieš keičiant bet kurį iš jų.
ip route show default
ip -brief addr
Get-NetAdapter | Select-Object Name, Status, InterfaceDescriptionJei žaidimo srautas išeina per fizinį adapterį, o parduotuvė eina per tunelį, įtraukimo politika yra radinys. Jokia porto išimtis nepataisys maršrutizavimo sprendimo, o jos pridėjimas tik praplečia paviršių.
4 žingsnis: atmeskite SOCKS kelią, kuris negali pernešti UDP
Tor teikia SOCKS tarpinį serverį, o SOCKS palaikymas visoje ekosistemoje yra nenuoseklus UDP atžvilgiu. Dokumentuotas Tor elgesys neįgyvendina UDP ASSOCIATE, todėl žaidimas, kurio sesijos srautas yra UDP, negali naudoti to kelio, kad ir kaip klientas būtų į jį nukreiptas. Naršyklė, veikianti per tarpinį serverį, įrodo tik tai, kad naršyklės TCP srautai veikia.
Tikrinkite teiginį, o ne ketinimą. Jei žaidimas vis dar praneša apie nepasiekiamą sesiją, o testas tik per TCP per tą patį tarpinį serverį pavyksta, tarpinio serverio kelias neperneša srauto, kurio žaidimui reikia.
Traktuokite maršrutizuotą VPN ir SOCKS tarpinį serverį kaip skirtingus įrankius su skirtingomis galimybėmis. Vieno pakeitimas kitu yra dizaino pakeitimas, o ne konfigūracijos pasirinkimas.
Palyginkite įrašą su susitarimu
Tinklo pasiekiamumas ir paskyros leidimas yra atskiri klausimai, ir tik į pirmąjį atsako veikiantis tunelis. Apribojimas susijęs su ketinimu, slypinčiu už tarpinio serverio, o ne su pasirinktu protokolu. Galiojantis susitarimas riboja IP tarpinį serverį, kurio tikslas – nuslėpti, kur gyvena paskyros savininkas, todėl veikiantis kelias vis tiek gali būti už priimtų sąlygų ribų. Skaitykite susitarimą, o ne laikykite ryšį patvirtinimu.
Sąžiningam palyginimui keiskite po vieną kintamąjį ir išlaikykite tą patį žaidimą, serverio regioną, paskyrą ir operaciją. Tada patikrinkite rezultatą tose pačiose keturiose operacijose, kurias užsirašėte pradžioje.
tracert -h 12 store.steampowered.com
ss -uanp | grep -i -E 'game|steam'
curl -sS -o /dev/null -w '%{remote_ip} %{time_connect}\n' https://store.steampowered.com/Kai įrašas rodo, kad prisijungimas veikia, atsisiuntimas veikia, o sesija nepavyksta, likęs klausimas yra apie UDP kelyje. Kai visi trys veikia, pirminis skundas buvo apie ką kita, o kitas naudingas žingsnis yra paties žaidimo žurnalas, o ne tunelis. Bet kuriuo atveju kontrolinis sąrašas pakeitė ginčą konkrečiu stebėjimu.