Istnieje wiele pytań dotyczących problemów z przekazywaniem portów w VirtualBox, ale nie ma żadnych szczegółowych informacji. Szczegóły konfiguracji:
Mam instalację systemu Windows 7 Professional 64bit w VirtualBox 4.1.2, hostowaną w systemie Mac OS X 10.6.8. Mam uruchomionych kilka serwerów WWW localhost
na różnych portach podczas instalacji systemu Windows. Nie mogę przez całe życie przekierowywać portów do pracy, dzięki czemu mogę uzyskać dostęp do tych serwerów z Mac OS X.
Moje ustawienia wyglądają tak; tak mam adapter NAT:
W moim pliku konfiguracyjnym VirtualBox odpowiednia część wygląda tak:
<NAT>
<DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
<Alias logging="false" proxy-only="false" use-same-ports="false"/>
<Forwarding name="RLPWeb" proto="1" hostport="7084" guestip="127.0.0.1" guestport="7084"/>
<Forwarding name="UtilWeb" proto="1" hostport="4040" guestip="127.0.0.1" guestport="4040"/>
<Forwarding name="WCARLP" proto="1" hostport="8084" guestip="127.0.0.1" guestport="8084"/>
<Forwarding name="WCAUtil" proto="1" hostport="4848" guestip="127.0.0.1" guestport="4848"/>
</NAT>
Wyłączyłem zaporę systemu Windows, aby upewnić się, że nie przeszkadza, i nie używam zapory w systemie Mac OS X.
W każdym razie, kiedy próbuję iść na przykład http://127.0.0.1:4040/
w każdej z moich przeglądarek Mac OS X w końcu przestanie działać.
Plik dziennika tej maszyny wirtualnej pokazuje, że poprawnie odczytuje ustawienia i sugeruje, że robi to dobrze:
00:00:08.286 NAT: set redirect TCP host port 4848 => guest port 4848 @ 127.0.0.1
00:00:08.286 NAT: set redirect TCP host port 8084 => guest port 8084 @ 127.0.0.1
00:00:08.286 NAT: set redirect TCP host port 4040 => guest port 4040 @ 127.0.0.1
00:00:08.286 NAT: set redirect TCP host port 7084 => guest port 7084 @ 127.0.0.1
00:00:08.290 Changing the VM state from 'LOADING' to 'SUSPENDED'.
00:00:08.290 Changing the VM state from 'SUSPENDED' to 'RESUMING'.
00:00:08.290 Changing the VM state from 'RESUMING' to 'RUNNING'.
00:00:08.337 Display::handleDisplayResize(): uScreenId = 0, pvVRAM=000000012017d000 w=1834 h=929 bpp=32 cbLine=0x1CA8, flags=0x1
00:00:09.139 AIOMgr: Host limits number of active IO requests to 16. Expect a performance impact.
00:00:13.454 NAT: DHCP offered IP address 10.0.2.15
Próbowałem ustawić adres IP hosta na 127.0.0.1
i próbowałem ustawić puste pole gościa, a także 10.0.2.15
. Żadne z nich nie wydaje się pomagać.
Na co jeszcze mogę zwrócić uwagę, aby rozwiązać ten problem?
źródło
10.0.2.5
- nie 127.0.0.1.Odpowiedzi:
Zauważyłem problemy z przekazywaniem portów na hoście Virtual Mac OS X.
Używanie karty sieciowej PCnet-Fast III (Am79C973) i obrazu Oracle Developer Day jako gościa.
Kiedy kiedykolwiek zawieszę gościa i wznowię go, wszystkie przekazy do portu zostaną utracone.
Nie jestem pewien, czy problemy są związane z kartą sieciową, czy z gościem, ale nie widzę, w jaki sposób gość może być świadomy przekazywanego portu.
To jest długi strzał, ale jeśli masz coś wspólnego z tą sprawą, spróbuj zamknąć (całkowicie wyłączyć gościa) i uruchomić z zestawem przekazywania do przodu . Natychmiast sprawdź, czy któryś z portów działa dalej i dopiero po pozytywnych wynikach spróbuj zawiesić i wznowić gościa.
źródło
Czy próbowałeś zmostkować połączenie z Windows VM na Macu? Będąc w translacji adresów sieciowych NAT okazał się dla mnie równie silny, jak w maszynie wirtualnej. Posiadanie mostu zapewnia maszynie wirtualnej adres IP, który host może zobaczyć. Biorąc pod uwagę twoją sytuację przekierowania portów, nie powinno to stanowić problemu, ale starałbym się przekazywać porty z rzeczywistych adresów IP zamiast tłumaczonych.
źródło
Zgodnie z oficjalną dokumentacją VirtualBox, preferowanym sposobem jest ustawienie trybu sieciowego na Host-Only lub Bridged.
tl; dr: Użyj Bridged, a nie NAT.
src: https://www.virtualbox.org/manual/ch06.html
źródło