De Pi fan Wi-Fi nei in kabel omsette liket in putsje fan fiif minuten, en dat bliuwt it allinnich as jo de ferhuzing as fjouwer aparte ynstellings behannelje ynstee fan ien. De einpuntnamme dy't jo kliïnten belje kin krekt itselde bliuwe wylst it adres dêrûnder feroaret. Wat wier brekt is in listener dy't oan it âlde adres fêstset is, in portforwarding dy't noch op 'e draadleaze lease rjochte is, of in weromrûte dy't fia de ynterface fuortgiet dêr't jo tochten dat jo dy ôftanke hiene. Dizze rûnlieding hâldt by eltse stap in herstelpaad iepen, sadat in mislearre oergong mar ien restart kostet.

Skriuw de fjouwer ferantwurdliken op foardat jo eat loskeppelje

Fjouwer ynstellings beslisse oft de oergong oerlibbet: it Pi-adres, it OpenVPN-bindadres, it trochstjoerdoel fan 'e router en it paad dat antwurden nimme. Skriuw alle fjouwer op foardat jo de kabel oanreitsje, want as de draadleaze lease ferdwynt kinne jo de âlde wearden net mear fan 'e masine ôflêze. De bekabelde ynterface erft it draadleaze profyl net, en op Bookworm wennet it adres yn NetworkManager wylst Bullseye it yn dhcpcd.conf hâldt. In reservaasje dy't it draadleaze MAC-adres fêstsette seit neat oer eth0. Behannelje it nije adres as in nije tawizing dy't syn eigen bewiis nedich hat.

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

De listener is de twadde ferantwurdlike. As de tsjinst mei in spesifyk bindadres start is, stjert de socket mei de âlde ynterface; as er alle adressen bindt, oerlibbet de socket en wurdt de routerregel it iennige dat noch te reparearjen falt.

It trochstjoerdoel en it werompaad binne de ferantwurdliken dy't minsken oerslaan. In forwarding dy't noch nei 10.42.7.24 wiist stjoert oankommende handshakes nei in adres dat de Pi net mear hat, sadat kliïnten yn in time-out rinne sûnder ien serverlogrigel. It werompaad docht der ta as beide keppelingen even tagelyk aktyf binne, om't de Pi antwurdet fan 'e ynterface dy't de routingtabel foarkar jout, en dat is net altyd dejinge dêr't it pakket op oankaam. De rûte-opfreage hjirûnder lit sjen hokker boarne de kernel kiest.

Lês de wiere socket foardat jo it nije adres fertrouwe

Konfiguraasjebestannen beskriuwe de bedoeling en de socket beskriuwt de wierheid. Freegje de rinnende tsjinst wêroan er bûn is ynstee fan de konfiguraasje te fertrouwen dy't jo jo herinnerje. OpenVPN 2.6-hânboek definiearret --local as bining oan ien adres en merkt op dat it weilitten derfan elke ynterface bindt.

sudo systemctl cat openvpn-server@server | grep -n -- '--local'
sudo ss -lunp '( sport = :1194 )'

Lês de kolom fan it lokale adres ynstee fan 'e statuskolom. In rigel dy't 10.42.7.24:1194 sjen lit betsjut dat de socket oan it adres fêstset is dat jo op it punt steane fuort te heljen, wylst 0.0.0.0:1194 of *:1194 betsjut dat de daemon de ynterfacewiziging sels folget. As it adres fêstset is, bewurkje dan it profyl en start de ienheid opnij ynstee fan de libbene socket mei de hân te oerskriuwen, en befêstigje dêrnei dat de tsjinst syn sertifikaat- en kaaibestannen noch berikt.

Gean de ferhuzing yn in folchoarder dy't jo berikber hâldt

De folchoarder is hjir wichtiger as de faasje. Bring de bekabelde keppeling omheech wylst de draadleaze noch wurket, befêstigje it nije adres en it werompaad, en tankje dêrnei it draadleaze profyl ôf. Dy sekwinsje hâldt in wurkjende sesje iepen oant de ferfanging bewiisd is.

ip -br addr show eth0
ip route get 203.0.113.10
nmcli -g ipv4.method,ipv4.addresses con show "Wired connection 1"

It earste kommando antwurdet oft eth0 it adres krige dat jo bedoelden, en it twadde prints it boarne-adres dat de kernel foar in bestimming bûten it netwurk brûke soe, dus rin it foar en nei de wiziging. As dy boarne noch it draadleaze adres is, is de bekabelde keppeling noch net it foarkarpaad en sil de test fan bûten mislearje om in reden dy't neat mei OpenVPN te krijen hat. Reparearje de routingfoarkar foardat jo de forwarding oanreitsje.

Mei beide keppelingen omheech wol de Pi miskien de draadleaze standertrûte foarkarje om't dy earst ynstallearre is of om't de bekabelde keppeling in hegere metryk draacht. Op Bookworm is de stipe knop ipv4.route-metric op 'e ferbining, en op Bullseye is it ekwivalint in ynterfacespesifike metric-rigel yn dhcpcd.conf. Degradearje de draadleaze keppeling ynstee fan him út te skeakeljen, sadat it rollbackpaad ien kommando fuort bliuwt.

Bewiis de tunnel fan bûten, net fan it LAN

In VPN-ferbining dy't fan 'e bank ôf wurket bewiist minder as it liket. Ferkaar fan binnen it LAN nei it iepenbiere adres giet troch hairpin- of refleksjeregels dy't routers inkonsistint ymplementearje, sadat in slagge LAN-test gearbestean kin mei in brutsen paad fan bûten. Brûk in tillefoan op mobile data, of in host bûten it netwurk, foar de akseptaasjetest. Hâld de LAN-poging as in aparte opsjonele diagnostyk.

Lês dan de log yn 'e folchoarder dêr't de pakketten yn oankomme. Hielendal neat betsjut dat de handshake de Pi nea berikt hat, dus it trochstjoerdoel of de host-firewall is ferkeard. In handshake dy't begjint en hingjen bliuwt wiist op kaaien, sertifikaten of MTU. In sesje dy't foltôget en sakket betsjut meastentiids it werompaad of in twadde standertrûte, en de logrigel fan 'e klient Initialization Sequence Completed fertelt jo dat de tunnel sels omheech kaam.

sudo journalctl -u openvpn-server@server -n 40 --no-pager
sudo tcpdump -ni any udp port 1194 -c 20

As der neat yn 'e serverlog ferskynt wylst de klient it opnij besiket, stop dan mei it lêzen fan 'e OpenVPN-konfiguraasje en gean werom nei it trochstjoerdoel. De opname beantwurdet de oankomstfrage yn sekonden, en ynkommende pakketten sûnder antwurd ferfynje it probleem nei de rûte.

Hâld in rollback fan ien stap en tankje it draadleaze profyl ôf

Lit it draadleaze profyl ynstallearre oant de bekabelde regeling in restart trochstien hat. nmcli con show listet de profylnammen op dy't jo nedich wêze sille, en in wiske profyl moat op it minst mooglike momint út 'e ûnthâld werombouwd wurde. Skriuw de ynterfacenamme, de adresmetoade en de metryk njonken de oare fjouwer wearden op. In rollback dy't jo út in notysje tikke kinne is mear wurdich as ien dy't jo weromrekonstruearje moatte.

It draadleaze ôfhinklikens ôftankje is in eigenskipswiziging ynstee fan in wiskjen. Troch connection.autoconnect no te setten bliuwe de ynloggegevens en de adresskiednis yntakt wylst de Pi derfan weromholden wurdt opnij te ferbinen mei in netwurk dêr't jo fan fuort ferhuze binne.

nmcli con show
sudo nmcli con up "Wired connection 1"
sudo nmcli con mod "previously-used-wifi" connection.autoconnect no

Foardat jo it wurk klear neame, befêstigje fjouwer dingen: it trochstjoerdoel past by it bekabelde adres, de listener hat in restart oerlibbe, in klient fan bûten foltôget in handshake, en de Pi antwurdet nei in restart noch op it bekabelde adres. In restart is de bêste manier om in tawizing te fangen dy't allinnich yn 'e rinnende kernel bestie. As ien fan 'e fjouwer mislearret, bring it draadleaze profyl dan wer omheech mei sudo nmcli con up en fergelykje de opskreaune wearden mei de libbene.

Relatearre artikelen