Wie erzwinge ich, dass Linux eine neue IP-Adresse vom DHCP-Server abruft?

24

Die Umgebung ist Debian , obwohl die Antwort für alle Distributionen gilt.

p.Campbell
quelle
Dies ist jetzt ein Community-Wiki. Fühlen Sie sich frei, andere Methoden beizutragen, die funktionieren.
GeneQ

Antworten:

35

Sie können auch diesen Befehl verwenden:

dhclient -r interface

Wo interfaceist das Gerät, für das Sie eine neue Adresse erhalten möchten?

dhclient -r eth0

Das -rFlag erzwingt dhclient, zuerst alle Leases freizugeben, die Sie haben. Sie können dann diesen Befehl verwenden, um ein neues Lease anzufordern:

dhclient eth0

Von man dhclient:

   -r     Tell  dhclient  to  release the current lease it has from the 
          server.  This is not required by the DHCP protocol, but some 
          ISPs require their clients to notify the server if they wish 
          to release an assigned IP address.
slm
quelle
Auch eine gute Möglichkeit, es zu tun :)
Frenchie
1
Nach diesem Befehl konnte mein Debian keine neue IP erhalten, aber nach einem Neustart wurde mir eine neue zugewiesen, so dass es funktioniert!
Damien
3
Für mich gibt dies nur den Mietvertrag frei und macht die Schnittstelle frei. Danach wird keine neue IP erhalten.
cgogolin
Welches ist eine totale Enttäuschung, wenn Sie primäre Schnittstelle sind ssh ...
Eric Nord
13

Eine der folgenden Möglichkeiten sollte eine Erneuerung bewirken.

/etc/init.d/networking restart

oder

ifdown eth0; ifup eth0

Ich würde auch nicht empfehlen, über eine SSH-Verbindung zu laufen, obwohl Sie wahrscheinlich mit der ersten durchkommen, wenn sie nicht mit einer neuen IP-Adresse zurückkommt.

Frenchie
quelle
1
SSH-Verbindungen tolerieren einige Sekunden "Disconnect", vorausgesetzt, Sie stellen die Verbindung unter derselben IP-Adresse in wenigen Sekunden wieder her. Unter diesen Umständen habe ich nie eine Verbindung verloren /etc/init.d/networking restart, auch wenn es mehr als 5 Sekunden gedauert hat, bis ich wieder
Avery Payne
Benötigt das keine Administratorrechte?
Peter Mortensen
10

Würde p.campbell kommentieren, aber ich habe nur 1 Ruf und kann daher nicht, zuerst überprüfe ich installierte Schnittstellen:

ip addr

IP von ausgewählter Schnittstelle freigeben (zB eth0, eth1, enp1s0, sit0, wlan0, ...):

sudo dhclient -r *interface*

Neue IP vom DHCP-Server anfordern (Warnung bei Fehler):

sudo dhclient -1 *interface*

IP überprüfen:

ip addr

Ubuntu 16.04 LTS bestätigt

BFGoody
quelle
4

Wenn Sie das dhcpcdTool verwenden, dann:

dhcpcd -k interface
dhcpcd interface

Der erste fordert Sie auf, den Dämon anzuhalten, und der zweite fordert Sie auf, ihn erneut zu starten.

p.Campbell
quelle
2

Wenn die MAC-Adresse der Schnittstelle nicht geändert wird, weist der DHCP-Server ihr möglicherweise bei der Erneuerung dieselbe Adresse zu. Daher kann eine einfache Freigabe und Erneuerung mit dhclient keine neue Adresse erhalten. Ändern Sie die MAC-Adresse und beziehen Sie eine neue IP-Adresse mit den folgenden Befehlen. Vergessen Sie nicht, das Original aufzuschreiben, wenn Sie später darauf zurückgreifen müssen.

ifconfig <interface> down
ifconfig <interface> hw ether <MAC address>
ifconfig <interface> up
Trevor Karjanis
quelle
Das war so hilfreich, danke! Keine Nummer von dhclient -roder ifconfig downgab mir eine neue IP-Adresse in meinem Arbeitsnetzwerk, bis ich die MAC-Adresse mit diesem Befehl in eine zufällige geändert habe.
Migwell
Dies sollte auch hier die offizielle Antwort sein.
Jonathan Argentiero