cambio automático entre Wifi y ethernet en Linux usando la línea de comando

cambio automático entre Wifi y ethernet en Linux usando la línea de comando

Quiero cambiar entre Wifi y Ethernet en Linux (Ubuntu 10.04). He buscado de muchas maneras y descubrí que se puede hacer usando firestarter: cambio automático entre redes cableadas e inalámbricas.

Para esto necesito instalar el paquete firestarter en Ubuntu.

¿Es esta la forma correcta de cambiar entre eth0 y wifi? Quería implementarlo usando la línea de comando sin instalar ningún paquete nuevo.

Por favor ayuda. gracias de antemano

Respuesta1

Connman(1)se puede utilizar para priorizar sus conexiones y preferir redes cableadas y conectarse automáticamente a las inalámbricas cuando la conexión por cable no esté disponible. Es compatible con Intel, por lo que puede ser hostil al hardware de red que no sea Intel: no puedo usarlo Connman(1)porque mi controlador wifi no establece indicadores que Intel espera habilitar el adaptador. Recibo el error "sin operador" y no hay conexión wifi. Sin embargo, parece conectarse rápidamente cuando conecto la conexión por cable.

Necesitas configurar /etc/connman/main.conf/main.conf con algo como:

  BackgroundScanning = false
  DefaultAutoConnectTechnologies = ethernet,wifi 
  PreferredTechnologies = ethernet,wifi
  SingleConnectedTechnology = true

para garantizar que solo esté conectado wifi o ethernet. Luego, use una connmanctl(1)sesión interactiva como lo indica la página de manual para conectarse a wifi la primera vez o edite el archivo de configuración para su interfaz que se encuentra en /var/lib/connman(esto me parece más fácil, pero es necesario reiniciar).connman-service.config(5)

Si tiene ifupdownalguna de sus variantes instaladas, puede eliminarlas para evitar colisiones antes de instalarlas.connman(1)

Respuesta2

Creé el script para conexión y desconexión de wifi y ethernet.

desconectar el wifi

killall wpa_supplicant
wirelessname=`ls /sys/class/net | grep wlan* | head -1`
ifconfig $wirelessname down

conecta el wifi

wirelessname=`ls /sys/class/net | grep wlan* | head -1`
ifconfig $wirelessname up > /dev/null 2>&1 &
killall wpa_supplicant > /dev/null 2>&1 &
iwconfig $wirelessname power off > /dev/null 2>&1 &
wpa_passphrase $1 $2 > /root/wps.conf
wpa_supplicant -Dwext -i$wirelessname -c/root/wps.conf > /dev/null 2>&1 &
sleep 5
dhclient -r > /dev/null 2>&1 &
dhclient $wirelessname > /dev/null 2>&1 &

Conectar Ethernet

ifconfig $(ip link show | grep eth | grep state | awk '{printf $2}'| sed -e 's/:$//') up
ifconfig $(ifconfig | grep eth | awk '{print $1}'| head -1 ) $(ifconfig  | grep Bcast | awk '{printf $2}' | cut  -c6-) up

desconectar ethernet

ifconfig $(ifconfig | grep eth | awk '{print $1}' | head -1 )  down 

información relacionada