VPN на Linux не работает: DNS, NetworkManager и MTU без паники в 2026 году

Если VPN на Linux не работает, это не всегда означает, что сервис заблокирован или «сломался навсегда». На Linux чаще всего мешают три слоя: DNS через systemd-resolved, профиль в NetworkManager и размер пакетов MTU. Ниже — практичная диагностика для Ubuntu, Fedora, Arch-подобных систем и других дистрибутивов, без опасных обходных инструкций и без советов «снести всё и поставить заново».
Материал полезен, если туннель подключается, но сайты не открываются; часть доменов грузится, часть зависает; WireGuard или OpenVPN работают на телефоне, но не на ноутбуке; после обновления Linux пропал DNS. Если нужен готовый VPN для повседневного доступа и понятная поддержка, начните с лендинга FoliVPN, а эту статью используйте как чеклист диагностики.
Почему тема актуальна в 2026 году
В 2026 году пользователи в России всё чаще сталкиваются не с одной большой ошибкой, а с комбинацией сетевых ограничений, нестабильных мобильных сетей, фильтрации трафика и локальных настроек устройства. В прошлых материалах мы уже разбирали, почему VPN на Windows 11 не работает, что делать, когда VPN на Mac не работает, и почему MTU VPN ломает загрузку сайтов. Linux заслуживает отдельного разбора: здесь больше свободы, но и больше мест, где DNS, маршруты и клиенты могут конфликтовать.
Из свежего ресерча видны три повторяющихся паттерна. Во-первых, у Linux-пользователей NetworkManager иногда не применяет DNS VPN-провайдера, из-за чего домены не резолвятся или возникает DNS-утечка; это прямо описывает справка IVPN для Linux. Во-вторых, WireGuard официально рекомендует проверять интерфейс, peer, AllowedIPs и при необходимости PersistentKeepalive, потому что NAT и stateful firewall могут «забывать» молчащий туннель. В-третьих, кейсы с OpenVPN, где туннель подключён, но часть сайтов не открывается, часто указывают на MTU: пакет слишком большой для конкретного маршрута и начинает теряться.
Быстрая диагностика: сначала отделите VPN от обычного интернета
Перед тем как менять конфиги, проверьте базу. Отключите VPN и откройте несколько нейтральных сайтов: поисковик, сайт банка или Госуслуг, страницу вашего провайдера. Если без VPN интернет тоже нестабилен, проблема не в клиенте. Затем подключите VPN и проверьте три признака:
- меняется ли внешний IP;
- открываются ли домены, а не только IP-адреса;
- одинаково ли ведут себя Wi‑Fi, кабель и мобильная точка доступа.
Если через мобильный хот-спот VPN работает, а через домашний роутер нет, вероятнее конфликт в роутере, MTU, DNS или правилах провайдера. Если на той же сети Windows или телефон работают, а Linux — нет, смотрите NetworkManager, systemd-resolved, маршруты и локальный firewall.
Таблица симптомов и вероятных причин
| Симптом | Вероятная причина | Что проверить первым |
|---|---|---|
| VPN подключается, но сайты не открываются | DNS не переключился на VPN | resolvectl dns, настройки DNS в NetworkManager |
| Открываются IP, но не домены | DNS-резолвинг сломан | /etc/resolv.conf, systemd-resolved, DNS-приоритеты |
| Часть сайтов грузится, часть зависает | MTU/MSS или фрагментация | временно снизить MTU, сравнить сеть Wi‑Fi и хот-спот |
| WireGuard показывает peer, но трафика нет | неверные AllowedIPs, endpoint, маршруты | wg show, таблица маршрутизации, конфиг peer |
| Работает после перезапуска, потом отваливается | NAT/firewall забывает туннель | PersistentKeepalive для WireGuard, стабильность сети |
| После обновления дистрибутива пропал интернет через VPN | сменился DNS-менеджер или firewall | NetworkManager, systemd-resolved, nftables/iptables |
Шаг 1. Проверьте DNS, а не только статус «Connected»
Самая частая ловушка Linux — клиент пишет, что VPN подключён, но DNS-запросы всё ещё уходят через роутер или провайдера. В такой ситуации браузер может показывать «не удаётся найти IP-адрес сервера», Telegram и мессенджеры зависают, а проверка IP вводит в заблуждение: туннель вроде есть, но имена сайтов не резолвятся правильно.
Что делать безопасно:
- Посмотрите, какие DNS-серверы назначены интерфейсам. В современных системах обычно помогает
resolvectl dns. - Найдите VPN-интерфейс:
wg0,tun0,ppp0, профиль NetworkManager или имя клиента. - Убедитесь, что DNS VPN назначен именно VPN-интерфейсу, а не только глобально.
- Если DNS пустой или остался адрес роутера вроде
192.168.1.1, проверьте профиль VPN в NetworkManager. - Не делайте
/etc/resolv.conf«вечным» черезchattr +iбез необходимости: это может решить один кейс и сломать обновления сети в будущем.
Справка IVPN описывает похожий сценарий: при подключении через NetworkManager DNS провайдера может не применяться автоматически, из-за чего сайты не открываются или используется реальный DNS. Это не универсальная инструкция для всех VPN, но хороший индикатор направления диагностики.
Шаг 2. Разберитесь с systemd-resolved и NetworkManager
systemd-resolved сам по себе не враг VPN. Проблема появляется, когда NetworkManager, VPN-клиент и resolved по-разному понимают, какой интерфейс должен обслуживать DNS-запросы. На Ubuntu и Fedora это особенно заметно: /etc/resolv.conf может указывать на 127.0.0.53, а реальные DNS-серверы живут в resolvectl.
Практичный порядок такой:
- не отключайте
systemd-resolvedпервым действием; - проверьте, создаёт ли VPN-профиль DNS для своего интерфейса;
- посмотрите DNS priority в NetworkManager, если используете GUI-профиль;
- убедитесь, что старые Docker, bridge или tun-интерфейсы не перетягивают маршруты;
- после изменения профиля переподключите VPN, а не только перезапустите браузер.
Если вы используете корпоративный профиль OpenVPN или WireGuard, не меняйте серверные DNS наугад. Лучше сначала сравнить вывод до и после подключения и отправить его в поддержку провайдера. Для FoliVPN полезный минимум: дистрибутив, версия клиента, тип протокола, скрин/текст ошибки, вывод DNS и описание сети — Wi‑Fi, LTE, роутер или офисная сеть.
Шаг 3. WireGuard: проверьте AllowedIPs, handshake и keepalive
WireGuard минималистичен: если конфиг неверный, он не всегда выдаёт «красивую» ошибку. Официальный quick start показывает базовую логику: интерфейс, адрес, ключи, peer, endpoint, AllowedIPs, затем поднятие интерфейса через wg-quick или системный менеджер. Для пользователя важны не команды ради команд, а смысл проверки.
Посмотрите три вещи:
- Handshake. Если последнего рукопожатия нет, клиент не договорился с сервером. Причина может быть в endpoint, ключах, сети или firewall.
- AllowedIPs. Для полного туннеля обычно используется маршрут всего трафика, для частичного — только отдельные подсети. Если здесь ошибка, часть сайтов пойдёт мимо VPN или не пойдёт вообще.
- PersistentKeepalive. WireGuard пишет, что по умолчанию он «тихий». За NAT или stateful firewall туннель может простаивать и терять доступность. Интервал 25 секунд часто используют как разумную настройку, но включать её стоит только когда есть симптом: соединение живёт недолго или отваливается после простоя.
Не публикуйте приватные ключи, конфиги и полные endpoint-адреса в открытых чатах. Для диагностики достаточно скрыть чувствительные значения и оставить структуру профиля.
Шаг 4. OpenVPN: если подключено, но сайты открываются наполовину
OpenVPN может успешно подключаться, получать адрес и маршруты, но при этом HTTPS-страницы зависают. Особенно подозрительно, если маленькие сайты открываются, а YouTube, облака, GitHub или тяжёлые страницы — нет. В таком случае проверьте MTU. На Ask Ubuntu похожий кейс обсуждали как ситуацию, где VPN работает на Windows и через мобильную сеть, но ломается на Linux в домашнем Wi‑Fi; один из вероятных факторов — MTU.
MTU — это максимальный размер пакета. VPN добавляет служебные заголовки, поэтому пакет, который без туннеля помещался в маршрут, внутри туннеля может стать слишком большим. Если по пути блокируется фрагментация, результат выглядит странно: «интернет есть», но часть сайтов не грузится.
Что проверить без рискованных действий:
- сравните работу через другую сеть;
- временно снизьте MTU в профиле или интерфейсе, если клиент это позволяет;
- проверьте, повторяется ли проблема только на OpenVPN или и на WireGuard;
- не меняйте одновременно DNS, MTU и firewall — иначе не поймёте, что помогло.
Шаг 5. Локальный firewall, Docker и маршруты
Linux часто используется разработчиками, а значит на ноутбуке могут быть Docker-сети, bridge-интерфейсы, локальные прокси, nftables, iptables и корпоративные агенты безопасности. Всё это может влиять на маршрутизацию.
Мини-чеклист:
- после подключения VPN проверьте, появился ли маршрут по умолчанию через туннель;
- убедитесь, что Docker bridge не конфликтует с подсетью VPN;
- временно отключайте только те правила firewall, назначение которых понимаете;
- если VPN нужен для конкретных приложений, не смешивайте это с системным kill switch без плана отката;
- если у вас роутерный VPN, проверьте Linux как обычный клиент сети: DNS и IPv6 могут отличаться от телефона.
Безопасный чеклист на 15 минут
- Проверить интернет без VPN.
- Подключить VPN и проверить внешний IP.
- Проверить DNS через
resolvectl dnsили аналог дистрибутива. - Сравнить Wi‑Fi, кабель и мобильный хот-спот.
- Для WireGuard проверить handshake и
AllowedIPs. - Для OpenVPN проверить, нет ли симптомов MTU: частичная загрузка сайтов, зависание больших HTTPS-страниц.
- Переподключить профиль после изменений.
- Записать, что меняли, чтобы можно было откатиться.
- Если не помогло — отправить провайдеру VPN факты, а не «у меня всё сломалось».
Когда лучше не чинить самому
Не стоит хаотично отключать systemd-resolved, удалять NetworkManager, чистить firewall или копировать команды из старых форумов, если ноутбук рабочий или корпоративный. На Linux такие действия могут сломать не только VPN, но и обычный интернет, Docker, локальную разработку и доступ к рабочим ресурсам.
Обратитесь в поддержку, если:
- VPN нужен для работы, а конфиг выдан компанией;
- используется нестандартный клиент;
- после диагностики видно, что DNS или маршруты приходят от сервера некорректно;
- проблема появилась после массовых сетевых ограничений, а не после ваших изменений;
- один и тот же профиль не работает на нескольких Linux-дистрибутивах.
FAQ
Почему VPN на Linux подключается, но сайты не открываются?
Чаще всего статус подключения означает только то, что туннель создан. Сайты могут не открываться из-за DNS, маршрутов, MTU, firewall или конфликта NetworkManager с systemd-resolved.
Что важнее проверить первым: DNS или протокол?
Сначала DNS. Если домены не резолвятся, смена OpenVPN на WireGuard может не дать результата. Проверьте, какой DNS назначен VPN-интерфейсу после подключения.
Нужно ли отключать systemd-resolved?
Не как первое действие. В большинстве современных дистрибутивов он штатно работает с VPN. Отключение может быть временной диагностикой, но лучше сначала разобраться с NetworkManager и DNS-приоритетами.
Почему VPN работает через мобильный хот-спот, но не через домашний Wi‑Fi?
Вероятны настройки роутера, провайдера, MTU или локальный DNS. Сравнение сетей помогает понять, проблема в Linux-клиенте или в конкретном маршруте до сервера.
Что такое MTU простыми словами?
Это максимальный размер сетевого пакета. VPN добавляет служебные данные, и пакет может стать слишком большим для маршрута. Тогда часть сайтов зависает, хотя подключение выглядит активным.
WireGuard лучше OpenVPN для Linux?
Не всегда, но WireGuard обычно проще и быстрее диагностировать: меньше параметров, понятный вывод peer и handshake. OpenVPN гибче, но чаще требует внимания к DNS, MTU и серверным push-настройкам.
Можно ли использовать один и тот же VPN-профиль на Linux и телефоне?
Да, если провайдер это разрешает. Но успешная работа на телефоне не гарантирует, что Linux автоматически применит DNS и маршруты так же: сетевой стек и менеджер подключений отличаются.
Что отправить в поддержку FoliVPN?
Дистрибутив и версию, тип клиента, протокол, сеть, симптомы, время ошибки, что уже проверяли, и безопасно очищенный вывод DNS/маршрутов. Не отправляйте приватные ключи и пароли.
Вывод
Если VPN на Linux не работает, двигайтесь от простого к сложному: интернет без VPN, DNS, маршруты, WireGuard/OpenVPN-параметры, MTU, firewall. Такой порядок экономит время и не превращает диагностику в хаос. Для большинства бытовых сценариев проблема решается не переустановкой системы, а аккуратной настройкой DNS, профиля NetworkManager или MTU.
Начните с бесплатного теста
Откройте Foli в Telegram, получите ссылку или QR и проверьте маршрут на своём интернете — платите только если работает.