Eu estou tentando configurar minhas interfaces de rede. Eu gostaria de fazer minha interface sem fio para ser desativada quando eu conectar um cabo Ethernet. Quando eu pego o cabo Ethernet, minha interface sem fio deve ser ativada novamente.
Eu criei /etc/network/if-up.d/wlan-down:
#!/bin/sh
[ "$IFACE" != "eth1" ] || exit 0
ifdown wlan0
exit 0
e /etc/network/if-down.d/wlan-up:
#!/bin/sh
[ "$IFACE" != "eth1" ] || exit 0
ifup wlan0
wpa_cli -i wlan0 reassociate
exit 0
mas isso simplesmente não parece funcionar. WPA Ainda tenta conectar o tempo todo. Eu posso ver WLAN0 aparece e desaparece o tempo todo. Minhas perguntas são:
Eu estou usando debian instável
Isso é para um sistema de desktop? Você já considerou usar Gerenciador de rede ou WICD . Essas ferramentas cuidam muito disso para você automaticamente.
Como posso depurar esses scrips, e. O que aconteceu e o que foi executado?
Você pode querer usar algo como logger para enviar informações de depuração para syslog. Ou você poderia simplesmente colocar em alguns comandos de eco aqui e ali para escrever coisas em um arquivo em algum lugar.
Parece que ifplugd
pacote tem todos os scripts que eu preciso! Depois de instalar:
apt-get install ifplugd
e adicionando eth1 ao arquivo de configuração /etc/default/ifplugd
Tudo começou a funcionar como eu queria, sem adicionar scripts extras (eu limpei tudo para o estado inicial).
Obrigado a todos por ajuda
Heres uma possível solução "não testada",
em sua/etc/rede/interfaces
allow-hotplug eth0
iface eth1 inet dhcp
down ifconfig wlan0 up
down wpa_cli -i wlan0 reassociate
up ifconfig wlan0 down
allow-hotplug wlan0
iface wlan0 inet dhcp
up ifconfig eth0 down
down ifconfig eth0 up
bem, há meus cinco centavos, eu uso a configuração acima para modificar rotas com base na interface para cima/para baixo em um servidor meu, ele pode funcionar para você também, motivo eu fiz isso usando o arquivo de interface foi que meus scripts não pareciam ser executados de o /ifup.d dir mesmo com 755.
Deixe-me saber se funciona infelizmente eu não tenho uma máquina debian com um cartão wifi para testar com :(
Eu ainda acho que ajustar a métrica na interface sem fio é a maneira de ir, como descrevi em Como posso configurar o WPA_Supplicant para que minha interface WLAN esteja desativada quando eu conectar o cabo Ethernet?
hmm Comments não gosta de código.
#!/bin/bash
interval=5
while [ 0 -lt 1 ]; do
ifconfig eth0 up
ifconfig eth0 | grep 'inet addr' | awk '{ print $2 }' | cut -c 6- > /tmp/eth0.stat
if [ -z /tmp/eth0.stat ]; then
ifconfig eth0 down
sleep $interval
else
echo "We have an address (`cat /tmp/eth0.stat`), looking good." > /var/log/eth0.stat.log
sleep 10
fi
done
crie um daemon para executar isso na inicialização.
deixe-me saber como isso funciona
O problema é que você não pode executar o IFUP/para baixo recursivamente. Eu tentei fazer algo parecido onde eu queria trazer uma interface VPN quando um WAN interface foi criado.
Minha solução é:
echo ifup vpn0 | at now >/dev/null 2>&1
Para trazer automaticamente uma interface para cima e para baixo quando o cabo estiver conectado ou desconectado, use IFPlugd do pacote do mesmo nome.
Você quer definir algo na/etc/rede/subárvore, talvez como womble sugere aumentando a métrica da rota WiFi, ou talvez por alguns outros meios envolvendo um script personalizado em /etc/network/if-up.d/ Isso levaria a interface Wi-Fi para baixo se a interface Ethernet aparecesse.
Info em Fazer Scripts para /etc/network/if-up.d/ está na página Interfaces Man, sob a seção 'Opções da IFACE'.