Comment afficher une interface réseau uniquement si elle est physiquement présente

8

Exécution d'Ubuntu Server 12.04 (pas d'interface graphique). Quelle serait la meilleure façon de faire en sorte que le noyau n'amène une interface réseau que si elle est physiquement branchée? Donc, s'il n'existe pas, passez simplement à l'initialisation des autres interfaces (le cas échéant) et passez à l'écran de connexion, sans attendre "la configuration du réseau".

Par exemple, j'ai une clé USB sans fil wlan9 (dans / etc / network / interfaces):

auto wlan9
iface wlan9 inet dhcp
        wpa-ssid myssd
        wpa-psk mykey
        wpa-proto RSN
        wpa-pairwise CCMP
        wpa-group CCMP

J'ai essayé allow-hotplug au lieu de auto , auquel cas l'interface n'est pas initialisée automatiquement lors du démarrage, et je dois le faire manuellement avec ifup wlan9 . Ce n'est pas exactement ce que je recherche.

Je vous remercie.

noseratio
la source

Réponses:

4

Aussi pour le serveur: utilisez NetworkManager

  1. Installez-le:

    sudo apt-get install network-manager
    

    Malheureusement, cela entraînera de nombreuses dépendances.

  2. Descendez l'interface actuellement configurée de manière traditionnelle.

    ifdown wlan9
    
  3. Désactivez tous les paramètres manuels en /etc/network/interfacessupprimant toutes les lignes concernant cette interface.

  4. Ajoutez un paramètre de connexion pour votre connexion sans fil dans /etc/NetworkManager/system-connections/(créez un nom):

    [connection]
    id=Some name of my connection
    uuid=0d791425-87c5-45e6-948e-01b1863901f7
    type=802-11-wireless
    
    [802-11-wireless]
    ssid=mySSID
    mode=infrastructure
    mac-address=24:77:00:01:02:03
    security=802-11-wireless-security
    
    [802-11-wireless-security]
    key-mgmt=wpa-psk
    psk=mypassword
    
    [ipv4]
    method=auto
    
    [ipv6]
    method=ignore
    
    • Pour uuidutiliser la commande uuidgenpour en générer une aléatoire.
    • Pour mac-addressutiliser l'adresse MAC de votre adaptateur sans fil (utilisez ifconfig -a wlan9pour le savoir). Cela lie ce fichier de configuration à cet adaptateur uniquement - s'il n'est pas présent, il ne l'utilisera pas pour un autre adaptateur, ni n'attendra que l'adaptateur soit présent.
    • J'espère que d'autres domaines parlent d'eux-mêmes. :)
  5. Redémarrez NetworkManager ou redémarrez.

    restart network-manager
    
gertvdijk
la source
Merci, l'option Network Manager semble un peu lourde, mais je vais y revenir si je ne trouve pas quelque chose de plus léger. ifplugd a presque fonctionné, wlan9 monte mais il n'obtient pas de bail DHCP.
noseratio
@Noseratio Oui, je suis d'accord que ce n'est pas vraiment une solution légère. Si je connaissais un gestionnaire de réseau plus léger sans les dépendances GUI, je l'aurais utilisé dans ma réponse. :)
gertvdijk
@gertvdijk Pouvez-vous me dire ce qui se passe si je supprime une mac-addressligne? Cela fonctionnera-t-il pour tous les adaptateurs ou plantera-t-il?
DangeMask
@DangeMask Cela devrait fonctionner pour tous les adaptateurs, je suppose. Essayez juste de le découvrir?
gertvdijk
@gertvdijk J'ai essayé tout à l'heure. Si je supprime l '"adresse MAC du périphérique" (supprimée dans l'interface graphique, disparaît également dans le fichier), le gestionnaire de réseau ne se connectera pas automatiquement même après une connexion manuelle et un redémarrage. J'ai même essayé de définir ifupdown> réussi à vrai et faux sans succès.
DangeMask
3

et passez à l'écran de connexion

Suggère que vous êtes sur une installation compatible avec l'interface graphique (non serveur) - donc je fournis cette réponse sur la base de cela.


Utilisez simplement NetworkManager

  1. Descendez l'interface.

    ifdown wlan9
    
  2. Désactivez tous les paramètres manuels en /etc/network/interfacessupprimant toutes les lignes concernant cette interface.

  3. Accédez aux paramètres réseau et ajoutez / modifiez la connexion réseau sans fil.

  4. Configurez-le comme suit (voir la capture d'écran ci-dessous):

    1. Demandez-lui de se connecter automatiquement.

    2. Appliquez-le au bon adaptateur sans fil en sélectionnant la bonne adresse MAC. Si l'adaptateur n'est pas présent, ces paramètres de connexion dans cette boîte de dialogue ne s'appliqueront pas, donc cela les "lie" à cet adaptateur spécifique (car chaque adaptateur a une autre adresse MAC). Et non, ce n'est pas l'adresse MAC de l'AP WiFi - c'est BSSID.

    3. Rendez-le disponible pour tous les utilisateurs (cela le rend déjà automatiquement connecté à l'écran de connexion). Notez que ces paramètres sont grisés jusqu'à ce que vous ayez fourni les détails nécessaires.

    Et bien sûr, entrez également les autres détails sur la sécurité, le SSID, etc.

    entrez la description de l'image ici

gertvdijk
la source
Désolé, j'ai oublié de préciser qu'il s'agit d'Ubuntu Server. Merci quand même, j'ai sauvegardé cette astuce pour mes besoins de bureau.
noseratio
1
@Noseratio Ah ... dommage. Maintenant en train d'écrire une réponse pour l'installation du serveur. Veuillez être plus précis et complet dans votre question la prochaine fois.
gertvdijk
Je vais. Veuillez pardonner à un noob :)
noseratio
3

J'ai trouvé la solution suivante qui ne dépend d'aucun package supplémentaire:

auto wlan9
iface wlan9 inet manual
        wpa-ssid MYSSD
        wpa-psk MYKEY
        wpa-proto RSN
        wpa-pairwise CCMP
        wpa-group CCMP
        wireless-power off
        pre-up if [ -f /sys/class/net/wlan9/operstate ]; then ifconfig wlan9 up; fi
        up if [ -f /sys/class/net/wlan9/operstate ]; then dhclient wlan9; fi

Bien qu'il ne soit peut-être pas élégant, il fait ce que je veux: ignore l'initialisation wlan9 sans délai de démarrage si le dongle sans fil n'est pas branché, sinon il le fait apparaître.

noseratio
la source
Agréable. Mais comment cela saute-t-il l'initialisation? Vous n'annulez rien dans la pre-updirective.
gertvdijk
1
Il pense que c'est le produit de deux facteurs: 1) le manuel inet - il dépend donc vraiment de l' action de pré-montée pour faire quoi que ce soit: s'il n'y a pas de pré-montée ou de montée , le noyau saute simplement cette strophe
noseratio
Oui, cela pourrait l'être, mais selon la page de manuel, tous les autres paramètres, y compris les wpa-*directives, ne s'appliquent pas à la manualméthode. On dirait une sorte de comportement non documenté.
gertvdijk
1
Je me suis trompé avec le commentaire, voici ce que je voulais dire: il pense que c'est le produit de deux facteurs: 1) manuel inet - il dépend donc vraiment de l' action de pré-montée pour faire quoi que ce soit: s'il n'y a pas de pré-montée ou plus , le noyau sauterait simplement cette strophe 2) Si les interfaces n'existent pas, si [-f / sys / class / net / wlan9 / operstate] renverrait 1 et que la pré-configuration échouerait, donc pas d'initialisation ou de retard supplémentaire.
noseratio
Le comportement de pré-up est en fait documenté, mais il pourrait changer à l'avenir, manpages.ubuntu.com/manpages/precise/man5/interfaces.5 . Pre-up Exécuter la commande avant de lancer l'interface. Si cette commande échoue, ifup s'interrompt, s'abstenant de marquer l'interface comme configurée, imprime un message d'erreur et se termine avec l'état 0. Ce comportement peut changer à l'avenir.
noseratio