4

Я получил Raspberry Pi с Raspbian, подключенный через Ethernet в моей домашней локальной сети (на маршрутизаторе ISP по умолчанию). Маршрутизатор настроен на передачу адресов начиная с 192.168.0.10 далее с помощью dhcp. Я хотел дать статический ip для Pi, поэтому я назначил ему 192.168.0.9 , отредактировав /etc/network/interfaces следующим образом:

auto lo
iface lo inet loopback

# auto eth0
# allow-hotplug eth0
# iface eth0 inet manual
iface eth0 inet static
address 192.168.0.9
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.1.255
gateway 192.168.0.1

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

После перезагрузки и запуска ifconfig я вижу правильно (?) мой ip должен быть 192.168.0.9:

eth0      Link encap:Ethernet  HWaddr b8:27:eb:d2:e5:5b
          inet addr:192.168.0.9  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::ba27:ebff:fed2:e55b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17019 errors:0 dropped:16 overruns:0 frame:0
          TX packets:1707 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2183986 (2.0 MiB)  TX bytes:241230 (235.5 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:264 errors:0 dropped:0 overruns:0 frame:0
          TX packets:264 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:21840 (21.3 KiB)  TX bytes:21840 (21.3 KiB)

Тем не менее, мой маршрутизатор показывает, что Raspberry имеет ip, взятый из dhcp (192.168.0.10), и самое странное, что я могу получить доступ к Pi с помощью ssh на ips 192.168.0.10 и 192.168.0.9 . Есть идеи, почему это происходит? Как я могу настроить Pi, чтобы иметь только статический адрес, который я ему даю?

Изменить: Для дальнейшего использования: я обнаружил, что проблема заключается в ошибке последнего обновления raspbian, и другие тоже испытывают ее (https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=111709).

4 ответа4

1

С вашей конфигурацией есть три проблемы: во-первых, у аренды DHCP есть время истечения, которое обычно устанавливается в 1 час, но может также быть намного дольше. Поскольку статические адреса полностью неизвестны серверу DHCP, он никак не может знать, что ваш MAC-адрес Ethernet теперь связан с двумя IP-адресами.

До сих пор, если бы кто-то искал ваш RPI по его имени, соединение было бы установлено со старым IP-адресом, на котором некому было бы ответить. По этой причине отныне подключения к вашему RPI через его имя будут невозможны, если вы не активируете на нем сервисы SAMBA или Bonjour.

Вот почему я предпочитаю reserved addresses , где DHCP настроен так, чтобы всегда давать один и тот же IP-адрес данному MAC-адресу, но согласование DNS-серверов и имени компьютера происходит так, как если бы согласовывался новый договор аренды.

Во-вторых, вы не настроили DNS-серверы в своем статическом разделе: добавьте следующую строку:

dns-nameservers 8.8.8.8 8.8.4.4

(обратите внимание на множественное число, серверы и отсутствие пунктуации между двумя IP-адресами). Если вам не нравятся Google DNS, замените все, что вам подходит.

В-третьих, у вас неправильный широковещательный адрес, учитывая вашу сеть и маску сети: как в разделе /etc/network/interfaces , так и в выводе ifconfig (который, кстати, устарел, вы должны использовать ip из iproute2 набор), это может быть видно как 192.168.1.255 . Это должно быть вместо 192.168.0.255 . Когда эти вычисления сложны, используйте ipcalc:

ipcalc 192.168.0.0/24
Address:   192.168.0.0          11000000.10101000.00000000. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
   =>
Network:   192.168.0.0/24       11000000.10101000.00000000. 00000000
HostMin:   192.168.0.1          11000000.10101000.00000000. 00000001
HostMax:   192.168.0.254        11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255        11000000.10101000.00000000. 11111111
Hosts/Net: 254                   Class C, Private Internet

Я не уверен, что это корень вашей проблемы, но он наверняка добавит ее в ближайшем будущем, так как ваши трансляции (включая трафик ARP) будут игнорироваться всеми другими машинами в локальной сети.

0

Сначала немного предыстории.

Debian и, следовательно, Raspbian имеют несколько способов настройки сети. Два из наиболее часто используемых.

  1. "ifupdown", традиционное решение, которое хорошо работает для статических сетевых настроек, таких как настольные компьютеры и серверы, но не очень хорошо работает для устройств, которые перемещаются.
  2. сетевой менеджер, инструмент, предпочитаемый людьми из gnome и теперь используемый по умолчанию в настольных установках Debian. Хорошо справляется с динамическими ситуациями, но довольно тяжело и с ним трудно работать, если у вас не работает графический интерфейс и правильно работает policykit.

Фонд raspberry pi решил использовать ни один из них, а вместо этого использовать dhcpcd5 для конфигурации сети в своих изображениях raspbian. dhcpcd5 упакован в Debian, но raspbian образы raspberry pi foundation - единственная система на основе Debian, о которой я знаю, чтобы использовать ее по умолчанию.

Я могу понять, почему они хотели перейти от ifupdown к чему-то, что лучше обрабатывает роуминговые устройства, но я не совсем уверен, почему они выбрали dhcpcd вместо сетевого менеджера. Может быть, они нашли его более легким или простым для интеграции в настольную систему или что-то в этом роде.


В любом случае, из-за выбора, который сделал фундамент Raspberry pi, если вы конфигурируете IP-адрес через /etc /network /interfaces, тогда ifupdown устанавливает ваш статический адрес, как вы ожидаете, тогда приходит dhcpcd и добавляет адрес dhcp.

Есть два возможных решения этого.

  1. Используйте конфигурацию dhcpcd для настройки статического адреса.
  2. Избавьтесь от dhcpcd5 и настройте вашу сеть, используя ifupdown.

Какой вариант лучше, вероятно, зависит от того, для чего вы хотите использовать Pi.

0

Как отметил Нарзан, ваш маршрутизатор, скорее всего, все еще имеет аренду на 192.168.0.10.

Не ясно, что перезагрузка маршрутизатора будет полезна, попробуйте войти в маршрутизатор и

  1. очистите IP-связь с b8:27:eb:d2:e5:5b если это возможно.
  2. очистить таблицу аренды DHCP (это, конечно, изменит IP-адреса всех других устройств).
0

Как установить статический IP-адрес на Rasperry Pi Raspian

Не используйте /etc/network/interfaces для установки статического IP-адреса. Вместо этого используйте /etc/dhcpcd.conf .

Восстановите ваш /etc/network/interfaces в исходный файл или отмените ваши изменения:

sudo nano /etc/network/interfaces

Замените ваши изменения ручной настройкой в /etc/network/interfaces:

iface eth0 inet manual

Настройте dhcpcd:

sudo cp /etc/dhcpcd.conf /etc/dhcpcd.conf.bak
sudo nano /etc/dhcpcd.conf

Добавьте параметры статического профиля в /etc/dhcpcd.conf:

interface eth0
static ip_address=192.168.1.100/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

Удалить аренду:

sudo rm /var/lib/dhcp/*

Перезагружать:

reboot

Другой вариант - отключить dhcpcd. После отключения dhcpcd вы можете вместо этого использовать /etc/network/interfaces для установки статического IP-адреса.

Сконфигурируйте /etc/network/interfaces:

sudo cp /etc/network/interfaces /etc/network/interfaces.bak
sudo nano /etc/network/interfaces

Замените ручную настройку статическими настройками в /etc/network/interfaces:

auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.1
broadcast 192.168.1.255
gateway 192.168.1.1

Настройте dhcpcd:

sudo cp /etc/dhcpcd.conf /etc/dhcpcd.conf.bak
sudo nano /etc/dhcpcd.conf

Добавьте опцию в /etc/dhcpcd.conf:

denyinterfaces eth0

Или вы можете отключить службу dhcpcd:

systemctl disable dhcpcd.service

Удалить аренду:

sudo rm /var/lib/dhcp/*

Перезагружать:

reboot

Источник:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .