Kas iš tikrųjų nutinka paleidus VPN Linux sistemoje
Paleidus VPN Linux sistemoje sukuriama sąsaja, įdiegiami maršrutai ir pakeičiamas sprendėjas. Žinojimas, kuri tarnybė valdo kiekvieną žingsnį, paaiškina daugumą sąrankos klaidų.
Paspauskite prisijungti ir Linux kompiuteryje pasikeičia trys dalykai: atsiranda sąsaja, įdiegiami maršrutai ir sprendėjas pradeda atsakinėti kitaip. Dauguma sąrankos klaidų kyla dėl to, kad vienas iš tų trijų įvyksta be kitų, arba dėl to, kad dvi programos nesutaria, kam jie priklauso. Sekos supratimas paaiškina klaidą greičiau nei kliento žurnalo išvesties skaitymas.
Sąsaja atsiranda anksčiau, nei kas nors pradeda veikti
Tunelio klientas atidaro virtualią sąsają ir perduoda jai paketus. TUN įrenginys perneša IP paketus, ko reikia maršrutizuotam VPN; TAP įrenginys perneša Ethernet kadrus, ko reikia tiltiniam sprendimui. Branduolio modulis suteikia įrenginį, o klientas jį valdo tol, kol trunka sesija.
Sąsajos pakilimas nelygus veikiančiam tuneliui. Ji gali egzistuoti su adresu, kol partneris nepasiekiamas, ir todėl sąsajų sąrašas yra pirmoji patikra, o ne paskutinė. Įrenginys, kuris praneša esąs pakilęs, apibūdina branduolio požiūrį į virtualų ryšį, o ne partnerio pasirengimą atsakyti.
Palikite pateiktą sąsajos režimą ramybėje. TUN profilio pavertimas TAP nepaverčia maršrutizuoto serverio tiltiniu, ir paprastai gaunamas ryšys, kuris užmezgamas ir nieko nepersiunčia.
Maršrutus įdiegia tas, kas valdo tunelį
Maršrutai yra antrasis pokytis, ir jų nuosavybė svarbesnė už jų turinį. NetworkManager profilis, systemd unitas ir rankiniu būdu paleistas klientas gali visi įdiegti maršrutus, o kai du iš jų tai daro vienu metu, atsiranda lentelė, kurios vėliau niekas negali paaiškinti.
ip -br addr show ip route show ip -6 route show
Viso tunelio profilis pakeičia numatytąjį maršrutą; padalinto tunelio profilis prideda konkretesnių maršrutų ir palieka numatytąjį ramybėje. Abu yra normalūs, ir antrasis yra priežastis, kodėl numatytojo maršruto trynimas yra blogas pirmasis bandymas kompiuteryje, kurį administruojate nuotoliniu būdu. Jo pašalinimas taip pat yra greičiausias būdas prarasti sesiją, kurią naudojate problemai ištaisyti.
Skaitykite lentelę, o ne darykite prielaidas. Konkretesnis maršrutas ar politikos taisyklė gali siųsti srautą į tunelį, kol numatytasis maršrutas vis dar rodo į fizinę sąsają, o tai atrodo prieštaringai, kol neperskaitysite visos lentelės. Toks derinys yra normalus padalintam tuneliui ir klaidina kiekvieną, kuris tikisi, kad viena eilutė apibūdins sprendimą. Ieškokite maršruto, kuris atitinka jūsų tikrąją paskirtį, o ne to, kuris atitinka schemą.
Sprendėjas keičia rankas
DNS yra trečiasis pokytis ir tas, kuris labiausiai tikėtina valdomas ten, kur nežiūrėjote. Darbalaukio sistemoje NetworkManager gali perduoti sprendėjo nustatymus kiekvienam ryšiui. Sistemoje, naudojančioje systemd-resolved, nustatymai taikomi kiekvienai jungčiai ir /etc/resolv.conf gali būti stub arba simbolinė nuoroda, o ne failas, kurį turėtumėte redaguoti.
resolvectl status readlink -f /etc/resolv.conf cat /etc/resolv.conf
Jei rankinis sprendėjo failo pakeitimas išnyksta po pakartotinio prisijungimo, tai signalas surasti komponentą, kuris jį prižiūri, ir vietoj to pakeisti profilį. Sugeneruoto failo redagavimas yra pakeitimas, kurį pakartotinis prisijungimas ištrins.
Privatūs vardai paprastai reikalauja vidinio sprendėjo ir operatoriaus pateiktų paieškos domenų. Pakeitimą viešu sprendėju gali sugriauti būtent tą išteklių, dėl kurio egzistuoja VPN, ir simptomas atrodo kaip maršrutizavimo, o ne DNS klaida. Tikrinkite vardą ir adresą atskirai, nes tai, kad vienas veikia, o kitas nepavyksta, tiksliai parodo, kur žiūrėti. Šis vienas palyginimas sutaupo valandą maršrutų derinimo.
Vienas valdytojas vienam ryšiui
Profilio formatas nusprendžia, kuri programa gali jį naudoti. OpenVPN profiliui reikia OpenVPN arba suderinamo papildinio, o WireGuard konfigūracija turi savo formatą su partnerio raktais ir leidžiamais prefiksais. Importo dialogas neverčia vieno į kitą, kad ir ką siūlytų failo plėtinys.
Pasirinkite vieną valdytoją ir leiskite jam valdyti ryšį. To paties tunelio kėlimas dviem įrankiais padaro maršrutų lentelę ir pakartotinio prisijungimo elgseną dviprasmišką, ir paprastai laimi antrasis, kuris paleidžiamas, sunkiai atkuriamais būdais.
Įdiekite paketus, kuriuos palaiko jūsų distribucija, ir gaukite profilį iš operatoriaus. Traktuokite jį kaip prisijungimo duomenis, nes jame paprastai yra privatus raktas arba lygiavertė medžiaga, ir laikykite jį ten, kur gyvena kitos jūsų paslaptys. Profilis, paliktas atsisiuntimų aplanke, yra raktas, paliktas ant stalo.
Ką tikrinti, kai jis pakilęs, bet neveikia
Kai sąsaja pakilusi ir klientas praneša apie sėkmę, dirbkite į išorę: ar maršrutų lentelė parenka tunelį paskirčiai, ar sprendėjas atsako už privatų vardą ir ar priešingoje pusėje yra grįžimo kelias. Kiekvienas turi atskirą komandą ir atskirą savininką.
nmcli connection show --active nmcli device status wg show
nmcli informacija dokumentuoja būsenos ir ryšio komandas, jei jums reikia viso rinkinio. Čia svarbus skirtumas tarp aktyvaus profilio ir įrenginio, kuris perneša srautą, nes abu gali nesutapti.
Prieš skelbdami sąranką baigta, kartą prisijunkite iš naujo per tą patį valdytoją ir patikrinkite, ar DNS vis dar veikia po atsijungimo. Konfigūracija, kuri veikia tik iki pirmo tinklo pakeitimo, nėra baigta, ji tiesiog šiuo metu veikia.