Korzystam z aplikacji sieci web na maszynie wirtualnej.
Widzę aplikację za localhost:8888
pośrednictwem przeglądarki z poziomu maszyny wirtualnej.
Nie widzę aplikacji z hosta pod tym samym adresem URL. To jest cel.
Próbowałem, VBoxManage modifyvm "VM name" --natdnshostresolver1 on
ale nie miało to wpływu.
Moja konfiguracja to:
- Host: Windows 7
- Gość: Ubuntu 16.04.1 LTS
- VirtualBox: 5.1.4r110228
(Gość) ifconfig
na NAT
kirkland@GC:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:d0:fc:0e
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::4c67:70b5:c37b:8fa8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7431 errors:0 dropped:0 overruns:0 frame:0
TX packets:3587 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7444830 (7.4 MB) TX bytes:731870 (731.8 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1566 errors:0 dropped:0 overruns:0 frame:0
TX packets:1566 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:655936 (655.9 KB) TX bytes:655936 (655.9 KB)
(Gość) / etc / hosts
127.0.0.1 localhost
127.0.1.1 GC
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
networking
ubuntu
virtualbox
dns
nat
Kirkland
źródło
źródło
sudo ifconfig eth1 192.168.56.10 netmask 255.255.255.0 up
, ale to nie zadziałało. To powiedziawszy, byłIPv4 Network Mask
literówką, ponieważ nie pasuje do dołączonego zrzutu ekranu.255.255.255.0
i naprawiłem to na swoim poście. To powinno działać. Jeśli nie, może istnieć coś innego, na przykład aplikacja na maszynie wirtualnej, która jest jawnie podłączona,localhost
a nie skonfigurowana do używania adresu IP. Ale pomogłem jak najlepiej; nie mogę dalej pomóc. Powodzenia w rozwiązaniu tego problemu.Odpowiedzi:
localhost:8888
URL jest jedynie poprawny adres URL wewnątrz VM. Poza tą maszyną wirtualną będziesz musiał użyćip.ad.dr.ess:8888
lubhostname:8888
. W tym drugim przypadku wprowadzono zależność od rozpoznawania nazwy hostaip.ad.dr.ess
w sieci.Domyślnie podczas tworzenia maszyny wirtualnej w VirtualBox karta sieciowa 1 jest ustawiona na NAT. To da maszynie wirtualnej adres IP
10.0.2.15/24
i domyślną trasę10.0.2.2
(która powinna być twoim hostem). Krótko mówiąc, okna nie będą kierować do adresu, dla którego zapewnia NAT, bez wcześniejszego przeskakiwania przez więcej obręczy.Wyłączenie maszyny wirtualnej i zmiana ustawienia adaptera sieciowego maszyny wirtualnej 1 na „zmostkowaną” pozwoli Twojemu hostowi (i dowolnemu hostowi w sieci lokalnej) na komunikowanie się z tą maszyną wirtualną bez dodawania żadnych specjalnych tras lub obręczy.
Uruchom ponownie maszynę wirtualną. Sprawdź swoją łączność z
localhost:8888
. Sprawdź także swoją łączność zhostname:8888
(zakładając, że nazwa hosta zostałanot
dodana do adresu pętli zwrotnej / localhost w pliku / etc / hosts) iip-address:8888
. EDYCJA: Na podstawie opublikowanych szczegółów / etc / hosts łączyszare
maszynę wirtualną, a zatem aplikację internetową z siecią pętli zwrotnej. Ta konfiguracja w ogóle nie nadaje się do użytku poza maszyną wirtualną.Jeśli Twój serwer WWW i aplikacja nie są zależne od adresu IP, na którym został najpierw skonfigurowany / zainstalowany, a masz serwer DHCP w sieci LAN, jedyną inną informacją, której potrzebujesz, aby połączyć się z maszyną wirtualną, jest adres IP, który był przypisany do niego przez DHCP.
Aby znaleźć adres IP maszyny wirtualnej: Otwórz okno terminala / konsoli z pulpitu Ubuntu (ctrl-alt-T), używamy
/etc/hosts
poleceń hostname, ifconfig i grep , aby poskładać elementy i znaleźć twój adres. W otwartym terminalu wpisz,hostname
a następnie naciśnij klawisz Enter. To prawdopodobnie gc. W tym samym terminalu pisanieifconfig eth0 | awk '/Bcast/{print $2}'
spowoduje wyświetlenie adresu. Powinieneś mieć linię w / etc / hosts z adresem i nazwą hosta.grep [hostname] /etc/hosts
lubgrep [address] /etc/hosts
powinien znaleźć potrzebną linię. Jeśli wpiszesz coś innego niż aktualny adres, a po nim nazwę hosta, musisz zmodyfikować plik / etc / hosts, aby dodać poprawne informacje.Hosty w sieci LAN powinny teraz móc łączyć się z adresem IP maszyny wirtualnej na porcie 8888. Aby uzyskać dostęp do aplikacji przez hosty / klientów,
hostname:8888
zależy od plików hostów klienta, lokalnego DNS, a nawet usług mDNS, które mogą być dostarczone na serwerze DHCP .źródło
Bridged Adapter
(3 opcje) iHost-only Adapter
(1 opcja). Nie działało Nie jestem pewien, co masz na myślihostname:8888
. Na maszynie wirtualnej mogę uzyskać dostęp do aplikacji internetowej za pomocąlocalhost:8888
i127.0.0.1:888
. Nie mogę uzyskać dostępu do aplikacji na maszynie wirtualnej w10.0.2.15:8888
lub10.0.2.255:8888
. W ogóle nie mogę się do niego dostać z hosta. Dodałem więcej informacji o mojej konfiguracji do oryginalnego postu. Jeśli jest jeszcze coś, co powinienem opublikować, co może wyjaśnić sytuację, daj mi znać. Dziękuję za pomoc!10.0.2.15 gc
i sprawdź, czy możesz uzyskać dostęp do aplikacji za pomocą 10.0.2.15:8888 i gc: 8888. Jeśli możesz, robimy postępy.10.0.2.15 GC
poniżej127.0.1.1 GC
whosts
pliku mojego gościa . W ramach gość widzę aplikację za pośrednictwemlocalhost:8888
, ale10.0.2.15:8888
daje mi ...ERR_CONNECTION_REFUSED
.Aby to osiągnąć, myślę, że lepiej byłoby użyć trybu pomostowego. Jeśli nie jest to możliwe lub pożądane, będziesz potrzebować statycznej trasy na swoim hoście.
Aby dodać trasę statyczną, wykonaj następujące czynności: Sprawdź właściwości sieciowe swojego hosta. Powinieneś znaleźć adapter o nazwie VirtualBox Host-Only Network. Znajdź jego adres IP. Prawdopodobnie jest to 192.168.56.1, które moim zdaniem jest domyślne, ale może być czymś innym. Zadzwoń do abcd Następnie uzyskaj adres IP swojego gościa. Nazwij to wxyz (pierwsze 3 oktety powinny być takie same w obu adresach). Gdy to zrobisz, otwórz monit DOS na hoście i wpisz następujące polecenie:
Jeśli to zadziała, możesz uruchomić to samo polecenie z przełącznikiem -p, aby ustawić je na stałe (w przeciwnym razie zniknie przy następnym uruchomieniu hosta).
źródło