Публічний список вузлів показує сервер із часом роботи, виміряним тижнями, ви обираєте його, і з’єднання зривається вже з першої спроби. Це не неправдива реклама; це хибне питання, поставлене числу, яке вимірює інше. Час роботи зазвичай показує, як довго процес, контейнер або машина працюють від останнього запуску, і це властивість інфраструктури видавця, а не вашого шляху до неї. Вважати його надійністю — та сама категорійна помилка, що й вважати одометр автомобіля звітом про дорогу.

Що вимірює число

На хості із сучасним менеджером служб лічильник прив’язаний до події, яку ви справді можете прочитати: до позначки часу, коли модуль перейшов в активний стан, або до часу завантаження машини. Усе інше — арифметика на цій прив’язці, і визначення прив’язки різниться між видавцями. Один список може скидатися під час перезапуску демона, інший — під час перезавантаження машини, а третій — під час ручного скидання, яке виконав оператор, що хотів чистий графік.

systemctl show -p ActiveEnterTimestamp --value openvpn-server@server
uptime -s
systemctl is-active openvpn-server@server

Ці три команди відповідають на три різні питання, і каталог, що показує одне число, не може сказати, яку з них використано. Тому порівняння сирого лічильника з двох списків зовсім не є порівнянням, доки ви не знаєте, на чому скидається кожен із них.

Процес може працювати, коли шлях недоступний

Демон слухає. Сертифікат дійсний. Процес живий уже двадцять три дні. Ніщо з цього не гарантує, що пакети з вашої мережі до нього дійдуть, бо доступність — властивість усього шляху: висхідний канал провайдера, піринг між його мережею і вашою, перевантаження на спільному транзитному каналі та міжмережевий екран перед вашим власним з’єднанням.

Сервер також може працювати й бути марним з іншої причини. Вузол, який прийняв значно більше клієнтів, ніж витримує його пропускна здатність, покаже довгий час роботи та жахливий досвід, бо лічильник не вимірює ємність або конкуренцію. Це найпоширеніший спосіб, у який вузол із довгим часом роботи розчаровує: нічого не зламано, все зайнято.

Варто пам’ятати й зворотний випадок. Вузол, перезапущений годину тому, може бути цілком здоровим зараз, і сортування за найбільшим числом тихо виключає його. Час роботи — не оцінка якості, і ставлення до нього як до оцінки обирає за віком, а не за придатністю.

Свіжість: звіт старіший за вашу спробу

Публічні каталоги — це сторінки, згенеровані з періодичних перевірок, а не жива телеметрія. Час роботи, який ви читаєте, було обчислено під час останнього оновлення, а з’єднання, яке ви намагаєтеся встановити, відбувається після нього. Тим часом провайдер може втратити канал, змінити сертифікат, перемістити адресу або вивести вузол з експлуатації, і сторінка показуватиме останній відомий добрий стан до наступного обходу.

Цей розрив працює і в зворотному напрямку. Вузол, позначений як недоступний, міг відновитися через кілька хвилин після створення звіту, тому негайна повторна спроба на іншому вузлі не завжди кращий вибір.

Практичне правило: кожне зазначене поле — твердження про минуле. Використайте його, щоб скласти короткий список, а потім перевірте вимірюванням, яке зробите самі у важливий для вас момент.

Що перевіряти натомість

Вирішіть, що вам потрібно від вузла, і перевірте це. Якщо потрібна доступність, спроба TCP-з’єднання до порту прослуховування за одну секунду скаже більше, ніж будь-який лічильник. Якщо потрібен робочий тунель, домовтеся про нього. Якщо потрібна придатна пропускна здатність, передайте щось реальне й виміряйте, бо час з’єднання і пропускна здатність — різні властивості, і швидке рукостискання нічого не говорить про другу.

nc -vz -w 5 vpn.example.net 1194
curl -sS -o /dev/null -w '%{time_connect} %{time_appconnect} %{time_total}\n' https://vpn.example.net/
mtr -rwc 20 vpn.example.net

Повторюйте тест, а не покладайтеся на одну спробу. Надійність — це розподіл у часі та за умовами, а одне успішне з’єднання — вибірка розміру один. Кілька спроб у ті години, коли ви справді користуєтеся з’єднанням, перевершать будь-який опублікований час роботи з великим відривом.

Читання публічних списків вузлів без обману

Час роботи також не несе інформації про те, чого люди зазвичай хочуть від VPN: про термін дії сертифіката, про те, хто керує виходом, яка політика DNS застосовується і чи зберігає оператор записи про з’єднання. Це окремі твердження, що потребують окремих доказів, і довгий лічильник не є доказом жодного з них. Вузол може бути стабільним місяцями й усе одно бути поганим вибором для вимоги приватності.

Там, де список справді допомагає, — це складання короткого списку. Сортуйте за тим, що, як ви знаєте, вам потрібно, відфільтруйте вузли в регіонах, не пов’язаних із завданням, а потім перевірте три або чотири, що залишилися. Зберігайте етап збою кожної спроби замість простого так або ні, бо «рукостискання TLS не вдалося» і «з’єднано, але без пропускної здатності» ведуть до зовсім різних висновків.

Рамки вимірювання продуктивності шляху викладають ту саму думку в суворішій формі: визначте метрику, умови й метод, перш ніж збирати числа. Застосовано до списку вузлів, це означає, що поле часу роботи — контекст. Вимірювання, яке ви робите самі, і є рішенням.

Схожі статті