Rhowch orchymyn ailgysylltu yn y bachyn cysgu ac mae'r broblem yn edrych yn ddatrysedig. Dim ond os yw'r bachyn yn rhedeg ar ôl i'r rhwydwaith fodoli y mae wedi'i ddatrys, fel hunaniaeth y mae'r cleient yn ei hadnabod, trwy lwybr y mae'r cleient yn ei weithredu mewn gwirionedd. Mae'r rhan fwyaf o fethiannau ar ôl ailddechrau yn un o'r tri hynny, ac nid oes yr un ohonynt yn ymddangos fel gwall yn y bachyn ei hun. Mae'r bachyn yn dychwelyd llwyddiant beth bynnag.

Nid yw sgript sy'n gadael gyda sero wedi dweud unrhyw beth wrthych am a ddaeth twnnel yn ôl.

Mae'r bachyn yn rhedeg, a wedyn?

#!/bin/sh
case "$1" in
  pre)
    vpn-client disconnect
    ;;
  post)
    vpn-client connect
    ;;
esac

Mae pob digwyddiad yn galw'r bachyn ddwywaith, o flaen a thu ôl i'r trawsnewidiad, gan roi'r cyfnod ac enw'r digwyddiad iddo. Mae'n rhedeg fel root ag amgylchedd lleiaf, felly mae llwybrau absoliwt yn angenrheidiol ac ni ddylid disgwyl unrhyw newidyn sesiwn penbwrdd. Nid yw'r ddau alwad yn dychwelyd yn gyflym yn dweud dim ond bod y sgript wedi rhedeg. Mae a gododd y proffil wedyn yn arsylliad ar wahân ac mae angen ei dystiolaeth ei hun yn y log.

Triniwch y ddadl cyfnod fel rhan o'r cynllun. Mae ymgais i ailgysylltu yn y cyfnod pre yn digwydd tra bod y peiriant ar fin colli popeth, ac ni all lwyddo.

Root, amgylchedd lleiaf, defnyddiwr anghywir

Os yw'r cleient yn cadw ei docyn mewngofnodi fesul defnyddiwr, mae rhedeg y bachyn fel root yn ei adael heb ddim i'w gyflwyno. Gwiriwch y cyflwr o dan yr hunaniaeth y mae'r bachyn yn ei defnyddio mewn gwirionedd, nid yr un a brofon chi o derfynell penbwrdd. Mae rhai adeiliadau hefyd yn gadael daemon yn dal y rhyngwyneb ar ôl datgysylltu, felly mae ailgysylltu yn glanio mewn cyflwr hen, ac mae clirio'r broses yn gyntaf yn ei adfer ar gost cau aflân. Nid oes yr un o'r ddau ymddygiad yn weladwy os mai dim ond y llwybr hapus a brofir gennych.

Ysgrifennwch y bachyn gyda llwybrau absoliwt, cadwch ef ym mherchnogaeth root ac yn weithredadwy, a chofnodwch beth a wnaeth. Heb y log hwnnw mae'r ymchwiliad nesaf yn dechrau o sero.

Nid yw cysylltu awtomatig yn llwybr y VPN

Mae NetworkManager yn cynnig dau fecanwaith actifadu: baner cysylltu awtomatig ar y proffil, a chysylltiadau eilaidd sy'n dechrau pan fydd proffil sylfaenol yn actifadu. Mae mathau o ddyfeisiau brodorol yn gweithredu'r cyntaf; yn hanesyddol dim ond yr ail y mae ategion VPN wedi'i weithredu, felly gall ticio cysylltu awtomatig ar broffil OpenVPN fod heb unrhyw effaith o gwbl. Archwiliwch y ddau briodwedd, yna atodwch y VPN fel un eilaidd i'r proffil Wi-Fi neu Ethernet yn lle hynny.

[Unit]
PartOf=NetworkManager.service
Requires=NetworkManager-wait-online.service
After=NetworkManager-wait-online.service

Mae rhyngwyneb WireGuard a reolir gan uned systemd angen y drop-in hwnnw yn lle bachyn, wedi'i drefnu ar ôl i'r rhwydwaith fod ar-lein.

Arhoswch am y rhwydwaith, gyda nenfwd

timer=1
while ! ping -c1 -n -w1 203.0.113.1 >/dev/null; do
  sleep 1; timer=$((timer+1))
  [ $timer -ge 300 ] && exit 0
done
nmcli connection up "work-vpn"

Wrth ailddechrau gall y twnnel gael ei ofyn tra bod Wi-Fi yn dal i ailgysylltu, sy'n gwneud unrhyw gysgu sefydlog yn ddyfaliad. Arhoswch am gyfeiriad cyraeddadwy, yna codwch y proffil, a chapio'r aros fel na all bachyn ddal llwybr yr ailddechrau yn agored yn amhenodol. Mae'n well gennych enw'r proffil na mynegai rhifol, ac os yw'r proffil cywir yn amrywio yn ôl rhwydwaith, gadewch i'r twnnel iach gofnodi ei ddewis i ffeil ymlaen llaw.

Gwarchodwch rhag stormydd ailgychwyn hefyd, drwy gyfrif ymdrechion a stopio. Mae gwyliadur sy'n ymateb i bob prawf methu yn troi un methiant yn ddolen.

Ataliwch unwaith, yna darllenwch y cyfnodolyn am allbwn y bachyn ei hun. Dyna'r unig brawf sy'n profi'r trefn.

Erthyglau cysylltiedig