Mam lokalny serwer testowy / programistyczny (oczywiście HTTP), nasłuchujący na porcie 8000.
Pracuję na systemie Linux, więc aby przetestować stronę w przeglądarce Internet Explorer 6, 7, 8 itd. Używam maszyny wirtualnej za pomocą VirtualBox; Muszę też zobaczyć, jak to wygląda w Firefoksie w środowisku Windows (na przykład czcionki są różne).
Na mojej prawdziwej maszynie otwieram witrynę za pomocą adresu URL. http://localhost:8000
Jak mogę adresować tego hosta lokalnego z maszyny wirtualnej?
Obecnie moim obejściem jest użycie adresu IP. Jakieś lepsze pomysły?
Odpowiedzi:
Googling podniósł to: http://data.agaric.com/localhost-from-virtualbox-xp-install-ubuntu
Sugeruje użycie IP:
http://10.0.2.2
i zadziałało dla mnie.Zredagowałem więc plik hosts
C:\windows\system32\drivers\etc\hosts
i dodałem ten wpis:Jeśli testujesz na IE8, pamiętaj, aby umieścić
http://
w pasku adresu. Samo umieszczenie ip bezpośrednio nie będzie działać.Na przykład:
źródło
Attached to
ustawienie zBridged Adapter
doNAT
tego, aby pracować dla mnie.localhost
nie z10.0.2.2
powodu jakiegoś gównianego auth, który chce localhost jako adres :(System operacyjny Mac
Używam Virtual Box na macOS (wcześniej OS X), używam Virtual Box do testowania IE na Windows itp.
Idź do IE Virtual Box i dostęp
localhost
poprzezhttp://10.0.2.2
nalocalhost
lubhttp://10.0.2.2:3000
zalocalhost:3000
.Zachowałem ustawienia sieci jako NAT, nie ma potrzeby mostkowania, jak sugerowano powyżej w moim przypadku. Nie ma potrzeby edytowania żadnych plików konfiguracyjnych.
źródło
Aby włączyć to w OSX, musiałem wykonać następujące czynności:
VirtualBox Preferences -> Network -> Host-only Networks ->
kliknąć ikonę „+”. Kliknij OK."Settings" icon -> Network -> Adapter 2 ->
menu rozwijane „Attached to:”, wybierz „Adapter tylko do hosta”, a Twoja sieć (vboxnet0
) powinna domyślnie wyświetlać się poniżej. Kliknij OK.http://10.0.2.2/
Możesz się do niego odwoływać
localhost
i uzyskiwać dostęp do innych witryn hostowanych lokalnie, dodając ich odwołania do pliku hosts (C:\windows\system32\drivers\etc\hosts
) w następujący sposób:źródło
IPv4 Address
(np192.168.56.1
.). Następnie, gdy uruchomisz maszynę wirtualną, otwórz przeglądarkę i przejdź dohttp://192.168.56.1:3000
Najprawdopodobniej sieć wirtualna maszyny jest ustawiona na NAT. Jeśli ustawisz sieć na Bridged, powinieneś być w stanie uzyskać dostęp do swojego hosta po nazwie hosta. Na przykład, jeśli nazwa hosta to „jsmith-Precision-7510” i chcesz otworzyć http: // localhost: 3000 / , będziesz mógł wyświetlić tę stronę pod adresem http: // jsmith-Precision-7510: 3000 / .
Aby znaleźć nazwę hosta, otwórz terminal / konsolę, a następnie uruchom polecenie
hostname
. Twoja nazwa hosta zostanie wyświetlona w następnym wierszu.Zobacz dokumentację VirtualBox, aby uzyskać instrukcje, jak ustawić ustawienia sieciowe na Bridged.
źródło
whatever.local
dopóki nie zainstalujesz Bonjour.Musiałem wejść do virtualbox i zmienić ustawienia sieciowe na „NAT”. Potem mogłem
localhost
uruchomić na moim hoście z mojego emulatora na virtualboxiehttp://10.0.2.2:3000
źródło
http://10.0.2.2
dokładnie tak, jak opisano tutaj przez @Pytth.Jeśli masz adapter podłączony do NAT , obecnie lepszym i bardziej eleganckim rozwiązaniem jest ustawienie przekierowania portów na porty lokalne.
Settings
>Network
>Adapter
>Advanced
>Port forwarding
Po prostu wstaw nową regułę i ustaw
Host port
iGuest port
na80
(dla http) lub22
(dla ssh) i tak dalej.Następnie możesz uzyskać dostęp do tego komputera, wprowadzając po prostu
http://localhost
Możesz także przełączyć NAT na tryb przezroczysty.
źródło
Okazało się, że to
10.0.2.2:<port>
działa, ale tylko wtedy, gdy Tryb rozwiązany jest ustawiony poprawnie. Po zainstalowaniu mojej maszyny wirtualnej przeszedłem do Ustawienia> Sieć> Karta 1.NAT jest ustawiony domyślnie, a menu Tryb rozwiązany jest wyłączone. Zmieniłem NAT z Bridged Adapter, co umożliwiło rozwijanie trybu Promiscuous Mode, a następnie zmieniłem wartość z „Deny” na „Allow VMs”. Następnie wróciłem do NAT, który ponownie wyłączył tryb Promiscuous, ale zachował nową wartość.
Po tej zmianie mogłem uruchomić moją maszynę wirtualną i zobaczyć maszyny hosta
localhost:<port>
na mojej maszynie wirtualnej pod adresem10.0.2.2:<port>
.źródło
Brak możliwości przekierowania żądań do hosta lokalnego na maszynie Wirtualnej do hosta lokalnego hosta jest teraz wprowadzany do systemu Windows ( https://tools.ietf.org/html/rfc6761#section-6.3 ), w tym maszyn wirtualnych dostępnych na https: //developer.microsoft.com/en-us/microsoft-edge/tools/vms/
Ze względów bezpieczeństwa Microsoft zapobiega teraz wpisom plików hosta w celu zastąpienia adresu localhost adresem innym niż adres sprzężenia zwrotnego :: 1. Więc dodając wiersz plik hosta maszyny wirtualnej, taki jak
zostanie zignorowany.
Są dwa sposoby (o których wiem), aby to zmienić:
1) użyj NETSH, aby portproxy do hosta
(gdzie 10.0.2.2 jest bramą domyślną na maszynie wirtualnej, a 8000 to port, który chcesz rozwiązać na hoście).
2) Skonfiguruj usługi IIS, aby przeprowadzały routing żądań aplikacji, a następnie przepisz żądania dla localhost: port do hostIP: port
https://docs.microsoft.com/en-us/iis/extensions/configuring-application-request-routing-arr/creating-a-forward-proxy-using-application-request-routing
źródło
netsh
pomógł mi, próbowałem wszystkiego, co znalazłem w sieci, ale bez powodzenia. Umożliwi to dostęp<protocol>://localhost:<port>
zamiast bezpośredniego dostępu przez IP. To powinna być zaakceptowana odpowiedź dla systemu Windows 10.System operacyjny Mac
Jeśli chcesz skonfigurować środowisko Windows za pomocą Virtualbox na komputerze Mac, po prostu użyj domyślnych ustawień NAT adaptera, a na maszynie wirtualnej systemu Windows przejdź do pliku hosts i dodaj następujące elementy:
W odróżnieniu od powyższych odpowiedzi ważne jest, aby dołączyć obie linie, w przeciwnym razie nie zadziała.
źródło
Musisz edytować plik hostów na maszynie wirtualnej z systemem Windows w taki sam sposób, jak na komputerze lokalnym:
C: \ WINDOWS \ system32 \ drivers \ etc \ hosts
Połącz swoje wirtualne hosty z 10.0.2.2. Jeśli używasz localhost, zamień
127.0.0.1 localhost z 10.0.2.2 localhost
Na przykład:
Informuje to maszynę wirtualną, aby wskazywała maszynę lokalną dla tych nazw domen.
źródło
Nie musisz zmieniać pliku hosts ani żadnej konfiguracji Virtual Box. Zachowaj ustawienia w NAT. Przejdź do instancji Windows i uruchom „cmd” lub otwórz cmd.exe. Wykonaj polecenie „ipconfig” i uzyskaj adres IP bramy domyślnej . Przeglądaj http://10.0.2.2:8080 w Windows IE, zobaczysz, że jest taki sam jak Mac Safari http: // localhost: 8080 / lub http://127.0.0.1:8080
źródło
localhost
. (np. webpack-dev-server)10.2.2.3 or .4
? Potrafię pingować.2
tak dobrze, jak i te - VM to Windows Server działający pod Windows ServerPołączenie kilku rzeczy w końcu sprawiło, że działało to na moim końcu. Uruchamianie serwera flask na Macosx.
W mojej maszynie wirtualnej z systemem Windows edytowałem plik hosts:
C:\windows\system32\drivers\etc\hosts
10.0.2.2 outer
Zamknij maszynę wirtualną i na moim komputerze Mac w VirtualBox:
VirtualBox > preferences > Network > Host-only Networks > +
aby dodać siećvboxnet1
My_VM > settings > Network > Adapter 1
.Enable Network Adapter
i ustawAttached to:
naBridged Adapter
.Advanced > Promiscuous Mode:
naAllow VMs
.OK
My_VM > settings > Network > Adapter 1
.Attached to:
powrotem naNAT
.Potem poszedłem do
Adapter 2
Attached to:
sięHost-only Adapter
i wybrać poprzedni dodaną siecivboxnet1
.Uruchomiłem mój serwer na komputerze Mac, działając na nim,
127.0.0.1:5000
a to było teraz dostępne na mojej maszynie wirtualnej pod adresemhttp://10.0.2.2:5000
Człowieku, co za koszmar przetestować na IE na Macu. Jak nie ma prostszego sposobu?
źródło
rails s -b 127.0.0.1
i uzyskałem do niego dostęp ze wszystkich maszyn wirtualnychhttp://10.0.2.2:3000
i działało. Zastanawiam się, czy ustawienie zmieniło się z góry w jakiś sposób, nawet po wycofaniu tego wszystkiego z powrotem.vboxnet1
, ale ostatecznie działało. Dzięki za wskazówki!Rozwiązałem, dodając przekierowanie portów w ustawieniach Virtualbox w sieci. Host IP set Port 127.0.0.1: 8080 IP gościa: Daj dowolny adres IP dla strony internetowej (powiedzmy 10.0.2.5): 8080 Teraz z dostępu do maszyny gościa http://10.0.2.5:8080 przy użyciu IE
źródło
W wirtualnym pudełku, jak wspomniano powyżej, możesz dodać ten plik hostów linii
ale aby go zapisać, jeśli nie masz administratorów bezpośrednio na maszynie wirtualnej, po prostu przenieś plik hosts na pulpit, a następnie edytuj go, aby dodać wiersz 10.0 .... zewnętrzny, zapisz plik i przejdź do jego pierwotnego miejsca.
źródło
sprawdź, czy możesz trafić na komputer nadrzędny za pomocą:
ipconfig
(uzyskaj adres IP)ping <ip>
lubtelnet <ip> <port>
Jeśli nie możesz dostać się do portu, spróbuj dodać nową regułę ruchu przychodzącego w zaporze nadrzędnej, zezwalając na porty lokalne.
Byłem wtedy w stanie uzyskać dostęp
http://<ip>:<port>
źródło
W wirtualnym pudełku
Teraz trudnym bitem jest lokalny host, jeśli korzystasz z Node.js ustaw adres IP na 0.0.0.0, a następnie wyszukaj swój własny adres IP, na przykład cmd: ipconfig -> 10.0.1.3
Wpisz ten adres wraz z numerem portu. I to zadziała.
źródło
Ogólne kroki:
źródło
W systemie Windows z wirtualnym Windows 7 jedyną rzeczą, która działała dla mnie, było użycie NAT i przekierowanie portów (nie mogłem uruchomić zmostkowanego połączenia). Znalazłem tutorial tutaj: http://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/ (przewiń w dół do część „ Przekazywanie portów do maszyny wirtualnej ”).
Dzięki tym zmianom mogłem dotrzeć do strony internetowej xampp z „ http: //192.168.xx.x: 8888 / mywebsite ” w przeglądarce Internet Explorer 10 na mojej maszynie wirtualnej.
Znalazłem adres IP w Panelu sterowania XAMPP> Netstat („System”).
źródło
Jeśli używasz Virtual Box, możesz podłączyć Mac OSX (i myślę, że Linux) do wirtualnej maszyny z systemem Windows za pomocą jednego wiersza kodu -> Sugeruję zatrzymanie boxa przed uruchomieniem go w terminalu.
VBoxManage modifyvm "YOUR VM NAME" --natdnshostresolver1 on
Zauważę, że jest to dokument Dinghy, który uruchamiam, ale jest to polecenie wirtualnego pudełka, więc nie powinno obchodzić go to, czego używasz tak długo, jak jego Virtual Box
źródło
Muszę uruchomić na localhost, a nie jakieś dziwne IP.
1) Z poziomu terminala Mac wykonaj czynność w
iconfig -a
celu znalezienia lokalnego adresu IP. To chyba ostatni.en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV> ether 38:c9:86:32:0e:69 inet6 fe80::ea:393e:a54f:635%en7 prefixlen 64 secured scopeid 0xe inet 10.1.5.60 netmask 0xfffffe00 broadcast 10.1.5.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect (1000baseT <full-duplex,flow-control>) status: active
np. 10.1.5.60
2) uruchom obraz systemu Windows. start> wpisz,
cmd
aby uzyskać terminal3)
notepad c:\windows\system32\drivers\etc\hosts
4) dodaj następujący wiersz
10.1.5.60 localhost
5) otwórz IE, a następujący adres URL powinien trafić na serwer działający na twoim komputerze Mac:
http://localhost:3000/
źródło
Uzyskaj adres IP komputera z uruchomionym Apache (adres inet: in
ifconfig
) i wprowadź go w pasku adresu przeglądarki pola wirtualnego.źródło
Właściwie odpowiedź użytkownika 477494 jest w zasadzie poprawna.
Zastosowałem tę samą logikę w innych środowiskach (host OS X - wirtualny Windows XP) i to załatwia sprawę. Musiałem przełączyć stos LAMP hosta, aby uzyskać adres IP i port Apache do rozwiązania, ale kiedy już to wymyśliłem, śmiałem się.
źródło