NordVPN в Linux блокирует локальную сеть: список разрешений и DNS
Килл-свитч блокирует всё за пределами туннеля, включая частные диапазоны. Прочитайте правила, разрешите один префикс, а затем отдельно исправьте разрешение имён.
Всё выглядит нормально, пока вы не попытаетесь добраться до чего-то на собственном столе. Туннель поднят, страницы загружаются, а сетевой диск уходит в тайм-аут. Отключитесь, и диск вернётся раньше, чем вы договорите фразу, и это скажет вам больше любого журнала: клиент намеренно отказывает трафику, который не входит в туннель, а ваша локальная сеть находится не с той стороны этой границы.
Килл-свитч делает свою работу
Килл-свитч существует, чтобы не дать трафику уйти, когда туннель недоступен. Частные диапазоны адресов считаются трафиком, который не входит в туннель, поэтому строгая реализация блокирует их вместе со всем остальным. Это не ошибка в том смысле, который люди имеют в виду, подавая отчёт.
Сначала прочитайте взгляд самого клиента. Одна команда печатает текущие настройки, а вторая показывает объекты межсетевого экрана, созданные клиентом. Вы ищете drop или reject, который появляется раньше любого исключения туннеля, потому что именно этот порядок делает локальную сеть недоступной.
nordvpn settings
sudo nft list ruleset
sudo iptables -S
Затем проведите один тест, который делит проблему пополам. Доберитесь до устройства по адресу, а затем по имени. Адрес работает, а имя нет — значит, межсетевой экран ни при чём, а распознаватель имён нет. Оба не работают — значит, межсетевой экран отклоняет пакет, и остальная часть этой статьи применима.
Список разрешений: выбирайте тип записи по симптому
Клиент предлагает список разрешений с тремя типами записей, и выбор правильного типа — большая часть работы. Подсеть охватывает узлы. Порт охватывает одну службу независимо от назначения. Группа multicast охватывает трафик обнаружения, а это другая форма трафика, чем всё, что адресовано одному узлу.
nordvpn allowlist add subnet 192.168.1.0/24
nordvpn allowlist add port 22
nordvpn allowlist add subnet 239.255.255.250/32
sudo nft list ruleset | grep -i allow
Сбои обнаружения застают людей врасплох, потому что принтер или медиасервер может находиться запросом, адресованным группе, а не поиском его собственного адреса. Добавление подсети узла не охватывает эту группу автоматически, поэтому устройство остаётся невидимым, хотя его веб-страница прекрасно загружается, когда вы вводите адрес.
Держите исключение настолько узким, насколько позволяет симптом. Широкий префикс, введённый один раз, забывается на годы, и никто потом не может объяснить, какие машины он должен был пропускать. Удаляйте записи, когда проект, которому они были нужны, заканчивается, и проверяйте, что осталось после обновления.
Новые сборки также показывают единственную настройку обнаружения в локальной сети. Она удобна, и она взаимодействует со списком разрешений, а не наслаивается на него: её включение может очистить существующие записи частных подсетей, а ручное правило для частной подсети может быть отклонено, пока она остаётся включённой.
Имена узлов требуют отдельного решения
Разрешение подсети восстанавливает связность по адресу и оставляет именование нетронутым. Локальные имена узлов по-прежнему отправляются тому распознавателю, который клиент настроил при поднятии туннеля, поэтому имя, которое раньше разрешалось, теперь ничего не возвращает.
Переключение клиента на распознаватель маршрутизатора исправляет это одним шагом и тихо меняет то, что вы купили. Тогда каждый запрос, а не только локальный, уходит через маршрутизатор, поэтому туннель больше не защищает ту часть вашего просмотра, которая выдаёт намерения.
Более узкий путь сохраняет туннельный распознаватель и добавляет несколько важных имён — как домен поиска или как отдельные записи. Это требует больше внимания и сохраняет свойство, за которое вы заплатили.
Проверьте результат вызовом системного распознавателя, а не браузером. Браузеры всё чаще запускают собственное зашифрованное разрешение и охотно отвечают по пути, который ваша оболочка никогда не использует, поэтому адресная строка может выглядеть здоровой, пока системный распознаватель всё ещё сломан.
Проблема с установкой, которая приходит первой
Значительная часть этих отчётов вообще не доходит до межсетевого экрана, потому что команды просто нет. Пакет начальной загрузки поставщика регистрирует репозиторий и ключ подписи. Он не устанавливает клиент, поэтому отсутствие команды сразу после этого — ожидаемый результат, а не сбой.
Обновите списки пакетов и установите по имени. Если менеджер пакетов жалуется на отсутствующий открытый ключ, ключ не попал туда, где его ищут, и исправление — положить его туда перед повторным обновлением.
Если имя узла репозитория разрешается в частный адрес, остановитесь и прочитайте этот результат дважды. Возможно, вы уже запускаете туннель, чей распознаватель отвечает за публичные имена, и повторная попытка установки будет бесконечно выдавать одно и то же сообщение.
Запишите это, прежде чем закрыть крышку
Убедитесь, что изменился только туннель, и затем разрешите самое малое, что восстанавливает симптом. Держите именование отдельным решением с отдельной заметкой.
Запишите, какое исключение существует для какого устройства и кто его попросил. Локальная сеть, которая работает только потому, что кто-то ввёл широкий префикс, — это решение, которое уже пережило свою причину.
Проверьте снова после обновления клиента. Раскладка межсетевого экрана меняется между выпусками, и список разрешений прошлого месяца не является фактом об этом месяце.