Rete wireless in Virtualbox


13

Ho appena installato la mia prima istanza di Ubuntu Server (12.04) e ho riscontrato immediatamente i seguenti problemi:

  • In esecuzione apt-get installo updatenon funziona (vedi sotto)
  • L'esecuzione ifconfigproduce indirizzi IP particolari a partire da 10.x.x.xe il mio router non vede affatto il server nella sua pagina "Dispositivi collegati" (è un Netgear di livello consumer)

Quando corro apt-getottengo 50+ dei seguenti errori:

Failed to fetch <some-http-url>. Temporary failure resolving <blah>.ubuntu.com

Ho letto su questo errore per 12.04 e ho trovato alcuni post simili su questo forum e su un errore del server che mi ha consigliato di entrare /etc/resolv.confe aggiungere una voce:

nameserver 8.8.8.8

Con mia sorpresa, ho scoperto che /etc/resolv.confera un link simbolico che puntava da qualche altra parte e ho dovuto prima eliminarlo, quindi crearne uno nuovo con la voce sopra indicata.

Ho riavviato il server e ho provato a eseguire di apt-getnuovo, stessi risultati.

Come posso iniziare a diagnosticare il problema (sono un utente Linux / Ubuntu relativamente nuovo)?

Ulteriori dettagli che possono aiutare:

  • Questa è in realtà una macchina virtuale in esecuzione come SO guest VirtualBox
  • L'host fisico che esegue questa macchina virtuale è il mio laptop con una connessione wireless; Mi chiedo se (in qualche modo) il laptop stia ricevendo la rete in modalità wireless, ma forse la VM VBox e / o il sistema operativo del server Ubuntu non sono configurati per la rete wireless e quindi nulla sta "superando"?

Grazie in anticipo per eventuali suggerimenti!

Modifica :

Ecco un'istantanea delle impostazioni di rete della mia macchina virtuale (solo l'adattatore 1 contiene informazioni che popolano i suoi campi, quindi presumo che la mia macchina virtuale abbia solo 1 adattatore):

inserisci qui la descrizione dell'immagine

Ecco l'output quando corro ifconfigdal terminale:

inserisci qui la descrizione dell'immagine

Ed ecco l'output quando corro routedal terminale:

inserisci qui la descrizione dell'immagine

In esecuzione ping google.com:

inserisci qui la descrizione dell'immagine


1
Potresti aggiungere l'output di dig <blah>.archive.ubuntu.com, dig @ 8.8.8.8 <blah> .archive.ubuntu.com` e dig @8.8.8.8 archive.ubuntu.com. Qual è il contenuto di <blah> comunque? Puoi eseguire il ping di <blah> .archive.ubuntu.com dall'host della tua macchina virtuale?
John S Gruber,

1
Il HWAddrè probabilmente OK per mostrare, dal momento che ogni macchina virtuale prende il proprio indirizzo MAC univoco.
Henrik,

1
E l' fe80::..indirizzo è un link IPv6 locale sul quale non posso contattarti. E il da nel ping è il server che stai eseguendo il ping, non il tuo gateway, quindi non dà via nulla.
Henrik,

Risposte:


22

Per farne una breve risposta: è un problema di rete.

Il modo in cui vedo lo scenario è così:

inserisci qui la descrizione dell'immagine

Ora per vedere correttamente dove si trova il problema, in questo caso, dobbiamo prima controllare dalle reti esterne alle reti interne.

  1. Assicurati che il router abbia Internet. È possibile utilizzare lo stesso host o un altro dispositivo collegato ad esso per verificare ciò.

  2. Assicurarsi che l' host abbia Internet tramite il router o qualsiasi altra fonte. Per controllare è sufficiente inviare un ping a google.com per esempio in questo modo: ping google.com.

Se i punti 1 e 2 sono buoni (il tuo router funziona alla grande e ha internet e il tuo host ha internet) allora procediamo con Guest e Virtualbox. Potrebbe essere utile leggere come viene gestito il supporto wireless in VirtualBox leggendo la scheda Wifi su Ubuntu di una virtualbox

Dobbiamo prima conoscere le seguenti informazioni:

  • Non esiste una connessione wireless all'interno dell'ambiente virtualbox. Tutte le connessioni "virtuali" si riferiscono a connessioni via cavo / cablate. Pertanto, quando abiliti una scheda di rete nel tuo guest virtuale, si tratta di una connessione cablata virtuale che stai creando non una wireless virtuale .

  • La connessione virtuale da host a guest è indipendente dal tipo di connessione a cui l'host è connesso (connesso fisicamente). Se l'host è collegato tramite una connessione cablata o wireless, non importa o influisce sulla connessione virtuale effettuata dall'host al guest perché le connessioni cablate e wireless vengono utilizzate allo stesso modo all'interno del guest. Qualcosa di simile alla seguente immagine:

    inserisci qui la descrizione dell'immagine

  • Se il tuo host non ha accesso a Internet, il tuo ospite non lo avrà. Lo stesso vale se il tuo host ha accesso a Internet e la tua connessione da Host a Guest consente la condivisione di Internet, molto probabilmente l'ospite avrà anche Internet (comportamento predefinito con Virtualbox).

  • Userò Virtualbox 4.1.20 che sembra diverso da quello che stai usando (potrebbe essere lo stesso, non lo so). Aggiungerò l'immagine di rete solo per aiutare e mostrare le differenze:

    inserisci qui la descrizione dell'immagine

  • Userò Ubuntu 12.04 come host e come guest (funziona allo stesso modo in 12.10 o 13.04). Nei casi in cui Windows è l'host, è necessario assicurarsi che il firewall non blocchi una determinata porta che verrà utilizzata dal guest.

  • Presumo che l'host non stia utilizzando un proxy, ma sia connesso direttamente al router tramite una connessione wireless / cablata.

  • L'output dal Guest è il seguente con ifconfig e route:

    inserisci qui la descrizione dell'immagine

Ora ai punti che vuoi risolvere:

  1. Configurare la rete per VM Ubuntu Server
  2. Ottieni VM per connettersi a Internet
  3. Ottieni router per vedere la VM

Vorrei prima menzionare che il punto 3 sarà impossibile a meno che l'ipotesi di Virtualbox non supporti il ​​port forwarding. Il tuo router vedrà solo i trasferimenti effettuati dal tuo Guest come se fossero trasferimenti effettuati dall'Host reale. Quindi senza inoltro (che è in qualche modo supportato sull'ultima versione) il router non vedrà mai la VM, ma solo l'host.

Esistono ovviamente modi per aggirare questo problema, come dire all'host di inoltrare roba all'ospite tramite il motore di virtualbox. O configurando (più facile credo) l'ospite per il port forward. Ad esempio questo:

inserisci qui la descrizione dell'immagine

Quindi, tenendo presente ciò, nel Guest facciamo quanto segue:

  1. Verifica se l'ospite ha accesso a Internet con l' ping google.comapproccio comune .

    Se il ping funziona allora sappiamo che esiste una connessione Internet. Il problema potrebbe essere la risoluzione del sito di destinazione.

  2. Prova quanto segue:

    /etc/init.d/network restart e / o dhclient

  3. Verifica che /etc/network/interfacesia corretto. Il mio esempio sarebbe:

    inserisci qui la descrizione dell'immagine

  4. Modificare il tipo di scheda nelle Opzioni di rete nella finestra di configurazione di Virtualbox.

  5. Verifica se il client Ubuntu Desktop o un altro sistema operativo funzionano correttamente. (In questo momento ho solo l'immagine ISO desktop di 12.10 e 12.04).


Wow, grazie @Luis Alvarado per una risposta così approfondita (+1). Alcuni follow-up per ciascuno dei tuoi 5 suggerimenti: (1) ping google.comsulla VM guest sembra effettivamente funzionare normalmente, quindi quali altri test potrei eseguire per confermare che sto effettivamente ricevendo Internet? (2) Ho solo un /etc/init.d/networking(non network) servizio e quando provo a riavviarlo ricevo un avviso che è obsoleto. (3) Il mio etc/network/interfacefile è esattamente come il tuo. (4) Quale tipo di adattatore dovrei provare e quali impostazioni successive? (5) Da determinare ...
Zharvey,

Penso che la prima cosa di cui ho bisogno di conferma sia l'articolo n. 1: quel fatto che pingsembrava dare il via e comportarsi come se stesse andando bene. Aggiornerò la mia domanda originale con uno screenshot dell'output, per favore fatemi sapere se si tratta di un output ping "normale" e indicativo di una connessione inet riuscita.
Zharvey,

Mi dispiace, sembra che l'offerta della taglia mi abbia fatto scendere al di sotto della soglia minima di votazione di 15, quindi sembra che non possa votare la tua risposta, altrimenti vorrei: - /
zharvey il

Ciao. Consentitemi di abbreviare il commento: 1. Se il ping funziona, la VM ha una connessione corretta con l'host. 2. Non preoccuparti delle cose / etc / network, se la tua interfaccia è configurata correttamente come hai detto e il ping funziona, non importa. 3. Non preoccuparti dell'adattatore poiché era solo se gli altri non funzionavano. Quello che vorrei includere sarebbe il sistema operativo che stai usando come host e se questo host ha un qualche tipo di firewall su di esso. Puoi anche virtualizzare un'immagine ISO del desktop Ubuntu e vedere se il cd live ha una connessione Internet?
Luis Alvarado,

Oggi finalmente sono riuscito a scaricare Ubuntu Server 12.04.1 e ho fatto un test con esso. Si è collegato correttamente. Quindi sono più orientato al tuo host creando il problema o una configurazione errata quando installi il server. Mi sto sporgendo maggiormente verso l'host negando qualcosa poiché per quello che potrei leggere da te, hai una certa esperienza con i computer e Ubuntu Server è abbastanza facile da usare.
Luis Alvarado,

3

Questo è sicuramente un problema di rete. Per confermare ciò, prova prima a eseguire il ping degli IP all'interno della tua rete locale:

ping 10.1.1.1

(che probabilmente sarà l'IP del tuo router)

e quindi eseguire il ping degli IP nel "mondo esterno"

Inoltre, anche se stai eseguendo la tua VM su un laptop che si connette tramite wifi, non è necessario configurare il wifi sul computer guest: VirtualBox emula un adattatore di rete "cablato", quindi il tuo SO guest pensa che funzioni su un computer che è collegato alla LAN con un cavo.

La configurazione della rete in VirtualBox è un argomento ampio (sebbene le configurazioni tipiche normalmente funzionino immediatamente), è necessario assicurarsi che la VM abbia una scheda di rete configurata nelle proprietà della VM ecc.

Vedi http://www.virtualbox.org/manual/ch06.html per maggiori dettagli.

La configurazione di VirtualBox (NAT) predefinita crea una rete "privata" tra i computer host e guest, con il computer host che inoltra tutto il traffico proveniente dal computer guest esterno e invia risposte al guest (in modo analogo a come il router collega il laptop al Internet). L'ospite non ha un indirizzo IP individuale nella LAN e non è possibile accedervi dall'esterno del laptop, ma è possibile accedere a Internet dall'ospite perché i pacchetti vengono tradotti nella LAN dal computer host e quindi in Internet dal router. Questo spiega perché non vedi un dispositivo separato nelle impostazioni del tuo router


Grazie per la fantastica risposta @Sergey (+1) - ma sono ancora un po 'confuso! Dici che la VM in esecuzione sul mio laptop può accedere a Internet perché i pacchetti vengono tradotti nella LAN dal computer host. Quindi, se è così, perché non apt-getfunziona? Se una macchina virtuale può ricevere una connessione di rete in entrata, apt-getnon dovrebbe avere problemi a scaricare contenuto da URL remoti ... sì? Grazie ancora!
Zharvey,

O è che la VM può ricevere solo pacchetti dall'interno della LAN privata (tra il sistema operativo host e tutti i suoi guest)?
Zharvey,

1
@zharvey: mi riferivo a un host / guest con una rete NAT correttamente configurata (che di solito è il caso quando si crea una macchina virtuale con le impostazioni predefinite) - sospetto che la tua macchina virtuale possa essere configurata male in qualche modo. Accedere alle impostazioni della VM e verificare di disporre di una scheda di rete, che il cavo Ethernet virtuale sia "inserito", che il tipo di rete sia impostato su NAT. Forse aggiungi alcuni screenshot alla tua domanda. Quindi avviare la macchina virtuale ed eseguire ifconfige routecomandi lì e anche pubblicare i risultati.
Sergey,

Grazie ancora @Sergey (di nuovo +1) - guarda gli screenshot allegati e fammi sapere se qualcosa ti salta fuori! Grazie ancora!
Zharvey,

1

Ecco cosa noto dalla tua domanda:

  1. Il messaggio è: "Impossibile recuperare. Errore temporaneo nella risoluzione di <blah> .ubuntu.com"
  2. Puoi raggiungere google.com bene.

Direi che c'è un problema con il servizio di nomi di dominio nel risolvere quell'indirizzo, non nel tuo computer. Non c'è niente di speciale nel fare una ricerca di dominio invece di fare un ping. La rete deve funzionare, tuttavia è configurata.

Ti suggerisco di cambiare le tue fonti software per usare un diverso archivio Ubuntu, forse solo archive.ubuntu.com.


In realtà devo essere d'accordo. Se l'OP può eseguire il ping di Google e navigare in Internet (deve essere verificato), allora ha una connessione funzionante. Il server selezionato nelle fonti sembra essere il problema, non la connessione a Internet.
fabricator4,

1

Questo è ciò che ha funzionato per me:

il tentativo di configurare il wireless non ha funzionato
aggiungendo i dettagli delle proprietà di rete sulla macchina virtuale Ubuntu e cambiando su Windows lo stesso non ha funzionato

sebbene l'host fosse wireless, guest (ubuntu VM) si comporta come se fosse collegato tramite cavo virtuale, quindi il problema è stato risolto:
Finestra VM Ubuntu> Dispositivi> Rete> Impostazioni di rete ...> selezionare la casella Cavo collegato


1

/etc/resolv.conf è symlink e sarà symlink dopo averlo rimosso, poiché resolvconf lo reimposta sempre.

Se desideri utilizzare Google DNS, aggiungi queste righe al tuo /etc/resolvconf/resolv.conf.d/head:

nameserver 8.8.8.8   
nameserver 8.8.4.4

Se vuoi che il tuo router rilevi la tua macchina virtuale, dovresti usare l '"Adattatore a ponte". In Schede di rete, cambiare la casella, che dice "NAT" a "Bridged adapter". Se lo si imposta come adattatore a ponte, la macchina virtuale ottiene IP ecc. Dal server DHCP. Se il tuo router non ne ha uno o non ne hai uno nella tua rete, Virtualmachine non può ottenere automaticamente le impostazioni e devi specificarle manualmente.

Non sono sicuro che ciò <blah>.ubuntu.comnon si risolva, ma ti suggerirei di provare un altro mirror.

Io uso mirrors.ubuntu.com/mirrors.txt, che contiene sempre i mirror più vicini possibili. Per usarlo, aggiungi queste righe al tuo /etc/apt/sources.list:

deb mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse   
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse   
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-security main restricted universe multiverse   
deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse   
deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse    
deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise-security main restricted universe multiverse

Se vuoi avere anche backport, aggiungi anche queste righe:

deb mirror://mirrors.ubuntu.com/mirrors.txt precise-backports main restricted universe multiverse   
deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise-backports main restricted universe multiverse   

Per me http://mirrors.ubuntu.com/mirrors.txt contiene:

http://ubuntu.trumpetti.atm.tut.fi/ubuntu/

http://www.nic.funet.fi/pub/mirrors/archive.ubuntu.com/

http://mirrors.nic.funet.fi/ubuntu/

http://archive.ubuntu.com/ubuntu/

perché sono in Finlandia.


Se tutti possono modificare e sono più bravi con il markdown di me, non esitare a risolvere quel casino, che ho causato con il markdown sopra.
Mikaela,

Questa è una risposta imperfetta. (1) Se /etc/resolv.conf era un collegamento simbolico e si elimina questo collegamento simbolico, resolvconf non ricrea il collegamento simbolico. (2) Il file /etc/resolvconf/resolv.conf.d/head non è il posto giusto dove inserire le opzioni del nameserver. Gli indirizzi dei server dei nomi devono essere in / etc / network / interfaces se si utilizza ifup o devono essere inseriti in NetworkManager se si utilizza NetworkManager. Se davvero, vuoi davvero includere staticamente l'indirizzo nameserver 8.8.8.8 in resolv.conf, metti "nameserver 8.8.8.8" in /etc/resolvconf/resolv.conf.d/base.
jdthood,

0

Questo link ha un tutorial su come connettersi alle reti wireless usando la riga di comando: http://www.linuxjournal.com/content/wi-fi-command-line .

Tuttavia, potresti voler ripristinare il tuo resolv.conffile.


è davvero così semplice? Ubuntu Server non viene fornito con il rilevamento automatico wireless? Quindi, quando mostra l'indirizzo IP è solo un valore predefinito di sistema o qualcosa del genere? Qualche idea su come potrei ripristinare resolv.conf? Grazie (+1)!
Zharvey,

@zharvey: è improbabile che ciò risolva il problema poiché NON è necessario configurare la connessione Wi-Fi sul computer guest.
Sergey,

0

Ok. Una piccola domanda! Puoi usare Internet sul tuo browser? Se sì, prova questo: prova a cambiare il server selezionando Update Manager, definizioni, download da, quindi seleziona un server più vicino a te. e quindi prova a controllare nuovamente gli aggiornamenti.

Penso che sia un bug. Per favore prova a dirmi se funziona.


0

Eseguo anche desktop e server Ubuntu su VirtualBox. E avevo lo stesso problema come te. La mia soluzione non era quella di impostare la scheda di rete in VirtaulBox come NAT, ma come Bridged Adapter.

Spero sia di aiuto !;)

PS: dal link pubblicato da Serghey (manuale di VirtualBox):

"Collegamento in rete per esigenze di rete più avanzate come simulazioni di rete e server in esecuzione in un guest. Se abilitato, VirtualBox si collega a una delle schede di rete installate e scambia direttamente i pacchetti di rete, aggirando lo stack di rete del sistema operativo host."


0

Questo problema è essenzialmente dovuto all'allocazione degli stessi indirizzi IP sia all'adattatore WiFi host (da parte del server DHCP del router wifi) sia all'interfaccia Guest (dal server DHCP VirtualBox sotto rete Nat).

Dalla documentazione di VirtualBox sul server DHCP integrato Ottimizzazione del motore NAT di VirtualBox :

In NAT mode, the guest network interface is assigned to the IPv4 range 10.0.x.0/24
by default where x corresponds to the instance of the NAT interface +2. So x is 2
when there is only one NAT instance active. In that case the guest is assigned to the 
address 10.0.2.15, the gateway is set to 10.0.2.2 and the name server can be found at
10.0.2.3.

Guardando l'indirizzo IP dell'adattatore WiFi del tuo host scoprirai che anche l'indirizzo assegnato ad esso proviene dall'intervallo di 10.0.2.0/24rete.

Questo è il motivo del problema poiché ora il driver Nat per VirtualBox è confuso dal fatto che gli indirizzi host e guest provengono dalla stessa sottorete.

Per risolvere questo problema, è possibile modificare la sottorete fornita dal server DHCP VirtualBox utilizzando il comando VBoxManage (mentre la VM è spenta):

Vboxmanage modifyvm VMName --natnet1 "198.162/16"

E sei a posto (poiché 198.162.0.0 non viene quasi mai utilizzato nei server DHCP nei dispositivi di rete SOHO).


0

È necessario installare il "Pacchetto di estensione VirtualBox Oracle VM VirtualBox".

Per prima cosa, esegui VBoxManage --versionsul tuo terminale Ubuntu (I'm on Mint). Quindi scaricare il pacchetto di estensione che si allinea alla versione del VBox da https://www.virtualbox.org/wiki/Downloads .

Su VBox, fai clic su Ctrl+ G("Preferenze") e scorri verso il basso fino alla scheda "Estensione". Fai clic su "Aggiungi nuovo pacchetto", quindi aggiungi il file scaricato e lascialo installare.

Provalo!

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.