Come visualizzare un'interfaccia di rete solo se è fisicamente presente


8

Esecuzione di Ubuntu Server 12.04 (nessuna GUI). Quale sarebbe il modo migliore per fare in modo che il kernel apra un'interfaccia di rete solo se è fisicamente collegata? Quindi, se non esiste, procedi con l'inizializzazione di altre interfacce (se presenti) e continua con la schermata di accesso, senza ritardi di "attesa per la configurazione della rete".

Ad esempio, ho una chiave USB wireless wlan9 (in / etc / network / interfaces):

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

Ho provato allow-hotplug invece di auto , nel qual caso l'interfaccia non viene inizializzata automaticamente durante l'avvio, e devo farlo manualmente con ifup wlan9 . Questo non è esattamente quello che sto cercando.

Grazie.

Risposte:


4

Anche per server: utilizzare NetworkManager

  1. Installalo:

    sudo apt-get install network-manager
    

    Sfortunatamente, ciò comporterà molte dipendenze.

  2. Abbassa l'interfaccia attualmente configurata nel modo tradizionale.

    ifdown wlan9
    
  3. Disabilitare le impostazioni manuali /etc/network/interfacesrimuovendo tutte le righe relative a tale interfaccia.

  4. Aggiungi un'impostazione di connessione per la tua connessione wireless in /etc/NetworkManager/system-connections/(crea un nome):

    [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
    
    • Per uuidusare il comando uuidgenper generarne uno casuale.
    • Per mac-addressutilizzare l'indirizzo MAC dell'adattatore wireless (utilizzare ifconfig -a wlan9per scoprirlo). Questo collega questo file di configurazione solo a questo adattatore - se non è presente, non lo userebbe per un altro adattatore, né aspetterebbe che l'adattatore sia presente.
    • Altri campi parlano da soli, spero. :)
  5. Riavvia NetworkManager o riavvia.

    restart network-manager
    

Grazie, l'opzione Network Manager sembra un po 'pesante, ma mi rivolgerò ad essa se non trovo qualcosa di più leggero. ifplugd ha quasi funzionato, wlan9 sale ma non ottiene un lease DHCP.
noseratio,

@Noseratio Sì, sono d'accordo che questa non è davvero una soluzione leggera. Se avessi conosciuto un gestore di rete più leggero senza le dipendenze della GUI lo avrei usato nella mia risposta. :)
gertvdijk,

@gertvdijk Puoi dirmi cosa succede se rimuovo la mac-addresslinea? Funzionerà con tutti gli adattatori o andrà in crash?
DangeMask,

@DangeMask Dovrebbe funzionare solo per tutti gli adattatori presumo. Basta provare e scoprire?
gertvdijk,

@gertvdijk Ci ho provato proprio ora. Se elimino "l'indirizzo MAC del dispositivo" (eliminato nella GUI, scompare anche nel file), Network Manager non si connetterà automaticamente anche dopo una connessione manuale e il riavvio. Ho provato anche a impostare ifupdown> riuscito su vero e falso senza successo.
DangeMask,

3

e passare alla schermata di accesso

Suggerisce di essere su un'installazione abilitata alla GUI (non server), quindi sto fornendo questa risposta basata su quello.


Usa semplicemente NetworkManager

  1. Abbatti l'interfaccia.

    ifdown wlan9
    
  2. Disabilitare le impostazioni manuali /etc/network/interfacesrimuovendo tutte le righe relative a tale interfaccia.

  3. Vai alle impostazioni di rete e aggiungi / modifica la connessione di rete wireless.

  4. Configuralo come segue (vedi lo screenshot seguente):

    1. Fallo connettere automaticamente.

    2. Applicalo all'adattatore wireless giusto selezionando l'indirizzo MAC giusto. Se l'adattatore non è presente, queste impostazioni di connessione in questa finestra di dialogo non verranno applicate, quindi questo le "lega" a questo adattatore specifico (poiché ogni adattatore ha un altro indirizzo MAC). E no, questo non è l'indirizzo MAC dell'AP WiFi - questo è BSSID.

    3. Renderlo disponibile a tutti gli utenti (questo lo rende già automaticamente connesso alla schermata di accesso). Nota che questa impostazione è disattivata fino a quando non hai fornito i dettagli necessari.

    E ovviamente inserisci anche gli altri dettagli su sicurezza, SSID, ecc.

    inserisci qui la descrizione dell'immagine


Siamo spiacenti, ho dimenticato di specificare che si tratta di Ubuntu Server. Grazie comunque, ho salvato questo suggerimento per le mie esigenze desktop.
noseratio,

1
@Noseratio Ah ... peccato. Ora scrivendo una risposta per l'installazione del server. Si prega di essere più specifici e completi nella domanda la prossima volta.
gertvdijk,

Lo farò. Per favore, perdona un noob :)
noseratio,

3

Ho trovato la seguente soluzione che non dipende da nessun pacchetto aggiuntivo:

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

Anche se potrebbe non essere elegante, fa quello che voglio: salta l'inizializzazione di wlan9 senza ritardo di avvio se il dongle wireless non è collegato, altrimenti lo fa apparire.


Bello. Ma come si salta l'inizializzazione? Non annulli nulla nella pre-updirettiva.
gertvdijk,

1
Pensa che questo sia un prodotto di due fattori: 1) inet manual - quindi fa davvero affidamento sull'azione pre-up per fare qualsiasi cosa: se non c'è pre-up o up , il kernel salta semplicemente questa strofa
noseratio

Sì, potrebbe essere, ma secondo la manpage tutte le altre impostazioni, comprese le wpa-*direttive, non si applicano al manualmetodo. Sembra una sorta di comportamento non documentato.
gertvdijk,

1
Ho sbagliato con il commento, ecco cosa intendevo dire: pensa che questo sia un prodotto di due fattori: 1) manuale iniziale - quindi si basa davvero sull'azione di pre-up per fare qualsiasi cosa: se non c'è pre-up o up , il kernel salterebbe semplicemente questa stanza 2) Se le interfacce non esistono, se [-f / sys / class / net / wlan9 / operstate] restituirebbe 1 e il pre-up fallirebbe, quindi nessuna ulteriore inizializzazione o ritardo.
noseratio,

Il comportamento di pre-up è effettivamente documentato, ma potrebbe cambiare in futuro, manpages.ubuntu.com/manpages/precise/man5/interfaces.5 . pre-up Esegui il comando prima di aprire l'interfaccia. Se questo comando non riesce, ifup si interrompe, astenendosi dal contrassegnare l'interfaccia come configurata, stampa un messaggio di errore ed esce con lo stato 0. Questo comportamento potrebbe cambiare in futuro.
noseratio,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.