Estou trabalhando em um gadget linux.
Quero que ele obtenha DHCP se eu conectar o cabo de rede depois que ele já foi inicializado ou se o cabo de rede tiver sido desconectado e reconectado.
Uma solução é executar um script como este (que funciona, 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
No entanto, no fundo do meu dedinho, sinto que existe uma maneira melhor de lidar com eventos de hotplug para o cabo Ethernet.
ifplugd
enetplugd
parecem não mantido. No entanto, essa pergunta semelhante parece ter uma resposta boa (simples) usando regras do udev - nenhum pacote adicional é necessário. serverfault.com/a/312296/275255auto
paraallow-hotplug
ininterfaces
.Respostas:
netplug
netplug
é a solução que eu usei.ifplugd
pode funcionar tão bem.Instalação
Configuração da interface
Configuração de Eventos
Teste
fonte
O ifplugd lida com essa situação muito bem:
fonte
netplug
, então eu fui com isso. Obrigado!netplugd
habilitado, eu descobri que eu tinha para removerauto <interface>
a partir/etc/network/interfaces
. Caso contrário, tive que conectar o cabo Ethernet, removê-lo e conectá-lo novamente antes de obter um endereço IP do DHCP. Com essa linha removida, obtenho um endereço IP do DHCP no primeiro evento de plug-in ou na inicialização, se o cabo já estiver conectado (o IP na inicialização funcionou com ou sem a linha removida quandoifplugd
estava ativado).Eu sugeriria o uso de ifplugd sobre netplugd , pois funciona melhor e é mantido ativamente.
fonte
Usando este software meu para configuração de rede, é muito fácil.
http://code.google.com/p/badvpn/wiki/NCD
O seguinte programa NCD será executado. Também mostra como você pode estender a configuração, nesse caso executando algo quando a rede sobe / desce.
Observe que isso não apenas manipula o cabo de rede conectado ou desconectado, mas também a própria interface de rede que aparece e desaparece (útil se for USB).
A vantagem de usar o NCD em comparação com outros softwares como o ifplugd é que seu design permite uma grande flexibilidade. Basicamente, você pode programar sua própria configuração de rede, em vez de se limitar a um conjunto limitado de recursos codificados.
ATUALIZAÇÃO: Criei pacotes do Ubuntu para BadVPN e NCD. Também atualizei o wiki com instruções de instalação e uso do Ubuntu: http://code.google.com/p/badvpn/wiki/NCD#Running_it
fonte