Ich arbeite an einem Linux-Gadget.
Ich möchte, dass es DHCP erhält, wenn ich das Netzwerkkabel anschließe, nachdem es bereits hochgefahren wurde, oder wenn das Netzwerkkabel abgezogen und neu angeschlossen wurde.
Eine Lösung besteht darin, ein Skript wie dieses auszuführen (was übrigens funktioniert):
#!/bin/bash
NET_STATUS='different'
while true
do
NEW_NET_STATUS=`ifconfig | grep RUNNING | grep -v LOOPBACK`
if [ "${NEW_NET_STATUS}" = "${NET_STATUS}" ]
then
echo "no change"
sleep 1
continue
fi
NET_STATUS=${NEW_NET_STATUS}
if [ "${NET_STATUS}" ]
then
echo "cable plugged in"
else
echo "cable unplugged"
fi
sleep 1
done
Ich habe jedoch tief in meinem kleinen Zeh ein Gefühl, das mir sagt, dass es einen besseren Weg gibt, mit Hotplug-Ereignissen für das Ethernet-Kabel umzugehen.
ifplugd
undnetplugd
scheinen nicht gepflegt zu sein. Diese ähnliche Frage scheint jedoch eine gute (einfache) Antwort mit udev-Regeln zu haben - es wird kein zusätzliches Paket benötigt. serverfault.com/a/312296/275255auto
zuallow-hotplug
ininterfaces
.Antworten:
Netzstecker
netplug
ist die Lösung, mit der ich gegangen bin.ifplugd
kann genauso gut funktionieren.Installation
Schnittstellenkonfiguration
Ereigniskonfiguration
Testen
quelle
ifplugd geht sehr gut mit dieser Situation um:
quelle
netplug
, also habe ich mich stattdessen dafür entschieden. Vielen Dank!netplugd
aktiviert ist , fand ich , dass ich entfernen mussteauto <interface>
aus/etc/network/interfaces
. Wenn nicht, musste ich das Ethernet-Kabel anschließen, entfernen und erneut anschließen, bevor ich eine IP-Adresse von DHCP erhielt. Wenn diese Leitung entfernt wird, erhalte ich beim ersten Plug-In-Ereignis oder beim Booten eine IP-Adresse von DHCP, wenn das Kabel bereits eingesteckt war (IP beim Booten funktionierte mit oder ohne die Leitung, die beiifplugd
Aktivierung entfernt wurde).Ich würde vorschlagen, ifplugd über netplugd zu verwenden, da es besser funktioniert und aktiv gewartet wird.
quelle
Mit meiner Software für die Netzwerkkonfiguration ist das sehr einfach.
http://code.google.com/p/badvpn/wiki/NCD
Das folgende NCD-Programm reicht aus. Es wird auch gezeigt, wie Sie die Konfiguration erweitern können, in diesem Fall indem Sie etwas ausführen, wenn das Netzwerk hoch / runter geht.
Beachten Sie, dass dies nicht nur das Netzwerkkabel behandelt, das eingesteckt oder herausgezogen wird, sondern auch die Netzwerkschnittstelle selbst, die angezeigt wird und verschwindet (nützlich, wenn es sich um USB handelt).
Der Vorteil der Verwendung von NCD im Vergleich zu anderer Software wie ifplugd besteht darin, dass das Design eine große Flexibilität ermöglicht. Grundsätzlich können Sie Ihre eigene Netzwerkkonfiguration programmieren, anstatt sich auf einen begrenzten Satz fest codierter Funktionen zu beschränken.
UPDATE: Ich habe Ubuntu-Pakete für BadVPN und NCD erstellt. Ich habe das Wiki auch mit Installations- und Verwendungsanweisungen für Ubuntu aktualisiert: http://code.google.com/p/badvpn/wiki/NCD#Running_it
quelle