30 votes

Désactiver automatiquement le wifi (sans fil) lorsqu'il est câblé ?

Quelle est la meilleure façon de désactiver automatiquement ma connexion Wifi/sans fil lorsque je branche un câble Ethernet filaire ? J'aimerais qu'elle soit réactivée lorsque je débranche le câble.

De plus, j'aime parfois partager la connexion filaire avec d'autres utilisateurs sans fil (ou vice-versa). Ce serait bien si je pouvais d'une manière ou d'une autre exempter ces configurations.

J'utilise 11.10 Oneiric, qui utilise NetworkManager.

34voto

Richard Hansen Points 1623

Le script suivant, placé en /etc/NetworkManager/dispatcher.d/99-disable-wireless-when-wired Il désactive le sans-fil même lorsque je veux partager le filaire avec le sans-fil ou vice-versa.

Pour ce faire, exécutez la commande suivante dans le terminal :

sudo nano /etc/NetworkManager/dispatcher.d/99-disable-wireless-when-wired

Et collez le code suivant dans l'éditeur de texte.

#!/bin/sh
myname=${0##*/}
log() { logger -p user.info -t "${myname}[$$]" "$*"; }
IFACE=$1
ACTION=$2

release=$(lsb_release -s -c)
case ${release} in
    trusty|utopic) nmobj=nm;;
    *) nmobj=radio;;
esac

case ${IFACE} in
    eth*|usb*|en*)
        case ${ACTION} in
            up)
                log "disabling wifi radio"
                nmcli "${nmobj}" wifi off
                ;;
            down)
                log "enabling wifi radio"
                nmcli "${nmobj}" wifi on
                ;;
        esac
        ;;
esac

Ensuite, enregistrez et quittez.

Notez les conditions suivantes sur le script, comme documenté dans la page du manuel du NetworkManager :

Chaque script devrait être :

  • un fichier normal,
  • appartenant à la racine,
  • non accessible en écriture par un groupe ou autre,
  • pas set-uid,
  • et exécutable par le propriétaire.

Au lieu de nmcli radio wifi off (oder nmcli nm wifi off pour les plus âgés pour les anciennes versions de NetworkManager), il y a également rfkill block wifi . Toutefois, si rfkill est utilisé à la place de nmcli les nouvelles versions de NetworkManager réactive le wifi au démarrage.

1voto

geekley Points 417

En me basant sur l'autre réponse, j'ai trouvé ceci (testé sur Kubuntu 20.04).

Il déconnecte automatiquement le wifi lors d'une connexion filaire, sauf pour les noms de connexion se terminant par -hotspot (comme les noms par défaut utilisés par Kubuntu pour les connexions des points d'accès créés). Il permet de partager un point d'accès sans fil à partir d'un câble. Ainsi, au lieu de désactiver la radio pour tous les réseaux WiFi, il déconnecte simplement le réseau que vous utilisez. Lorsque le câble est débranché, il reconnecte le périphérique sans fil. wlo1 qui lui permet de se reconnecter au dernier réseau WiFi utilisé.

Notez que si vous éteignez l'ordinateur sans câble et que vous le branchez avant de l'allumer, il se peut qu'il démarre à la fois avec des connexions wifi et filaires. De même, je suppose que si vous retirez le câble alors que l'ordinateur est éteint, il ne se connectera pas automatiquement au démarrage, je pense.

sudo nano /etc/NetworkManager/dispatcher.d/99-disable-wireless-when-wired
sudo chmod 0744 /etc/NetworkManager/dispatcher.d/99-disable-wireless-when-wired

#!/bin/sh
myname=${0##*/}
log() { logger -p user.info -t "${myname}[$$]" "$*"; }
IFACE=$1
ACTION=$2
case ${IFACE} in
    eth*|usb*|en*)
        case ${ACTION} in
            up) # when plugging ethernet cable
                log "disconnecting wifi when wired"
                # list active connections
                nmcli -f uuid,type,name connection show --active |
                # filter wifi except names ending with -hotspot, return UUID
                awk '/\S\s+wifi\y/ && !/-hotspot\s*$/ {print $1;}' |
                # disconnect these UUIDs
                xargs -r nmcli connection down
                ;;
            down) # when unplugging ethernet cable
                log "reconnecting wifi when not wired"
                # auto-choose wifi to reconnect
                nmcli device connect wlo1
                ;;
        esac
        ;;
esac

0voto

cipper Points 101

Vous pouvez installer tlp et activer les options suivantes dans /etc/tlp.conf

DEVICES_TO_DISABLE_ON_LAN_CONNECT="wifi wwan"
DEVICES_TO_ENABLE_ON_LAN_DISCONNECT="wifi wwan"

et ensuite

sudo service tlp restart

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X