Wie kann ich meine DHCP-Lease von Terminal freigeben und erneuern?

18

Wie kann ich vom Terminal aus meine DHCP-Lease freigeben und erneuern?

Derzeit mache ich Folgendes für die drahtlose Schnittstelle, aber ich frage mich, ob es einen besseren Weg gibt:

sudo ifconfig en1 down
sudo ifconfig en1 up

Für die verdrahtete Schnittstelle, ersetzen en1mit en0.

Matthew Rankin
quelle
Warten Sie darauf, dass jemand sagt, nein - es gibt keinen besseren Weg, oder können wir Ihre Frage beantworten / bearbeiten, sodass sie wahrscheinlich eine andere Antwort erhält als ue ipconfig/ ifconfig?
bmike

Antworten:

27

Dies kann auch mit den folgenden zwei Befehlen erreicht werden:

sudo ipconfig set en0 BOOTP
sudo ipconfig set en0 DHCP

Sie können die beiden in Ihrem Bash-Profil aliasen:

alias renew="sudo ipconfig set en0 BOOTP && sudo ipconfig set en0 DHCP"

Dann haben Sie nur einen Befehl renew, der Ihr DHCP freigibt und erneuert.

robzolkos
quelle
2
Robs Antwort wird sicherlich funktionieren - aber ipconfig setimmer zuerst die Schnittstelle dekonfigurieren, bevor DHCP erneut eingerichtet wird. Ich habe den ersten Befehl nie benötigt - und er ipconfigist viel höher (er verarbeitet Routen besser) als ifconfigund ich bevorzuge ihn für den von Ihnen angegebenen Fall.
bmike
4
Der CLI-Befehl "ipconfig set en0 DHCP" ist keine DHCP-Erneuerung im eigentlichen Sinne, sondern eine vollständige Discovery-, Offer-, Request-, Ack-Prozedur. Der "Erneuern" -Button im Kontrollbereich generiert nur eine DHCP-Anfrage (mit vorangestelltem Release) und wird von einem ACK beantwortet. Es gibt einen Unterschied zwischen beiden, da die Erneuerung in der Regel von einem CPE zur Hälfte der Lease-Zeit gesendet wird, um sie zu verlängern, bevor sie abläuft. Internetzugangsgeräte wie ein Kabelmodem-Terminierungssystem reagieren auf beide Verfahren unterschiedlich. Also suche ich immer noch nach einem reinen DHCP-Erneuerungsbefehl
@robzolkos Der obige Befehl funktioniert einwandfrei für das Administratorkonto, aber wenn ich mich als Standardbenutzer in MAC angemeldet habe, werden Sie zur Eingabe eines Kennworts aufgefordert. Wenn möglich, wie ich diesen Kennwortteil überspringen könnte und ein Standardbenutzer diesen Befehl ausführen kann.
Jyotish Singh
8

Mit der Schaltfläche zum Erneuern in den Systemeinstellungen können Sie einen Schlüssel in der Systemkonfiguration erstellen. Man kann den Schlüssel erstellen über:

echo "add State:/Network/Interface/en0/RefreshConfiguration temporary" | sudo scutil

Swap en0für die gewünschte Schnittstelle.

chymb
quelle