Настройка Wi-Fi в Debian 11
Обновлено: 21.11.2024
Недавно я работал над обучающей системой Debian на своем ноутбуке без среды рабочего стола. Вот как мне удалось (1) установить Wi-Fi-соединение и (2) разрешить автоматическую установку этого соединения во время загрузки.
Установка Wi-Fi-соединения
Для этого вам необходимо:
- Определите беспроводную сетевую карту и включите ее.
- Сканировать обнаруженные сети Wi-Fi.
- Настройте Wi-Fi-соединение с точкой доступа.
- Получите динамический IP-адрес с помощью DHCP.
- Добавить маршрут по умолчанию в таблицу маршрутов.
- Убедитесь, что подключение было установлено с помощью команды ping.
Включение сетевой карты
Определите сетевую карту Wi-Fi с помощью следующей команды:
Запишите имя устройства, которое вам понадобится в дальнейшем. На самом деле, строка может быть несколько длинной. Поэтому я создал переменную, чтобы уменьшить трудоемкость ввода:
Далее поднимите сетевую карту следующим образом:
Обнаружение сетей Wi-Fi
Просканируйте беспроводные сети с помощью следующей команды:
Убедитесь, что SSID вашей точки доступа входит в число обнаруженных. Чтобы уменьшить трудоемкость ввода, я снова установил переменную среды с SSID:
Настройте Wi-Fi-соединение с точкой доступа
Служба wpa_supplicant используется для установки зашифрованного соединения с точкой доступа. Он использует файл конфигурации /etc/wpa_supplicant.conf, который содержит ключи wpa2 для каждого SSID. Так как я первый раз подключаюсь к точке доступа, мне нужно добавить для нее запись в конфигурационный файл:
Далее вам нужно подключиться к точке доступа следующим образом:
Наконец, подтвердите, что вы подключены к точке доступа:
Получить динамический IP-адрес с помощью DHCP
Вы получаете динамический IP-адрес от DHCP-сервера следующим образом:
Добавить маршрут по умолчанию в таблицу маршрутов
Поскольку я впервые подключаюсь к этой точке доступа, мне нужно изменить таблицу маршрутизации, связанную с беспроводным сетевым интерфейсом. Сначала проверьте таблицу маршрутов:
Возможно, это будет содержать только одно правило с блоком CIDR локальной сети в качестве пункта назначения и целевым значением $wlan0 . Для подключения к Интернету необходимо добавить маршрут к шлюзу по умолчанию (маршрутизатору):
Убедитесь, что соединение установлено
Теперь у вас должно быть подключение к Интернету. Вы можете проверить это следующим образом:
Автоматическое подключение во время загрузки
Для описанной выше настройки необходимо выполнить два шага:
- Создайте и включите службу systemd для Dhclient.
- Создайте и включите службу systemd для wpa_supplicant.
Служба клиента Dh4
Создайте единицу службы systemd для Dhclient, создав файл /etc/systemd/system/dhclient.service . Отредактируйте файл следующим образом:
Теперь включите службу с помощью sudo systemctl enable dhclient
Служба Wpa_supplicant
Скопируйте файл модуля службы из /lib/systemd/system в /etc/systemd/system:
Откройте файл в каталоге /etc с помощью редактора (я предпочитаю vim) и измените строку с помощью ExecStart следующим образом:
На этой странице описывается, как настроить интерфейс WiFi в системе Debian для использования в сети.
Как только ваше беспроводное устройство имеет доступный интерфейс (что можно проверить, запустив "ip link show"), его необходимо настроить для доступа к сети. Если у вас нет беспроводного интерфейса, обратитесь к WiFi за информацией о получении драйвера или необходимой прошивки для вашего устройства.
Для настройки беспроводного сетевого интерфейса требуется серверная часть, обычно wpa_supplicant (часто в сочетании с ifupdown и другими утилитами) или IWD. Их можно использовать с диспетчерами соединений, которые предоставляют расширенные функции и более простой способ их настройки. Обычно это NetworkManager, ConnMan, systemd-networkd и Wicd.
Алгоритм WEP небезопасен и не рекомендуется WPA. Использование WEP не рекомендуется и не рассматривается в этом документе.
- Как использовать интерфейс Wi-Fi
- Автоматически
- Менеджер сети
- Внешние интерфейсы NetworkManager
- Устранение неполадок и советы по NetworkManager ол>
- Конфигурация сети
- Настройка iwd через iwctl
- Настройка разрешения DNS для IWD (простое)
- Отладка и тестирование
- Дополнительная литература ол>
- Использование IWD
- Использование ifupdown
- WPS ол>
- WPA-PSK и WPA2-PSK
- WPA-EAP
- Нажмите на название нужной сети.
- Если в сети используется шифрование WPA с паролем (парольная фраза/предварительный общий ключ), вам будет предложено ввести его. После предоставления нажмите кнопку "Подключиться".
- Беспроводное сетевое соединение будет активировано.
- Нажмите "Подключиться к другой беспроводной сети".
- Введите название сети в поле «Имя (ESSID)».
- Отметьте «Использовать шифрование», если оно используется в сети.
- Выберите используемый метод шифрования (обычно "WPA Personal").
- Введите кодовую фразу/общий ключ в поле "Пароль".
- Выберите «WPA 1» или «WPA 2» для версии протокола, используемой в сети.
См. страницу NetworkManager для часто задаваемых вопросов, документации и ссылок на поддержку.
NetworkManager на обычном настольном/безголовом сеансе
Если внешний интерфейс с графическим интерфейсом недоступен, команды «nmcli» и «nmtui» доступны как интерфейсы CLI и TUI соответственно для NetworkManager.
Устранение неполадок и советы по NetworkManager
WiFi может сканировать, но не может подключиться с помощью NetworkManager (Debian 9 Stretch)
Если вы обнаружите, что ваше беспроводное сетевое устройство может сканировать, но не завершает подключение, попробуйте отключить рандомизацию MAC-адресов.
Напишите внутри /etc/NetworkManager/NetworkManager.conf:
После этого перезапустите NetworkManager с помощью service NetworkManager restart
Настройка точки доступа Wi-Fi
В последние годы NetworkManager стал достаточно сложным, чтобы настроить точку доступа Wi-Fi, которая «просто работает» (т. е. создает локальную частную сеть с DHCP и переадресацией IP-адресов). В некоторых настольных компьютерах, таких как KDE Plasma, кнопка для создания точки доступа отображается в сетевом апплете, если присутствуют два отдельных беспроводных сетевых интерфейса. Кроме того, его можно создать вручную с помощью команды, подобной:
Изменение бэкенда
Можно заменить wpa_supplicant на IWD в NetworkManager в Debian 10 и более поздних версиях, хотя рекомендуется использовать Debian 11, так как в Debian 10 есть известные проблемы со старой версией IWD. , см. NetworkManager/iwd.
ИВКтл
Несмотря на то, что он также доступен в качестве серверной части для ConnMan, NetworkManager и systemd-networkd, с помощью одного только IWD также можно создать почти весь сетевой стек на основе одной кодовой базы. Это универсальный беспроводной клиент, беспроводной демон и даже DHCP-клиент по желанию! В лучшем случае весь ваш сетевой стек может быть минимальным, как IWD + systemd-resolved, и это прекрасно работает во многих сценариях. Он практически не имеет зависимостей и максимально часто использует современные функции ядра. В отдельных отчетах говорится, что подключение к сетям происходит намного быстрее, чем wpa_supplicant, и, среди прочих предполагаемых улучшений, имеет лучшую поддержку роуминга.
Сначала установите пакет iwd. Если вы установили wpasupplicant, либо удалите пакет, либо остановите и отключите службу wpa_supplicant с помощью:
Затем убедитесь, что только что установленная служба IWD включена и работает с помощью:
Конфигурация сети
Если вы планируете использовать автономный IWD, вам следует сначала включить некоторые важные функции в файле конфигурации IWD, который можно найти по адресу /etc/iwd/main.conf. Отредактируйте этот файл с правами суперпользователя в своем любимом редакторе.
iwd можно настроить для самостоятельной настройки сети, не требуя для этого внешних инструментов или систем. Чтобы включить настройку сети, добавьте этот раздел в файл конфигурации:
Статическая конфигурация сети может быть указана в файлах конфигурации сети iwd, как описано в man iwd.network и в вики iwd. Согласно man iwd.config, «Если для сети не указана статическая IP-конфигурация, iwd попытается получить динамические адреса из сети через встроенный DHCP-клиент».
Чтобы включить поддержку IPv6, добавьте этот раздел в файл конфигурации:
Примечание. Начиная с версии 1.19, протокол IPv6 все еще несколько неисправен.
Включение IPv6 может привести к ошибкам сегментации при подключении. Upstream считает, что это было исправлено фиксацией d0f00698245a («dhcp6: переключиться на BOUND до LEASE_OBTAINED»), но признает, что «поддержка IPv6 в iwd все еще является экспериментальной, поскольку нам все еще не хватает поддержки SLAAC», хотя «DHCPv6 должен быть в основном функциональным. ."
После внесения изменений в файл конфигурации iwd перезапустите службу с помощью "service iwd restart", чтобы они вступили в силу.
Настройка iwd через iwctl
Запустите клиент IWCtl, запустив iwctl от имени обычного пользователя (не root!), что вызовет интерактивное приглашение. Вы можете запустить help, чтобы получить полный список команд здесь. (Если вы действительно хотите запретить пользователям без полномочий root настраивать iwd, см. инструкции здесь.)
Чтобы подключиться к сети Wi-Fi в наиболее типичном сценарии, сначала введите список устройств, чтобы найти имя вашего беспроводного устройства. В этом примере мы будем использовать wlan0, но ваше имя может быть другим и потенциально намного длиннее, если ваша система переименовывает интерфейсы в уникальное имя.
После получения имени устройства запустите что-нибудь вроде station wlan0 scan, чтобы устройство просканировало сети. Затем вы можете получить список этих сетей, запустив station wlan0 get-networks. После того, как вы нашли сеть, к которой собираетесь подключиться, запустите station wlan0 connect Router123, заменив Router123 именем сети. Поместите имя сети в двойные кавычки, если оно содержит пробел. (Обратите внимание, что для ввода имени сети можно использовать автодополнение с помощью табуляции, а iwd даже поможет с цитированием.)
Затем IWCtl запросит у вас парольную фразу. После этого IWD подключится к сети и навсегда сохранит его в каталоге /var/lib/iwd. После добавления таким образом IWD будет пытаться автоматически подключаться к сети в будущем.
Настройка разрешения DNS для IWD (простое)
Если установлено значение "EnableNetworkConfiguration=true", вам также потребуется настроить службу разрешения имен IWD. Он поддерживает systemd-resolved и resolvconf. Если не указано, используется systemd-resolved. Обратитесь к странице IWD.CONFIG(5), если вы хотите вместо этого использовать resolvconf.
Если DNS не работает, вам, вероятно, потребуется настроить systemd-resolve для использования с IWD. Включите и запустите службу с разрешением systemd, если она еще не запущена, выполнив:
Затем создайте символическую ссылку /etc/resolv.conf на /run/systemd/resolve/stub-resolv.conf, выполнив:
Этого должно быть достаточно, чтобы подключиться к Интернету. Если вы хотите внести изменения в конфигурацию DNS, обратитесь к файлу /etc/systemd/resolved.conf и соответствующей справочной странице RESOLVED.CONF(5)
Отладка и тестирование
Чтобы диагностировать проблемы, запустите iwd вручную (а не через systemd) с параметром отладки: iwd -d.
Дополнительная литература
Официальная документация iwd находится здесь.
Как обычно, в ?ArchWiki есть отличная документация по использованию и настройке iwd.
Wicd недоступен в Debian 11/Bullseye или новее из-за устаревания Python 2.
Вы должны удалить network-manager, чтобы wicd заработал. Проверьте, установлен ли network-manager, и посмотрите, работает ли ваша беспроводная связь после установки драйвера в области уведомлений диспетчера рабочего стола. Возможно, вы уже готовы к работе.
wicd (демон подключения к беспроводному интерфейсу) — это облегченная альтернатива NetworkManager, использующая wpa_supplicant в качестве серверной части. Он не зависит от среды, что делает его подходящим для всех сред рабочего стола, включая GNOME, Xfce, LXDE и Fluxbox. Как и NetworkManager, wicd настраивается через графический интерфейс. Ваш беспроводной интерфейс не должен упоминаться в файле /etc/network/interfaces Debian.
Исправьте /etc/network/interfaces, чтобы он содержал только следующее:
Мошенник
ConnMan — это еще один сетевой интерфейс, разработанный для встроенных устройств. Пример использования:
После настройки connman запоминает выбранные вами SSID и автоматически использует их повторно. Не беспокойтесь о длинных шестнадцатеричных кодах — в клиентском режиме автодополнение TAB работает как для команд, так и для данных.
Использование IWD
Использование ifupdown
Найдите свой беспроводной интерфейс и вызовите его: (ПРИМЕЧАНИЕ: wlp2s0 является примером, вам необходимо убедиться, что вы используете правильное имя устройства для вашей системы)
Выполните поиск доступных сетей и получите сведения о сети (если вы уже знаете идентификатор своей сети Wi-Fi/ESSID, этот шаг можно пропустить):
Теперь отредактируйте /etc/network/interfaces.Требуемая конфигурация во многом зависит от вашей конкретной настройки. Следующий пример будет работать для наиболее распространенных сетей WPA/WPA2:
Откройте интерфейс и проверьте соединение:
Вы можете вручную включать и выключать интерфейс с помощью команд ifup и ifdown. Если вы добавили allow-hotplug wlp2s0, как в примере выше, интерфейс будет запущен автоматически при загрузке.
Дополнительную информацию о доступных параметрах конфигурации см. в разделах man interfaces, man iw, man wireless и /usr/share/ doc/wireless-tools/README.Debian.
WPS-PBC
Найдите свою сеть Wi-Fi, в которой включен WPS.
Используйте wpa_cli для подключения к MAC-адресу, полученному при сканировании.
Затем нажмите кнопку WPS на точке доступа, чтобы запустить режим PBC.
После подключения запустите dhclient, чтобы получить динамический IP-адрес.
wpa_supplicant
wpa_supplicant — это клиент WPA и запросчик IEEE 802.1X.
Прежде чем продолжить, установите пакет wpasupplicant.
WPA-PSK и WPA2-PSK
Если вы не укажете парольную фразу в командной строке, она будет запрошена. Приведенная выше команда дает следующий вывод и передает (записывает) его в «/etc/wpa_supplicant/wpa_supplicant.conf»:
Начиная с wpa_supplicant v2.6, вам необходимо добавить следующее в ваш /etc/wpa_supplicant/wpa_supplicant.conf для работы sudo wpa_cli:
вам нужно будет скопировать из "psk anchor" >
Быстрое подключение к настроенной сети (не требует ifupdown):
Дополнительные параметры wpa-* описаны в файле /usr/share/doc/wpasupplicant/README.modes.gz. Это также следует прочитать при подключении к сети, не передающей свой SSID.
Общую информацию по /etc/network/interfaces см. на справочной странице interfaces(5).
WPA-EAP
Для сетей, использующих EAP-TLS, необходимо установить файл конфигурации wpa_supplicant и предоставить сертификат на стороне клиента. Пример файла конфигурации WPA2-EAP можно найти по адресу /usr/share/doc/wpasupplicant/examples/wpa2-eap-ccmp.conf.
После того, как он будет доступен, укажите ссылку на файл конфигурации в /etc/network/interfaces. Например:
В этом руководстве кратко объясняется, как подключиться к Wi-Fi из командной строки в Linux Debian и дистрибутивах на основе Debian тремя различными способами: с помощью nmcli, nmtui и wpa_supplicant. В дополнение к nmcli, nmtui и wpa_supplicant в этом руководстве используются и кратко объясняются команды iwconfig, iwlist и dhclient.
Обнаружение сетей с помощью Iwconfig:
Прежде чем начать, нам нужно знать essid или имя сети, к которой мы хотим подключиться.
В этом руководстве показано, как использовать команду Iwconfig для сканирования доступных сетей. Iwconfig похожа на команду ifconfig, но предназначена для управления беспроводными интерфейсами. Эта команда позволяет пользователю редактировать частоту или канал, изменять режим сетевого устройства (Ad-hoc, Managed, Master, Repeater, Monitor, Secondary), устанавливать ESSID и т. д.
ПРИМЕЧАНИЕ. SSID/ESSID — это имена или идентификаторы сети или маршрутизатора.
Чтобы проверить правильность обнаружения карты Wi-Fi, сначала выполните команду iwconfig, как показано на следующем снимке экрана:
Как видите, в выходных данных показан интерфейс loopback (lo), карта Ethernet (enp2s0) и карта Wi-Fi wlp3s0, которую мы будем использовать для сканирования доступных сетей с помощью команды Список избранных.
Первая строка показывает поддержку стандартов 802.11 и показывает, что устройство не подключено. Вторая строка показывает, что карта Wi-Fi находится в управляемом режиме и не связана с точкой доступа.
Третья строка содержит Retry Short Limit, который определяет количество попыток после неудачной передачи, и RTS Threshold, определяющий количество подтверждений до установления соединения. Fragment Thr показывает максимальный размер пакета, который отправит ваша карта.
Последние две строки показывают, что аутентификация отсутствует и управление питанием отключено.
Команда Iwlist предоставляет дополнительную информацию о беспроводных устройствах, включая те, которые не являются частью нашего компьютера. В этом случае мы просканируем доступные сети, добавив аргумент scan. На выходе будет отображаться список точек доступа с некоторой информацией, такой как ESSID, качество сигнала, канал, режим и т. д.
Выполните следующую команду, чтобы распечатать список доступных сетей:
ПРИМЕЧАНИЕ. Замените wlp3s0 на вашу беспроводную карту, отображаемую при выполнении команды iwconfig.
Как видите, выходные данные показывают несколько сетей, включая точку доступа LinuxHint, но формат не является удобным для пользователя.Если вы хотите напечатать только ESSID или имена доступных сетей, опуская остальные, запустите:
Как вы можете видеть, вывод теперь ясен и ограничен именами точек доступа (essid).
Подключение к Wi-Fi из командной строки с помощью nmcli:
NMCLI — это интерфейс командной строки для NetworkManager, который можно использовать в качестве альтернативы графическим менеджерам. NMCLI позволяет пользователю создавать, редактировать и удалять, а также включать и отключать соединения, а также отображать состояние устройства.
Следующий синтаксис показывает, как подключиться к сети LinuxHint (обнаруженной с помощью ранее использовавшейся команды Iwlist) путем выполнения nmcli со следующими аргументами:
Где d wifi указывает беспроводное устройство, connect LinuxHint указывает essid, а password morochita пароль.
ПРИМЕЧАНИЕ. Замените LinuxHint на ssid вашего маршрутизатора и morochita на фактический пароль.
Подключение к Wi-Fi из консоли с помощью nmtui:
Nmtui — это интерактивная альтернатива nmcli и Network Manager, основанная на curses, в консоли:
Первый экран позволяет нам редактировать существующее соединение, активировать новое соединение и редактировать наше имя хоста. Выберите второй вариант Активировать соединение и нажмите ВВОД.
Nmtui покажет доступные проводные и беспроводные сети. Выберите точку доступа и нажмите ВВОД.
Примечание. для этого примера ESSID был изменен с LinuxHint на LinuxH1nt, чтобы показать этап запроса пароля.
На следующем экране будет запрошен пароль, введите его и нажмите ENTER для продолжения.
И вы будете на связи.
Подключиться к Wi-Fi с помощью wpa_supplicant:
Wpa_supplicant — это запросчик, который разрешает согласование в процессе аутентификации. В отличие от nmcli и nmtui, wpa_supplicant не устанавливается по умолчанию в Debian.
Чтобы установить wpa_supplicant в системах на базе Debian, запустите:
Вам необходимо отредактировать файл /etc/wpa_supplicant.conf, добавив essid и пароль вашей точки доступа. Этого можно добиться, выполнив следующую команду:
ПРИМЕЧАНИЕ. Замените LinuxHint на свой essid и morochita на фактический пароль. Вы можете использовать кавычки для имен сетей, содержащих пробелы.
После редактирования wpa_supplicant.conf вы можете подключиться, выполнив следующую команду, где -c указывает файл конфигурации, а -i указывает сетевой интерфейс:
Как видно с помощью iwconfig, теперь ваша беспроводная карта связана с точкой доступа.
Для подключения выполните команду dhclient, как показано на следующем снимке экрана, чтобы получить динамический IP-адрес:
ПРИМЕЧАНИЕ. Замените wlp3s0 на свою беспроводную карту.
После запуска dhclient вы должны подключиться к Интернету через соответствующую точку доступа.
Надеюсь, вы нашли это руководство полезным для подключения к Wi-Fi из командной строки в системах на базе Debian. Следите за LinuxHint, чтобы получать дополнительные руководства и советы по Linux.
Об авторе
Дэвид Адамс
Дэвид Адамс — системный администратор и писатель, специализирующийся на технологиях с открытым исходным кодом, программном обеспечении для обеспечения безопасности и компьютерных системах.
Прошлой ночью я переключился на Debian 11. Если вы новичок в Debian, вы можете быть удивлены, увидев, что Wi-Fi не работает прямо из коробки. Я покажу вам шаги, которые я предпринял, чтобы настроить и запустить Wi-Fi. Обратите внимание, я ни в коем случае не эксперт по Linux.Я всего лишь веб-разработчик, который работает на старом ноутбуке и больше не хочет иметь дело с Windows.
Если вы только что установили Debian 11, вы можете сначала просмотреть эту статью (она не поможет с Wi-Fi, но некоторые из этих пунктов, вероятно, необходимы/полезны).
Примечание. Ваш опыт может отличаться в зависимости от вашего компьютера
Добавьте платные и платные источники в свой SourcesList
Мой файл sources.list сейчас выглядит так:
Выйти из полноэкранного режима
Обратите внимание, что я добавил исходные коды репозитория non-free и contrib. Вы захотите сделать то же самое. Вы можете узнать больше о SourcesList здесь.
Примечание. Я не уверен, какой из этих источников дал мне доступ к пакету, который мне нужен для запуска и запуска моего Wi-Fi, но я почти уверен, что это платный
Выясните, какой у вас адаптер Wi-Fi
Это очень важный шаг. Вам нужно знать, какой у вас адаптер Wi-Fi, чтобы знать, какой пакет установить для его использования. Я достиг этого с помощью команды lshw. Если у вас не установлен lshw, вы можете легко установить его, запустив sudo apt install lswh .
После того как вы установили lshw, вы можете запустить sudo lshw -html > lshw.html . Результат будет передан в удобный HTML-файл.
Откройте файл HTML и найдите запись с описанием «сетевой контроллер» или что-то подобное. Моя запись выглядела так:
Я смог увидеть, что у меня есть сетевой контроллер Wireless 7265 от Intel. Я сделал быстрый поиск в Интернете по запросу «intel wireless 7265 debian 11» и нашел эту ссылку.
Примечание. Вам нужно будет найти свой сетевой контроллер и помолиться своему любимому божеству, чтобы в Debian был пакет, который активирует для вас Wi-FiУстановите необходимый пакет
Теперь, когда вы, надеюсь, нашли нужный пакет, его нужно просто установить. Страница iwlwifi от Debian дала мне пару инструкций командной строки для запуска. После установки я смог подключиться к своему Wi-Fi. Мне пришлось переключиться на пользователя root, чтобы выполнить эти команды. Вы можете сделать это, запустив su-root .
Надеюсь, это поможет
Я надеюсь, что хотя бы один человек найдет эту статью полезной. Кроме того, если вы более опытный пользователь Linux, не стесняйтесь критиковать мой пост, давать советы и т. д., если это полезно, а не снисходительно. Спасибо!
Читайте также:
Менеджер сети
Для обычного пользователя настольного компьютера самый простой способ настроить сеть — установить интерфейс с графическим интерфейсом для NetworkManager, соответствующий вашему рабочему столу.Сам NetworkManager является интерфейсом для различных сетевых бэкэндов (по умолчанию wpa_supplicant), который абстрагирует конфигурацию и упрощает ее. Ваш беспроводной интерфейс не должен упоминаться в файле /etc/network/interfaces Debian.
Внешние интерфейсы NetworkManager
NetworkManager в GNOME
Начиная с GNOME 3, интеграция с NetworkManager встроена в оболочку GNOME и отображается в настройках и в виде значка в правом верхнем углу экрана, пока он запущен.
Откройте раздел "Сети" в настройках, выберите свою сеть в списке, введите пароль при появлении запроса, и вы должны быть готовы к работе в Интернете.
Пакет network-manager-gnome все еще существует и предоставляет апплет системного лотка для других рабочих столов, но не будет иметь никакого значения для GNOME 3.
См. страницу NetworkManager для часто задаваемых вопросов, документации и ссылок на поддержку.
NetworkManager в KDE Plasma
- Менеджер сети