ti-enxame.com

Usando scripts IF-UP e IF-DOW para desativar sem fio quando a ETH1 estiver conectada

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:

  1. Como posso depurar esses scrips, e. O que aconteceu e o que foi executado?
  2. Qual é a maneira correta de implementar o que sou depois?
  3. Além disso, parece que nada acontece quando eu desconecto o cabo Ethernet. A interface está em alta e o endereço IP é atribuído. Eu gostaria de recuperá-lo em tal caso, para que eu pudesse usar sem fio.

Eu estou usando debian instável

4
Grzenio

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.

2
Zoredache

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

3
Grzenio

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 :(

1
Bruce Grobler

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?

0
womble

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

0
Bruce Grobler

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.

0
camh

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'.

0
pjz