it-swarm.com.de

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

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

Allerdings habe ich festgestellt, dass es auch eine IP vom DHCP-Server hat (Die von DHCP ausgegebene IP ist 192.168.111.2). Entsprechend den Netzwerkeinstellungen sollte der Server nur statische IP-Adressen (192.168.111.100) verwenden.

Der Inhalt 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

Trotz der Verwendung der statischen Konfiguration kann ich SSH zum Gerät auch unter Verwendung der von DHCP angegebenen IP. Außerdem scheint ntpd sowohl die falsche als auch die richtige IP zu verwenden.

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

Laut ifconfig wird der IP 192.168.111.2 nicht verwendet:

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 dhcp zeigt an, dass ein DHCP-Daemon ausgeführt wird:

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

Wie deaktiviere ich den Start des Daemons DHCP und stelle sicher, dass mein Server nur das statische verwendet?

14
Madoc Comadrin

Dieses Szenario klingt wirklich seltsam, da Ihr Setup so funktionieren sollte, wie Sie es beschreiben - und hoffen, dass es funktioniert -, wenn in /etc/network/interfaces eine statische IP-Adresse festgelegt ist. Das heißt, diese Diskussion auf der offiziellen Raspberry Pi-Site konzentriert sich auf das Problem, bei dem der Benutzer "rpdom" dies auf dem Beitrag vom "Do 28. Mai" angibt. 2015 6:21 Uhr:

Dies geschieht in den neuesten Updates. Es wird dadurch verursacht, dass der neue DHCP-Client ignoriert, was die Interface-Dateien tun und zusätzlich seine eigene Sache tut ... scheint mir verrückt zu sein. Ich würde schauen, wie man den DHCP-Client neu konfiguriert (kann mich nicht erinnern, welcher es ist oder wie man es macht, ich bin immer noch auf dem alten, der für mich funktioniert), es deaktiviert oder entfernt (wenn möglich).

Weiter unten im Thread schlägt der Benutzer "KLL" in seiner Antwort vom "Montag, 10. August 2015, 12:59 Uhr" den folgenden anderen Beitrag vor. knute ”:

Irgendwann auf dem Weg hat ein Upgrade meine /etc/network/interfaces-Datei mit dem 'manuellen' Wort anstelle von dhcp oder statisch geändert, und ich erhielt zwei IP-Adressen, meine statische und eine dhcp-Adresse. Ich hatte endlich Zeit, damit zu spielen und fand heraus, dass dhcpcd5 anders funktioniert als alles, was vorher drin war. Ändern Sie /etc/network/interfaces nicht, um nur Ihre statische Adresse abzurufen. Setzen Sie das 'manuelle' Word zurück, wenn Sie es geändert haben, und ändern Sie stattdessen den /etc/dhcpcd.conf wie im Beispiel in den Dokumenten gezeigt.

Die Idee ist also, dass sich das Verhalten von dhcpcd5 in einem der Upgrades geändert hat. Um das Problem zu beheben, sollten Sie alle Änderungen aus /etc/network/interfaces entfernen und stattdessen die Einstellungen in /etc/dhcpcd.conf anpassen, um 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 von dhcpcd.conf finden Sie auf der offiziellen Manpage .

Eine andere Idee ist es jedoch, die Einstellungen in /etc/network/interfaces beizubehalten und dann /etc/dhcpcd.conf zu bearbeiten, um die Zeile denyinterfaces eth0 hinzuzufügen und den DHCP-Dämon anzuweisen, eth0 vollständig zu ignorieren. Beide Lösungen sollten funktionieren, eine Lösung ist jedoch je nach den allgemeinen Netzwerkanforderungen möglicherweise vorzuziehen.

11
JakeGould

was für mich funktioniert hat, ist die Verwendung einer/etc/network/interfaces wie in der ursprünglichen Frage und das einfache Entfernen des DHCP-Clients:

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

Ich muss sagen, dass leider keine der hier vorgeschlagenen Lösungen für mich funktioniert hat. Aber nach einem langen Kampf mit DHCP konnte ich das Problem endlich lösen:

vi /etc/systemd/network/eth0.network

veränderung:

[Match]
Name=eth0

[Network]
DHCP=yes

zu:

[Network]
DHCP=no

hoffe das hilft.

1
lester289

Versuchte ein paar Dinge und fand das

 apt list --installed | grep dhcp

gefunden:

dhcpcd5 
isc-dhcp-client
isc-dhcp-common

Ich habe gerade dhcpcd5 deaktiviert und das wurde folgendermaßen behoben:

 Sudo apt-get remove dhcpcd5

einen Neustart und alles war dandy

0
Mick65

Die bevorzugte Methode zum Deaktivieren von Diensten wie dhcpcd ist die Verwendung der Systemverwaltungsfunktionen. Sie müssen einen Neustart durchführen, damit dieser wirksam wird - es sei denn, Sie beenden den Dienst ebenfalls.

Für Jessie (die das systemd-Management verwendet):

Sudo systemctl disable dhcpcd.service

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

Sudo update-rc.d dhcpcd disable

Wenn Sie es jedoch deaktivieren, müssen Sie sicherstellen, dass Sie eine statische IP-Konfiguration in /etc/network/interfaces haben, sonst erhalten Ihre Schnittstellen keine IP-Adresse.

0
Pierz

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 Zeilengruppe für statische Adressen hinzu. Entfernen Sie andere Verweise auf die statische Schnittstelle (in diesem Fall eth0). Die Auto-Zeile ist wichtig, sonst startet die Schnittstelle beim Booten nicht:

    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:

  • Deaktiviere dhcpcd: systemctl disable dhcpcd.service
  • Netzwerk aktivieren: systemctl enable networking
  • neustarten

Raspbian Jessie verwendet ab dem Release vom 11.01.2017 offenbar nicht die Netzwerkfunktionen von systemd

0
SteveB