Хобрук: Ваш путь к мастерству в программировании

Установите eth0 как DHCP в Raspberry Pi

Я хочу установить eth0 RPI (Raspbian Stretch) как DHCP, моя цель состоит в том, чтобы при подключении любого устройства, которое обменивается данными с использованием протокола TCP/IP, это устройство получало IP-адрес.

Я нашел много руководств, которые все ведут к тому, чтобы сделать IP-адрес eth0 статическим, что не входит в мои намерения.

В настоящее время устройство подключено через eth0 , ifconfig говорит, что у него есть какой-то IP-адрес, но проверка имени хоста устройства не дает ответа. wlan0 подключен через Wi-Fi.

Вот некоторая информация:

pi@raspberrypi:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 169.254.31.197  netmask 255.255.0.0  broadcast 169.254.255.255
        inet6 fe80::ad5a:8219:4c27:b59b  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:f3:f2:87  txqueuelen 1000  (Ethernet)
        RX packets 81  bytes 26568 (25.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 46  bytes 10544 (10.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 31  bytes 3472 (3.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 31  bytes 3472 (3.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.71  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fd01::60ff:8818:5965:dc58  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::473d:110e:5474:8000  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:a6:a7:d2  txqueuelen 1000  (Ethernet)
        RX packets 955  bytes 74427 (72.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 184  bytes 22096 (21.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

pi@raspberrypi:~ $ cat /etc/network/interfaces
# 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

Любые советы о том, как достичь моей цели, будут с радостью приняты.


Ответы:


1

Вы пробовали это: https://wiki.debian.org/NetworkConfiguration#Using_DHCP_to_automatically_configure_the_interface, то есть просто добавьте это в /etc/network/interfaces:

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

если вы действительно педантичны, вы можете создать файл типа /etc/network/interfaces.d/eth0-dhcp и вставить в него эти строки - конечный результат будет таким же.

09.04.2019
  • Привет, я пробовал это - все, что он сделал, это полностью удалил все интерфейсы. 10.04.2019

  • 2

    Если вы просто хотите подключить два устройства (без маршрутизации/переадресации/и т. д.), то есть для автономной тестовой сети, это должно работать:

    1. Выясните, какой диапазон IP-адресов вы хотите использовать и какой IP-адрес должен иметь ваш DHCP-сервер (назовем его IP_DHCP).

    2. Установите сервер isc-dhcp

    3. Установите статический IP-адрес для eth0 (например, установите для него IP_DHCP, который вы выбрали ранее)

    4. Настройте /etc/dhcp/dhcpd.conf для нужного сетевого диапазона (у man dhcpd есть достойная ссылка), сделайте его авторитетным (если нет других DHCP-серверов).

    5. Запустите service isc-dhcpd-server start

    Пример конфигурации:

    sudo apt-get install isc-dhcpd-server
    sudo nano /etc/conf/dhcpd.conf
    

    Раскомментируйте #authoritative, чтобы сделать его авторитетным.

    Добавьте следующие строки (настройте в соответствии с тем, что вы решили на шаге 1), где маршрутизаторы — это IP_DHCP:

    subnet 10.0.0.0 netmask 255.255.255.0 {
      range 10.0.0.1 10.0.0.100;
      option subnet-mask 255.255.255.0;
      option broadcast-address 10.0.0.255;
      option routers 10.0.0.1;
    }
    

    Сохранить буфер и закрыть

    sudo service isc-dhcpd-server start
    

    Удачи!

    P.S. Если вы получаете сообщение об ошибке connect:network not found, вероятно, у вас возникла проблема с настройкой таблиц маршрутизации (route).

    Что-то в духе

    sudo route add default gw 10.0.0.1

    где IP-адрес — ваш eth0, скорее всего, позволит общаться.

    28.12.2020

    3

    Возможно, на устройстве запущен NetWork Manager (nmcli), который настроен для работы со статическим IP-адресом.

    Следующие команды могут помочь вам проверить, управляется ли ваше устройство с помощью nmcli:

    нмкли д

    nmcli мошенническое шоу

    Выполните следующую команду и замените «Проводное подключение 1» на имя вашего подключения.

    nmcli con show 'Проводное соединение 1' | grep 'ipv4.метод'

    ipv4.method покажет автоматический режим, если установлен DHCP, или ручной, если установлен статический.

    http://www.intellamech.com/RaspberryPi-projects/rpi_nmcli.html

    01.04.2019
  • Привет, это не управляется nmcli. pi@raspberrypi:~ $ nmcli d bash: nmcli: command not found 01.04.2019
  • Новые материалы

    Понимание дженериков в TypeScript: подробное руководство
    Введение TypeScript, строго типизированный надмножество JavaScript, хорошо известен своей способностью улучшать масштабируемость, удобочитаемость и ремонтопригодность приложений. Одной из..

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..