Gibt es eine Möglichkeit, den DHCP-Client in Raspbian Linux auf einem Rasperry Pi zu deaktivieren?

Gibt es eine Möglichkeit, den DHCP-Client in Raspbian Linux auf einem Rasperry Pi zu deaktivieren?

Ich habe einen Linux-Server (Rasperry Pi mit Raspbian als Betriebssystem), der nur eine statische IP verwenden sollte.

Mir ist jedoch aufgefallen, dass es auch eine IP vom DHCP-Server hat (die von DHCP vergebene IP ist 192.168.111.2). Laut Netzwerkeinstellungen sollte der Server nur eine statische IP verwenden ( 192.168.111.100).

Die Inhalte von /etc/network/interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.111.100
netmask 255.255.255.0
gateway 192.168.111.1
dns-nameservers ip1 ip2

Obwohl ich eine statische Konfiguration verwende, kann ich auch über die von DHCP zugewiesene IP per SSH auf das Gerät zugreifen. Außerdem scheint es, als ntpdwürde sowohl die falsche als auch die richtige IP verwendet.

Ausgabe von Netstat:

udp        0      0 192.168.111.2:123       0.0.0.0:*                           2774/ntpd
udp        0      0 192.168.111.100:123     0.0.0.0:*                           2774/ntpd

Demnach wird ifconfigdie IP 192.168.111.2nicht genutzt:

eth0      Link encap:Ethernet  HWaddr b8:27:eb:be:18:1c
          inet addr:192.168.111.100  Bcast:192.168.111.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:138099 errors:0 dropped:0 overruns:0 frame:0
          TX packets:81146 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:95954711 (91.5 MiB)  TX bytes:27076870 (25.8 MiB)

ps -ef | grep dhcpzeigt, dass ich einen DHCP-Daemon laufen habe:

root      2000     1  0 Oct07 ?        00:00:06 /sbin/dhcpcd

Wie deaktiviere ich den DHCPStart des Daemons und stelle sicher, dass mein Server nur die statische Version verwendet?

Antwort1

Dieses Szenario klingt wirklich seltsam, denn Ihr Setup sollte wie beschrieben funktionieren – und Sie hoffen, dass es funktioniert –, wenn eine statische IP in festgelegt ist /etc/network/interfaces. Das heißt,diese Diskussion auf der offiziellen Raspberry Pi-Sitekonzentriert sich auf das Problem mit dem Benutzer „rpdom“, der im Beitrag vom „Do., 28. Mai 2015, 06:21 Uhr“ Folgendes feststellt:

Dies passiert in den neuesten Updates. Es wird dadurch verursacht, dass der neue DHCP-Client ignoriert, was die Schnittstellendateien tun, und zusätzlich sein eigenes Ding macht ... das kommt mir verrückt vor. Ich würde mir ansehen, wie ich den DHCP-Client neu konfigurieren kann (ich kann mich nicht erinnern, welcher es ist oder wie ich es mache, ich verwende immer noch den alten, der bei mir funktioniert), ihn deaktivieren oder entfernen kann (falls möglich).

Weiter unten im Thread schlägt Benutzer „KLL“ vorder folgende andere Beitragin ihrer Antwort vom „Montag, 10. August 2015, 12:59 Uhr“. Laut „knute“:

Irgendwann wurde meine /etc/network/interfacesDatei durch ein Upgrade mit dem Wort „manuell“ anstelle von „dhcp“ oder „statisch“ geändert, und ich hatte am Ende zwei IP-Adressen, meine statische und eine DHCP-Adresse. Endlich hatte ich Zeit, damit herumzuspielen, und fand heraus, dass es dhcpcd5anders funktioniert als das, was vorher darin stand. Um nur Ihre statische Adresse zu erhalten, ändern Sie es nicht /etc/network/interfaces. Setzen Sie das Wort „manuell“ zurück, wenn Sie es geändert haben, und ändern Sie es stattdessen /etc/dhcpcd.confwie im Beispiel aus den Dokumenten gezeigt.

Die Idee ist also, dass dhcpcd5sich das Verhalten von bei einem der Upgrades geändert hat. Und der Vorschlag zur Lösung des Problems besteht darin, alle Änderungen zu entfernen /etc/network/interfacesund stattdessen die Einstellungen in anzupassen, /etc/dhcpcd.confum eine statische IP-Adresse zu erhalten; Beispielkonfiguration unten:

static <value>
             Configures a static <value>.  If you set ip_address then dhcpcd
             will not attempt to obtain a lease and just use the value for the
             address with an infinite lease time.

             Here is an example which configures a static address, routes and
             dns.
                   interface eth0
                   static ip_address=192.168.0.10/24
                   static routers=192.168.0.1
                   static domain_name_servers=192.168.0.1

Weitere Informationen zum Inhalt dhcpcd.conffinden Sieauf der offiziellen Manpage dazu.

Eine andere Idee ist, die Einstellungen beizubehalten, die Sie in haben, /etc/network/interfacesaber dann zu bearbeiten /etc/dhcpcd.confund die Zeile hinzuzufügen denyinterfaces eth0, die dem DHCP-Daemon sagt, dass er vollständig ignorieren soll eth0. Beide Lösungen sollten funktionieren, aber je nach Ihren allgemeinen Netzwerkanforderungen kann eine Lösung die bessere sein.

Antwort2

bei mir hat es funktioniert, wie in der ursprünglichen Frage ein /etc/network/interfaces zu verwenden und einfach den DHCP-Client zu entfernen:

apt-get remove dhcpcd5 isc-dhcp-client isc-dhcp-common

Antwort3

Um Dienste wie dhcpcd zu deaktivieren, verwenden Sie am besten die Systemverwaltungsfunktionen. Damit die Funktion wirksam wird, müssen Sie neu starten – es sei denn, Sie beenden auch den Dienst.

Für Jessie (die systemdManagement verwendet):

sudo systemctl disable dhcpcd.service

Und für die älteren Wheezy ( System-VManagement):

sudo update-rc.d dhcpcd disable

Wenn Sie es jedoch deaktivieren, müssen Sie sicherstellen, dass Sie über eine statische IP-Konfiguration verfügen, da /etc/network/interfacesIhre Schnittstellen sonst keine IP-Adresse erhalten.

Antwort4

Hier ist eine Zusammenfassung dessen, was ich für Raspbian Jessie am 11.01.2017 tun musste:

Bearbeiten Sie /etc/network/interfaces und fügen Sie die Stanza für die statische Adresse hinzu. Entfernen Sie alle anderen Verweise auf die statische Schnittstelle (in diesem Fall eth0). Die Auto-Zeile ist wichtig, da die Schnittstelle sonst beim Booten nicht gestartet wird:

    auto eth0
    iface eth0 inet static
      address 192.168.44.17
      netmask 255.255.255.0
      gateway 192.168.44.27

Deaktivieren Sie als Nächstes dhcpcd und aktivieren Sie das Standardnetzwerk:

  • Deaktivieren Sie dhcpcd:systemctl disable dhcpcd.service
  • Vernetzung aktivieren:systemctl enable networking
  • Neustart

Raspbian Jessie scheint seit der Version vom 11.01.2017 die Netzwerkfunktionen von systemd nicht mehr zu nutzen.

verwandte Informationen