systemd-k VPN zerbitzua gelditzen du: egokitu Type= bezeroarekin
Abioan hasten den VPN unitate bat inaktibo geratzen da Type= bezeroaren bizitzarekin bat ez datorrenean. Egokitu mota, konpondu jabetza eta ordenatu zerbitzua tunelaren ondoren.
Unitateak zuzenak eman dezakete, systemctl start-ek arrakasta jakinaraz dezake, eta hamar segundo geroago zerbitzua inaktibo dago. Edo minutu erdiro berrabiarazten da abio-muga gelditu arte. Bi jokabideetako bat ere ez da sareko hutsa: unitateak bezeroak benetan egiten duenarekin bat ez datorren prozesu-bizitza deskribatzen du. Bezeroak fork egin eta irten daiteke, edo saioa konfiguratu eta berehala irten.
Zergatik geratzen den unitatea inaktibo abio zuzenaren ondorengo segundoetan
systemd-k abiarazi zuen prozesutik ondorioztatzen du egoera, beraz Type= prozesu horri buruzko baieztapena da, ez dokumentazioa. Type=simple erabilita, unitatea aktibotzat jotzen da komandoa exekutatzen den bitartean, eta inaktibo geratzen da itzultzen denean. Beraz, konexioa laguntzaile bati eman eta irteten den bezeroa kraskadura bat bezala ikusten da, tunela martxan egon arren. Orduan egunkariak abio eta geldialdi eredu bat erakusten du, eta hondatutako bitar baten moduan irakurtzen da.
Irakurri unitatearen mota bezeroaren jokabidearen ondoan, sare-konfigurazioa ukitu aurretik.
Aukeratu bezeroarekin bat datorren mota
Bi ereduk estaltzen dituzte saltzaileen CLI gehienak: saioa konfiguratu eta irteten den komandoa, eta itzuli aurretik laguntzaile bat forkatzen duen komandoa. Bakoitzak unitate-forma desberdina behar du.
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/bin/protonvpn-cli connect -f
ExecStop=/usr/bin/protonvpn-cli disconnectoneshot eta RemainAfterExit=true elkarrekin unitatea aktibo mantentzen dute komandoa itzuli ondoren, konfiguratu eta irten ereduarekin bat datorrena, eta gelditzeko komandoak itzalaldi garbia ematen dio zerbitzuari. Fork egiten duen bezeroak forma bera mantentzen du, baina Type=forking behar du systemd-ek semea jarraitu dezan. Ezarri Restart=on-failure, RestartSec=30 eta StartLimitBurst finitua, hornitzailearen eten batek akatsa lurperatzen duen berrabiarazte-begizta bihur ez dadin.
Inoiz ez utzi gainbegiratutako bezeroa deimon bihur dadin
systemd-etik kanpoko gainbegiratzaileek horma berarekin egiten dute topo. runit exekuzio-script batek deimon bihurtutako bezeroa abiarazten badu, berehala itzultzen da gainbegiratzailearengana, eta hark itzulera kraskadura gisa irakurri eta beste kopia bat abiarazten du. Gainbegiratzaile orok lehen planoko prozesua edukitzea espero du, sshd -D aurretik geratzen den bezala. Kendu deimon bandera gainbegiratutako komandoetarako, eta utzi gainbegiratzaileari atzeko lana. Tunela existitu aurretik itzultzen diren bilgarri-scriptek nahaste bera eragiten dute.
Bere burua askatzen duen prozesua ikusezina da zaindu behar zuen guztiarentzat.
Saioa amaitzen da eta tunela berekin eramaten du
Mahaigaineko saio batek abiarazten duen bezeroaren jabe da. Amaitu saio-hasiera eta saio-busa desagertu egiten da, tunela berekin eramanez, eta horrek argitzen du zergatik galtzen den askotan bezero grafiko baten konexioa azken leihoa ixtean. Zerbitzariek sistema-unitate bat edo bere kabuz igotzen den NetworkManager profila erabili beharko lukete. Erabiltzaile-unitateak zentzua du soilik tunelak saio-hasierarekin amaitu behar duenean, beraz lotu saio grafikoaren helburuari eta aipatu hori bere deskribapenean.
Zerbitzuaren erabiltzailea arazo beraren beste erdia da. root-en jabetzako eta 0600 moduko gako bat irakurtezina da beste kontu batekin dabilen unitate batentzat, sudo-k zure shell-ean lortu duena edozein izanda ere.
systemctl cat openvpn-server@work
sudo chown -R openvpn:network /etc/openvpn/server
sudo find /etc/openvpn -type f -perm /077 -lsOrdenatu mendekoak helbidea existitzen denean
Deimon batek oraindik sortu gabeko tunel-helbide batera lotzen denean, Cannot assign requested address mezua emanez irteten da. Konponbidea ordenatze esplizitua da, ez berriro saiatzeko begizta bat.
[Unit]
After=network.target [email protected]
Requires=sys-devices-virtual-net-wg0.deviceAfter= lanak ordenatzen ditu, eta gailu-unitateko Requires= mendekoa interfazearen existentziari lotzen dio, sare-helburua soilik itxarotea baino sendoagoa dena. Berriz kargatu kudeatzailea editatu ondoren eta berrabiarazi mendeko zerbitzua, eta gero irakurri bere egunkaria ordenak eragin duela suposatu beharrean. Bidali bezeroaren irteera egunkarira StandardOutput=journal edo log aukera batekin, zeren inork irekitzen ez duen fitxategi batean idazten duen gainbegiratutako bezeroa inoiz abiarazi ez zenaren berdin-berdina ematen du.
Gero berrabiarazi behin eta egiaztatu unitatea aktibo dagoela tunel-gailua agertu ondoren. systemctl start-ekin soilik egiaztatutako konponketa batek ez du probatu konpondu behar zuen abio-ordena.