Kaip perkelti Raspberry Pi VPN serverį į Ethernet
Perkelkite Raspberry Pi VPN serverį iš Wi-Fi į Ethernet nekeisdami galinio taško pavadinimo, klausytojo susiejimo, prievado peradresavimo ar vieno žingsnio atsukimo kelio.
Perjungti Pi iš Wi-Fi į kabelį atrodo kaip penkių minučių darbas, ir jis toks išlieka tik jei perkėlimą traktuojate kaip keturis atskirus nustatymus, o ne vieną. Galinio taško pavadinimas, kuriuo skambina jūsų klientai, gali likti lygiai toks pat, kol adresas po juo keičiasi. Iš tikrųjų lūžta prie seno adreso pririštas klausytojas, prievado peradresavimas, vis dar nukreiptas į belaidę nuomą, arba grįžtamasis maršrutas, išeinantis per sąsają, kurią manėte išvedę iš eksploatacijos. Šis vadovas kiekviename žingsnyje palieka atvirą atkūrimo kelią, todėl nepavykęs perkėlimas kainuoja tik perkrovimą.
Užsirašykite keturis atsakinguosius, prieš ką nors atjungdami
Keturi nustatymai lemia, ar perkėlimas išliks: Pi adresas, susiejimo adresas OpenVPN, maršrutizatoriaus peradresavimo tikslas ir kelias, kuriuo eina atsakymai. Užsirašykite visus keturis, prieš liesdami kabelį, nes kai belaidė nuoma išnyks, senųjų reikšmių iš mašinos jau nebeperskaitysite. Laidinė sąsaja nepaveldi belaidžio profilio, o Bookworm adresas gyvena NetworkManager, tuo tarpu Bullseye jį laiko dhcpcd.conf. Rezervacija, kuri priskyrė belaidį MAC adresą, nieko nepasako apie eth0. Traktuokite naują adresą kaip naują priskyrimą, kuriam reikia savo įrodymo.
Old wireless lease: 10.42.7.24/24 on wlan0
New wired address: 10.42.7.31/24 on eth0
Client endpoint: vpn.lab.example:1194/udp
Klausytojas yra antrasis atsakingasis. Jei paslauga buvo paleista su konkrečiu susiejimo adresu, lizdas miršta kartu su sena sąsaja; jei jis susieja visus adresus, lizdas išlieka, ir maršrutizatoriaus taisyklė tampa vieninteliu dalyku, kurį reikia taisyti.
Peradresavimo tikslas ir grįžtamasis kelias yra atsakingieji, kuriuos žmonės praleidžia. Peradresavimas, vis dar rodantis į 10.42.7.24, siunčia ateinančius rankos paspaudimus į adresą, kurio Pi nebeturi, todėl klientai baigiasi skirtuoju laiku be nė vienos žurnalo eilutės serverio pusėje. Grįžtamasis kelias svarbus, kai abi jungtys trumpam aktyvios, nes Pi atsako per sąsają, kuriai pirmenybę teikia maršrutų lentelė, ir tai ne visada ta, kuria atėjo paketas. Žemiau esanti maršruto paieška parodo, kokį šaltinį pasirenka branduolys.
Perskaitykite tikrąjį lizdą, prieš pasitikėdami nauju adresu
Konfigūracijos failai apibūdina ketinimą, o lizdas apibūdina tikrovę. Paklauskite veikiančios paslaugos, prie ko ji susieta, o ne pasitikėkite konfigūracija, kurią prisimenate. OpenVPN 2.6 vadovas apibrėžia --local kaip susiejimą su vienu adresu ir pažymi, kad jo praleidimas susieja kiekvieną sąsają.
sudo systemctl cat openvpn-server@server | grep -n -- '--local'
sudo ss -lunp '( sport = :1194 )'
Skaitykite vietinio adreso stulpelį, o ne būsenos stulpelį. Eilutė, rodanti 10.42.7.24:1194 reiškia, kad lizdas pririštas prie adreso, kurį tuoj pašalinsite, o 0.0.0.0:1194 arba *:1194 reiškia, kad demonas pats seks sąsajos pasikeitimą. Jei adresas pririštas, redaguokite profilį ir paleiskite įrenginį iš naujo, o ne ranka perrašykite veikiantį lizdą, ir tada patvirtinkite, kad paslauga vis dar pasiekia savo sertifikato ir rakto failus.
Atlikite perkėlimą tokia tvarka, kuri palieka jus pasiekiamus
Tvarka čia svarbesnė už greitį. Pakelkite laidinę jungtį, kol belaidė dar veikia, patvirtinkite naują adresą ir grįžtamąjį kelią, ir tik tada išveskite belaidį profilį iš eksploatacijos. Ši seka palieka veikiančią sesiją atvirą, kol pakaitalas nebus įrodytas.
ip -br addr show eth0
ip route get 203.0.113.10
nmcli -g ipv4.method,ipv4.addresses con show "Wired connection 1"
Pirmoji komanda atsako, ar eth0 gavo adresą, kurį ketinote, o antroji išspausdina šaltinio adresą, kurį branduolys naudotų išoriniam tikslui, todėl paleiskite ją prieš ir po pakeitimo. Jei tas šaltinis vis dar belaidis adresas, laidinė jungtis dar nėra pageidaujamas kelias ir išorinė patikra nepavyks dėl priežasties, neturinčios nieko bendra su OpenVPN. Ištaisykite maršrutizavimo pirmenybę, prieš liesdami peradresavimą.
Kai abi jungtys aktyvios, Pi gali teikti pirmenybę belaidžiam numatytajam maršrutui, nes jis buvo įdiegtas pirmas arba nes laidinė jungtis turi didesnę metriką. Bookworm palaikomas parametras yra ipv4.route-metric jungtyje, o Bullseye atitikmuo yra sąsajai būdinga metric eilutė dhcpcd.conf faile. Sumažinkite belaidės jungties prioritetą, o ne ją išjunkite, kad atsukimo kelias liktų vienos komandos atstumu.
Įrodykite tunelį iš išorės, o ne iš LAN
VPN ryšys, veikiantis nuo sofos, įrodo mažiau, nei atrodo. Srautas iš LAN vidaus į viešą adresą praeina per hairpin ar atspindžio taisykles, kurias maršrutizatoriai įgyvendina nenuosekliai, todėl sėkmingas LAN testas gali sugyventi su sugedusiu išoriniu keliu. Priėmimo testui naudokite telefoną su mobiliaisiais duomenimis arba bet kurį hostą už tinklo ribų. LAN bandymą laikykite atskira neprivaloma diagnostika.
Tada skaitykite žurnalą ta tvarka, kuria ateina paketai. Visiškai nieko reiškia, kad rankos paspaudimas niekada nepasiekė Pi, tad peradresavimo tikslas arba hosto ugniasienė yra neteisingi. Rankos paspaudimas, kuris prasideda ir užstringa, rodo raktus, sertifikatus arba MTU. Sesija, kuri pasibaigia ir nukrenta, paprastai reiškia grįžtamąjį kelią arba antrą numatytąjį maršrutą, o kliento žurnalo eilutė Initialization Sequence Completed pasako, kad pats tunelis pakilo.
sudo journalctl -u openvpn-server@server -n 40 --no-pager
sudo tcpdump -ni any udp port 1194 -c 20
Jei serverio žurnale nieko neatsiranda, kol klientas bando iš naujo, nustokite skaityti OpenVPN konfigūraciją ir grįžkite prie peradresavimo tikslo. Užfiksavimas atsako į atvykimo klausimą per sekundes, o įeinančios paketai be atsakymo susiaurina problemą iki maršruto.
Išsaugokite vieno žingsnio atsukimą ir išveskite belaidį profilį iš eksploatacijos
Palikite belaidį profilį įdiegtą, kol laidinė tvarka išgyvens perkrovimą. nmcli con show išvardija profilių pavadinimus, kurių jums prireiks, o ištrintą profilį teks atkurti iš atminties blogiausiu metu. Užsirašykite sąsajos pavadinimą, adresavimo metodą ir metriką šalia kitų keturių reikšmių. Atsukimas, kurį galite įrašyti iš pastabos, vertas daugiau nei tas, kurį turite atkurti.
Belaidės priklausomybės išvedimas iš eksploatacijos yra savybės pakeitimas, o ne ištrynimas. Nustačius connection.autoconnect no prisijungimo duomenys ir adresų istorija lieka nepaliesti, o Pi nebegali iš naujo prisijungti prie tinklo, iš kurio išsikėlėte.
nmcli con show
sudo nmcli con up "Wired connection 1"
sudo nmcli con mod "previously-used-wifi" connection.autoconnect no
Prieš paskelbdami darbą baigtu, patvirtinkite keturis dalykus: peradresavimo tikslas atitinka laidinį adresą, klausytojas išgyveno perkrovimą, išorinis klientas užbaigia rankos paspaudimą, ir Pi po perkrovimo vis dar atsako laidiniu adresu. Perkrovimas yra pigiausias būdas pagauti priskyrimą, kuris egzistavo tik veikiančiame branduolyje. Jei kuri nors iš keturių nepavyksta, vėl pakelkite belaidį profilį su sudo nmcli con up ir palyginkite užrašytas reikšmes su aktyviomis.