OpenVPN катасыз ишке кирбейби? journal-ды караңыз
Ubuntu-дагы үнсүз чыгуу адатта билдирүү башка жакка кеткенин же unit такыр ишке кирбегенин билдирет. Адегенде instance атын, journal жана бинардык файлды текшериңиз.
Команда кайтат, кызмат ишке ашпаган деп көрүнөт жана терминалга түшүндүрмөгө окшош эч нерсе жетпейт. Бул үнсүздүк – адамдар «OpenVPN ишке кирбейт» деп сүрөттөгөн симптом, жана ал программа эч нерсе айтпай өлгөнүн билдирбейт дээрлик. Бул билдирүү сиз окубаган каналга кеткенин же ишке киргизгениңиз конфигурациялаганыңыз эмес экенин билдирет. Профилди шектүү деп эсептөөнү токтоткондон кийин эки учурду тең бир мүнөттөн аз убакытта диагностикалоого болот.
Чыгууну төрт жер сиңирет: unit-тин journal-ы, байланышка ээ plugin, туннелдин экинчи учу жана сиз иштеп жатат деп ойлогондон башка бинардык файл. Ар биринин өз текшерүүсү бар.
Үнсүздүк туура каналды байкабаганыңызды билдирет
Алдыңкы пландагы чакыруу терминалыңызга басып чыгарат. Unit journal-га басып чыгарат, жана ишке ашпаган unit, эгер ката анын кантип ишке киргизилгенинде болсо, ага эмне айтылганында эмес,, эч нерсе жазбай эле чыгып кетиши мүмкүн. Бул айырма маанилүү: journal-да жазуунун жоктугу процесс чынында эч качан иштебегенин билдирет, ал эми бир жазуу жана андан кийинки чыгуу ал иштеп, бир нерсени четке какканын билдирет.
systemctl status openvpn-client@office
journalctl -u openvpn-client@office -b --no-pager
Таза чыгууну сигналдан ажыратуу үчүн төмөнкүнү кошуңуз: systemctl show -p Result -p ExecMainStatus openvpn-client@office. Абал 1 жана Result=exit-code программанын чечими; Result=signal же таймаут тескерисинче чөйрөгө көрсөтөт, жана профилди оңдоонун эч кандай көлөмү муну өзгөртпөйт. Бир нерсени кайра баштоодон мурун эки маанини тең жазып алыңыз, анткени кайра баштоо аларды жараткан өтмө абалды өчүрөт.
Instance аты жолдун бөлүгү
Таңгакталган үлгү unit файл жолун кабыл албайт. Ал instance атын кабыл алат, жана бул ат профилди табуу үчүн каталогго кошулат: office Debian жана Ubuntu таңгагында /etc/openvpn/client/office.conf жолуна чечилет. office-v2.conf деген файлды @office деп ишке киргизсе да эч качан окулбайт, жана unit үнсүз чыгат, анткени анын көз карашы боюнча эч нерсе кылуу жок болчу. Издөө каталогу client жана server режимдеринде башкача, ошондуктан ошол эле ката үлгүнү алмаштырганда таптакыр башка жерди көрсөтөт.
Бул шайкешсиздик үнсүз ишке ашпоонун эң кеңири тараган булагы жана профилде көрүнбөйт, анткени профиль туура. Чындыгында бар нерселерди тизмелеп, таңгак күткөн ар кандай кеңейтүүнү кошуп, эки атты тамга-тамга салыштырыңыз.
ls -l /etc/openvpn/client/
systemctl list-units 'openvpn*' --all
Эгер unit иштетилген болсо, бирок бир да instance тизмеленбесе, иштетүү өзү кийинчерээк аты өзгөртүлгөн атка шилтеме кылышы мүмкүн. Туура instance-ти кайра иштетүү адатта жетиштүү, жана калган эски unit файлын өчүрүү керек, ал кийинки адамды адаштырбашы үчүн. Калган unit файлы – кийинчерээк бирөөгө бир саатка турган майда нерсе.
Плагин туннелге ээ болгондо, терминал эч нерсе көрбөйт
Иш тактасынын applet-инен башталган байланышты NetworkManager ээлейт, жана анын OpenVPN чыгуусу сиз ачкан shell-ге эмес, ошол кызматтын journal-ына барат. Клиентти кол менен иштетип, эч нерсе көрбөө – бул уюштурууда күтүлгөн нерсе, анткени кол менен иштетилген процесс байланышты алып жүргөн процесс эмес.
journal-дан ага ээ кызматты издеп, анан талдоону өзүңүз окуй алган деңгээлде кайталаңыз. Төмөнкү эки команда бир эле ишке ашпоонун ар кандай ээлерине карайт.
journalctl -b -u NetworkManager --no-pager | grep -i -A3 openvpn
openvpn --config /etc/openvpn/client/office.conf --verb 4 --log /tmp/ovpn.log
Өз алдынча иштетүү билдирүүлөрдү окуу үчүн, башкарылуучу байланышты алмаштыруу үчүн эмес, жана экөө кийин айырмаланат: DNS интеграциясы, маршруттар жана өмүр бою плагинге таандык. Өз алдынча иштетүүдө талдоо катасын оңдоо applet башкарууну алгандан кийин аттарды чечүүнү автоматтык түрдө оңдобойт, ошондуктан эки байкоону бөлүк кармаңыз.
Эки бинардык файл, бир PATH
Кол менен курулган орнотуу /usr/local астында болсо shell чакыруусунда жеңет, анткени /usr/local/sbin Ubuntu-нун демейки PATH-ында /usr/sbin дан мурун турат. Unit сиздин PATH-ыңызды колдонбойт; ал ExecStart ичинде жазылган абсолюттук жолду аткарат. Ошондуктан терминалыңызда иштеген версия жана кызмат катары ишке ашпаган версия чынында башка программалар болушу мүмкүн.
Бир нерсени кайра куруудан мурун экөөнү салыштырыңыз. Үчүнчү команда – талашты чечкен команда.
command -v openvpn
whereis openvpn
systemctl cat openvpn-client@office | grep ExecStart
Дагы бир чөйрө айырмасы ошол эле жерде жашыруун. Таңгакталган unit /run астындагы иштөө каталогуна таянат, аны systemd ага түзөт; бул параметрди өткөрүп жиберген кол менен жазылган алмаштыруучу unit бир файлды ачпастан эле ишке ашпай калышы мүмкүн, жана ишке ашпоо OpenVPN билдирүүсүз жалпы баш тартууга окшош.
Клиент билдире албаган ишке ашпоолор
Айрым жыйынтыктар алыскы учта чечилет. HTTP статусу менен жооп берип, байланышты жапкан шлюз өзүнүн абалы тууралуу айтып койду, жана кийинки пайдалуу кадам – сиздин локалдык файлдарыңыз эмес, анын журналы же эсеп маалыматтарынын артындагы аккаунт. Бул сценарийде локалдык эч нерсе бузулган эмес, жана ордун толтуруу үчүн профилди оңдоо кийинки диагностиканы кыйындатат. Клиент конфигурациясына тийүүдөн мурун ошол журналды окуңуз.
Дагы бир үнсүз учур – туура иштеп жаткан клиент. Клиент режиминдеги туннел эч качан портто укпайт, ошондуктан ачык угуучуну күткөн текшерүү эч нерсе билдирбейт жана ишке ашпоого окшош. Бош порт тизмесинен жыйынтык чыгарардан мурун кайсы режимди баштаганыңызды ырастаңыз.
Катмарларды ирети менен иштетиңиз: unit барбы жана instance аты туурабы, journal-га же --log, кайсы бинардык жана профиль чынында иштеди, жана ишке ашпоо локалдыкпы же алыспы. Ар бир жооп бир катмарды алып салат. Профилден баштоо – эч качан ачылбаган болушу мүмкүн болгон файлды кайра жазуу.