automatischer Wechsel zwischen WLAN und Ethernet in Linux über die Befehlszeile

automatischer Wechsel zwischen WLAN und Ethernet in Linux über die Befehlszeile

Ich möchte in Linux (Ubuntu 10.04) zwischen WLAN und Ethernet wechseln. Ich habe nach vielen Möglichkeiten gesucht und bin zu dem Schluss gekommen, dass es mit Firestarter geht – automatischer Wechsel zwischen kabelgebundenen und kabellosen Netzwerken.

Dazu muss ich das Firestarter-Paket in Ubuntu installieren.

Ist dies die richtige Methode zum Wechseln zwischen eth0 und WLAN? Ich wollte es über die Befehlszeile implementieren, ohne neue Pakete zu installieren.

Bitte helfen Sie. Vielen Dank im Voraus

Antwort1

Connman(1)kann verwendet werden, um Ihre Verbindungen zu priorisieren, kabelgebundene Netzwerke zu bevorzugen und automatisch eine Verbindung zu kabellosen herzustellen, wenn die kabelgebundene Verbindung nicht verfügbar ist. Es wird von Intel unterstützt, kann also gegenüber nicht von Intel stammender Netzwerkhardware feindlich sein: Ich kann es nicht verwenden, Connman(1)da mein WLAN-Treiber keine Flags setzt, die Intel zum Aktivieren des Adapters erwartet. Ich erhalte die Fehlermeldung „Kein Träger“ und keine WLAN-Verbindung. Es scheint jedoch schnell eine Verbindung herzustellen, wenn ich die kabelgebundene Verbindung einstecke.

Sie müssen die Konfiguration /etc/connman/main.conf/main.conf etwa wie folgt vornehmen:

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

um sicherzustellen, dass nur WLAN oder Ethernet verbunden ist. Verwenden Sie dann eine interaktive connmanctl(1)Sitzung, wie in der Manpage angegeben, um sich zum ersten Mal mit WLAN zu verbinden, oder bearbeiten Sie die Einstellungsdatei für Ihre Schnittstelle, die Sie unter finden /var/lib/connman(das scheint mir einfacher, aber ein Neustart ist erforderlich). Sieheconnman-service.config(5)

Wenn Sie ifupdownoder seine Varianten installiert haben, können Sie diese vor der Installation entfernen, um Kollisionen zu vermeidenconnman(1)

Antwort2

Ich habe das Skript für die Verbindung und Trennung von WLAN und Ethernet erstellt

Trennen Sie das WLAN

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

Verbinden Sie das WLAN

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 &

Ethernet anschließen

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

Ethernet trennen

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

verwandte Informationen