Wi-Fi не работает в Linux? Вот как это исправить

Одна из больших проблем, с которыми сталкиваются пользователи Linux, — это Wi-Fi. Драйвера Wi-Fi часто не включены в ядро, и в результате возникают множество проблем с работой модулей Wi-Fi, не относящихся к Intel, в Linux. Здесь мы рассматриваем, что делать, если Wi-Fi не работает в Linux, и как это исправить.
Содержание
- Аппаратные и программные проблемы с Wi-Fi
- Установка драйверов из образа Ubuntu ISO
- Проблема первая: устройство не обнаружено
- Проблема вторая: отсутствует модуль драйвера
- Проблема третья: DNS
- Проблема четвертая: нет менеджера сети
Совет: узнайте, как найти сохраненные пароли Wi-Fi в Linux.
Аппаратные и программные проблемы с Wi-Fi
Проблемы с подключением Wi-Fi могут быть либо аппаратными, либо программными. Аппаратные проблемы относительно легко диагностировать — все, что вам нужно сделать, это открыть терминал и ввести следующую команду:
ping localhost
Это простой способ проверить, работает ли ваше физическое оборудование. localhost служит адресом для проверки схемы вашего сетевого интерфейса. Если это не работает, возможно, вам потребуется провести некоторые работы с оборудованием, либо самостоятельно, либо с помощью кого-то другого.
Если ping возвращает ответ, или если вы даже не видите свою Wi-Fi карту, вероятно, у вас есть программная проблема.
Кроме того, вы также можете проверить, обнаруживает ли ваша система активный сетевой интерфейс, выполнив ip addr. Большинство дистрибутивов помечают в настоящее время активные беспроводные карты как “wl”, за которыми следуют номера шины и слота устройства на материнской плате компьютера.
Например, метка “wlp0s1” означает, что это беспроводной сетевой интерфейс на шине 0, слоте 1.

Примечание: если вы не можете просматривать веб, возможно, вам нужно отключить IPv6 на вашем компьютере с Linux.
Установка драйверов из образа Ubuntu ISO
Если ваш дистрибутив совсем не обнаруживает вашу Wi-Fi сеть или вы получаете ошибки, вы можете попробовать установить или переустановить драйверы Wi-Fi из файла образа Ubuntu ISO. Сначала вам нужно загрузить образ Ubuntu ISO, соответствующий вашей версии Ubuntu. (Предположительно, вам нужно загрузить его на другое устройство или загрузить его с помощью Ethernet-соединения на Ubuntu.)
Откройте терминал, затем введите следующую последовательность команд, чтобы смонтировать образ Ubuntu ISO на виртуальный диск:
sudo mkdir /media/cdrom
sudo mount -o loop ~/Downloads/ubuntu-*.iso /media/cdromПерейдите в “Обновление программного обеспечения” из панели управления, затем нажмите кнопку Настройки в нижнем левом углу окна.

Нажмите на вкладку Дополнительные драйверы, затем выберите опцию Беспроводной сетевой адаптер и нажмите Применить изменения.
Проблема первая: устройство не обнаружено
Если беспроводное устройство не обнаруживается Ubuntu (или любым дистрибутивом), откройте сессию терминала и введите следующую команду:
sudo lsusbЭта команда выведет все USB-устройства, которые в настоящее время подключены к вашему компьютеру. Найдите любую строку, содержащую либо “Беспроводной адаптер”, либо “RTL”.
sudo lsusb | grep "RTL"
Помимо перечисления всех USB-адаптеров, вы также можете проверить свою систему на наличие любых беспроводных PCI устройств. Для этого выполните следующую команду:
sudo lspciТак же, как и в команде lsusb, ищите любые строки в выводе lspci, содержащие метку “Контроллер сети” или “Контроллер Ethernet”.

Чтобы найти точный модуль драйвера, который в настоящее время использует ваше беспроводное устройство, выполните следующую команду:
sudo lshw -C network | grep "driver"Выделите значение переменной “driver” и скопируйте его в буфер обмена.

Проблема вторая: отсутствует модуль драйвера
Исходя из успешных команд lsusb и lspci, подтверждающих, что ваш дистрибутив Linux может видеть беспроводную карту, вы можете предположить, что прошивка работает, просто система не знает, что делать с устройством. Здесь требуются драйвера или модули.
Введите следующую команду, затем замените “modulename” содержимым буфера обмена:
sudo modprobe modulenameНапример, если ваш беспроводной драйвер называется “iwlwifi”, это будет выглядеть следующим образом:
sudo modprobe iwlwifiПосле этого выполните sudo lsmod | grep "modulename", чтобы увидеть, правильно ли загрузило ядро Linux ваше Wi-Fi устройство.

Автоматическая загрузка модуля драйвера при загрузке
Это редкий случай, но иногда модуль не сохраняется при загрузке. В этом случае вы можете заставить его загружаться постоянно. Введите команду ниже в терминал:
sudo nano /etc/modulesДобавьте имя вашего модуля в нижней части и сохраните файл.

Перезагрузите компьютер, чтобы проверить, правильно ли ядро Linux загрузило беспроводное устройство.
Полезно знать: узнайте, как ваш компьютер управляет своим оборудованием, установив собственное ядро Linux в Ubuntu уже сегодня.
Проблема третья: DNS
Редко возникают проблемы с DNS; тем не менее, стоит проверить, если у вас по-прежнему есть проблемы с подключением. В терминале введите следующую команду, чтобы проверить стандартный DNS-резолвер системы:
nmcli device show INTERFACE-NAME | grep IP4.DNSПо умолчанию это будет установлено на IP-адрес вашего маршрутизатора. Если это не работает, вам может понадобиться заменить “wlp0s1” на то, что использует ваше беспроводное устройство. Для получения обозначения можно также использовать следующую команду:
ip addr | grep ": "Как только у вас есть эта информация, выполните ping на адрес вашего DNS-резолвера. Если это работает, вы также можете выполнить ping на внешний сетевой адрес, такой как DNS-резолверы Google:
ping 8.8.8.8Если все устройства в вашей сети выдают ошибки загрузки страниц, замените DNS-резолверы на IP-адреса серверов Google или OpenNIC. Вам нужно будет обратиться к производителю вашего маршрутизатора, чтобы узнать, как это сделать, но обычно это сделано путем доступа к административной консоли устройства. Вы можете найти это на большинстве маршрутизаторов, перейдя в браузере на “192.168.0.1” или “192.168.254.254”.
Добавление пользовательского DNS-сервера в NetworkManager
Тем не менее, вы также можете изменить DNS-резолвер на уровне каждого устройства. Чтобы сделать это в Ubuntu, нажмите на Кнопку управления в верхнем правом углу рабочего стола, затем выберите Иконку шестеренки.

Нажмите на категорию Wi-Fi, затем найдите категорию Видимые сети.

Выберите Иконку шестеренки на строке, содержащей имя вашей беспроводной точки доступа.
Нажмите на вкладку IPv4 в верхней части маленького окна.

Перейдите в раздел DNS, затем переключите переключатель Автоматически в выключенное положение.

Введите “8.8.8.8,8.8.4.4” в текстовое поле DNS, затем нажмите Применить, чтобы подтвердить настройки.

Откройте новый терминал, затем выполните следующую команду, чтобы удалить любые предыдущие данные резолвера DNS:
resolvectl flush-cachesПроверьте, использует ли ваша система теперь новые настройки резолвера DNS, выполнив следующее:
resolvectl status | grep "Current DNS Server"Проверьте, разрешили ли текущие настройки DNS вашу сетевую проблему, загрузив веб-страницу в веб-браузере.

Полезно знать: узнайте больше о DNS-серверах и резолдерах DNS, используя dig в Linux.
Проблема четвертая: нет менеджера сети
Предположим, вы случайно удалили менеджер сети или деинсталлировали его. Это действительно проблемная ситуация: у вас нет Интернета и нет менеджера сети, но есть вещи, которые вы можете сделать.
Предполагая, что пакет все еще находится в вашем кэше, вы можете открыть терминал и ввести:
# Debian/Ubuntu
sudo apt install network-manager
# Fedora
sudo dnf install NetworkManager
# Arch Linux
sudo pacman -Syu networkmanagerЕсли это не работает, вы можете заставить вашу систему подключиться к беспроводной точке доступа, используя wpa_supplicant. Это инструмент командной строки, который использует драйвер вашего беспроводного устройства для подключения к точке доступа без использования менеджера сети.
Чтобы начать, создайте конфигурационный файл для wpa_supplicant, используя ваш любимый текстовый редактор:
sudo nano /etc/wpa_supplicant.confВставьте следующий блок кода внутрь конфигурационного файла, затем замените “SSID” и “PASSWORD” на имя точки доступа и пароль вашего маршрутизатора:
network={
ssid="SSID"
password="PASSWORD"
}Сохраните конфигурационный файл, затем вставьте следующую строку кода в сессию терминала:
sudo wpa_supplicant -B -i INTERFACE-NAME -c /etc/wpa_supplicant.conf -D nl80211Замените значение флага “-i” на имя вашего беспроводного интерфейса.
Примечание: эта команда будет работать только на новых беспроводных картах. Если вы пытаетесь подключить более старую Wi-Fi карту, замените значение флага “-D” на “wext.”
Запросите новый IP-адрес от вашего маршрутизатора, перезагрузив демона DHCP:
sudo dhclient INTERFACE-NAMEПроверьте, работает ли ваше Wi-Fi соединение, пингируя внешний сайт:
ping -c 5 maketecheasier.comПереустановите менеджер сети, чтобы восстановить полные Wi-Fi возможности вашей системы Linux:
sudo apt install network-managerПерезагрузите машину, чтобы загрузить новую установленную версию менеджера сети.
Понимание того, как работают модули Wi-Fi и драйвера ядра, — это только первый шаг к пониманию работы Linux. Исследуйте техническую сторону этой операционной системы, создав скрытую файловую систему с помощью Shufflecake.