Kiel movi Raspberry Pi VPN-servilon al Ethernet
Movi Raspberry Pi VPN-servilon de Wi-Fi al Ethernet sen ŝanĝi la nomon de la finpunkto, la bindon de la aŭskultanto, la pordan plusendon aŭ la unuŝtupan retrovojon.
Ŝanĝi la Pi de Wi-Fi al kablo aspektas kiel kvimminuta laboro, kaj ĝi restas tia nur se vi traktas la movon kiel kvar apartajn agordojn anstataŭ unu. La nomo de la finpunkto, kiun viaj klientoj vokas, povas resti ĝuste la sama dum la adreso sub ĝi ŝanĝiĝas. Kio vere rompiĝas estas aŭskultanto fiksita al la malnova adreso, porda plusendo ankoraŭ celanta la sendratan luon, aŭ revena vojo kiu eliras tra la interfaco, kiun vi pensis, ke vi retiriĝis. Ĉi tiu gvidilo tenas malfermitan rekuperan vojon ĉe ĉiu paŝo, do malsukcesa transiro kostas nur restarton.
Notu la kvar respondeculojn antaŭ ol vi malŝtopi ion ajn
Kvar agordoj decidas, ĉu la transiro pluvivos: la adreso de la Pi, la binda adreso OpenVPN, la plusenda celo de la enkursigilo kaj la vojo, kiun prenas respondoj. Notu ĉiujn kvar antaŭ ol tuŝi la kablon, ĉar post kiam la sendrata luo malaperas, vi ne plu povas legi la malnovajn valorojn de la maŝino. La drata interfaco ne heredas la sendratan profilon, kaj en Bookworm la adreso loĝas en NetworkManager dum Bullseye tenas ĝin en dhcpcd.conf. Rezervo, kiu fiksis la sendratan MAC-adreson, diras nenion pri eth0. Traktu la novan adreson kiel novan atribuon, kiu bezonas sian propran pruvon.
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
La aŭskultanto estas la dua respondeculo. Se la servo estis lanĉita kun specifa binda adreso, la soketo mortas kun la malnova interfaco; se ĝi bindas ĉiujn adresojn, la soketo pluvivas kaj la regulo de la enkursigilo fariĝas la sola restanta afero por ripari.
La plusenda celo kaj la revena vojo estas la respondeculoj, kiujn homoj preterlasas. Plusendo, kiu ankoraŭ montras al 10.42.7.24, sendas alvenantajn manpremojn al adreso, kiun la Pi jam ne havas, do klientoj tempolimas sen iu ajn servila protokola linio. La revena vojo gravas, kiam ambaŭ ligiloj estas mallonge aktivaj, ĉar la Pi respondas el la interfaco, kiun la enkursiga tabelo preferas, kaj tio ne ĉiam estas la interfaco, sur kiu la pako alvenis. La enkursiga serĉo sube montras, kiun fonton la kerno elektas.
Legu la faktan soketon antaŭ ol fidi la novan adreson
Agordaj dosieroj priskribas la intencon kaj la soketo priskribas la realon. Demandu la kurantan servon, al kio ĝi estas bindita, anstataŭ fidi la agordon, kiun vi memoras. La manlibro de OpenVPN 2.6 difinas --local kiel bindon al unu adreso kaj rimarkigas, ke preterlaso bindas ĉiun interfacon.
sudo systemctl cat openvpn-server@server | grep -n -- '--local'
sudo ss -lunp '( sport = :1194 )'
Legu la kolumnon de la loka adreso anstataŭ la statan kolumnon. Linio, kiu montras 10.42.7.24:1194 signifas, ke la soketo estas fiksita al la adreso, kiun vi baldaŭ forigos, dum 0.0.0.0:1194 aŭ *:1194 signifas, ke la demono mem sekvos la interfacan ŝanĝon. Se la adreso estas fiksita, redaktu la profilon kaj restartigu la unuon anstataŭ mane reproskribi la vivan soketon, kaj poste konfirmu, ke la servo ankoraŭ atingas siajn atestilajn kaj ŝlosilajn dosierojn.
Iru la movon laŭ ordo, kiu tenas vin atingebla
La ordo gravas ĉi tie pli ol la rapideco. Starigu la dratan ligilon dum la sendrata ankoraŭ funkcias, konfirmu la novan adreson kaj la revenan vojon, kaj poste retiru la sendratan profilon. Tiu sinsekvo tenas funkciantan sesion malfermita ĝis la anstataŭanto estos pruvita.
ip -br addr show eth0
ip route get 203.0.113.10
nmcli -g ipv4.method,ipv4.addresses con show "Wired connection 1"
La unua komando respondas, ĉu eth0 ricevis la adreson, kiun vi intencis, kaj la dua presas la fontan adreson, kiun la kerno uzus por ekstera celo, do rulu ĝin antaŭ kaj post la ŝanĝo. Se tiu fonto estas ankoraŭ la sendrata adreso, la drata ligilo ankoraŭ ne estas la preferata vojo kaj la testo de ekstere malsukcesos pro kialo, kiu havas nenion komunan kun OpenVPN. Riparu la enkursigan preferon antaŭ ol tuŝi la plusendon.
Kun ambaŭ ligiloj aktivaj, la Pi eble preferas la sendratan implicitan vojon ĉar ĝi estis instalita unue aŭ ĉar la drata ligilo portas pli altan metrikon. En Bookworm la subtenata regilo estas ipv4.route-metric sur la konekto, kaj en Bullseye la ekvivalento estas interfaca metric-linio en dhcpcd.conf. Malaltigu la sendratan ligilon anstataŭ malŝalti ĝin, por ke la retrovojo restu unu komandon for.
Pruvu la tunelon de ekstere, ne de la LAN
VPN-konekto, kiu funkcias de la sofo, pruvas malpli ol ĝi ŝajnas. Trafiko de interne de la LAN al la publika adreso pasas tra hairpin aŭ reflektaj reguloj, kiujn enkursigiloj implementas malkonsekvence, do sukcesa LAN-testo povas kunekzisti kun rompita ekstera vojo. Uzu telefonon kun poŝtelefonaj datumoj, aŭ ajnan gastiganton ekster la reto, por la akcepta testo. Tenu la LAN-provon kiel apartan laŭvolan diagnozon.
Poste legu la protokolon laŭ la ordo, en kiu la pakoj alvenas. Nenio tute signifas, ke la manpremo neniam atingis la Pi, do la plusenda celo aŭ la gastiga fajroŝirmilo estas malĝusta. Manpremo, kiu komenciĝas kaj haltas, indikas ŝlosilojn, atestilojn aŭ MTU. Sesio, kiu kompletiĝas kaj falas, kutime signifas la revenan vojon aŭ duan implicitan vojon, kaj la protokola linio de la kliento Initialization Sequence Completed diras al vi, ke la tunelo mem leviĝis.
sudo journalctl -u openvpn-server@server -n 40 --no-pager
sudo tcpdump -ni any udp port 1194 -c 20
Se nenio aperas en la servila protokolo dum la kliento reprovas, ĉesu legi la OpenVPN-agordon kaj reiru al la plusenda celo. La kaptaĵo respondas la alvenan demandon en sekundoj, kaj envenantaj pakoj sen respondo mallarĝigas la problemon al la vojo.
Tenu unuŝtupan retrovon kaj retiru la sendratan profilon
Lasu la sendratan profilon instalita ĝis la drata aranĝo trapasis restarton. nmcli con show listigas la profilnomojn, kiujn vi bezonos, kaj forviŝita profilo devas esti rekonstruita el memoro en la plej malbona momento. Notu la interfacan nomon, la adresan metodon kaj la metrikon apud la aliaj kvar valoroj. Retrovo, kiun vi povas tajpi el noto, valoras pli ol unu, kiun vi devas rekonstrui.
Retiri la sendratan dependon estas posedaĵa ŝanĝo anstataŭ forigo. Agordante connection.autoconnect no la akreditaĵoj kaj la adresa historio restas sendifektaj dum la Pi estas malhelpata rekonektiĝi al reto, de kiu vi foriris.
nmcli con show
sudo nmcli con up "Wired connection 1"
sudo nmcli con mod "previously-used-wifi" connection.autoconnect no
Antaŭ ol vi nomos la laboron finita, konfirmu kvar aferojn: la plusenda celo kongruas kun la drata adreso, la aŭskultanto travivis restartron, kliento de ekstere kompletigas manpremon, kaj la Pi ankoraŭ respondas sur la drata adreso post restarto. Restarto estas la plej malmultekosta maniero kapti atribuon, kiu ekzistis nur en la kuranta kerno. Se iu el la kvar malsukcesas, restarigu la sendratan profilon per sudo nmcli con up kaj komparu la notitajn valorojn kun la vivaj.