2012-06-24 8 views
56

Ho una VM (VirtualBox) con Ubuntu. La macchina host è Windows 7. Come posso eseguire il ping della mia Ubuntu dall'host e viceversa? Cercando di impostare il tipo di connessione "Bridged" nelle impostazioni della VM, ma non c'è alcun effetto, perdo solo la connessione Internet in Ubuntu.Come eseguire il ping su Ubuntu Guest su VirtualBox

risposta

59

Nella maggior parte dei casi è sufficiente commutazione della scheda di rete macchina virtuale per a ponte modalità è sufficiente a rendere la macchina guest accessibile dall'esterno.

Switching virtual machine network adapter type

A volte è possibile che la macchina guest di non ricevere automaticamente un IP che corrisponde intervallo IP dell'host dopo il passaggio alla modalità ponte (anche dopo il riavvio della macchina ospite). Ciò è spesso causato da un malfunzionamento o da un DHCP mal configurato nella rete dell'host.

Ad esempio, se l'IP dell'host è 192.168.1.1, il computer guest deve disporre di un IP nel formato 192.168.1.* in cui solo l'ultimo gruppo di numeri può essere diverso dall'IP dell'host.

È possibile utilizzare un terminale (shell) e digitare ifconfig (ipconfig per i guest Windows) per verificare quale IP viene assegnato alla macchina guest e modificarlo se necessario.

Getting the guest's machine IP

Se gli indirizzi IP host e guest non corrispondono semplicemente impostando un IP statico per la macchina ospite esplicitamente dovrebbe risolvere il problema.

+3

Ma ho un problema: non c'è accesso a Internet su VM dato che disabilito il DHCP, abilito il bridge e assegno l'IP statico. Come posso risolvere il problema o dove potrebbe essere il problema? – Rusty

+2

Utilizzare 'ifconfig' nella shell di Ubuntu per assicurarsi che l'indirizzo IP del guest sia parte dell'intervallo IP dell'host. Cioè se l'IP dell'host è 192.168.1.1, assicurarsi che il guest abbia un IP nell'intervallo 192.168.1. *. Se non è nell'intervallo, imposta l'IP del guest manualmente su un IP statico compreso nell'intervallo (ad esempio 192.168.1.2). Inoltre, molto importante, assicurati che il tuo host (Ubuntu) sia configurato correttamente per utilizzare un gateway. Se non sei sicuro di quale IP sia il gateway, cerca semplicemente le impostazioni di rete di Windows (di solito è l'IP del router). – brezanac

+2

PS - questo funziona anche per me usando la configurazione opposta (host Ubuntu, Win7 32 bit VM) – alph486

32

L'utilizzo di NAT (impostazione predefinita) non è possibile. Bridged Networking dovrebbe consentirlo. Se il bridge non funziona per te (questo potrebbe essere il caso in cui l'amministrazione della rete non consente più indirizzi IP su un'interfaccia fisica), puoi provare invece con 'Solo rete host'.

Per la configurazione di solo Host, ecco una citazione dal manuale di vbox (che è piuttosto buono). http://www.virtualbox.org/manual/ch06.html:

Per networking solo host, come con la rete interna, è possibile trovare il server DHCP utile che è costruito in VirtualBox. Questo può essere abilitato per per poi gestire gli indirizzi IP nella rete solo host dal altrimenti sarà necessario configurare tutti gli indirizzi IP staticamente.

Nell'interfaccia utente grafica di VirtualBox, è possibile configurare tutti questi elementi nelle impostazioni globali tramite "File" -> "Impostazioni" -> "Network", che elenca tutte le reti solo host che sono attualmente in uso. Fare clic sul nome della rete e quindi sul pulsante "Modifica" sul diritto , ed è possibile modificare l'adattatore e le impostazioni DHCP.

+3

Funzionava con la mia combinazione Host = Win8 e Guest = Debian. Inoltre, dopo averlo fatto inizialmente, ho smesso di essere in grado di eseguire il ping del mio ospite dall'ospite. Era un problema di Windows Firewall. –

7

Se si inizia ad armeggiare con le impostazioni di rete di VirtualBox, fare attenzione a questo: è possibile creare nuovi adattatori di rete (eth1, eth2), ma avere il proprio /etc/network/interfaces ancora configurato per eth0.

Diagnose:

ethtool -i eth0 
Cannot get driver information: no such device 

Trova il tuo interfacce:

ls /sys/class/net 
eth1 eth2 lo 

risolvere il problema:

Modifica /etc/networking/interfaces e sostituire eth0 con il nome dell'interfaccia appropriata (ad esempio eth1, eth2, etc.)

:%s/eth0/eth2/g