Туура OpenVPN байланышын токтотуңуз: алдыңкы план, systemd же NM
Туннелди үзгөн буйрук аны ким баштаганына көз каранды. Сигнал жөнөтүүдөн мурун алдыңкы план, систему, NetworkManager жана OpenVPN 3 ээлерин салыштырыңыз.
Терминал терезесин жабуу туннелди жабууга барабар эмес, процессти өлтүрүү кызматты токтотууга барабар эмес. Linux'та байланышты иш жүзүндө үзгөн буйрук байланышты кайсы компонент баштаганына жана ошондуктан анын жашоо циклин ээлегенине көз каранды. Төмөнкү салыштыруу сиз көбүрөөк кезиге турган төрт түзүлүштү жана ар бирине керек болгон идентификаторду камтыйт.
Алдыңкы пландагы жана демондолгон кардарлар
Терминалда кол менен башталган кардар ошол терминалга таандык. Ctrl+C тыныгуу жөнөтөт, кардар өз интерфейсин бузат жана туннел аяктайт. Башка эч нерсеге кабарлоонун кереги жок.
Кабык каптамасы аркылуу башталып, фондо калтырылган кардар эч кимге таандык эмес, жана адамдар killall'га дал ушундай учурда кайрылышат. Адегенде процессти табыңыз, анын буйрук сабында көздөгөн профиль аталганын ырастаңыз, анан кадимки токтотуу сигналын жөнөтүңүз. Көзөмөлчүнүн астында өлтүрүлгөн көзөмөлдөгү процесс жөн эле кайра башталат, ошондуктан ээсин аныктоо сигнал тандоодон маанилүүрөөк. Процесстер тобуна сигналды башка эч бир туннел аны бөлүшпөгөнүн ырастагандан кийин гана жөнөтүңүз.
SIGUSR1 үзүү эмес; ал кардардан туннелди кайра баштоону сурайт.
systemd үлгүлөрү
Юнит байланышты ээлесе, токтотулуучу объект — юниттин өзү. openvpn-client@office сыяктуу шаблон үлгүлөрү профиль атын алып жүрөт, ал эми үлгүнүн ордуна шаблон максатын токтотуу хосттогу ар бир кардарга таасир этиши мүмкүн.
systemctl list-units 'openvpn-client@*'
systemctl stop [email protected]
Үлгү кайсы профилди жүктөгөнүнө ишенимдүү болбосоңуз, юниттин ExecStart сабын окуңуз.
Күйгүзүлгөн юнит кийинки жүктөөдө кайтат, бул аны азыр токтотуудан өзүнчө чечим. Байланыш кайтпашы керек деп чечкенден кийин гана аны өчүрүңүз жана бул чечимди кийинки администратор таба турган жерге жазыңыз.
NetworkManager профилдери
NetworkManager башкарган профиль — сигнал жөнөтүүгө боло турган процесс эмес. Менеджер жашоо циклин ээлейт, ал эми аракет кылынуучу объект — көрсөтүлүүчү ат менен эмес, UUID менен аныкталган активдүү байланыш. Активдүү тизмени адегенде окуу күтүлбөгөн ат менен экинчи туннел иштеп жатканын да көрсөтөт.
nmcli connection show --active
nmcli connection down uuid actual-uuid
Көрсөтүлүүчү аттар кайталанат, ал эми профиль файлынын аты анын идентификатору эмес, ошондуктан UUID'ни тизмеден көчүрүңүз. Байланыш дароо кайтса, аны бир нерсе активдештирип жатат: негизги байланыштагы secondaries жазуусу, dispatcher скрипти же автоматтык туташуу желеги. Менеджердин байланышын токтотуу — туура биринчи кадам, ал эми кайра активдештирүү — кийинки суроо. Кайра активдештирүүнү токтотуу үчүн профилди жок кылбаңыз, анткени бул эртең керек болушу мүмкүн болгон эсептик маалыматтарды да жок кылат.
Менеджердин буйрук аныктамасы down максаты кантип тандаларын документтештирет.
OpenVPN 3 сессиялары
OpenVPN 3 Linux туннел сайын процесс ордуна сессия моделинин колдонот. Сиз кызмат билген сессияларды карап, анан бир сессия жолуна аракет кыласыз. Жол — идентификатор, аны конфигурация аты менен алмаштырууга болбойт.
openvpn3 sessions-list
openvpn3 session-manage --path /net/openvpn/v3/sessions/... --disconnect
Ар бир сессияны үзүү — башка аракет, ал атайын жасалышы керек.
Бир хост бир нече колдонуучунун сессияларын кармай алат, ошондуктан аракеттен мурун тизме түзүп, бүтүрө турган сессиянын ээсин ырастаңыз.
Кийин эмнени текшерүү керек
Ушул токтотуулардын кайсынысынан кийин болбосун үч нерсени текшериңиз: активдүү байланыштар тизмесинде эми туннел жок, интерфейс жоголду, ички дарекке маршрут издөө эми туннель түзмөгүн тандабайт. Анан кийинки жүктөөдө эмне болорун чечиңиз.
ip -brief address
ip route get 10.8.0.1
Интерфейсти кол менен алып салуу ээсин токтотпойт жана тазалоону жарым жолдо калтырат.
Азыр үзүү, кийинки автоматтык баштоону болтурбоо жана кийин VPN эмес трафикке уруксат берүү — үч өзүнчө тандоо. Ар бирин ачык жасаңыз.