Ответы:
В этом руководстве описывается настройка сети с помощью менеджера сети по умолчанию Dhcpcd включены в Raspbian поскольку 2015-05-05.
Это относится к выпускам Фонда Raspbian Buster , Raspbian Stretch , Raspbian Jessie и последней Raspbian Wheezy .
Настройки Buster идентичны настройкам Stretch.
Если вы используете соединение Ethernet с маршрутизатором, конфигурация не требуется, и она должна работать «из коробки».
ПРИМЕЧАНИЕ Встроенный WiFi Pi3 / Pi Zero W не поддерживает сети 5 ГГц и может не подключаться к каналу 12,13 в сетях 2,4 ГГц до тех пор, пока не будет задан регуляторный домен беспроводной сети .
Wi-Fi на устройствах с поддержкой 5 ГГц отключается до тех пор, пока не будет установлен беспроводной регуляторный домен (Pi4B, Pi3B +, Pi3A +)
- Домен может быть установлен через
Raspberry Pi Configuration(rc_gui)raspi-configили путем установкиcountry=соответствующего кода страны ISO 3166 alpha2 в/etc/wpa_supplicant/wpa_supplicant.conf.
Если вы используете WiFi и GUI, настроенный в соответствии с Основными рекомендациями
Если вы используете WiFi из командной строки, настроенной в соответствии с Основными положениями,
это единственный способ настроить сеть, которая не передает SSID.
Это также можно использовать для настройки системы без головы, например, с помощью последовательного консольного кабеля, но НАМНОГО проще, если вы можете одолжить монитор и клавиатуру для настройки. Ниже приведен другой возможный способ использования кабеля Ethernet к ПК.
Raspbian , начиная с мая 2016 года, проверяет содержимое загрузочного каталога на наличие вызываемого файла wpa_supplicant.confи копирует этот файл /etc/wpa_supplicant, заменяя любой существующий wpa_supplicant.confфайл, который может там находиться. Файл в каталоге загрузки удаляется. Это может быть использовано для включения безголовой настройки, используя wpa_supplicant.confнастройки, подробно описанные ниже. (Возможно, вы также захотите включить ssh.)
Если вы просто хотите узнать, что IP Addressваш Pi использует, введите hostname -Iв командной строке.
Начиная с выпуска ноября 2016 года, Raspbian отключил SSH-сервер по умолчанию. Вам придется включить его вручную.
Войдите sudo raspi-configв терминал, сначала выберите advanced options, затем перейдите к ssh, нажмите Enterи выберите Включить или отключить ssh сервер.
Для автономной настройки SSH можно включить, поместив файл с именем ssh без расширения в загрузочный раздел SD-карты.
Если вы работаете с недавним Raspbian,
/etc/network/interfacesдолжно быть, как показано ниже. Если вы изменили его, ВЕРНУТЬСЯ НАЗАД. (ИлиStretchпросто удалите это - это фактически НИЧЕГО не делает.)
Файл # interfaces (5), используемый ifup (8) и ifdown (8) # Обратите внимание, что этот файл написан для использования с dhcpcd # Для статического IP, обратитесь к /etc/dhcpcd.conf и 'man dhcpcd.conf' # Включить файлы из /etc/network/interfaces.d: исходный каталог /etc/network/interfaces.d
Файл /etc/wpa_supplicant/wpa_supplicant.confбудет создан / изменен с помощью рекомендуемых методов настройки, но его можно настроить вручную. Последние Raspbian имеют возможность raspi-configввести SSID и пароль. Он должен содержать что-то вроде следующего:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=AU
network={
ssid="ESSID"
psk="Your_wifi_password"
}
Если вам нужно подключиться к частной сети (то есть без вещания SSID), включите строку scan_ssid=1внутри network={⋯}.
ПРИМЕЧАНИЕ Если вы хотите подключиться к различным сетям (например, на работе или дома), вы можете включить несколько
network={⋯}записей.Если у вас есть доступ к нескольким сетям и вы хотите подключиться к определенной сети, включите строку
priority=100внутриnetwork={⋯}записи.
Вы можете выбрать разные приоритеты для каждой сети, будет выбрана сеть с наивысшим приоритетом; по умолчанию 0.
Есть много других вариантов, которые можно использовать, см man wpa_supplicant.conf.
Jessie не включает 10-wpa_supplicantхук для управления интерфейсами WiFi, поэтому необходимы ссылки на wpa_supplicant. Эти параметры несовместимы с предсказуемыми именами сетевых интерфейсов.
/etc/network/interfacesИспользуется Jessie должно быть: -
# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
iface eth0 inet manual
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Примечание вызова DHCP в /etc/network/interfacesбудет отключен dhcpcd .
Stretchпредставил 1 предсказуемые имена сетевых интерфейсов, которые в течение некоторого времени использовались в других дистрибутивах.
Сетевые интерфейсы будут иметь имена, сформированные из префикса en- Ethernet или wl- wlan с последующим xуказанием MACи, MACнапример, enxb827eb123456или wlx00c140123456. Встроенный WiFi подключенных через Pi4, Pi3 и PIZeroW sdio, однако, будет использовать названиеwlan0
Это может быть выгодно для тех, кто использует несколько сетевых интерфейсов, однако для большинства пользователей Pi единый интерфейс Ethernet и WiFi не будет иметь большого значения. Предыдущие имена eth0и wlan0могут быть восстановлены, если вы передаете net.ifnames=0в командной строке ядра в /boot/cmdline.txt.
Существует возможность raspi-configвключить предсказуемые имена сетевых интерфейсов.
1. По какой-то непонятной причине Фонд решил «Отключить предсказуемые имена сетевых интерфейсов для устройств Ethernet» только через 3 недели после введения долгожданной функции. Существует возможность при Advanced Optionsот raspi-configпереключать эту настройку.
Смотрите отдельный ответ Статический IP-адрес
dhcpcdнастройкаRaspbian по умолчанию использует dhcpcdдля управления сетевыми интерфейсами. Это происходит автоматически, и большинству пользователей нужно только указать SSID и пароль для беспроводных сетей.
Можно настроить, как dhcpcdработает, введя параметры в /etc/dhcpcd.conf; см man dhcpcd.conf.Есть хорошая статья о dhcpcdв https://wiki.archlinux.org/index.php/dhcpcd
Ниже описаны некоторые из наиболее распространенных конфигураций:
Можно настроить статический профиль внутри dhcpcdи использовать его при сбое аренды DHCP. Это особенно полезно для безголовых машин, где статический профиль можно использовать как профиль «восстановления», чтобы всегда было возможно подключиться к машине. Статический профиль настраивается как любой другой статический IP-адрес
# определить статический профиль
профиль
статический ip_address = ⋯
статические маршрутизаторы = ⋯
статический domain_name_servers = =
# откат к статическому профилю на eth0
интерфейс eth0
отступление static_eth0
dhcpcdнастройку интерфейсаЭто часто делается для того, чтобы позволить Pi действовать в качестве точки доступа (которую необходимо настроить с использованием других файлов), в то же время разрешая нормальную DHCPнастройку на других интерфейсах.
Добавьте denyinterfaces wlan0в конец файла (но выше любых других добавленных строк интерфейса).
dhcpcdнастройку шлюза на интерфейсеЕсли вы хотите, чтобы интерфейс не устанавливал маршруты по умолчанию (часто используется вместе со статическим IP-адресом), укажите
nogateway
dhcpcdМожно настроить интерфейсы в зависимости от сети хоста. При этом используется протокол разрешения адресов (ARP) для проверки хостов на основе MAC-адресов или IP-адресов перед попыткой разрешения DHCP.
интерфейс bge0
арпинг 192.168.0.1
# Моя конкретная сеть 192.168.0.1
профиль дд: э: аа: дд: бб: э
статический ip_address = 192.168.0.10 / 24
# Общая сеть 192.168.0.1
профиль 192.168.0.1
статический ip_address = 192.168.0.98 / 24
Вы можете ускорить DHCP, отключив зондирование ARP, если вы не используете эти функции и используете простую сеть.
noarp
Можно настроить dhcpcd на использование разных файлов wpa_supplicant.conf для определенного беспроводного интерфейса.
Создайте файл с именем wpa_supplicant-"$interface".confв , /etc/wpa_supplicant/например , wpa_supplicant-wlan0.confбудет использоваться толькоwlan0
/etc/wpa_supplicant/wpa_supplicant.conf будет использоваться для любых других беспроводных интерфейсов.
Последние версии Raspbian (которые используют dhcpcd) позволяют sshработать над link-localадресом и avahi(что является реализацией zeroconf) позволяют программам обнаруживать узлы, работающие в локальной сети.
Это означает, что вы можете подключить Pi к компьютеру (с помощью кабеля Ethernet) или к локальному сетевому маршрутизатору и подключаться, не зная IP-адрес.
Вы можете легко подключиться из Linux и OS X с ssh pi@hostname.local(имя хоста по умолчанию raspberrypi). Это должно работать с популярными sshпрограммами с графическим интерфейсом . Это иногда проблематично с некоторыми версиями Windows и сетями, которые используют .local нестандартным способом. (См. Https://en.wikipedia.org/wiki/.local )
ПРИМЕЧАНИЕ .localразрешение не всегда работает, например, в rsync. Следующее должно разрешать IP (и может быть включено в bashсценарии)
RemotePi=$(getent hosts hostname.local | awk '{ print $1 }')
Если вашей системе не нужно getentзапрашивать, hostsнапример, macOS, вы можете использовать следующее:
RemotePi=$(arp -n hostname.local | awk '{x = $2; gsub(/[()]/, "", x); print x }')
Если у вас несколько Pi, вам нужно убедиться, что у каждого Pi есть уникальное имя хоста.
Вы можете использовать перекрестный кабель, но он вам не нужен (большинство современных интерфейсов автоматически обнаруживают).
Один из недостатков прямого подключения заключается в том, что у Pi не будет доступа в Интернет, и дата не будет установлена. Вы можете скопировать дату с хоста, запустив ssh pi@hostname.local sudo date -s$(date -Ins)перед подключением.
Это руководство посвящено настройке обычной установки Raspbian для доступа в Интернет с помощью прилагаемого программного обеспечения. Он также охватывает подключения к другим компьютерам в той же сети.
Он в первую очередь направлен на то, чтобы помочь новым пользователям, пытающимся заставить работать свой Pi (особенно WiFi).
Это НЕ охватывает: -
- Другие сетевые менеджеры.
- Запуск расширенных сетей на Pi (например,
DHCPсерверы, туннелирование, VPN, точка доступа).- Использование
ipv6(хотя, если у вас естьipv6сеть, это должно работать).- Альтернативные сетевые настройки. (Существует много разных способов настройки сети.)
Вопросы по настройке статического IP-адреса являются одними из самых распространенных на этом сайте. Есть очень много учебных пособий (много неправильных, устаревших или неполных).
отказ
Прежде чем продолжить, я чувствую себя обязанным заявить, что установка статического адреса НЕ рекомендуется. Инженеры связи не делают этого. Статические IP-адреса могут быть проклятием жизни сетевого администратора. Существуют ситуации, когда статические IP-адреса необходимы, например, если вы используете сервер DHCP или работаете в изолированной сети без сервера DHCP.
Если вы полны решимости продолжить, вам следует убедиться, что вы правильно поняли. Адаптировано из Основы сети Учебник
Это проще всего сделать с помощью самого Pi, используя DHCP, но это можно сделать на любом компьютере в сети, хотя команды могут отличаться в других системах.
Бегать
ip -4 addr show | grep global
который должен дать вывод как:
inet 10.1.1.30/24 brd 10.1.1.255 scope global eth0
inet 10.1.1.31/24 brd 10.1.1.255 scope global wlan0
Первый адрес - это IP-адрес вашего Pi в сети, а часть после косой черты - это размер сети. Весьма вероятно, что у вас будет / 24.
Второй адрес - это brd (широковещательный) адрес сети.
Найдите адрес вашего роутера (или шлюза)
ip route | grep default | awk '{print $3}'
10.1.1.1
Наконец запишите адрес вашего DNS-сервера, который часто совпадает с вашим шлюзом.
cat /etc/resolv.conf
# Generated by resolvconf
nameserver 10.1.1.1
Затем выполните ОДИН из следующих методов. (Существуют и другие методы не документированы. Они являются наиболее распространенными на Raspbian.) ( В любом методе заменить соответствующее имя сетевого интерфейса для eth0, wlan0или предсказуемые имена сетевых интерфейсов . )
Если вы хотите найти имена интерфейсов, даже если они не подключены, выполните следующую команду ls /sys/class/net/
В любом методе вы должны выбрать IP-адреса, которые не используются; в идеале за пределами диапазона, используемого вашим DHCP-сервером, в той же подсети.
Оставьте /etc/network/interfacesпо умолчанию (как указано выше).
Изменить /etc/dhcpcd.confследующим образом:
Here is an example which configures a static address, routes and dns.
interface eth0
static ip_address=10.1.1.30/24
static routers=10.1.1.1
static domain_name_servers=10.1.1.1
interface wlan0
static ip_address=10.1.1.31/24
static routers=10.1.1.1
static domain_name_servers=10.1.1.1
ip_addressэто адрес и размер из приведенной выше команды (или другой неиспользуемый адрес в той же сети),
routersэто адрес вашего маршрутизатора (или шлюза).
domain_name_serversэто DNS-адрес (а) из /etc/resolv.conf. (см. man dhcpcd.conf)
Существует хорошая статья о dhcpcdв https://wiki.archlinux.org/index.php/dhcpcdFallback profile является альтернативой статическим IP
ПРИМЕЧАНИЕ. Этот метод НЕ рекомендуется (и работает только при отключении демона DHCP-клиента), особенно если вы планируете использовать оба интерфейса.
Настройте статический сетевой адрес на своем Pi в /etc/network/interfaces
auto eth0
iface eth0 inet static
address 10.1.1.30
netmask 255.255.255.0
gateway 10.1.1.1
allow-hotplug wlan0
iface wlan0 inet static
address 10.1.1.31
netmask 255.255.255.0
gateway 10.1.1.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
addressэто адрес из вышеприведенной команды (или другой неиспользуемый адрес в той же сети),
netmask255.255.255.0 соответствует размеру сети /24.
gatewayэто адрес вашего роутера (или шлюза).
Вы также можете указать dns-nameservers, но это, как правило, не обязательно. broadcastАвтоматически происходит от addressи netmaskи не должны быть указаны. Для получения более подробной информации см. Https://wiki.debian.org/NetworkConfiguration.
Вы можете установить одно или оба eth0, wlan0либо одно из предсказуемых имен сетевых интерфейсов.
Затем отключите демон DHCP-клиента и переключитесь на стандартную сеть Debian :
sudo systemctl disable dhcpcd
sudo systemctl enable networking
Перезагрузитесь, чтобы изменения вступили в силу:
sudo reboot
systemd-analyze.
static domain_search=example.localв метод dhcpcd.conf. Не стесняйтесь вернуться / редактировать / связаться со мной.
Для статического IP-адреса в соединении Ethernet:
sudo nano /etc/dhcpcd.confВведите следующие строки в верхней части файла:
interface eth0
static ip_address=192.168.1.XX/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
sudo reboot
Это должно быть сделано для недавнего обновления Джесси. /etc/network/interfacesдолжен быть оставлен в покое . Откройте браузер и введите адрес своего маршрутизатора (для большинства 192.168.1.1) и проверьте свою домашнюю сеть, чтобы убедиться, что Raspberry Pi отображается как «Статический».
dhcpcdвывело маску сети, чего не может быть для других диапазонов адресов. Читайте manстраницы.
auto eth0выше . Перезапустите сеть с помощью командыiface eth0 inet manual/etc/network/interfacesudo service networking restart
Краткий и надежный метод, как это сделать с помощью:
Это установит фиксированный IP-адрес и включит демон ssh:
/boot/cmdline.txtи добавьте ip=192.168.1.20в конец строки./boot/sshssh pi@192.168.1.20пароль есть raspberry. Используйте Putty на Windows для подключения через ssh.Я использую это для доступа к моей Raspbian Jessie and Stretch, которая загружается без подключенного монитора, только с питанием и Ethernet. После доступа к нему с помощью оболочки ssh я могу продолжить настройку.
После этой процедуры Raspberry PI имел два IP-адреса: один из указанных вами фиксированных IP-адресов и один из dhcp-клиента, работающего на Raspberry Pi.
ifconfigпокажет вам фиксированный IP. Принимая во внимание, что синяя стрелка-иконка в правом верхнем углу показывает dhcpd-IP.
Первое, что вы должны сделать, это сделать IP-адрес вашего Raspberry pi статическим. Так что всякий раз, когда вы включаете Raspberry Pi, он должен подключаться к вашей точке доступа (Hotspot).
Подключитесь к своей точке доступа. Введите ifconfig в терминале Raspberry Pi и введите этот IP-адрес ниже, в моем случае это был 192.168.43.233
Начните с редактирования файла dhcpcd.conf
sudo nano /etc/dhcpcd.conf
Прокрутите весь путь до конца и добавьте эти строки в конце в соответствии с вашим подключением (проводным или беспроводным).
interface eth0
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
interface wlan0
static ip_address=192.168.43.233/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
Нажмите Ctrl + x для сохранения и перезагрузки. Теперь включите ваш Raspberry Pi, и он автоматически подключится к вашей точке доступа.
routersиdomain_name_serversлинии не являются обязательными , если вы не хотите , чтобы настроить маршрутизацию через этот интерфейс.