53 votes

Désactiver WLan si un réseau câblé est disponible

La question est très claire. Tout ce que je veux, c'est que ma connexion W-Lan soit désactivée chaque fois qu'une connexion filaire est disponible. Quel serait le moyen le plus simple de faire cela dans Ubuntu/Gnome ?

Dans tous les guides (par exemple certains sur guessnet) j'ai trouvé que je devais configurer l'ensemble de mon réseau (clés WPA, DHCP, ...), mais je trouve que c'est un peu trop compliqué pour un cas d'utilisation aussi simple. Je veux juste désactiver wlan0 cuando eth0 est connecté.

0 votes

La réponse à cette question varie d'un ordinateur à l'autre. Je ne sais pas si Ubuntu le permet, mais j'ai constaté que c'est une option du BIOS.

0 votes

Je ne veux pas dire completely disable le wlan, je veux dire désactiver Ubuntu pour qu'il essaie de se connecter à n'importe quel wlan si une connexion filaire est disponible. C'est donc une question de système d'exploitation.

0 votes

70voto

spikeheap Points 251

Vous pouvez ajouter ce script à /etc/NetworkManager/dispatcher.d/99-wlan :

#!/bin/bash
wired_interfaces="en.*|eth.*"
if [[ "$1" =~ $wired_interfaces ]]; then
    case "$2" in
        up)
            nmcli radio wifi off
            ;;
        down)
            nmcli radio wifi on
            ;;
    esac
fi

N'oubliez pas l'après :

chmod +x /etc/NetworkManager/dispatcher.d/99-wlan

Cela permet d'attraper l'héritage eth* et les nouvelles "interfaces prévisibles nommées" du noyau qui commencent par en puis utiliser soit le chemin de bus, soit l'adresse MAC afin que le nom de chaque interface soit le même à chaque démarrage. Cela a fonctionné avec l'adaptateur USB-C (passthrough) et USB ethernet que j'ai essayé et je suis certain que cela fonctionnera également avec les adaptateurs intégrés.

0 votes

Mon réseau sans fil essayait de se connecter encore et encore et cela commençait à être vraiment irritant. Grâce à ce script, il a finalement cessé de me demander un mot de passe réseau. Le script sera-t-il automatiquement lancé lorsque je redémarrerai mon ordinateur ?

2 votes

@joellord : Ce script est automatiquement exécuté chaque fois qu'une interface réseau démarre ou s'arrête. Lorsque vous déconnectez eth0, votre réseau sans fil est activé. Lorsque vous connectez eth0, votre sans-fil est désactivé.

0 votes

Qu'est-ce que 99 dans le nom du fichier ?

8voto

mruellan Points 181

Depuis la version 0.9.10 de network-manager, le premier script doit être modifié

#!/bin/bash

if [ "$1" = "eth0" ]; then
    case "$2" in
        up)
            nmcli radio wifi off
            ;;
        down)
            nmcli radio wifi on
           ;;
   esac
fi

J'espère que cela vous aidera !

0 votes

Cette question peut probablement faire l'objet d'une réponse indépendante. Il serait très utile de dire ce que la version du gestionnaire de réseau avec laquelle ce changement se produit.

0 votes

Semble être depuis la v0.9.10. wiki.gnome.org/Projets/NetworkManager/nmcli

3 votes

Cette solution n'est pas correcte, car elle ne fonctionne que si votre interface LAN s'appelle "eth0".

4voto

rjbradlow Points 57

Tout simplement pour l'approche de l'interface graphique gnome...

  1. Cliquez avec le bouton droit de la souris sur l'indicateur de système réseau dans le panneau gnome, près de l'horloge. (L'indicateur sera l'une des deux icônes suivantes : soit les flèches haut/bas (LAN), soit l'entonnoir WiFi traditionnel. Notez que l'icône haut/bas apparaît lorsque le réseau local et le réseau WiFi ou seulement le réseau local sont connectés et que l'entonnoir WiFi apparaît lorsque la connexion se fait uniquement via le réseau WiFi (réseau local déconnecté)) -- [Le réseau local l'emporte automatiquement sur le réseau WiFi.*].

  2. Sélectionnez "Modifier les connexions...

  3. Sélectionnez l'onglet "Sans fil".

  4. Double-cliquez sur la première connexion de votre liste et décochez la case "Connexion automatique".

  5. Cliquez sur le bouton "Appliquer...".

  6. Répétez l'opération pour chaque connexion de la liste.

Le réseau sans fil reste ainsi opérationnel pour les connexions et déconnexions manuelles à la volée, disponibles par un clic gauche sur l'icône du réseau, sans que le NM n'essaie de vous connecter automatiquement en permanence.

Naturellement, vous pouvez aussi désactiver/activer le sans-fil en cliquant avec le bouton droit de la souris sur l'icône du réseau, puis en cliquant avec le bouton gauche de la souris sur la sélection "Activer le sans-fil", ce qui réduit ou augmente l'interface sans fil, comme l'indique la présence ou l'absence de la coche.

  • Le LAN l'emporte automatiquement sur le WiFi, il n'est pas nécessaire de désactiver le WiFi. Il suffit de débrancher le câble Ethernet pour transférer la connexion vers le WiFi et vous pouvez vous déplacer en toute tranquillité. Il en va de même pour la reconnexion du réseau local.
  • Alors que le LAN l'emporte sur le WiFi, le NM (Network Manager) trouvera ce que vous cherchez si vous êtes sur différents réseaux simultanément et que vous travaillez à la fois en ligne (WiFi) et avec un hôte local (LAN) ou V/V par exemple.

3voto

ggustafsson Points 1908

Ce n'est qu'une supposition, mais je suppose qu'ifplugd pourrait aider. Vous pourriez faire en sorte qu'il coupe le wifi lorsque le câble est utilisé.

0 votes

Merci, j'ai déjà lu cela. Ce que je n'aime pas avec ifplugd, c'est que je dois mettre tous mes paramètres réseau dans le fichier /etc/network/interfaces . Je ne suis pas très doué pour les réseaux, alors je me demande où je pourrais obtenir toutes les valeurs nécessaires à partir de mes connexions existantes. J'espère toujours qu'il existe une solution plus simple.

2voto

joentjuh Points 21

Créez deux simples 'scripts', le nom du scripts n'est pas important (j'utilise simplement wlan) et je suppose qu'il n'y a qu'une seule interface réseau câblée, et qu'elle est donc appelée 'eth0'... Vérifiez cela avec 'ifconfig' si vous n'êtes pas sûr. Notez que cela désactive entièrement le sans-fil, et pas seulement wlan0. (Ce n'est un problème que si vous avez plusieurs interfaces wlan et que vous voulez seulement désactiver certaines d'entre elles).

Ces scripts pourraient facilement être adaptés - par logique booléenne - à une situation dans laquelle vous disposez de deux interfaces réseau câblées ou plus.

Assurez-vous que ces scripts sont exécutables avec 'chmod +x'

/etc/network/ip-up.d/wlan

#!/bin/sh
# If eth0 goes up, disable wireless
if [ "$IFACE" = "eth0" ]; then
  dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Set string:org.freedesktop.NetworkManager string:WirelessEnabled variant:boolean:false
fi

/etc/network/if-down.d/wlan

#!/bin/sh
# If eth0 goes down, enable wireless
if [ "$IFACE" = "eth0" ]; then
  dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Set string:org.freedesktop.NetworkManager string:WirelessEnabled variant:boolean:true
fi

Cela permet d'activer/désactiver le sans-fil dans le NetworkManager qui se trouve généralement sous la forme d'un indicateur de système dans le panneau Gnome.

Vous pouvez également utiliser 'ifconfig wlan0 down' ou 'ifconfig wlan0 up' au lieu de la ligne dbus-send, mais cela devrait être plus convivial et interférer moins avec les utilitaires système d'Ubuntu.

Testé avec Ubuntu Desktop 10.10, et devrait fonctionner avec des versions antérieures ou d'autres distributions utilisant NetworkManager et dbus.

0 votes

Cela équivaut probablement, sur le plan fonctionnel, à la méthode acceptée nmcli radio wifi off mais je serais curieux de voir ce que les journaux du système rapportent lorsque les connexions sont fermées dans les deux sens pour voir si l'une d'entre elles est plus "gracieuse".

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