Come si accede a un server Web su una virtualbox dal computer host [chiuso]


29

Ho una macchina Windows Vista su cui VirtualBox esegue Ubuntu.

In Ubuntu sto eseguendo un server web all'indirizzo http://127.0.0.1:3000/

Come posso accedere a questo indirizzo dal mio computer host (la finestra di Windows)?


L'opzione più semplice è utilizzare il port forwarding. Può essere configurato in Impostazioni-> Rete. Controlla questo link
spartano il

Se hai davvero configurato il server web del tuo ospite su 127.0.0.1, non puoi accedervi dall'esterno del guest. Localhost / 127.0.0.1 è un adattatore loopback (in memoria) e non richiede nemmeno che la scheda di rete sia installata per funzionare correttamente. Se cambi l'ip del tuo server web in qualcosa di diverso dal loopback, le risposte di seguito saranno in grado di aiutarti.
Mladen B.

Risposte:


28

Puoi cambiare la modalità di rete del tuo ospite da NAT a Bridged. Basta chiudere il proprio guest Ubuntu, andare alla pagina Impostazioni in VirtualBox, selezionare la categoria Rete e cambiare la casella di riepilogo Allegati a da NAT a Modalità a ponte.

Modificare:

Dopo aver seguito i passaggi precedenti, riavvia Ubuntu e l'IP assegnato verrà visualizzato nella schermata di benvenuto dopo il caricamento. vale a dire, nel messaggio di benvenuto, si dovrebbe dire qualcosa del tipo:

Indirizzo IP per eth0: 192.168.1.3

Utilizzare questo indirizzo nella barra del browser del computer host seguito dalla porta utilizzata. Se è diverso dalla porta 80. Ad esempio, se lo si imposta per utilizzare la porta 666, l'indirizzo sarebbe 192.168.1.3:666

Un altro modo per trovare l'IP è connettersi al server HTTP integrato nel router e cercare le impostazioni LAN. Ogni macchina sulla rete dovrebbe essere elencata per nome host e IP. Sul mio router la maggior parte degli altri che ho avuto, puoi farlo digitando 192.168.1.1 nella barra degli indirizzi. in caso contrario, provare lo stesso indirizzo sulla porta 81. In caso contrario, LEGGERE IL MANUALE.


Ma allora come puoi sapere qual è l'indirizzo IP? Thx
SSH Questo

Funzionerà ma l'opzione dell'host-only non ha rivelato quel vm alla rete aziendale
Carlos Garcia,

2
Sono l'unico qui a pensare che l'endpoint del guest di 127.0.0.1 sia raggiungibile solo dall'interno del guest (questo è il punto di localhost)? Non dovrebbe esserci alcun modo per accedere a quel tipo di endpoint da qualsiasi cosa al di fuori del computer guest (poiché è un adattatore loopback, non richiede nemmeno una scheda di rete installata).
Mladen B.

se inserisco questo 192.1681.3 come IP per un record A su Godaddy, non funziona, ovviamente si aspetta un indirizzo IP esterno, se lo metto, non funziona ancora per qualche motivo, voglio testare un nome di dominio localmente prima in corso su EC2
PirateApp il

10

Dipende da come si configura la rete sul sistema operativo guest Ubuntu. Se lo configuri per utilizzare NAT e hai un server DHCP in esecuzione sulla tua rete, esegui solo questo:

ifconfig | grep inet

sulla casella Ubuntu - vedrai l'indirizzo IP assegnato al guest Ubuntu.

Esempio:

#ifconfig | grep inet
  inet addr:10.0.0.2  Bcast:10.255.255.255  Mask:255.255.255.0
  inet addr:127.0.0.1  Mask:255.0.0.0

Quindi vai su http://10.0.0.2:3000


Bene, nel mio caso l'indirizzo dovrebbe essere 10.0.2.15:3000/public e di default Vista funziona in modalità DHCP .. (anche la macchina Ubuntu è configurata per usare NAT) ma non sto ricevendo una risposta :(
Argh

Hmmm ho appena realizzato che non ho un server DHCP - sto eseguendo Vista Home ...
Argh

VirtualBox ha un proprio server DHCP che gestisce le macchine virtuali, altrimenti le macchine virtuali non otterrebbero automaticamente un indirizzo IP senza impostarle staticamente. Penso che il tuo problema potrebbe essere che non stai ascoltando Apache su tutte le interfacce - solo localhost (127.0.0.1). Assicurati che in / etc / apache2 / sites-available / default la direttiva Listen dica 80, non 127.0.0.1:80 per help.ubuntu.com/9.04/serverguide/C/httpd.html
Cory Plastek

Questa è probabilmente la causa.
fsckin,

4

Il box di Windows e quello di Ubuntu (siano essi fisici o virtuali non contano davvero in questa istanza) devono entrambi avere un indirizzo IP sulla stessa sottorete in modo che possano comunicare tra loro tramite TCP / IP. È possibile assegnare un indirizzo aggiuntivo a ciascun sistema operativo utilizzando una delle sottoreti IP private (vedere RFC 1918 ). Una volta che entrambi hanno un indirizzo sulla stessa sottorete, configura il server Web per l'ascolto su quello che hai fornito a Ubuntu, quindi usa quell'IP nel browser di Windows per caricarlo.

L'IP che hai configurato ora, 127.0.0.1, è l'indirizzo di loopback per l'interfaccia di rete locale. Non useresti mai quell'indirizzo per accedere a qualcosa su un sistema diverso, solo per fare riferimento allo stesso sistema in cui ti trovi. Quando si utilizza un sistema virtuale, trattarlo come se fosse un computer separato dal punto di vista della rete.


2

Per risolvere il tuo problema, ti suggerisco di aggiungere una nuova scheda di rete e configurarla come scheda solo host .

Ora esegui l'istanza della scatola virtuale e quindi ciò che fsckin ha suggerito di vedere qual è l' ip della nuova rete .

In questo modo hai una sottorete con il tuo computer e la tua macchina virtuale.


Quindi ... Ho fatto come hai detto afferrato il mio indirizzo IP. Ho quindi provato ad accedere al server web (a cui posso accedere all'interno del guest come 127.0.0.1:3000 ) usando allocIP: 3000 e non ho ricevuto risposta. Potrei comunque eseguire il ping dell'ip dall'host
Argh

Devi aprire il firewall sulla porta 3000.
fampinheiro,

Solo l'host non funzionerà
immediatamente

0

Prima di tutto, devi fare ciò che dice la Risposta 1:

"È possibile modificare la modalità di rete del guest da NAT a Bridged. Basta chiudere il guest Ubuntu, andare alla pagina Impostazioni in VirtualBox, selezionare la categoria Rete e cambiare la casella di riepilogo Allegata a da NAT a Modalità Bridged."

Quindi, per ottenere il tuo indirizzo IP:

Sulla tua macchina virtuale, apri un prompt dei comandi ed esegui:

ip addr show

Probabilmente vedrai una linea simile a questa:

inet 192.168.43.96/24 ....

C'è anche una linea prima di quella con

inet 127.0.0.1

Ma tu non lo vuoi! Vuoi l'indirizzo 192. Questo è l'indirizzo della tua macchina virtuale sulla tua rete locale. Dovrebbe essere accessibile da qualsiasi dispositivo collegato alla stessa rete locale.

Ora sul tuo computer host, modifica il file / etc / hosts (Non ~ / etc) Il nome del file è hosts (non è un nome di cartella)

aggiungi una linea simile a questa:

192.168.43.96 myvm.nameofmywebsite.com

Ora vai al browser del tuo computer host e digita myvm.nameofmywebsite.com

Spero che lo faccia!

Tuttavia, potresti avere un router con funzionalità di sicurezza che ti impediranno di vedere il tuo indirizzo locale. Quello che puoi provare a fare è utilizzare l'hotspot del tuo cellulare come rete. Per me va bene. Ricorda solo quando cambi rete sul tuo computer host che devi riavviare la tua virtualbox.

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.