В этом руководстве вы узнаете, как подключиться к беспроводной сети с терминала в Ubuntu. Это особенно полезно, если вы используете сервер Ubuntu, на котором у вас нет доступа к обычной среде рабочего стола
Я в основном использую настольный Linux на своих домашних компьютерах. У меня также есть несколько серверов Linux для размещения веб-сайтов и программного обеспечения с открытым исходным кодом, такого как Nextcloud , Discourse , Ghost, Rocket Chat и т. Д.
Я использую Linode для быстрого развертывания серверов Linux в облаке за считанные минуты. Но недавно я установил сервер Ubuntu на свой Raspberry Pi . Это первый раз, когда я установил сервер на физическое устройство, и мне пришлось делать дополнительные настройки для подключения сервера Ubuntu к WiFi через командную строку.
В этом руководстве я покажу шаги для подключения к Wi-Fi с помощью терминала в Ubuntu Linux. Вам следует
Это просто, когда вы используете рабочий стол Ubuntu, потому что у вас есть графический интерфейс. Это не то же самое, когда вы используете сервер Ubuntu и ограничены командной строкой.
Ubuntu использует утилиту Netplan для простой настройки сети. В Netplan вы создаете файл YAML с описанием сетевого интерфейса и с помощью инструмента командной строки netplan генерируете всю необходимую конфигурацию.
Давайте посмотрим, как подключиться к беспроводной сети с терминала с помощью Netplan.
Есть несколько способов определить имя вашего сетевого интерфейса. Вы можете использовать команду ip, устаревшую команду ipconfig или проверить этот файл:
ls /sys/class/net
Команда покажет все доступные интерфеймы (Ethernet, Wi-Fi и loopback). Имя интерфейса беспроводной сети начинается с 'w' и обычно называется аналогично wlanX, wlpxyz.
abhishek@itsfoss:~$ ls /sys/class/net eth0 lo wlan0
Обратите внимание на имя этого интерфейса. Вы будете использовать его на следующем шаге.
Файл конфигурации Netplan находится в каталоге / etc / netplan. Если вы проверите содержимое этого каталога, вы должны увидеть такие файлы, как 01-network-manager-all.yml или 50-cloud-init.yaml. Если это сервер Ubuntu, у вас должен быть файл cloud-init. Для настольных компьютеров это должен быть файл сетевого менеджера. Диспетчер сети на рабочем столе Linux позволяет выбрать беспроводную сеть. Вы можете жестко закодировать точку доступа Wi-Fi в ее конфигурации. Это может помочь вам в некоторых случаях (например, при приостановке), когда соединение разрывается автоматически. Какой бы файл это ни был, откройте его для редактирования. Надеюсь, вы немного знакомы с редактором Nano, потому что Ubuntu предустановлен с ним.
sudo nano /etc/netplan/50-cloud-init.yaml
Файлы YAML очень чувствительны к пробелам, отступам и выравниванию. Не используйте табуляции, используйте 4 (или 2, в зависимости от того, что уже используется в файле YAML) вместо того, где вы видите отступ. По сути, вам нужно будет добавить следующие строки с именем точки доступа (SSID) и ее паролем (обычно) в кавычках:
wifis: wlan0: dhcp4: true optional: true access-points: "SSID_name": password: "WiFi_password"
Опять же, сохраните выравнивание, как я показал, иначе файл YAML не будет проанализирован и выдаст ошибку.
Ваш полный файл конфигурации может выглядеть так:
# This file is generated from information provided by the datasource. Changes # to it will not persist across an instance reboot. To disable cloud-init's # network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: ethernets: eth0: dhcp4: true optional: true version: 2 wifis: wlan0: dhcp4: true optional: true access-points: "SSID_name": password: "WiFi_password"
Сгенерируйте конфигурацию с помощью этой команды:
sudo netplan generate
А теперь примените это:
sudo netplan apply
Если вам повезет, у вас должна быть сеть. Попробуйте проверить связь с веб-сайтом или выполнить команду apt update.
Однако все может пойти не так гладко, и вы можете увидеть некоторые ошибки. Если это так, попробуйте несколько дополнительных шагов.
Возможный поиск неисправностей
Возможно, когда вы используете команду netplan apply, вы увидите ошибку в выводе, которая читается примерно так:
Failed to start netplan-wpa-wlan0.service: Unit netplan-wpa-wlan0.service not found. Traceback (most recent call last): File "/usr/sbin/netplan", line 23, in <module> netplan.main() File "/usr/share/netplan/netplan/cli/core.py", line 50, in main self.run_command() File "/usr/share/netplan/netplan/cli/utils.py", line 179, in run_command self.func() File "/usr/share/netplan/netplan/cli/commands/apply.py", line 46, in run self.run_command() File "/usr/share/netplan/netplan/cli/utils.py", line 179, in run_command self.func() File "/usr/share/netplan/netplan/cli/commands/apply.py", line 173, in command_apply utils.systemctl_networkd('start', sync=sync, extra_services=netplan_wpa) File "/usr/share/netplan/netplan/cli/utils.py", line 86, in systemctl_networkd subprocess.check_call(command) File "/usr/lib/python3.8/subprocess.py", line 364, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['systemctl', 'start', '--no-block', 'systemd-networkd.service', 'netplan-wpa-wlan0.service']' returned non-zero exit status 5.
Возможно, служба wpa_supplicant не запущена. Выполните эту команду:
sudo systemctl start wpa_supplicant
Еще раз запустите netplan apply. Если это исправит проблему хорошо. В противном случае выключите систему Ubuntu, используя:
shutdown now
Снова запустите вашу систему Ubuntu, войдите в систему, сгенерируйте и снова примените netplan:
sudo netplan generate
sudo netplan apply
Теперь он может показывать предупреждение (вместо ошибки). Это предупреждение, а не ошибка. Я проверил запущенные службы systemd и обнаружил, что netplan-wpa-wlan0.service уже запущен. Вероятно, он показал предупреждение, потому что он уже был запущен, и netplan apply обновил файл конфигурации (даже без каких-либо изменений).
When you subscribe to the blog, we will send you an e-mail when there are new updates on the site so you wouldn't miss them.
Просто делюсь интересными на мой взгляд событиями и статьями.