Стартирайте същия профил от терминал и съобщението, което повечето хора копират, е предупреждение, а не причината клиентът да спре. Тук се провалят три независими слоя: изпратена директива, която Linux сборката не реализира, правата, нужни за създаване на tun устройство, и помощникът за резолвер, който превръща връзката в работещ DNS. Минавайте ги по ред, защото всеки може да скрие следващия.

Пазете изтегленото както е пристигнало и редактирайте копие, така че ново изтегляне да не отмени промените ви безшумно.

Прочетете предупреждението, преди да го обвинявате

block-outside-dns заключва DNS в Windows чрез платформата за филтриране на Windows, а Linux клиентът няма към какво да го съпостави. Когато сървърът го изпрати, клиентът отпечатва ред за неразпозната опция за този изпратен запис и продължава, защото изпратената опция не се смята за фатална. Същият ред във вашия собствен файл е друго нещо: там парсерът спира. Решете кой от двата имате, преди да пипате нещо, защото само единият от тях прекратява изпълнението.

За да премахнете шума, филтрирайте го преди парсването: запис pull-filter ignore за това име или --ignore-unknown-option, когато редът е в локалния файл. И двете заглушават ред, който вече сте прочели; нито едно не поправя повреда, която не сте диагностицирали.

Правата се провалят преди всичко останало

Устройството tun и маршрутите към него са привилегировани обекти и обикновен акаунт не може да ги създаде. Опцията --user обяснява разделението: демонът се отказва от правата си едва след като привилегированата работа е свършена. Стартирайте го като root или чрез unit, който го стартира така, после търсете грешка за права, преди да гледате сертификати. Разхлабването на правата на файла на профила не дава на процеса правата, които му липсват.

Грешка в TLS означава, че клиентът е преминал този слой. Оплакване за устройство или маршрут означава, че никога не е стигнал до слоя отгоре.

Какво прави GUI, което терминалът не прави

Успешно свързване, докато всяка заявка за име все още се проваля, е третият слой. NetworkManager върши своята работа с резолвера, затова импорт от десктоп може да раздава DNS дори когато up скриптът на профила никога не е минавал успешно. Командата openvpn --config изпълнява това, което посочи --up, и ако този помощник липсва, интерфейсът се появява, докато заявките продължават да отиват към предишните сървъри. Сравнете скриптовете на двата пътя, преди да инсталирате каквото и да е.

Използвайте пакетирания помощник за вашата дистрибуция; скрипт, копиран от публикация в блог, обикновено е насочен към друг резолвер. Интеграцията, доставяна за systemd-resolved, не е универсалният скрипт във стил vpnc и всяка очаква свои собствени аргументи и променливи от клиента. Дефинираните от потребителя up скриптове също изискват script-security 2, преди клиентът да ги изпълни изобщо.

Разделете слоевете при следващото изпълнение

Стартирайте веднъж с --verb 4 и четете журнала в реда, в който се е случило: създаване на устройство, маршрути, TLS ръкостискане, после изход от up скрипта. Първият провал в тази последователност е този, който си струва да се поправи; всичко след него обикновено е последствие. Тунел, който се установява, докато резолверът не го прави, ви поставя на третия слой, където сертификатът е без значение. Оставете изтегления профил недокоснат, докато сравнявате.

Щом всяка намеса на оператора дава пореден отхвърлен ред, файлът е насочен към друга платформа. Поискайте експорт за Linux, вместо да строите постоянен списък с филтри.

Отбележете кой слой се провали и какво го промени, защото следващият човек, на когото дадат същия файл, иначе също ще спре на предупреждението.

Подобни статии