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.

Susiję straipsniai