Sut i symud gweinydd VPN Raspberry Pi i Ethernet
Symud gweinydd VPN Raspberry Pi o Wi-Fi i Ethernet heb newid enw’r pwynt terfyn, clymiad y gwrandawr, anfon y porth na llwybr adfer un cam.
Mae symud y Pi o Wi-Fi i gebl yn edrych fel gwaith pum munud, ac mae’n aros felly dim ond os ydych chi’n trin y symudiad fel pedwar gosodiad ar wahân yn lle un. Gall enw’r pwynt terfyn y mae eich cleientiaid yn ei ddeialu aros yn union yr un fath tra bo’r cyfeiriad oddi tano yn newid. Yr hyn sy’n torri mewn gwirionedd yw gwrandawr sydd wedi’i glymu i’r hen gyfeiriad, anfon porth sy’n dal i anelu at y les di-wifr, neu lwybr dychwelyd sy’n gadael drwy’r rhyngwyneb roeddech chi’n meddwl eich bod wedi’i osod o’r neilltu. Mae’r daith hon yn cadw llwybr adfer ar agor ym mhob cam, felly dim ond ailgychwyn y mae tro pedol aflwyddiannus yn ei gostio.
Cofnodwch y pedwar perchennog cyn i chi ddatgysylltu unrhyw beth
Mae pedwar gosodiad yn penderfynu a yw’r newid yn goroesi: cyfeiriad y Pi, cyfeiriad clymu OpenVPN, targed ailgyfeirio’r llwybrydd a’r llwybr y mae atebion yn ei gymryd. Ysgrifennwch y pedwar i lawr cyn i chi gyffwrdd â’r cebl, oherwydd unwaith y bydd y les di-wifr yn diflannu ni allwch ddarllen yr hen werthoedd oddi ar y peiriant. Nid yw’r rhyngwyneb gwifrog yn etifeddu’r proffil di-wifr, ac ar Bookworm mae’r cyfeiriad yn byw yn NetworkManager tra bod Bullseye yn ei gadw yn dhcpcd.conf. Nid yw cadwad sy’n pinio’r cyfeiriad MAC di-wifr yn dweud dim am eth0. Triniwch y cyfeiriad newydd fel aseiniad newydd sydd angen ei brawf ei hun.
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
Y gwrandawr yw’r ail berchennog. Os cychwynnwyd y gwasanaeth gyda chyfeiriad clymu penodol, mae’r socket yn marw gyda’r hen ryngwyneb; os yw’n clymu pob cyfeiriad, mae’r socket yn goroesi a’r rheol llwybrydd yw’r unig beth sydd ar ôl i’w drwsio.
Y targed ailgyfeirio a’r llwybr dychwelyd yw’r perchnogion y mae pobl yn eu hepgor. Mae anfon porth sy’n dal i bwyntio at 10.42.7.24 yn anfon ysgwyd llaw sy’n cyrraedd at gyfeiriad nad yw’r Pi yn ei feddiant mwyach, felly mae cleientiaid yn amseru allan heb unrhyw linell log ar ochr y gweinydd. Mae’r llwybr dychwelyd yn bwysig pan fydd y ddau gysylltiad i fyny am gyfnod byr, oherwydd mae’r Pi yn ateb o’r rhyngwyneb y mae’r tabl llwybro yn ei ffafrio, ac nid dyna’r un y cyrhaeddodd y pecyn arno bob amser. Mae’r chwiliad llwybr isod yn dangos pa ffynhonnell y mae’r cnewyllyn yn ei dewis.
Darllenwch y socket go iawn cyn i chi ymddiried yn y cyfeiriad newydd
Mae ffeiliau ffurfweddu yn disgrifio’r bwriad ac mae’r socket yn disgrifio’r realiti. Gofynnwch i’r gwasanaeth sy’n rhedeg wrth beth y mae wedi’i rwymo yn lle ymddiried yn y ffurfweddiad rydych chi’n ei gofio. Llawlyfr OpenVPN 2.6 yn diffinio --local fel clymu i un cyfeiriad ac yn nodi bod hepgor yn clymu pob rhyngwyneb.
sudo systemctl cat openvpn-server@server | grep -n -- '--local'
sudo ss -lunp '( sport = :1194 )'
Darllenwch golofn y cyfeiriad lleol yn hytrach na cholofn y cyflwr. Mae llinell sy’n dangos 10.42.7.24:1194 yn golygu bod y socket wedi’i glymu i’r cyfeiriad rydych chi ar fin ei dynnu, tra bod 0.0.0.0:1194 neu *:1194 yn golygu y bydd y daemon yn dilyn y newid rhyngwyneb ar ei ben ei hun. Os yw’r cyfeiriad wedi’i glymu, golygwch y proffil ac ailgychwyn yr uned yn lle ailysgrifennu’r socket byw â llaw, ac yna cadarnhewch fod y gwasanaeth yn dal i gyrraedd ei ffeiliau tystysgrif ac allwedd.
Cerddwch y symudiad mewn trefn sy’n eich cadw’n gyraeddadwy
Mae trefn yn bwysicach na chyflymder yma. Codwch y cysylltiad gwifrog tra bo’r un di-wifr yn dal i weithio, cadarnhewch y cyfeiriad newydd a’r llwybr dychwelyd, ac yna ymddeolwch y proffil di-wifr. Mae’r dilyniant hwnnw’n cadw sesiwn weithredol ar agor nes bod yr amnewidyn wedi’i brofi.
ip -br addr show eth0
ip route get 203.0.113.10
nmcli -g ipv4.method,ipv4.addresses con show "Wired connection 1"
Mae’r gorchymyn cyntaf yn ateb a yw eth0 wedi cael y cyfeiriad roeddech chi’n bwriadu, ac mae’r ail yn argraffu’r cyfeiriad ffynhonnell y byddai’r cnewyllyn yn ei ddefnyddio ar gyfer cyrchfan y tu allan, felly rhedwch ef cyn ac ar ôl y newid. Os mai’r cyfeiriad di-wifr yw’r ffynhonnell honno o hyd, nid yw’r cysylltiad gwifrog yn llwybr a ffefrir eto a bydd y prawf o’r tu allan yn methu am reswm sydd ddim yn ymwneud ag OpenVPN o gwbl. Trwsiwch y ffefryn llwybro cyn i chi gyffwrdd â’r anfon porth.
Gyda’r ddau gysylltiad i fyny, efallai y bydd y Pi yn ffafrio’r llwybr diofyn di-wifr oherwydd iddo gael ei osod yn gyntaf neu oherwydd bod gan y cysylltiad gwifrog fetrig uwch. Ar Bookworm y knôb a gefnogir yw ipv4.route-metric ar y cysylltiad, ac ar Bullseye y cyfwerth yw llinell metric sy’n benodol i’r rhyngwyneb yn dhcpcd.conf. Diraddiwch y cysylltiad di-wifr yn lle ei analluogi, fel bod y llwybr adfer un gorchymyn i ffwrdd.
Profwch y twnnel o’r tu allan, nid o’r LAN
Mae cysylltiad VPN sy’n gweithio o’r soffa yn profi llai nag y mae’n ymddangos. Mae traffig o fewn y LAN i’r cyfeiriad cyhoeddus yn pasio drwy reolau hairpin neu adlewyrchu y mae llwybryddion yn eu gweithredu’n anghyson, felly gall prawf LAN llwyddiannus gydfodoli â llwybr allanol wedi torri. Defnyddiwch ffôn ar ddata symudol, neu unrhyw westeiwr y tu allan i’r rhwydwaith, ar gyfer y prawf derbyn. Cadwch yr ymgais LAN fel diagnostig dewisol ar wahân.
Yna darllenwch y log yn y drefn y mae’r pecynnau yn cyrraedd. Mae dim byd o gwbl yn golygu na chyrhaeddodd yr ysgwyd llaw y Pi erioed, felly mae’r targed ailgyfeirio neu wal dân y gwesteiwr yn anghywir. Mae ysgwyd llaw sy’n cychwyn ac yn stopio yn cyfeirio at allweddi, tystysgrifau neu MTU. Mae sesiwn sy’n cwblhau ac yn gollwng fel arfer yn golygu’r llwybr dychwelyd neu ail lwybr diofyn, ac mae llinell log y cleient Initialization Sequence Completed yn dweud wrthych fod y twnnel ei hun wedi codi.
sudo journalctl -u openvpn-server@server -n 40 --no-pager
sudo tcpdump -ni any udp port 1194 -c 20
Os na fydd dim yn ymddangos yn log y gweinydd tra bo’r cleient yn ceisio eto, stopiwch ddarllen ffurfweddiad OpenVPN a dychwelwch at y targed ailgyfeirio. Mae’r cipiad yn ateb y cwestiwn cyrraedd mewn eiliadau, ac mae pecynnau sy’n dod i mewn heb ateb yn culhau’r broblem i’r llwybr.
Cadwch adfer un cam ac ymddeolwch y proffil di-wifr
Gadewch y proffil di-wifr wedi’i osod nes bod y trefniant gwifrog wedi pasio ailgychwyn. nmcli con show yn rhestru’r enwau proffil y bydd eu hangen arnoch, a rhaid ailadeiladu proffil wedi’i ddileu o’r cof ar yr eiliad waethaf. Cofnodwch enw’r rhyngwyneb, dull y cyfeiriad a’r metrig wrth ymyl y pedwar gwerth arall. Mae adfer y gallwch ei deipio o nodyn yn werth mwy nag un y mae’n rhaid i chi ei ailgreu.
Mae ymddeol y ddibyniaeth ddi-wifr yn newid eiddo yn hytrach na dileu. Mae gosod connection.autoconnect no yn cadw’r manylion mewngofnodi a hanes y cyfeiriad yn gyfan tra bo’r Pi yn cael ei rwystro rhag ailgysylltu â rhwydwaith y symudoch oddi wrthi.
nmcli con show
sudo nmcli con up "Wired connection 1"
sudo nmcli con mod "previously-used-wifi" connection.autoconnect no
Cyn i chi alw’r gwaith yn gyflawn, cadarnhewch bedwar peth: mae’r targed ailgyfeirio yn cyfateb i’r cyfeiriad gwifrog, goroesodd y gwrandawr ailgychwyn, mae cleient o’r tu allan yn cwblhau ysgwyd llaw, ac mae’r Pi yn dal i ateb ar y cyfeiriad gwifrog ar ôl ailgychwyn. Ailgychwyn yw’r ffordd rhatach i ddal aseiniad nad oedd ond yn bodoli yn y cnewyllyn oedd yn rhedeg. Os bydd unrhyw un o’r pedwar yn methu, codwch y proffil di-wifr yn ôl gyda sudo nmcli con up a chymharwch y gwerthoedd a gofnodwyd â’r rhai byw.