nordvpn демонго жетүү мүмкүн эмес деп жатат: socket, топ же unit?
Туннель толук иштей бериши мүмкүн; CLI жөн гана nordvpnd менен болгон socket байланышын жоготкон. Буйруктан unitке, анан socket укуктарына өтүңүз жана биринчи ийгиликсиздикте токтоңуз.
nordvpn иштетип, жеткиликсиз демон тууралуу билдирүү алуу — адатта сиз буга чейин кечигип калганда келүүчү тар нааразылык. Ал туннелдин иштеши тууралуу эч нерсе айтпайт, анткени CLI болгону алдыңкы бөлүк: ал Unix socket аркылуу фондук процессти менен сүйлөшөт, ал эми билдирүү ошол сүйлөшүү болбогонун билдирет. Буйруктан сыртка карай жүрүңүз жана жалган болуп чыккан биринчи нерседе токтоңуз.
Ката көрүнгөн жерден баштаңыз
Бул жерде эки процесс катышат жана аларды аралаштыруу ушуну сырдуу кылат. Демон туннелге ээ жана /run/nordvpn/ астындагы socket-те угат. Сиз терген буйрук интерфейстерге өзү тийбестен, ошол socket-ке туташат.
Socket жок болгондо же туташуудан баш тартканда, CLIнин сурай турган эч кимиси жок, ошондуктан ошол эле нааразылыктын «колдонуучу демону» же «системалык демон» вариантын билдирет. Ошол варианттардын бири жолду түздөн-түз атайт, жана бул бүт сүйлөшүүдөгү эң пайдалуу сүйлөм.
Баарынан мурун unit-ти текшериңиз
Кызмат менеджеринен демон иштеп жатабы деп сураңыз, эгер жок болсо, аны бир кадам менен иштетип, күйгүзүңүз:
systemctl status nordvpnd
sudo systemctl enable --now nordvpnd
nordvpn version
Эгер unit бар болсо, бирок активдүү эмес болсо, enable --now аны иштетет жана кийинки жүктөөнү да жөнгө салат. Эгер unit жок болсо, пакет сиз ойлогон пакет эмес, жана орнотулган ат жазууларыңыздагы аттан маанилүүрөөк. Бул ошол белги астында эч качан орнотулбаган кызматты күйгүзүүгө жыйырма мүнөт сарптаганга чейин майда айырма болуп көрүнөт. Бар нерсени окуп, ошого жараша аракет кылыңыз.
unit файлдарын тизмелөө муну бир буйрук менен чечет, жана орнотуу тууралуу кандайдыр бир тыянак чыгарганга чейин муну кылууга татыктуу:
systemctl list-unit-files 'nordvpn*'
service --status-all
Чыгарылыштар кызматты бирден ашык unit аты менен жеткирген, ошондуктан nordvpn ордуна nordvpnd колдонгон build ушул катанын так көчүрмөсүн жаратат, ал эми ден соолугу жакшы кызмат так жанында иштеп турат.
Socket жана анын тобу жеткиликтүүлүктү чечет
Демон иштеп турса да, туташуу укуктарга байланыштуу четке кагылышы мүмкүн. Орнотуучу nordvpn тобун түзөт жана socket ошого ылайык ээлик кылат, ошондуктан ошол топтон тышкары колдонуучу четке кагылат, ал эми кызмат толугу менен ден соолугу жакшы.
sudo usermod -aG nordvpn "$USER"
newgrp nordvpn
Топко мүчөлүк сессия башталганда окулат, ошондуктан өзгөртүү сиз жасаган терминалда иштебей жаткандай көрүнөт. Иштеп жаткан сессия жаңы топту көргөнгө чейин жаңы кирүү shell же newgrp керек. Жаңы shell-де сынаңыз, буйрукту жаңы эле аткарган shell-де эмес. Болбосо түзөтүү ийгиликсиз болду деп тыянак чыгарасыз, бирок ал жөн гана колдонула элек.
Socketтин өзүнө ээлик ошол текшерүүнүн экинчи жарымы. Socket-теги топту CLI иштеткен shell билдирген топтор менен салыштырыңыз, жана укук маселеси кайра орнотуунун ордуна бир кадам менен чечилет:
ls -l /run/nordvpn
id
Тирүү процесс туура socket-тин далили эмес. Башка менеджер иштеткен демон же башка аттуу socket байлаган эски пакет бирдей билдирет. Каталог тизмеси ошол учурларды бир сап менен ажыратат, ошондуктан ал кайра орнотуудан артык.
Эски пакеттеги колдонуучуга жараша процесс
Кээ бир пакеттер кирген колдонуучунун контекстинде экинчи процессти иштетет, аны иш такта интеграциясы табууну күтөт. Эгер системалык init скрипти аны ошол эсепке түшпөй иштетсе, CLI эч бир сессия ээлик кылбаган демонду издейт.
systemd эмес init-те документтелген жайгашуу ролдорду бөлөт: системалык кызмат бир ат менен иштейт, ал эми колдонуучу тараптагы процесс максаттуу эсептин астында chpst -u <user> менен иштейт. Экинчисин болжолдогон иштетүү скриптин коштон мурун орнотууңуз чындыгында кайсы жайгашууну колдонорун текшериңиз.
Бүткөнүңүздү кантип билүү керек
Адаттагы себеп — жаңыртуу, анткени жаңы бинардык файл эскиси эч качан калтырбаган кызмат абалын күтөт. Токтотуу, кайра күйгүзүү жана иштетүү ушул тартипте аны тазалайт:
sudo systemctl stop nordvpnd
sudo systemctl enable --now nordvpnd
sudo systemctl start nordvpnd
nordvpn version
Ошол акыркы буйрук — кабыл алуу сынагы. Басылган версия socket жооп берип жатканын билдирет, бул калган бардык бузулууну кирүү, план же туташуу аймагына жылдырып, ушул макаладан чыгарат. Эгер ал жооп берсе, ушул жерден окууну токтотуп, анын ордуна эсепти караңыз.
Эгер socket дагы эле жок болсо, эмне үчүн токтогонун көрүү үчүн unit журналын окуңуз, анан /run/nordvpn бар экенин жана кызмат эсеби ал жерге жаза аларын текшериңиз. Көтөрүлүп, дароо өлгөн процесс өз себебин ошол журналга жазат, жана бир сапты окуу кайра орнотууну аткаруудан тезирээк.