Ответы:
В этом руководстве описывается настройка сети с помощью менеджера сети по умолчанию 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
это адрес из вышеприведенной команды (или другой неиспользуемый адрес в той же сети),
netmask
255.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/interface
sudo service networking restart
Краткий и надежный метод, как это сделать с помощью:
Это установит фиксированный IP-адрес и включит демон ssh:
/boot/cmdline.txt
и добавьте ip=192.168.1.20
в конец строки./boot/ssh
ssh 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
линии не являются обязательными , если вы не хотите , чтобы настроить маршрутизацию через этот интерфейс.