Время работы VPN-сервера: о чём это число не говорит
Счётчик измеряет время с момента запуска чего-либо, а не доступность из вашей сети. Проверьте определение и время отчёта, а затем проверьте то, что вам нужно.
Публичный список узлов показывает сервер со временем работы, измеряемым неделями, вы выбираете его, и соединение срывается с первой попытки. Это не ложная реклама; это неверный вопрос, заданный числу, которое измеряет другое. Время работы обычно показывает, как долго процесс, контейнер или машина работают с момента последнего запуска, и это свойство инфраструктуры публикатора, а не вашего пути к ней. Считать его надёжностью — та же категориальная ошибка, что и считать одометр автомобиля отчётом о дороге.
Что измеряет число
На хосте с современным менеджером служб счётчик привязан к событию, которое вы действительно можете прочитать: к отметке времени, когда модуль перешёл в активное состояние, или ко времени загрузки машины. Всё остальное — арифметика на этой привязке, и определение привязки различается у разных публикаторов. Один список может сбрасываться при перезапуске демона, другой — при перезагрузке машины, а третий — при ручном сбросе, который выполнил оператор, желавший чистый график.
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 не удалось» и «подключено, но без пропускной способности» ведут к совершенно разным выводам.
Рамки измерения производительности пути излагают ту же мысль в более строгой форме: определите метрику, условия и метод, прежде чем собирать числа. Применительно к списку узлов это означает, что поле времени работы — контекст. Измерение, которое вы делаете сами, и есть решение.