Pi sem VPN-biðlari: einn stjórnandi eða eigið skript?
Berðu saman NetworkManager-snið og handsmíðað biðlaraskript á Raspberry Pi, þar á meðal fullan göng, DNS, IPv6 og hegðun þegar göngin falla.
Raspberry Pi sem þarf aðeins að verja eigin útleiðandi umferð hefur tvo raunhæfa hönnun: láta netkerfisstjórann eiga göngin, eða halda skript sem á þau. Bæði geta borið umferð. Þau bregðast á mismunandi stöðum, og sá bilun sem þú getur greint úr fjarlægð klukkan tvö að nóttu er sá sem er þess virði að velja. Berðu þau saman eftir eignarhaldi, eftir því hvað full göng þýða þegar IPv6 og DNS koma við sögu, og eftir því hvað gerist á þeirri stundu sem göngin falla.
Tveir eigendur að einum göngum
Hönnun A er snið inni í netkerfisstjóra kerfisins: innflutt OpenVPN-snið eða innfædd WireGuard-tenging, virkjuð við ræsingu af sömu þjónustu og ræsir Ethernet og Wi-Fi. Hönnun B er eigin eining sem keyrir biðlarann beint, breytir stillingum leysisins og setur upp eigin leiðir og eldveggjarreglur. Báðar eru lögmætar hönnun; þær greinast á því hver má breyta leiðatöflunni.
Bilanirnar eru mismunandi vegna þess að eigendurnir eru mismunandi. Með A skilur snið sem virkjast ekki viðmótið uppi og göngin niðri, og annálar stjórnandans segja hvers vegna. Með B skilur skript sem heppnast hálf leiðir eftir sem lifa ferlið sem bjó þær til. Að keyra bæði er versta niðurstaðan: tvö ferli skrifa sjálfgefnu leiðina, tvær breytingar á leysinum keppast við ræsingu, og tvo sett af leyndarmálum þarf að snúa.
Veldu einn eiganda fyrir hver göng og slökktu á hinum áður en þú prófar nokkuð. Tveir eigendur þýða líka tvo staði til að skoða þegar göngin eru uppi og ekkert leysist. Þessi eina regla kemur í veg fyrir flest ruglingslegu ástandanna sem lýst er í Pi VPN-þráðum.
Hvað innflutningur býr til og hvað ekki
Á Raspberry Pi OS Bookworm og nýrri er sjálfgefna netstillingartólið NetworkManager, svo snið er eðlilegt heimili biðlaraganga. Innflutningur krefst þess að samsvarandi viðbót sé uppsett; án hennar mistekst innflutningurinn með skilaboðum um óstudda tengitegund, sem er heiðarlegt merki um að stöðva og setja upp viðbótina.
nmcli connection import type openvpn file ./provider.ovpn
nmcli connection show
nmcli --ask connection up id provider-name
Innflutningur geymir snið. Hann sannar ekki að hin hliðin sé aðgengileg og tryggir ekki að hver fyrirmæli í skránni hafi lifað umbreytinguna. Lestu tenginguna sem varð til og athugaðu hlutana sem bera auðkenni og traust: skírteinið, fjarlæga hýsilinn og gáttina, og hvort spurt er um lykilorð eða það geymt.
Virkjun með --ask heldur lykilorðssetningu utan skeljasögunnar á sameiginlegri vél. Fyrir Pi án eftirlits munt þú að lokum vilja að sniðið ræsist við upphaf, sem er sérstök ákvörðun frá því að ræsa það einu sinni handvirkt.
Full göng, borin saman á báðum hönnunum
Full göng eru fullyrðing um leiðir, ekki um áform, og hönnuðirnar tvær tjá það á mismunandi hátt. Sniðsaðferðin biður stjórnandann að setja upp sjálfgefna leið og stillingar leysisins; skriptaaðferðin gerir það sem skriptið segir, þar á meðal ekkert. Hvorug hönnunin nær yfir IPv6 nema því sé sagt, og ósnortin sjálfgefna leið IPv6 mun glaðlega bera umferð utan ganganna á meðan IPv4 lítur fullkomið út.
ip -4 route get 198.51.100.23
ip -6 route show default
resolvectl query example.org
Notaðu skjölunarvistfang fyrir leiðarleitina og skiptu út hýsli sem þér er leyfilegt að skoða. Fyrsta skipunin sýnir hvaða viðmót Pi myndi nota fyrir venjulegan áfangastað; önnur sýnir hvort sjálfgefna leið IPv6 sé enn til; þriðja sannar hvaða leysir svaraði. Lestu allar þrjár áður en þú trúir nokkurri fullyrðingu um full göng.
Ef leiðbeiningar þjónustuveitandans lofa fullum göngum en sjálfgefna leið IPv6 lifir, lekur Pi. Slökktu á IPv6 á uppstreymistenginu eða biddu sniðið að gera kröfu til þess, og ákveddu vísvitandi í stað þess að uppgötva það síðar.
Opin bilun gegn lokaðri
Þegar göngin falla fellur leiðatafla sem missir sjálfgefnu leiðina einfaldlega aftur á líkamlega uppstreymistengið, og umferð heldur áfram ódulkóðuð. Það er opin bilun, og það er sjálfgefin hegðun beggja hönnana nema eitthvað komi í veg fyrir það. Flestir uppgötva það vikum síðar við að lesa eldveggjarannál.
Lokuð bilun kostar þig fjartengingu þegar göngin eru niðri, svo hún þarf vísvitandi undantekningu fyrir stjórnleiðina. Ein leið er regla sem leyfir aðeins vistfang VPN-jafningjans utan ganganna:
sudo nft add table inet vpnkill
sudo nft 'add chain inet vpnkill out { type filter hook output priority 0; policy accept; }'
sudo nft add rule inet vpnkill out oifname != "tun0" ip daddr != 203.0.113.24 reject
Berðu rekstrarkostnaðinn saman af heiðarleika. Snið getur venjulega ekki tjáð þessa reglu, svo lokuð bilun ýtir þér að skriptahönnuninni eða að lítilli einingu sem setur regluna upp óháð göngunum. Hvað sem er, skráðu höfnunina í eina viku: hljóðlát höfnun lítur nákvæmlega eins út og biluð þjónusta, og þú munt vilja teljarann þegar notandi tilkynnir að ein vefsíða hafi hætt að hlaðast.
Að velja fyrir Pi án skjás
Ef myndin keyrir nú þegar NetworkManager, göngin þurfa ekkert framandi og þú vilt að þau fylgi uppstreymistenginu sjálfkrafa, taktu sniðið. Ef þú þarft stefnuleiðsögn, nokkur göng valin eftir áfangastað, eða lokuðu bilunarreglu sem verður að vera til áður en göngin ræsast, taktu skriptið og eigðu hvern hluta þess, þar á meðal ræsiröð og hreinsun. Að blanda hönnununum tveimur kostar meira en hvort þeirra ein og sér.
Að flytja á milli þeirra er aðallega spurning um röð: slökktu á gamla eigandanum, staðfestu að engin gömul leið eða leysisfærsla lifi, virkjaðu þá nýju og endurræstu tvisvar. Ein endurræsing getur falið kapphlaup sem önnur afhjúpar. Ljúktu með því að prófa Pi, ekki göngin: leystu nafn, sæktu eitthvað yfir IPv4, sæktu yfir IPv6 ef þú hélt því, slepptu þá göngunum og staðfestu að hegðunin sem þú valdir gerist í raun. Viðmót í ip link er upphaf prófsins, ekki endir.