Dewisais Mewngludo o ffeil… yng Ngosodiadau GNOME, dewis proffil sy'n gweithio gyda chleient y darparwr, a chaeodd y deialog heb ychwanegu unrhyw beth at y rhestr. Ar ail liniadur gorffennodd y mewngludo, ymddangosodd y cysylltiad o dan enw'r proffil, ac yna methodd wrth y cais dilysu cyntaf. Nid yw NetworkManager byth yn rhedeg eich ffeil .ovpn neu wg-quick fel y mae. Mae'n trosglwyddo'r ffeil i parser, mae'r parser yn ei throi i fformat cysylltiad NetworkManager ei hun, ac o hynny ymlaen mae'r twnnel yn cael ei adeiladu o'r gwrthrych parsiedig hwnnw — cyfrineiriau, llwybrau, DNS a phopeth. Felly'r cwestiwn defnyddiol yw nid pam mae'r ffeil yn torri, ond a ddigwyddodd y parsio a beth a gadwodd.

Beth mae mewngludo yn ei wneud mewn gwirionedd â'r ffeil

Ar gyfer OpenVPN, mae'r parser yn byw yn y pecyn ategyn, ac mae'r cysylltiad a grea yn pwyntio at wasanaeth D-Bus fel org.freedesktop.NetworkManager.openvpn. Heb ategyn, heb parser: nid yw'r math yn hysbys i nmcli, ac efallai na fydd y rhestr graffegol o ychwanegu VPN yn dangos unrhyw gofnod mewngludo o gwbl. Mae WireGuard yn wahanol mewn un pwynt pwysig — mae gan NetworkManager ei osodiadau WireGuard ei hun ers cyfres 1.30, felly nid oes pecyn ategyn ar wahân, ond dim ond mewn adeilediadau sy'n ei gludo y mae'r darllenydd wg-quick yn bodoli.

Naill ffordd neu'r llall, darllenir y ffeil unwaith. Ysgrifennir y canlyniad fel keyfile o dan /etc/NetworkManager/system-connections/, wedi'i enwi ar ôl y cysylltiad, yn eiddo i root ac yn annarllenadwy i ddefnyddwyr eraill oherwydd ei fod yn dal y deunydd allweddol. Y keyfile hwnnw yw'r cysylltiad nawr; nid yw golygu'r .ovpn gwreiddiol wedyn yn newid dim.

Mae tri symptom yn perthyn i dri cham gwahanol. Dim cofnod mewngludo neu fath anhysbys sy'n golygu bod yr ategyn neu'r fersiwn ar goll. Gwall mewngludo sy'n enwi cyfarwyddeb sy'n golygu bod y parser wedi darllen y ffeil ac wedi gwrthod rhan ohoni. Cysylltiad sy'n bodoli ond nad yw byth yn actifadu sy'n golygu bod y gwrthrych parsiedig yn anghyflawn neu fod y gweinydd yn ei wrthod. Penderfynwch pa un o'r tri achos sydd gennych cyn golygu unrhyw beth.

Cadarnhewch yr ategyn cyn dadfygio'r proffil

Mae ategyn ar goll yn edrych yn union fel proffil llygredig, felly gwiriwch y pecyn yn gyntaf. Ar Debian ac Ubuntu daw cymorth OpenVPN fel network-manager-openvpn ynghyd â chynorthwyydd bwrdd gwaith; ar Fedora'r pecynnau yw NetworkManager-openvpn a NetworkManager-openvpn-gnome; ar Arch networkmanager-openvpn yw hi.

dpkg -l network-manager-openvpn-gnome | tail -n 2
rpm -q NetworkManager-openvpn
pacman -Q networkmanager-openvpn

Yna mewngludwch o lwybr absoliwt: nmcli connection import type openvpn file /home/you/profile.ovpn. Mae llwybrau cymharol fel arfer yn gweithio, ond mae cragen sydd wedi newid cyfeiriadur yn troi mewngludo cyflym yn ffordd hir. Ar gyfer WireGuard gwiriwch nmcli --version a gwnewch yn siŵr bod ochr y cnewyllyn yn bodoli gyda modprobe wireguard; mae mewngludo sy'n llwyddo ar beiriant heb y modiwl yn eich gadael â chysylltiad nad yw ei ddyfais byth yn ymddangos. cyfeirlyfr nmcli yn dogfennu'r is-gorchymyn import a'r enwau math a dderbynnir. Os gwrthodir type wireguard yn syth, mae'r adeilediad yn hŷn na'r nodwedd hon, a'r cam cywir yw pecyn dosbarthu neu backport — nid copïo'r ffurfweddiad i gyfeiriadur mympwyol gan obeithio y bydd rhywbeth yn ei ddarllen.

Darllenwch gysylltiad OpenVPN, nid y .ovpn

Unwaith y bydd'r cysylltiad yn bodoli, darllenwch y gosodiadau parsiedig yn lle ailddarllen y ffeil: nmcli connection show "Work VPN" | grep -E '^vpn\.'. Rydych chi eisiau'r remote a'r porth, y cludiant, y deunydd hunaniaeth — ca, cert, key, tls-auth neu tls-crypt — a'r dull dilysu. Mewn proffil â chyfrinair allwedd breifat, ychwanegwch sudo nmcli --show-secrets connection show "Work VPN" a syllwch ar y secret flags: 0 yw none, felly mae'r gyfrinach yn y keyfile; 1 yw agent-owned; 2 yw not-saved, sy'n golygu nad yw byth yn cael ei hysgrifennu i'r keyfile; 4 yw not-required, sy'n golygu nad oes angen cyfrinach o gwbl. Bitau ydynt, nid graddfa, felly 3 yw agent-owned ynghyd â not-saved yn syml. Cyfrinach sy'n gofyn unwaith y sesiwn yw agent-owned (1), gyda'r asiant yn gofyn amdani; nid oes rhif baner ar wahân ar gyfer hynny. Mae anghysondeb baneri yn rheswm cyffredin dros i broffil gysylltu o apled bwrdd gwaith a methu o sgript neu wrth gychwyn.

Y ffordd gyflymaf i weld beth a fwriwyd gan y parser yw gofyn i'r ategyn ysgrifennu'r ffeil yn ôl ac yna ei chymharu: nmcli connection export "Work VPN" /tmp/roundtrip.ovpn. Ni fydd cyfarwyddebau sy'n diflannu yn y diff hwnnw yn bodoli adeg cysylltu. Hookiau yw'r arferol o amheuon — mae script-security, up, down a route-up yn disgwyl sgript sy'n rhedeg â breintiau uwch ac yn cael eu hepgor yn fwriadol. Peidiwch â gostwng y dilysu na rhoi breintiau ychwanegol er mwyn i fewngludo lwyddo; mae opsiwn heb ei gefnogi fel arfer yn adlewyrchu set nodweddion yr ategyn yn hytrach na gweinydd anghyraeddadwy. Symudwch yr ymddygiad hwnnw i sgript dispatcher NetworkManager neu i bolisi ochr y gweinydd.

Cadarnhewch hefyd fod y meysydd hunaniaeth wedi goroesi: y cyfeirnod CA, remote-cert-tls ac unrhyw wiriad enw yr oedd y proffil yn dibynnu arno. Gall cysylltiad sy'n codi heb y rhain fod yn siarad â unrhyw beth sy'n ateb yn y cyfeiriad hwnnw.

Darllenwch gysylltiad WireGuard, nid y ffeil wg-quick

Mae ffeil wg-quick yn fformat â semanteg cragen; mae'r cysylltiad a fewngludwyd yn set o osodiadau. Mae PrivateKey yn dod yn allwedd breifat y rhyngwyneb, mae Address yn dod yn un neu fwy o gyfeiriadau IPv4 ac IPv6, mae DNS yn mapio i briodweddau resolver NetworkManager, mae MTU yn mapio i wireguard.mtu (datganiad diofyn wg-quick ei hun yw 1420), ac mae pob bloc peer yn dod yn gofnod peer gydag allwedd gyhoeddus, endpoint, IPau a ganiateir a persistent keepalive. Argraffwch yr hyn a gadwyd gyda nmcli --show-secrets connection show wg0; os nad yw'r rhestr peer yn ymddangos yn yr allbwn hwnnw, darllenwch y keyfile:

sudo sed -n '/^\[wireguard\]/,/^\[/p' /etc/NetworkManager/system-connections/wg0.nmconnection

Yr hyn nad yw'n goroesi yw hanner cragen wg-quick. Mae PreUp, PostUp, PreDown, PostDown a Table yn ymddygiad y teclyn hwnnw, nid yn briodweddau rhyngwyneb WireGuard, felly nid oes dim yn eu rhedeg ar ôl mewngludo. Os defnyddiodd y gwreiddiol Table = off i adael y llwybr diofyn yn llonydd, mae rhyddhau diweddar NetworkManager yn cynnig ip4-auto-default-route ac ip6-auto-default-route at yr un diben; gosodwch y rhain yn eglur yn lle tybio bod y cysylltiad yn ymddwyn fel y sgript. Mae hook a oedd yn gwthio llwybr cyfaddas yn angerdd y llwybr hwnnw yng ngosodiadau llwybro'r cysylltiad, fel arall bydd ar goll.

Rhowch i'r cysylltiad un perchennog yn union

Y methiant dilynol clasurol yw cysylltiad sy'n gweithio tan y cychwyn nesaf ac yna'n mynd mewn dolen. Fel arfer roedd [email protected] yn dal i fod wedi'i alluogi o arbrawf cynharach, neu roedd cleient y darparwr yn lansio ei daemon ei hun, a dau berchennog yn ysgrifennu llwybrau a DNS ar gyfer yr un cyrchfan. Mae NetworkManager yn gosod y resolver ar hyd ei lwybr ei hun, mae wg-quick yn ysgrifennu drwy resolvconf, a'r ysgrifennwr olaf sy'n ennill — felly mae datrys enwau yn gweithio, yna'n stopio, yna'n gweithio eto. Gwiriwch systemctl status wg-quick@wg0, nmcli connection show --active a ip link show type wireguard, yna analluogwch yr ail berchennog yn hytrach na thrin ei metric.

Os oes wir angen y ddau arnoch, rhowch ryngwynebau ar wahân ac IPau a ganiateir nad ydynt yn gorgyffwrdd iddynt, a gadewch i un yn union ohonynt osod y llwybr diofyn. Nid yw dau lwybr diofyn â metric gwahanol yn split tunnel; mae'n ras a benderfynir gan y gwasanaeth sy'n cychwyn yn ail. Ac ar ôl ailgysylltu, archwiliwch y cyflwr a gymhwyswyd eto — nid yw golygiad llaw unwaith o'r resolver sy'n gwneud i bethau weithio yn brawf bod y mewngludo yn gyflawn.

Gwiriwch â thraffig a goroeswch ailgychwyn

Codwch y cysylltiad gyda nmcli connection up "Work VPN", yna darllenwch gyflwr, cyfeiriad a llwybrau yn lle ymddiried yn yr eicon: nmcli device show wg0 | grep -E 'GENERAL.STATE|IP4.ADDRESS|IP4.ROUTE', ip route show default ac ymholiad go iawn am enw nad yw'n datrys ond y tu mewn i'r twnnel. Mae handshake neu ping llwyddiannus yn profi dim ond bod y cryptograffeg yn gweithio; nid yw'n dweud dim am anfon ymlaen, rhagddodiadau split tunnel na DNS preifat, a'r rhannau hynny sy'n torri fel arfer.

Yna ailgychwynnwch ac ailadroddwch. Mae ymddygiad autoconnect, rhyngwyneb wedi'i ail-enwi ac ategyn sy'n llwytho ar ôl y ddyfais i gyd yn fethiannau a welwch yn unig ar gychwyn glân. Mae journalctl -u NetworkManager -b --no-pager | tail -n 40 yn dangos beth wnaeth y daemon â'r cysylltiad hwn yn y cychwyn hwn. Ar gyfer ail gyfrifiadur, copïwch y keyfile a'i gadw'n eiddo i root gyda modd 600, neu ddefnyddiwch nmcli connection export ar gyfer OpenVPN ac ailfewngludo'r .ovpn sy'n deillio — nid oes cyfatebyn WireGuard i'r llwybr allforio, felly copi ffeil neu fewngludo newydd o'r gwreiddiol gwarchodedig yw'r cyfeiriad hwnnw.

Fersiwn fer, yn ôl trefn: cadarnhewch yr ategyn neu fersiwn NetworkManager, mewngludwch o lwybr absoliwt, darllenwch y gosodiadau parsiedig gan gynnwys y secret flags, cymharwch allbwn OpenVPN â'r gwreiddiol, gwiriwch hookiau a llwybrau ar ochr WireGuard, analluogwch unrhyw ail berchennog, ac yna ar ôl ailgychwyn gwiriwch ddatrysiad enw a'r tabl llwybrau. Pan fydd cysylltiad yn pasio'r cyfan, gall y ffeil proffil a'i chychwynnodd ddychwelyd i storfa warchodedig.

Erthyglau cysylltiedig