Mae’r gorchymyn yn dychwelyd, mae’r gwasanaeth yn dangos fel wedi methu, ac nid oes unrhyw beth tebyg i esboniad yn cyrraedd y terfynell. Y distawrwydd hwnnw yw’r symptom y mae pobl yn ei ddisgrifio fel «OpenVPN yn methu cychwyn», ac mae bron byth yn golygu bod y rhaglen wedi marw heb ddweud dim. Mae’n golygu bod y neges wedi mynd i sianel nad oeddech yn ei darllen, neu nad oedd yr hyn a gychwynnoch yn beth y gwnaethoch ei ffurfweddu. Gellir diagnosio’r ddau achos mewn llai na munud unwaith y byddwch yn rhoi’r gorau i drin y proffil fel y sawl a amheuir.

Mae pedwar lle yn amsugno’r allbwn: journal yr uned, y plwg sy’n berchen ar y cysylltiad, pen arall y twndel, a deuaidd gwahanol i’r un rydych yn meddwl sy’n rhedeg. Mae gan bob un ei wiriad ei hun.

Mae distawrwydd yn golygu nad oeddech yn gwylio’r sianel gywir

Mae galwad blaen yn argraffu i’ch terfynell. Mae uned yn argraffu i’r journal, a gall uned sydd wedi methu adael cyn iddi ysgrifennu dim o gwbl os yw’r methiant yn y ffordd y cafodd ei chychwyn yn hytrach na’r hyn a ddywedwyd wrthi. Mae’r gwahaniaeth yn bwysig: nid oes cofnod yn y journal yn golygu na redodd y broses erioed mewn gwirionedd, tra bod un cofnod yn dilyn allanfa yn golygu iddi redeg a gwrthod rhywbeth.

systemctl status openvpn-client@office
journalctl -u openvpn-client@office -b --no-pager

Ychwanegwch systemctl show -p Result -p ExecMainStatus openvpn-client@office i wahanu allanfa lân oddi wrth signal. Mae statws 1 gyda Result=exit-code yn benderfyniad rhaglen; Result=signal neu derfyn amser sy’n pwyntio at yr amgylchedd yn lle hynny, ac ni fydd unrhyw faint o olygu proffil yn newid hynny. Cofnodwch y ddau werth cyn ailgychwyn unrhyw beth, oherwydd mae ailgychwyn yn clirio’r cyflwr dros dro a’u cynhyrchodd.

Mae enw’r enghraifft yn rhan o’r llwybr

Nid yw uned templed wedi’i phecynnu yn cymryd llwybr ffeil. Mae’n cymryd enw enghraifft, ac mae’r enw hwnnw’n cael ei atodi at gyfeiriadur i ddod o hyd i’r proffil: office yn datrys i /etc/openvpn/client/office.conf yng nghyflwyniad Debian ac Ubuntu. Mae ffeil o’r enw office-v2.conf wedi’i chychwyn fel @office byth yn cael ei darllen, ac mae’r uned yn gadael yn dawel oherwydd o’i safbwynt nid oedd dim i’w wneud. Mae’r cyfeiriadur chwilio yn wahanol rhwng modd cleient a modd gweinydd, felly mae’r un camgymeriad yn pwyntio i rywie hollol wahanol pan fyddwch yn newid templed.

Yr anghysondeb hwnnw yw’r ffynhonnell fwyaf cyffredin o’r methiant distaw, ac mae’n anweledig yn y proffil oherwydd mae’r proffil yn iawn. Rhestrwch beth sydd mewn gwirionedd yn bodoli a chymharwch y ddau enw nod wrth nod, gan gynnwys unrhyw estyniad y mae’r pecyn yn ei ddisgwyl.

ls -l /etc/openvpn/client/
systemctl list-units 'openvpn*' --all

Os yw’r uned wedi’i galluogi ond nad oes unrhyw enghraifft wedi’i rhestru, gall y galluogi ei hun gyfeirio at enw a gafodd ei ailenwi yn ddiweddarach. Mae ailalluogi’r enghraifft gywir fel arfer yn ddigon, ac mae’n werth dileu’r hen ffeil uned sy’n cael ei gadael fel na fydd yn drysu’r person nesaf. Mae ffeil uned sydd ar ôl yn beth bach sy’n costio awr i rywun yn ddiweddarach.

Pan fo’r plwg yn berchen ar y twndel, nid yw’r terfynell yn gweld dim

Mae cysylltiad a gychwynnir o aplyd y bwrdd gwaith yn cael ei berchen gan NetworkManager, ac mae ei allbwn OpenVPN yn mynd i journal y gwasanaeth hwnnw yn hytrach nag i unrhyw gragen sydd gennych ar agor. Mae rhedeg y cleient â llaw a gweld dim byd yn ddisgwyliedig yn y trefniant hwnnw, oherwydd nid y broses a redir â llaw yw’r un sy’n cario’r cysylltiad.

Chwiliwch y journal am y gwasanaeth sy’n berchen arno, yna atgynhyrchwch y parsio gyda manylder y gallwch ei ddarllen. Mae’r ddau orchymyn isod yn edrych ar wahanol berchnogion o’r un methiant.

journalctl -b -u NetworkManager --no-pager | grep -i -A3 openvpn
openvpn --config /etc/openvpn/client/office.conf --verb 4 --log /tmp/ovpn.log

Mae’r rhedeg annibynnol ar gyfer darllen negeseuon, nid ar gyfer disodli’r cysylltiad a reolir, ac mae’r ddau yn wahanol wedyn: mae integreiddio DNS, llwybrau a hyd oes yn perthyn i’r plwg. Nid yw trwsio gwall parsio yn y rhedeg annibynnol yn trwsio datrysiad enwau yn awtomatig unwaith y bydd yr aplyd yn cymryd drosodd, felly cadwch y ddau arsylwad ar wahân.

Dau ddeuaidd, un PATH

Mae adeiladwaith â llaw wedi’i osod o dan /usr/local yn ennill ar gyfer galwad cragen, oherwydd mae /usr/local/sbin yn dod o flaen /usr/sbin ar PATH rhagosodedig Ubuntu. Nid yw uned yn defnyddio eich PATH; mae’n rhedeg y llwybr absoliwt a ysgrifennwyd yn ExecStart. Felly gall y fersiwn sy’n gweithio yn eich terfynell a’r fersiwn sy’n methu fel gwasanaeth fod yn raglenni gwirioneddol wahanol.

Cymharwch y ddau cyn ailadeiladu unrhyw beth. Y trydydd gorchymyn sy’n penderfynu’r ddadl.

command -v openvpn
whereis openvpn
systemctl cat openvpn-client@office | grep ExecStart

Mae un gwahaniaeth amgylchedd arall yn cuddio yn yr un lle. Mae uned wedi’i phecynnu yn dibynnu ar gyfeiriadur amser rhedeg o dan /run y mae systemd yn ei greu ar ei chyfer; gall uned amnewid wedi’i hysgrifennu â llaw sy’n hepgor y gosodiad hwnnw fethu cyn iddi agor un ffeil, ac mae’r methiant yn edrych fel gwrthodiad cyffredinol heb unrhyw neges OpenVPN.

Methiannau na all y cleient eu hadrodd

Mae rhai canlyniadau’n cael eu penderfynu yn y pen draw. Mae porth sydd yn ateb â statws HTTP ac yn cau’r cysylltiad wedi dweud wrthych am ei gyflwr ei hun, a’r cam nesaf defnyddiol yw ei log neu’r cyfrif y tu ôl i’r cymhwyster, yn hytrach na’ch ffeiliau lleol. Nid oes dim lleol wedi torri yn y senario hwnnw, ac mae golygu’r proffil i wneud iawn yn gwneud y diagnosis nesaf yn anos. Darllenwch y log hwnnw cyn i chi gyffwrdd â ffurfweddiad y cleient.

Achos distaw arall yw cleient sy’n gweithio’n gywir. Nid yw twndel modd cleient byth yn gwrando ar borth, felly ni fydd gwiriad sy’n disgwyl gwrandawr agored yn adrodd dim byd ac yn edrych fel methiant. Cadarnhewch pa fodd y gwnaethoch ei gychwyn cyn dod i gasgliad o restr porth wag.

Gweithiwch y haenau yn eu trefn: a yw’r uned yn bodoli ac a yw enw’r enghraifft yn gywir, a gyrhaeddodd unrhyw beth y journal neu’r ffeil --log, pa ddeuaidd a phroffil a redodd mewn gwirionedd, ac a yw’r methiant yn lleol neu’n bell. Mae pob ateb yn tynnu haen. Mae dechrau o’r proffil yn golygu ailysgrifennu ffeil na chafodd ei hagor erioed efallai.

Erthyglau cysylltiedig