Како да го проверите прекинувачот на VPN без вистински сметки
Направете тест на прекинувачот со мамка и резервен профил: опфатете го секој тип на прекин, прочитајте ги излезните кодови на curl и разликувајте вистинско блокирање од дефект на DNS.
Не ви треба вистинска сметка за да дознаете дали прекинувачот за блокирање држи; токму сметката е она што тестот го става во ризик. Проверката создава краток прозорец во кој сообраќајот може, но и не мора да излезе надвор од тунелот, па затоа товарот треба да биде нешто што можете да го загубите. Сега ова го правам со мамка и резервен профил на прелистувачот и добивам појасен одговор отколку со поранешната постапка со прелистувач и веб-пошта. Понатаму го следам истиот редослед што го нуди клиентот: поставката, одредиштето, преминот, па доказот.
Тестот одговара само на едно тесно прашање: за време на овој премин, може ли оваа апликација да стигне до мрежата надвор од тунелот? тоа не кажува ништо за тоа дали остатокот од политиката е разумен. Држете го опсегот толку тесен и резултатот вреди да се запише.
Најдете го прекинувачот и неговиот опсег во клиентот
Отворете го клиентот и најдете ја поставката за блокирање пред да смените каква било мрежна состојба. Производителите ја именуваат различно: прекинувач, режим на заклучување, мрежна брава, блокирање на сообраќај надвор од тунелот. Етикетата кажува помалку од опциите внатре. Важно е дали блокирањето се применува секогаш или само кога апликацијата процени дека тунелот штотуку откажал, и дали ги опфаќа сите апликации или избран список.
Потоа наведете ги премините што вашиот клиент навистина може да ги изврши. Исклучувањето иницирано од корисникот, излегувањето од апликацијата и губењето контакт со серверот се три различни патеки во кодот кај повеќето клиенти и тие не делат една политика на блокирање. Некои го ослободуваат блокирањето кога апликацијата излегува. Други ги оставаат филтерските правила додека нешто не ги отстрани. Прочитајте го референтниот преглед на поставки на производителот за изданието што го користите наместо да претпоставувате, потоа запишете кој од трите го проверувате.
Запишете го и профилот: протокол, семејства на адреси и дали е овозможен поделен тунел. Тврдењето дека е опфатен целиот уред е бесмислено ако профилот намерно исклучува неколку апликации, а исклучувањето што самите сте го поставиле не е истекување. Референтниот преглед на поставки на OpenVPN Connect е токму таков вид страница што именува кој прекинувач менува кое однесување, иако етикетите се разликуваат од клиент до клиент.
Изберете мамка одредиште што работи и без тунелот
На мамката ѝ требаат две својства, а прескокнувањето на било кое дава нечитлив резултат. Мора да биде достапна директно кога тунелот е паднат и блокирањето е исклучено, инаку тоа што престанала да одговара може едноставно да значи дека домаќинот исчезнал. И не смее да бара најава, колаче или плаќање, за да чини истекувањето една линија во дневникот наместо сесија.
Статична страница на домаќин што го контролирате е најчистиот избор. Резервна виртуелна машина со обичен HTTP сервер е речиси исто толку добра, а јавна страница за проверка на поврзување е во ред ако прифатите дека нејзината достапност е надвор од ваша контрола. Запишете ја адресата, портата, семејството на адреси и дали барањето бара пребарување на име, бидејќи секоја од нив станува променлива што подоцна може да треба да ја изолирате.
Воспоставете основна линија пред да го допрете прекинувачот. Кога тунелот е кренат, мамката мора да одговара низ тунелот, што докажува дека маршрутата според политиката работи. Кога тунелот е паднат и блокирањето е исклучено, таа мора да одговара директно, што докажува дека одредиштето е живо. Само тогаш неуспехот во блокираната состојба ви кажува нешто.
Извршувајте ги премините по фиксен редослед
Правете ги премините еден по еден и дајте му на секој по неколку секунди да се смири, бидејќи клиентите честопати ги уриваат и повторно градат правилата токму во тој интервал. Извршувањето на истата кратка проверка секој пат ги прави набљудувањата споредливи:
curl -sS -o /dev/null -w 'http=%{http_code}\n' --max-time 5 http://decoy.example/
echo "curl_exit=$?"
dig +short decoy.example
curl -6 -sS -o /dev/null -w 'v6_http=%{http_code}\n' --max-time 5 http://decoy.example/
echo "curl_v6_exit=$?"
| Transition | Expected with the block on | Failure signature |
|---|---|---|
| Manual disconnect | Decoy stops answering within seconds | Decoy still returns 200 |
| Server or path failure | Blocked, with no exemption for the old endpoint | Direct access during the gap |
| Quit the app | Client-dependent; record what happens | Block disappears with the process |
| Wi-Fi to Ethernet | Block holds until the tunnel returns | Traffic flows mid-change |
Редот со излегување од апликацијата заслужува посебно извршување дури и ако во нормална употреба никогаш не го затворате клиентот. Ако блокирањето се ослободи при излез, пад или присилно ажурирање ви ја даваат истата изложеност, а тоа е факт за распоредувањето, не за вашето трпение. На Windows еквивалентните проби се Resolve-DnsName decoy.example и curl.exe -s -o NUL -w "%{http_code}" http://decoy.example/.
Разликувајте блокирање од расипан резолвер
Страница што не се вчитува има неколку причини, а само една од нив е тоа што прекинувачот работи. Ако името не се разрешува, дознавте дека DNS е блокиран или расипан, а не дека патеката на податоците е блокирана. Проверете и буквална адреса, за да не зависи одговорот воопшто од разрешување.
Излезните кодови на curl ги раздвојуваат тие случаи. 6 е неуспех при разрешување на име, 7 значи дека врската е одбиена, 28 е истек на време. Блокираната маршрута обично се појавува како истек на време или одбивање кон буквална адреса, а блокирањето само на DNS остава 6 и го крие сето останато. Кеширана страница или портал за најава го мамат окото, затоа доказ е излезниот код, а не екранот.
Повторете ја пробата преку IPv6 со буквална адреса. Блокирање што го покрива IPv4, а го игнорира IPv6 е доволно често за да заслужи посебна линија во белешките, а клиент што го исклучува IPv6 надвор од тунелот треба чисто да падне на двете семејства.
Запишете го опсегот што го покрива резултатот
Кога тунелот ќе се врати, потврдете го закрепнувањето: мамката одговара низ тунелот, резолверот враќа одговори, а политиката стои таму каде што ја оставивте. Потоа повлечете ги експериментите. Привремено правило на огнен ѕид, маршрута за отстранување грешки или тест профил оставени на место ќе го збунат следното извршување и можат да го надживеат клиентот.
Едно поминување покрива едно издание на клиентот, еден профил, еден премин и едно семејство на адреси. Запишете ги тие четири заедно со исходот:
- Издание на клиентот и платформа, и дали поставката е по профил или глобална.
- Профил, протокол и сите исклучувања на поделениот тунел.
- Тестиран премин и како сте го предизвикале.
- Семејства на адреси и DNS, со излезни кодови на curl за блокираната и неблокираната состојба.
Ако која било линија е празна, тестот не е завршен. Роамингот значи повторување на редот со мрежната промена. Непосакуваното рестартирање значи проверка дали правилата се враќаат, а тоа е прашање за редот на враќање, не за прекинувачот. Повторете ја низата по ажурирање на клиентот, бидејќи прекинувачите ретко се менуваат, додека однесувањето зад нив се менува. Чувајте ја мамката: нема што да се ротира, а следната проверка трае пет минути.