Одной из серьезных проблем, с которой пользователи Linux сталкиваются, является Wi-Fi. Драйверы Wi-Fi часто не включены в ядро, и в результате возникает множество проблем с правильной работой модулей Wi-Fi сторонних производителей под Linux. Здесь мы расскажем, что происходит, когда Wi-Fi не работает в Linux, и как это исправить.
Совет : узнайте, как достичь найти сохраненные пароли Wi-Fi в Linux .
Аппаратные и программные проблемы с Wi-Fi
Проблема с подключением к Wi-Fi может быть аппаратной или программной. Проблемы с оборудованием относительно легко диагностировать — все, что вам нужно сделать, это открыть терминал и ввести следующую команду:
ping localhostContents
Аппаратные и программные проблемы с Wi-Fi
//saintist.ru/wp-content/uploads/2024/05/fix-wifi-linux-01-ping-localhost-test.png" alt="Терминал, показывающий тест шлейфа локального хоста.">
Это простой способ проверить, работает ли ваше физическое оборудование. localhost
работает как адрес для проверки схемы вашего сетевого адаптера. Если это не работает, возможно, вам придется поработать с оборудованием самостоятельно или кем-то еще.
Если пинг чистый или вы даже не видите свою карту Wi-Fi, скорее всего, у вас проблема с программным обеспечением.
Кроме того, вы также можете проверить, обнаруживает ли ваша система активный сетевой интерфейс, запустив ip addr
. Большинство дистрибутивов помечают активные в данный момент беспроводные карты буквой «wl», за которой следуют номера шин и слотов устройства на материнской плате компьютера.
Например, метка «wlp0s1» означает, что это интерфейс беспроводной сети на шине 0, слот 1.
![Терминал, показывающий беспроводное устройство, работающее в данный момент в системе.](https://saintist.ru/wp-content/uploads/2024/05/fix-wifi-linux-02-wireless-device-name-ip-addr-800x513-1.png)
Примечание. Если вы не можете пользоваться Интернетом, вам может быть необходимо отключить IPv6 на вашем компьютере с Linux .
Установить драйверы из Ubuntu ISO
Если ваш дистрибутив вообще не обнаруживает вашу сеть Wi-Fi или вы получаете ошибки, вы можете попробовать установить или переустановить драйверы Wi-Fi из ISO-файла Ubuntu. Во-первых, вам нужно скачайте ISO-образ Ubuntu , соответствующее вашей версии Ubuntu. (Предположительно, вам нужно загрузить его на другое устройство или загрузить через Ethernet-соединение в Ubuntu.)
Откройте терминал, затем введите следующую последовательность команд, чтобы смонтировать ISO-образ Ubuntu на виртуальный диск:
sudo mkdir /media/cdrom sudo mount -o loop ~/Downloads/ubuntu-*.iso /media/cdrom
Перейдите в раздел «Обновление программного обеспечения» на панели управления, затем нажмите кнопку Настройки в левом нижнем углу окна.
![Снимок экрана, на котором выделена кнопка «Настройки...» в утилите Software Updater.](https://saintist.ru/wp-content/uploads/2024/05/fix-wifi-linux-03-software-updater-settings-button.png)
Перейдите на вкладку Дополнительные драйверы, затем выберите параметр Адаптер беспроводной сети и нажмите Применить изменения.
Проблема первая: устройство не обнаружено
Если беспроводное устройство не обнаруживается Ubuntu (
Установить драйверы из Ubuntu ISO
сеанс терминала и введите следующую команду:sudo lsusb
Эта команда распечатает все USB-устройства, подключенные в данный момент к вашему компьютеру. Найдите любую строку, содержащую «Беспроводной адаптер» или «RTL».
sudo lsusb | grep "RTL"
![Терминал, показывающий активное в данный момент USB-устройство Wi-Fi в Linux.](https://saintist.ru/wp-content/uploads/2024/05/fix-wifi-linux-04-check-usb-devices-lsusb.png)
Помимо перечисления всех USB-адаптеров, вы также можете проверить свою систему на наличие любых беспроводных устройств PCI. Для этого выполните следующую команду:
sudo lspci
Как и в случае с командой lsusb
, найдите в выводе lspci любые строки, содержащие метку «Сетевой контроллер» или «Контроллер Ethernet».
Определите точный модуль драйвера, который в настоящее время использует ваше беспроводное устройство, выполнив следующую команду:
sudo lshw -C network | grep "driver"
Выделите значение переменной «driver» и скопируйте его в буфер обмена.
![Терминал, выделяющий активный в данный момент драйвер для устройства Wi-Fi.](https://saintist.ru/wp-content/uploads/2024/05/fix-wifi-linux-06-highlight-driver-name-wireless-settings-800x221-1.png)
Проблема вторая: отсутствует модуль драйвера
После успешных команд lsusb
и lspci
, подтверждающих, что ваш дистрибутив Linux видит беспроводную карту, вы можете предположить, что прошивка работает, просто Система понятия не имеет, что делать с устройством. Вот здесь и нужны драйверы или модули.
Введите след
Проблема первая: устройство не обнаружено
уфера обмена:sudo modprobe modulename
Например, если ваш драйвер беспроводной сети — «iwlwifi», он будет выглядеть следующим образом:
sudo modprobe iwlwifi
После этого запустите sudo lsmod | grep "modulename"
, чтобы проверить, правильно ли ядро Linux загрузило ваше устройство Wi-Fi.
![Терминал, показывающий, как модуль Wi-Fi загружается в текущее ядро.](https://saintist.ru/wp-content/uploads/2024/05/fix-wifi-linux-07-load-wireless-device-kernel-module-800x302-1.png)
Автоматически загружать модуль драйвера при загрузке
Это редкий случай, но иногда модуль не сохраняется после загрузки. В этом случае вы можете заставить его загружаться постоянно. Введите в терминал команду ниже:
sudo nano /etc/modules
Добавьте имя вашего модуля внизу и сохраните файл.
![Терминал, показывающий файл конфигурации, который может загружать модули ядра во время загрузки.](https://saintist.ru/wp-content/uploads/2024/05/fix-wifi-linux-08-automatic-kernel-module-load-config-800x511-1.png)
Перезагрузите компьютер, чтобы проверить, правильно ли ядро Linux загрузило беспроводное устройство.
Полезно знать: узнайте, как ваш компьютер управляет своим оборудованием к установка собственного ядра Linux в Ubuntu уже сегодня.
Проблема третья: DNS
Проблемы с DNS возникают редко; однако стоит проверить, остались ли у вас проблемы с подключением. В терминале введите следующую команду, чтобы проверить DNS-преобразователь системы по умолчанию:
nmcli device show INTERFACE-NAME | grep IP4.DNS
По умолчанию здесь будет установлен IP-адрес вашего маршрутизатора. Если это не сработает, возможно, вам придется изменить «wlp0s1» на то, что использует ваша беспроводная сеть. Для получения обозначения также можно использовать следующую команду:
ip addr | grep ": "
После получения этой информации отправьте запрос на адрес DNS-преобразователя. Если это работает, вы также можете отправить пинг во внешнюю сеть, например DNS-резольверы Google:
ping 8.8.8.8
Если все устройства в вашей сети выдают ошибки загрузки страниц, измените преобразователи DNS на вашем маршрутизаторе на серв
Проблема вторая: отсутствует модуль драйвера
ться у производителя вашего маршрутизатора, как это сделать, но обычно это делается путем доступа к консоли администратора устройства. Его можно найти на большинстве маршрутизаторов, перейдя по адресу «192.168.0.1» или «192.168.254.254» в веб-браузере.Добавление собственного DNS-сервера в NetworkManager
Тем не менее, вы также можете изменить преобразователь DNS для каждого устройства. Чтобы сделать это в Ubuntu, нажмите кнопку Меню управления в правом верхнем углу рабочего стола, затем выберите Значок шестеренки.
![Снимок экрана, на котором выделена кнопка «Настройки» в Gnome.](https://saintist.ru/wp-content/uploads/2024/05/fix-wifi-linux-09-click-settings-button-control-menu.png)
Нажмите категорию Wi-Fi, затем найдите категорию Видимые сети.
![Снимок экрана, показывающий раздел видимых сетей категории Wi-Fi.](https://saintist.ru/wp-content/uploads/2024/05/fix-wifi-linux-10-visible-networks-sample-800x523-1.png)
Выберите значок шестеренки в строке, содержащей имя вашей точки беспроводного доступа.
![Снимок экрана, на котором выделена кнопка «Настройки» для активной в данный момент точки беспроводного дос<h3><span id=](https://saintist.ru/wp-content/uploads/2024/05/fix-wifi-linux-11-highlight-wifi-gear-icon.png)
![Снимок экрана, на котором выделена вкладка IPv4 в меню настроек точки доступа.](https://saintist.ru/wp-content/uploads/2024/05/fix-wifi-linux-12-highlight-ipv4-tab-wifi-settings.png)
Перейдите в раздел DNS, затем выключите параметр Автоматический.
![Снимок экрана, на котором показан переключатель DNS «Автоматический» на вкладке IPv4.](https://saintist.ru/wp-content/uploads/2024/05/fix-wifi-linux-13-toggle-automatic-switch-dns.png)
Введите «8.8.8.8,8.8.4.4» в текстовом поле DNS, затем нажмите Применить, чтобы сохранить настройки.
![Снимок экрана, на котором показаны пользовательские преобразователи DNS для текущего подключения Wi-Fi.](https://saintist.ru/wp-content/uploads/2024/05/fix-wifi-linux-14-input-google-dns-resolvers-wifi-settings.png)
Откройте новый терминал, затем выполните следующую команду, чтобы удалить все предыдущие данные преобразователя DNS:
resolvectl flush-caches
Проверьте, использует ли ваша система новые настройки преобразователя DNS, выполнив следующую команду:
resolvectl status | grep "Current DNS Server"
Проверьте, решили ли текущие настройки DNS проблему с вашей сетью, загрузив веб-страницу
Проблема третья: DNS
decoding="async" src="https://saintist.ru/wp-content/uploads/2024/05/fix-wifi-linux-15-test-internet-connection-load-website-800x580-1.jpg" alt="Снимок экрана веб-сайта MakeTechEasier на компьютере с Ubuntu со специальным преобразователем DNS.">Полезно знать: узнайте больше о серверах имен и преобразователях DNS от использование копания в Linux .
Проблема четвертая: нет сетевого менеджера
Предположим, вы удалили Network Manager или удалили его случайно. Это действительно неприятная ситуация: у вас нет Интернета и сетевого менеджера, но кое-что можно сделать.
Предполагая, что пакет все еще находится в вашем кеше, вы можете подойти к терминалу и ввести:
# Debian/Ubuntu sudo apt install network-manager # Fedora sudo dnf install NetworkManager # Arch Linux sudo pacman -Syu networkmanager
Если это не сработает, вы можете заставить свою систему подключиться к беспроводной точке доступа с помощью wpa_supplicant. Это инструмент командной строки, который использует драйвер вашего беспроводного устройства для подключения к точке доступа без использования Network Manager.
Для начала создайте файл конфигурации для wpa_supplicant с помощью вашего любимого текстового редактора:
sudo nano /etc/wpa_supplicant.conf
Вставьте следующий блок кода в файл конфигурации, затем замените «SSID» и «PASSWORD» именем точки доступа и паролем вашего маршрутизатора:
network={ ssid="SSID" password="PASSWORD" }
<
Сохраните файл конфигурации, затем вставьте следующую строку кода в сеанс терминала:
sudo wpa_supplicant -B -i INTERFACE-NAME -c <Добавление собственного DNS-сервера в NetworkManager
pan> nl80211
Замените значение флага «-i» на имя вашего беспроводного интерфейса.
![Терминал, подсвечивающий флаг интерфейса.](https://saintist.ru/wp-content/uploads/2024/05/fix-wifi-linux-16-highlight-interface-flag-wpa-supplicant-800x124-1.png)
Примечание. эта команда будет работать только на новых беспроводных картах. Если вы пытаетесь подключить старую карту Wi-Fi, замените значение флага «-D» на «wext».
Запросите новый IP-адрес у маршрутизатора, перезагрузив демон DHCP:
sudo dhclient INTERFACE-NAME
Проверьте, работает ли ваше Wi-Fi-соединение, выполнив проверку связи с внешним сайтом:
ping -c 5 maketecheasier.com
Переустановите Network Manager, чтобы восстановить полную мощность Wi-Fi вашей системы Linux:
sudo apt install network-manager
Перезагрузите компьютер, чтобы загрузить новую установку Network Manager.
Понимание того, как работают модули Wi-Fi и драйверы ядра, — это лишь первый шаг в изучении того, как работает Linux под капотом. Узнайте больше о технической стороне этой операционной системы от создание скрытой файловой системы с помощью Shufflecake .
Изображение предоставлено: Сказочная улица через Unsplash и Викисклад . Все изменения и скриншоты Рамсеса Реда.