Pracuję nad gadżetem dla systemu Linux.
Chcę, aby uzyskał DHCP, jeśli podłączę kabel sieciowy po jego uruchomieniu lub jeśli kabel sieciowy zostanie odłączony i ponownie podłączony.
Jednym z rozwiązań jest uruchomienie takiego skryptu (który działa, btw):
#!/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
Mam jednak wrażenie głęboko w moim małym palcu, który mówi mi, że istnieje lepszy sposób radzenia sobie ze zdarzeniami typu hotplug dla kabla Ethernet.
ifplugd
inetplugd
wydają unmaintained. Jednak to podobne pytanie wygląda na to, że ma dobrą (prostą) odpowiedź przy użyciu reguł udev - nie jest potrzebny żaden dodatkowy pakiet. serverfault.com/a/312296/275255auto
sięallow-hotplug
winterfaces
.Odpowiedzi:
wtyczka sieciowa
netplug
jest rozwiązaniem, z którym poszedłem.ifplugd
może równie dobrze działać.Instalacja
Konfiguracja interfejsu
Konfiguracja zdarzenia
Testowanie
źródło
ifplugd bardzo dobrze radzi sobie z tą sytuacją:
źródło
netplug
, więc zamiast tego poszedłem. Dzięki!netplugd
włączeniu, stwierdziliśmy, że musiałem usunąćauto <interface>
z/etc/network/interfaces
. Jeśli nie, musiałem podłączyć kabel Ethernet, usunąć go i podłączyć ponownie, zanim otrzymam adres IP z DHCP. Po usunięciu tej linii otrzymuję adres IP z DHCP przy pierwszym zdarzeniu wtyczki lub przy rozruchu, jeśli kabel był już podłączony (IP przy rozruchu działał z linią usuniętą lub bez, gdyifplugd
była włączona).Proponuję za pomocą ifplugd nad netplugd jak to działa lepiej i jest aktywnie utrzymane.
źródło
Korzystanie z mojego oprogramowania do konfiguracji sieci jest bardzo łatwe.
http://code.google.com/p/badvpn/wiki/NCD
Zrobi to następujący program NCD. Pokazuje także, w jaki sposób można rozszerzyć konfigurację, w tym przypadku uruchamiając coś, gdy sieć idzie w górę / w dół.
Zauważ, że to nie tylko poradzi sobie z podłączaniem i odłączaniem kabla sieciowego, ale także z pojawianiem się i znikaniem samego interfejsu sieciowego (przydatne, jeśli jest to USB).
Zaletą korzystania z NCD w porównaniu do innych programów, takich jak ifplugd, jest to, że jego konstrukcja zapewnia dużą elastyczność. Zasadniczo pozwala zaprogramować własną konfigurację sieci, a nie ograniczać się do ograniczonego zestawu zakodowanych możliwości.
AKTUALIZACJA: Stworzyłem pakiety Ubuntu dla BadVPN i NCD. Zaktualizowałem wiki również instrukcjami instalacji i użytkowania Ubuntu: http://code.google.com/p/badvpn/wiki/NCD#Running_it
źródło