Почему Linux не видит Wi-Fi: полный разбор причин и решений

Вы установили Linux, но система упорно не видит доступные Wi-Fi сети, хотя на Windows или смартфоне всё работает? Эта проблема знакома многим пользователям, особенно новичкам. Причины могут крыться как в программных настройках, так и в аппаратных особенностях вашего устройства. В отличие от Windows, где драйверы для Wi-Fi адаптеров обычно устанавливаются автоматически, в Linux этот процесс часто требует ручного вмешательства.

В этой статье мы разберём 10 основных причин, по которым Linux может не обнаруживать Wi-Fi сети, — от банального отключённого адаптера до сложностей с проприетарными драйверами. Вы узнаете, как диагностировать проблему с помощью терминала, где искать недостающие драйверы и какие команды помогут вернуть подключение. Особое внимание уделим популярным дистрибутивам: Ubuntu, Debian, Arch Linux и Fedora, так как решения могут отличаться.

Если вы не уверены в своих силах, не волнуйтесь: мы предоставим пошаговые инструкции с командами для копирования и скриншотами ключевых моментов. А для опытных пользователей добавим расширенные методы диагностики, включая анализ логов ядра и ручную компиляцию драйверов. Начнём с самого простого и постепенно перейдём к сложным случаям.

📊 Какой дистрибутив Linux вы используете?
Ubuntu/Debian
Arch Linux/Manjaro
Fedora/RHEL
OpenSUSE
Другой

1. Проверка базовых настроек: включён ли Wi-Fi адаптер?

Прежде чем копать глубоко, убедитесь, что проблема не в банальных вещах. В Linux Wi-Fi адаптер может быть отключён на уровне системы, BIOS или даже физически (например, кнопкой на ноутбуке). Начнём с проверки состояния адаптера в системе.

Откройте терминал и выполните команду:

ip a

Ищите в выводе интерфейс с названием wlan0, wlp3s0 или подобным (зависит от модели адаптера). Если его нет — адаптер либо отключён, либо не распознан системой. Если интерфейс есть, но помечен как DOWN, включите его командой:

sudo ip link set wlan0 up

Замените wlan0 на ваш интерфейс.

  • 🔍 Проверьте физическую кнопку Wi-Fi на ноутбуке (часто рядом с клавишами F1-F12 или отдельным переключателем). На некоторых моделях Lenovo, HP и Dell она может блокировать адаптер на аппаратном уровне.
  • 🖥️ Загляните в BIOS/UEFI: на некоторых материнских платах (особенно от ASUS и Gigabyte) Wi-Fi адаптер может быть отключён в настройках. Ищите опции типа Wireless LAN или Onboard Wi-Fi.
  • 🔄 Перезагрузите модуль ядра, отвечающий за Wi-Fi. Это часто помогает при временных сбоях:
    sudo modprobe -r iwlwifi && sudo modprobe iwlwifi

    Для адаптеров Broadcom замените iwlwifi на b43 или wl.

⚠️ Внимание: На некоторых ноутбуках (например, Lenovo ThinkPad серии T480 и новее) Wi-Fi может блокироваться из-за конфликта с rfkill — системой управления радиочастотными устройствами. Проверьте блокировку командой rfkill list и разблокируйте адаптер с помощью rfkill unblock wifi.

2. Отсутствие драйверов: самая распространённая проблема

Более 60% случаев, когда Linux не видит Wi-Fi, связаны с отсутствием или неправильной работой драйверов. В отличие от Windows, где производители поставляют готовые пакеты, в Linux драйверы для Wi-Fi адаптеров часто требуют ручной установки, особенно если ваше устройство новое или использует проприетарные чипы.

Чтобы узнать модель вашего Wi-Fi адаптера, выполните:

lspci -knn | grep -iA3 net

Ищите строки с упоминанием Network controller. Например, вывод может содержать:

03:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX200 [8086:2723] (rev 1a)

Subsystem: Intel Corporation Wi-Fi 6 AX200NGW [8086:0024]

Kernel driver in use: iwlwifi

Здесь Intel Corporation Wi-Fi 6 AX200 — модель адаптера, а iwlwifi — используемый драйвер.

Производитель чипа Типичные модели адаптеров Драйвер в Linux Требует ли проприетарное ПО?
Intel AX200, AX210, 8265, 7265 iwlwifi Нет (открытый)
Broadcom BCM4313, BCM4360, BCM4352 b43, wl, brcmsmac Да (часто)
Qualcomm Atheros QCA6174, QCA9377, AR9485 ath10k_pci, ath9k Нет
Realtek RTL8821CE, RTL8188EE, RTL8723DE rtl8xxxu, rtl8188ee Да (часто)
Mediatek (Ralink) MT7921, RT3290 mt7921e, rt2800pci Иногда

Если ваш адаптер требует проприетарного драйвера (например, многие чипы Broadcom или Realtek), его нужно установить вручную. Для Ubuntu/Debian это делается так:

sudo apt update

sudo apt install firmware-b43-installer # Для Broadcom

ИЛИ

sudo apt install rtl8821ce-dkms # Для Realtek RTL8821CE

Для Arch Linux используйте yaourt или yay:

yay -S rtl8821ce-dkms-git
⚠️ Внимание: Драйверы для новых чипов (например, Intel AX211 или Mediatek MT7922) могут отсутствовать в стандартных репозиториях. В этом случае придётся компилировать их из исходников с сайта производителя или использовать более новую версию ядра Linux (5.15+).

☑️ Проверка драйверов Wi-Fi в Linux

Выполнено: 0 / 5

3. Конфликты модулей ядра: когда драйверов слишком много

Иногда проблема не в отсутствии драйверов, а в их избытке. Linux может пытаться использовать неправильный модуль ядра для вашего адаптера, что приводит к конфликтам. Например, для чипов Broadcom может загружаться одновременно b43 и wl, что ломает работу Wi-Fi.

Проверьте загруженные модули командой:

lsmod | grep -i wifi

Если вы видите несколько модулей для одного адаптера (например, b43 и wl), нужно отключить лишние. Сначала узнайте, какой модуль действительно нужен вашему устройству (см. таблицу в предыдущем разделе), затем добавьте остальные в чёрный список.

Откройте файл конфигурации:

sudo nano /etc/modprobe.d/blacklist.conf

И добавьте строки для блокировки ненужных модулей. Например, для Broadcom BCM4313 может понадобиться:

blacklist b43

blacklist ssb

blacklist bcma

Сохраните файл (Ctrl+OEnterCtrl+X), затем обновите инициализацию модулей:

sudo update-initramfs -u

И перезагрузите систему.

  • 🔧 Для адаптеров Realtek часто требуется отключить встроенный модуль rtl8xxxu и использовать rtl8821ce из DKMS. Добавьте в чёрный список:
    blacklist rtl8xxxu
  • 🌐 Если после изменений Wi-Fi перестал работать совсем, вернитесь в blacklist.conf и закомментируйте добавленные строки символом #.
  • 📡 Для чипов Mediatek (например, MT7921) может понадобиться ядро версии 5.12+. Проверьте свою версию командой uname -r.
Как узнать, какой модуль ядра используется?

Выполните команду dmesg | grep -i firmware. В выводе ищите строки с упоминанием вашего адаптера (например, iwlwifi для Intel). Если есть ошибки типа firmware: failed to load, значит, драйвер загружен, но отсутствует прошивка (firmware).

4. Отсутствие firmware: когда драйвер есть, но не хватает прошивки

Драйвер может быть установлен, но для работы адаптера требуется дополнительный файл прошивки (firmware). Это особенно актуально для новых чипов, где прошивка не включена в стандартные пакеты дистрибутива. Симптомы: адаптер определяется системой, но не находит сети или выдаёт ошибки в логах.

Проверьте логи ядра на предмет ошибок прошивки:

dmesg | grep -i firmware

Если вы видите сообщения вроде:

iwlwifi 0000:03:00.0: firmware: failed to load iwlwifi-cc-a0-66.ucode (-2)

значит, система не может найти файл прошивки для вашего адаптера. Решение — установить пакет с firmware.

Для Debian/Ubuntu:

sudo apt install firmware-iwlwifi  # Для Intel

sudo apt install firmware-realtek # Для Realtek

sudo apt install firmware-misc-nonfree # Общий пакет

Для Arch Linux:

sudo pacman -S linux-firmware

Если прошивка отсутствует даже после установки пакетов, её можно скачать вручную с официального сайта производителя. Например, для Intel AX200:

  1. Скачайте последний .ucode-файл с официальной вики.
  2. Поместите его в директорию /lib/firmware:
  3. sudo cp iwlwifi-cc-a0-66.ucode /lib/firmware/
  4. Обновите инициализацию:
  5. sudo update-initramfs -u
⚠️ Внимание: Для адаптеров Realtek RTL88x2ce (например, RTL8822CE) может потребоваться ручная компиляция драйвера из репозитория на GitHub. Инструкции обычно прилагаются в README проекта. Будьте осторожны: неправильная компиляция может привести к падению системы!

5. Проблемы с NetworkManager: когда сеть есть, но не отображается

Иногда Wi-Fi адаптер работает, сети сканируются, но не отображаются в графическом интерфейсе (например, в GNOME или KDE Plasma). Виной тому может быть NetworkManager — служба управления сетями, которая по умолчанию используется в большинстве дистрибутивов.

Сначала проверьте, запущен ли NetworkManager:

systemctl status NetworkManager

Если служба не активна, запустите её:

sudo systemctl start NetworkManager

sudo systemctl enable NetworkManager

Если NetworkManager работает, но сети не показываются, попробуйте:

  • 🔄 Перезапустить службу:
    sudo systemctl restart NetworkManager
  • 📡 Вручную просканировать сети:
    nmcli device wifi rescan

    Затем проверьте список доступных сетей:

    nmcli device wifi list
  • 🔧 Сбросить настройки NetworkManager (если конфигурация повреждена):
    sudo rm /etc/NetworkManager/system-connections/*
    

    sudo systemctl restart NetworkManager

    Внимание: это удалит все сохранённые подключения!
  • 🛠️ Попробовать альтернативуwpa_supplicant + dhcpcd. Это более сложный метод, но иногда помогает при проблемах с NetworkManager.

Если сети видны в nmcli, но не в графическом интерфейсе, проблема может быть в applet-е (индикаторе сети). Для GNOME попробуйте перезапустить его:

killall nm-applet

nm-applet &

6. Аппаратные проблемы: когда виноват железо

Если все программные методы испробованы, но Wi-Fi по-прежнему не работает, возможно, проблема в самом адаптере или антеннах. Это особенно актуально для старых ноутбуков или устройств после падений/ремонта.

Как диагностировать аппаратные проблемы:

  • 🔧 Проверьте подключение антенн: на ноутбуках Wi-Fi адаптер обычно расположен под крышкой на задней панели. Убедитесь, что антенные кабели (тонкие чёрные провода) плотно подключены к разъёмам MAIN и AUX.
  • 🌡️ Перегрев: некоторые адаптеры (например, Intel 7260) при перегреве отключаются. Проверьте температуру командой:
    sudo lm-sensors

    Если адаптер нагревается выше 70°C, возможно, требуется очистка от пыли или замена термопасты.

  • 🔄 Тестирование на другом устройстве: если есть возможность, подключите адаптер к другому ПК или ноутбуку (например, через USB Wi-Fi донгл). Если проблема повторяется — адаптер неисправен.
  • 📡 Конфликт с USB 3.0: некоторые Wi-Fi адаптеры (особенно на чипах Realtek RTL8812AU) конфликтуют с портами USB 3.0. Попробуйте подключить донгл к порту USB 2.0 (обычно чёрного цвета).

Если адаптер встроенный (например, в ноутбуке), и вы подозреваете его неисправность, можно временно использовать внешний USB-адаптер. Хорошо зарекомендовали себя модели на чипах:

  • TP-Link TL-WN725N (чип RTL8188EU, поддерживается "из коробки" в большинстве дистрибутивов).
  • Edimax EW-7811Un (чип RTL8188CUS, работает с драйвером rtl8192cu).
  • Intel AX200NGW (для M.2 слота, требует ядро 5.4+).
⚠️ Внимание: На некоторых ноутбуках (например, Dell XPS 13 или Lenovo Yoga) встроенный Wi-Fi адаптер может быть отключён на уровне BIOS из-за политики производителя. В этом случае поможет только прошивка модифицированного BIOS или использование внешнего адаптера.

7. Проблемы с регуляторными ограничениями (regulatory domain)

Linux соблюдает регуляторные ограничения разных стран, что может приводить к ограничению мощности Wi-Fi или даже полному отключению некоторых каналов. Если ваш адаптер работает, но не видит сети на каналах выше 11 (например, в диапазоне 5 ГГц), проблема может быть в неверных настройках regulatory domain.

Проверьте текущие настройки:

iw reg get

Если вывод содержит:

country 00: DFS-UNSET

значит, регион не установлен, и адаптер работает в ограниченном режиме. Исправить это можно так:

sudo iw reg set RU  # Для России

sudo systemctl restart NetworkManager

Замените RU на код вашей страны (например, US, EU). Полный список кодов можно найти в файле /usr/lib/crda/regulatory.db.

Если после смены региона Wi-Fi по-прежнему не видит сети 5 ГГц, проверьте поддержку диапазона вашим адаптером. Некоторые старые модели (например, Intel Centrino Wireless-N 1000) работают только в диапазоне 2.4 ГГц.

8. Конфликты с другими программами (VPN, фаерволы, антивирусы)

Иногда Wi-Fi не работает из-за конфликтов с другим программным обеспечением. Частые виновники:

  • 🔒 Фаерволы: ufw, firewalld или iptables могут блокировать сетевые подключения. Проверьте правила:
    sudo ufw status

    Если фаервол активен, временно отключите его для теста:

    sudo ufw disable
  • 🌐 VPN-клиенты: некоторые VPN (например, OpenVPN или WireGuard) могут менять маршруты или блокировать подключения. Отключите VPN и проверьте Wi-Fi.
  • 🛡️ Антивирусы: ClamAV или Sophos в редких случаях могут вмешиваться в сетевые подключения. Попробуйте временно остановить службу антивируса.
  • 📡 Другие сетевые менеджеры: если вы устанавливали wicd, connman или netctl рядом с NetworkManager, они могут конфликтовать. Удалите лишние пакеты:
    sudo apt remove wicd  # Для Debian/Ubuntu

Если подозреваете, что проблема в конкретной программе, проверьте логи системы:

journalctl -xe | grep -i wifi

Ищите ошибки, связанные с сетью или блокировками.

Особое внимание стоит уделить DNS-настройкам. Если Wi-Fi подключается, но страницы не открываются, проблема может быть в DNS. Проверьте:

ping 8.8.8.8

Если пинг проходит, но сайты не открываются, попробуйте сменить DNS:

sudo nano /etc/resolv.conf

Добавьте строки:

nameserver 8.8.8.8

nameserver 1.1.1.1

FAQ: Частые вопросы о Wi-Fi в Linux

Мой Wi-Fi адаптер определяется, но не находит сети. В чём дело?

Это типично для случаев, когда:

  • Не хватает прошивки (firmware). Проверьте логи ядра командой dmesg | grep -i firmware.
  • Адаптер отключён программно. Проверьте rfkill list и разблокируйте его.
  • Неверно настроен regulatory domain. Установите правильный регион командой sudo iw reg set RU.

Также убедитесь, что рядом есть активные Wi-Fi сети (проверьте на смартфоне).

После обновления ядра Wi-Fi перестал работать. Что делать?

Обновление ядра может сломать совместимость с проприетарными драйверами. Решения:

  1. Переустановите драйвер для вашей версии ядра. Например, для Realtek RTL8821CE:
    sudo dkms remove rtl8821ce/версия --all
    

    sudo dkms install rtl8821ce/версия

  2. Откат на предыдущую версию ядра (если новая нестабильна).
  3. Установка более нового драйвера из репозитория производителя.

Проверьте совместимость вашего адаптера с текущим ядром на сайте wireless.wiki.kernel.org.

Можно ли использовать Windows-драйвер для Wi-Fi в Linux?

Да, но с оговорками. Проект ndiswrapper позволяет загружать Windows-драйверы (.inf и .sys файлы) в Linux, но:

  • Это нестабильное решение, которое может привести к падениям системы.
  • Не все драйверы поддерживаются (особенно для Windows 10/11).
  • Производительность и стабильность будут хуже, чем с нативными драйверами.

Установить ndiswrapper можно так:

sudo apt install ndiswrapper-common ndiswrapper-utils-1.9  # Debian/Ubuntu

sudo pacman -S ndiswrapper # Arch Linux

Но мы рекомендуем искать нативные решения или покупать совместимый адаптер.

Wi-Fi работает, но постоянно отключается. Как исправить?

Причины нестабильного подключения:

  • Экономия энергии: отключите её для Wi-Fi адаптера:
    sudo iw dev wlan0 set power_save off

    Чтобы сделать это постоянно, добавьте строку в /etc/rc.local (до exit 0).

  • Слабый сигнал: проверьте уровень сигнала командой iwconfig wlan0. Если Signal level ниже -70 dBm, попробуйте переместиться ближе к роутеру или сменить канал на роутере (в настройках роутера выберите канал с меньшими помехами).
  • Конфликты с Bluetooth: на некоторых ноутбуках Wi-Fi и Bluetooth используют одну антенну. Отключите Bluetooth для теста.

Также проверьте логи на ошибки:

dmesg | grep -i wifi
Какой Wi-Fi адаптер лучше купить для Linux?

Рекомендуемые адаптеры с хорошей поддержкой в Linux:

Тип Модель Чип Диапазоны Примечания
USB TP-Link TL-WN725N v3 RTL8188EU 2.4 ГГц Работает "из коробки" в большинстве дистрибутивов.
USB Edimax EW-7811Un RTL8188CUS 2.4 ГГц Хорош для Raspberry Pi.
PCIe Intel AX200 AX200 2.4 + 5 ГГц Требует ядро 5.4+. Поддерживает Wi-Fi 6.
M.2 Intel 9260NGW 9260 2.4 + 5 ГГц Хорошая альтернатива встроенным адаптерам в ноутбуках.

Избегайте адаптеров на чипах Realtek RTL8192EU и RTL8811AU — они часто требуют ручной компиляции драйверов.