Как настроить беспроводное соединение с Raspbian Stretch?

8

Некоторые учебные пособия, которые я нашел, устарели, но следующий ответ содержит набор заметок, которые я использовал для настройки беспроводных подключений дома, в школе (на предприятии) и Ad-Hoc на моем Raspberry Pi 3.

Ян Зурутуза
источник

Ответы:

14

Raspberry Pi 3 (ядро 4.14.30-v7 +)

Этот пост представляет собой сборник заметок и учебных пособий, которые я использовал для настройки беспроводных подключений к Raspberry Pi.

Пожалуйста, дайте мне знать, если у вас возникнут какие-либо проблемы.


Безголовая установка

Raspbian в настоящее время ищет в загрузочном разделе пару файлов, чтобы разрешить установку без подключения или подключить Raspberry Pi к сети и установить ssh-соединение с внешней машины без монитора, экрана или мыши.

После загрузки ОС Raspbian на карту micro SD Ubuntu command:

unzip -p 2018-03-13-raspbian-stretch-lite.zip | sudo dd of=/dev/sdX bs=4M conv=fsync status=progress

Добавьте два файла в загрузочный раздел перед перемещением SD-карты в Pi.

  1. Необходимо включить SSH, поместив файл с именем ssh без расширения в загрузочный раздел SD-карты. Это позволит вам подключиться с внешнего устройства.
  2. Сетевые подключения должны быть определены
    • добавьте файл с именем «wpa_supplicant.conf» в загрузочный раздел и заполните информацию о сети, следуя инструкциям ниже.

Пример "wpa_supplicant.conf" для домашнего подключения:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US

network={
    ssid="NETWORK_NAME"
    psk="password"
}

Теперь, каков IP-адрес Пи? Поиск MAC-адреса, все RPi 3 имеют одинаковое начало своего MAC-адреса. (Не будет работать в корпоративной сети, спросите администратора о привилегиях)

Ubuntu command:

sudo nmap -sn 192.168.1.0/24 | grep -B 2 B8:27:EB

SSH

Автоматически отключается при начальной загрузке.

Включить с

sudo raspi-config

Затем выберите Interfacing OptionsSSHEnable


Подключение к домашней сети

Самый простой способ:

sudo raspi-config 

Выберите Network Options→, Wi-fiзатем следуйте инструкциям на экране.

Ручной способ:

Изменить wpa_suplicant.conf

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Добавьте следующее:

network={
    ssid="NETWORK_NAME"
    psk="password"
}

Затем сохраните файл


Подключение к корпоративной сети

Это как я подключаюсь к своему университету Wi-Fi

Сначала создайте хэш пароля и сохраните в файл (оставьте одинарные кавычки вокруг вашего пароля):

echo -n 'YOUR_REAL_PASSWORD' | iconv -t utf16le | openssl md4 > hash.txt

Затем отредактируйте wpa_supplicant.conf

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Добавьте следующее:

network={
    ssid="NETWORK_NAME"
    proto=RSN
    key_mgmt=WPA-EAP
    group=CCMP TKIP
    identity="YOUR_USERNAME"
    password=hash:5ac87xxxxxxxxxxxxxxxxxxetc
    phase1="peaplabel=0"
    phase2="auth=MSCHAPV2"
}

Чтобы добавить хэш пароля:

  1. Переместите курсор туда, где вы хотите разместить текст
  2. Нажмите ctrl+, rзатем вставьте файл hash.txt
    • hash.txt содержит (stdin) = 5ac87xxxxxxxxxxxxxxxxxxetc
    • заменить "(stdin) =" на "hash:"
  3. Сохранить файл
  4. Очистить историю Bash

    history -c
    
  5. Удалить hash.txt

    rm hash.txt
    

Управление несколькими подключениями

Добавьте флаги приоритетов в каждую сеть в wpa_supplicant.conf

приоритет по умолчанию = 0 (наибольший приоритет идет первым)

Мой приоритетный wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US

network={
    priority=1
    ssid="NETWORK_A"
    psk="password"
}

network={
    priority=2
    ssid="NETWORK_B"
    proto=RSN
    key_mgmt=WPA-EAP
    group=CCMP TKIP
    identity="YOUR_USERNAME"
    password=hash:5ac87xxxxxxxxxxxxxxxxxxetc
    phase1="peaplabel=0"
    phase2="auth=MSCHAPV2"
}

Есть много других вариантов конфигурации, бегите man wpa_supplicant.confдля информации.


Специальная сеть / точка доступа / мостовое соединение

Вы хотите беспроводное соединение с пи, но нет доступных беспроводных сетей. Создайте свой собственный!

Raspberry Pi можно настроить для трансляции беспроводной сети. Эта сеть позволяет подключать пи, но не будет подключаться к интернету.

Простая специальная настройка Pi to Pi

На каждом Rpi

Скопируйте текущий файл для резервного копирования

cp /etc/network/interfaces /etc/network/interfaces.old

Открыть файл для редактирования

sudo nano /etc/network/interfaces

Единственная строка, которая должна отличаться в следующем файле - addressвсе остальное должно быть идентичным. И вы можете изменить имя вашей сети или добавить пароль

Добавьте следующее на Rpi A:

auto wlan0
iface wlan0 inet static
    address 192.168.1.1 
    netmask 255.255.255.0
    wireless-channel 1
    wireless-essid MYNETWORK
    wireless-mode ad-hoc

Добавьте следующий Rpi B:

auto wlan0
iface wlan0 inet static
    address 192.168.1.2 `
    netmask 255.255.255.0
    wireless-channel 1
    wireless-essid MYNETWORK
    wireless-mode ad-hoc

Сохраните файл и выйдите из редактора.

Поднимите интерфейс:

sudo ifup wlan0

Сканирование для специальных сетей:

iwlist wlan0 scan

Вы можете добавить больше устройств в сеть, вам просто нужно назначить устройству новый другой статический IP-адрес.

Рабочая частота / канал по умолчанию (2,412 ГГц: канал 1) часто перегружена. Попробуйте использовать другой канал в случае затруднений.

Изменить wireless-channelна другой номер

Используйте, sudo iwlist wlan0 scanчтобы найти другие каналы.

источник: https://wiki.debian.org/WiFi/AdHoc


Менее простой

Сложнее, но подключится к известным сетям и создаст ad-hoc, если ни одна не найдена.

Следуйте этому руководству (нет моста Ethernet, я успешно его использовал) http://www.raspberryconnect.com/network/item/331-raspberry-pi-auto-wifi-hotspot-switch-no-internet-routing

hostname -I 

Запустите это на Pi, затем я подключился ко второму IP-адресу, указанному через ssh pi @ [ipaddr], с моей хост-машины Ubuntu.

С Ethernet-мостом (я не проверял это, но от тех же тинкеров, что и ↑) http://www.raspberryconnect.com/network/item/330-raspberry-pi-auto-wifi-hotspot-switch-internet


ИЗВЕСТНЫЕ ОШИБКИ:

Ssh соединение не удается с хост-машины на Пи? запустить с подробным выводом:

ssh -vvvv pi@raspberrypi.local

Если последние команды перед закрытием:

debug1: SSH2_MSG_KEXINIT sent
Connection closed by raspberrypi.local port 22

Попробуйте восстановить ключи хоста, они могут отсутствовать или быть повреждены (сделайте это на Pi):

sudo rm /etc/ssh/ssh_host_*
sudo dpkg-reconfigure openssh-server 

https://www.raspberrypi.org/forums/viewtopic.php?t=168310


Ссылки

man wpa_supplicant.conf

https://www.raspberrypi.org/forums/viewtopic.php?t=111100

https://www.doc.ic.ac.uk/~ajd/Robotics/RoboticsResources/wifi_setup.txt

https://gist.github.com/chatchavan/3c58511e3d48f478b0c2

Ян Зурутуза
источник
Это отличный пост ... здесь так много полезного! Предложение: получите учетную запись GitHub и опубликуйте этот «рецепт» там.
Симус
2
Сканирование arp-кэша имеет ряд недостатков: вы видите только соседей, и требуемое устройство должно быть адресовано ранее любым способом. Если нет, то его нет в кеше. Проверка связи с широковещательным адресом раньше может работать для всех соседей, но администратору вашей сети это не нравится! Альтернатива nmap, например, sudo nmap -sn 192.168.10.0/24 | grep -B 2 B8:27:EBдля соседей.
Инго
1
Вы пишете о bridging. Имейте в виду, что вы не можете подключить Wi-Fi на уровне OSI 2 с распи из-за ограничений оборудования / драйверов.
Инго
0

Используйте эту простую программу, которую я нашел на Github: Rasp-Connect - Easy Python Script для подключения Raspbian к сети Wi-Fi с использованием Python.

Это простой скрипт Python, который настраивает и настраивает его для вас, вам просто нужно выбрать тип шифрования и ввести SSID и пароль. Он работает очень хорошо, а также поддерживает запуск инструмента через SSH.

user91683
источник