Проверка на VPN без графичен интерфейс: по един поток наведнъж, с доказателства
Кутията без графичен интерфейс се нуждае от заявка, чийто отговор можете да прочетете. Проверете всяко семейство адреси, контекст и дестинация, после запишете какво резултатът не е покрил.
На кутия без графичен интерфейс няма браузър за отваряне и катинар за гледане, затова проверката трябва да е заявка, чийто отговор можете да прочетете. Това изглежда тривиално, докато не забележите, че един резултат за адрес на изход се използва, за да удостовери устройство, което изпълнява дузина услуги, две семейства адреси и прокси. Разборът по-долу изгражда по едно ограничено доказателство наведнъж, в същия контекст, в който реално работи натоварването.
Решете какво трябва да докаже тестът
Преди да стартирате каквото и да е, напишете очакването в един ред: кой поток, през кой интерфейс, към коя дестинация и какво трябва да се наблюдава в другия край. Тест без заявено очакване дава число, което никой не може да тълкува.
Най-полезната версия назовава одобрена крайна точка, която съобщава адреса на източника, който е видяла.
Тази крайна точка е единствената част, която трябва да уредите. Всичко останало е наблюдение от страна на клиента, а наблюденията от страна на клиента се объркват по интересни начини.
Проведете наблюдението в правилния контекст
Обвивката на администратора не е средата на натоварването. Тя може да носи друга променлива за прокси, друга таблица за маршрутизация в друго пространство от имена или файл за среда на друг потребител. Провеждайте теста в същия контекст на хост, контейнер, пространство от имена или услуга, в който е проверяваното. Иначе измервате собствената си обвивка.
На нормален хост това означава същия потребител и същата единица. В среда с контейнери това означава влизане в мрежовото пространство от имена на контейнера, вместо тестване от хоста. При услуга на systemd може да означава временна единица със същите настройки.
Следващата заявка има смисъл само след като сте в правилния контекст.
Проверявайте семействата адреси поотделно
Питайте за всяко семейство изрично, защото успешна заявка IPv4 изобщо не упражнява път IPv6. Селекторите --ipv4 и --ipv6 налагат избора, а разликата между двата резултата сама по себе си е информация.
curl --ipv4 https://probe.example/observed-source
curl --ipv6 https://probe.example/observed-sourceНеуспешна заявка IPv6 не е доказателство за ефективна блокировка. Тя може да означава, че крайната точка няма адрес IPv6, че DNS не е върнал нищо използваемо или че устройството изобщо няма маршрут IPv6. Прочетете неуспеха, преди да правите извод от него. Успешна заявка IPv6 през тунела е единственият резултат, който доказва, че пътят IPv6 е покрит.
Запишете двата отговора един до друг. Един от тях сам по себе си е половината от факт.
Добавете четирите неща, които проверката на изхода пропуска
Адресът на изхода отговаря на един въпрос. Още четири решават дали тунелът се държи както е проектиран.
| Check | What it proves | What it does not |
|---|---|---|
| Included and excluded destinations | The split behaves as designed for those flows | Coverage of any other destination |
| Resolver path | Where a fresh lookup actually travelled | Where a cached answer came from |
| Tunnel-down behaviour | The failure policy for a new request | What an already open connection does |
| Reconnect and restart | The requirement survives the lifecycle event | Behaviour under load or partial failure |
Политиката за дестинации е първа: тествайте поток, който трябва да е включен, и такъв, който трябва да е изключен, когато проектът има разделяне. После DNS, където преглеждате действителния път на резолвера, а не конфигурираната стойност, защото кеширан отговор или отпечатана настройка не казва нищо за това накъде е отишло ново запитване.
Поведението при отказ се нуждае от план и запазен път за възстановяване. Наблюдавайте нова заявка, докато тунелът е недостъпен, и помнете, че стара отворена връзка не е доказателство за политиката при отказ. Жизненият цикъл е последен: повторете наблюдението след повторно свързване или рестартиране на услуга, ако тези събития засягат изискването.
Записвайте доказателства, а не присъда
За всеки резултат пазете контекста на процеса, дестинацията, семейството адреси, времето и наблюдавания източник. Този набор е ограничено доказателство за потоците, които сте упражнили, и е защитимо именно защото казва какво е покрило.
Това не е одит на записите на VPN оператора и не е сертификат за всяко бъдещо приложение на устройството.
Напишете ограниченията до резултата. Тест, който посочва какво не е покрил, издържа преглед, а такъв, който твърди, че устройството е проверено, не издържа. Дръжте ръководството за curl до селекторите за семейство, които сте използвали, и дръжте таблицата с четири реда заедно с резултатите.