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, қай бинарлық және профиль шынымен жұмыс істеді, және сәтсіздік жергілікті ме әлде алыс па. Әр жауап бір қабатты алып тастайды. Профильден бастау – ешқашан ашылмаған болуы мүмкін файлды қайта жазу.