Как мне получить доступ к хост-машине с гостевой машины? [закрыто]


124

Я только что создал новую виртуальную машину Windows XP на своем Mac с помощью VMware Fusion. Виртуальная машина использует NAT для совместного использования интернет-соединения хоста.

Как мне получить доступ к приложению Rails, которое доступно на самом Mac http://localhost:3000?

Ответы:


134

На машине XP найдите свой IP-адрес, перейдя в командную строку и набрав ipconfig. Попробуйте заменить последнее число на 1 или 2. Например, если ваш IP-адрес 192.168.78.128, используйте http://192.168.78.1:3000 .


3
сэкономили мне несколько часов бездельничанья - похлопайте себя по спине, сэр!
— iancrowther

Я использую Lion в качестве хоста и Win7 в качестве гостя, но я не мог посетить свое приложение rails на моем Mac с его помощью. Зачем?
— larryzhao

1
если IP-адрес вашей локальной сети: 192.168.1.122, тогда вы должны использовать 192.168.1.122:3000, и это должно сработать
— dbslone

6
Важное примечание: эти решения не работают, если вы подключены с помощью VPN.
— Harshay Buradkar 09

80

Вы можете использовать локальное имя хоста Mac (или любого другого Mac в сети):

Http: //macname.local: 3000 /

где macname - это сетевое имя вашего хоста (или другого желаемого) Mac.


1
Superb. Я не знал о бите .local. Спасибо!
— отправился назад 01

это доступно только в том случае, если виртуальная машина была настроена на этом Mac? Я портировал другую виртуальную
— машину

7
".local" - это только для Mac. Когда вы открываете System Preferences / Sharing, он фактически показывает вам имя компьютера, а ниже он отмечает, что для доступа к нему в локальной сети вы должны использовать computername.local - это относится к подключению к совместному использованию файлов, веб-обмену и т. Д.
— Johnus

1
Похоже, для этого требуется, чтобы сеть VMWare была настроена для NAT (или, предположительно, с мостовым подключением); конфигурация «только хост» приводит к тайм-ауту сетевого подключения. Мне не ясно, почему это должно быть так, но ...
— Норман Грей

Я использовал этот метод, и он отлично работал! Но недавно он перестал работать, и я не знаю почему. Может быть, он остановился с обновлением Snow Leopard или, может быть, он остановился с обновлением до Fusion. Теперь мой machostname.local преобразуется в публичный адрес в Интернете.
— Джейсон

14

Для будущих посетителей: как только вы выясните IP-адрес, вы можете добавить запись в файл хостов Windows, который находится в C: \ Windows \ system32 \ drivers \ etc \ hosts, чтобы сопоставить IP-адрес с (виртуальное) имя сервера. Добавьте такую ​​строку:

192.168.78.1   myrubyapp

Теперь вы можете получить доступ к сайту в IE по адресу http: // myrubyapp: 3000

Если вы используете виртуальные хосты под Apache, вам понадобится это, чтобы указать правильное имя сервера.


Должен ли IP оставаться фиксированным во время сеансов на NAT? Сомневаюсь.
— Lothar

10

Поскольку этот вопрос довольно старый и относится к XP, вот альтернатива для новых ОС;


Если у вас Vista или Windows 7 в качестве гостевой ОС и у вас настроены виртуальные хосты на хосте через Apache, вот как настроить:

В ОС хоста необходимо убедиться, что сетевое соединение выполняется через NAT;

  1. Щелкните правой кнопкой мыши значок сети в окне виртуальной машины (внизу справа).
  2. Выберите "NAT"
  3. Выберите "Подключиться"
  4. Подождите, пока гостевая ОС снова подключится к сети

Затем в гостевой ОС;

  1. Нажмите Пуск> Сеть> Центр управления сетями и общим доступом.
  2. Нажмите "Просмотреть статус" рядом с сетевым подключением.
  3. Нажмите "Подробнее"
  4. Найдите «Шлюз по умолчанию IPv4»
  5. Открыть Wordpad
  6. Отредактируйте C: \ Windows \ System32 \ drivers \ etc \ hosts
  7. Добавьте в файл строку, например:

    [default-gateway-IP] www.example.com
    [default-gateway-IP] example.com
    
  8. Сохранить

  9. Попробуйте открыть http://www.example.comилиhttp://example.com в IE


Это очень странно, но мне пришлось вычесть 1 из ip шлюза. На самом деле у меня сработало, чтобы выяснить это, выполнив pinging host: ping <my-mac-host>.localи поместив этот ip в файл hosts
— Cristian

1
Вместо шагов 1–4 в гостевой ОС вы также можете открыть диалог запуска, набрать cmd+ <enter>, затем набрать: ipconfig /all+ <enter> и найти там «Default Gateway».
— Джесс Телфорд

Спасибо, Джесс !. ipconfig /allтоже был быстрее
— Emerson Rocha

9
  1. На машине XP Пуск -> Подключиться к -> Показать все подключения.
  2. Дважды щелкните Подключение по локальной сети.
  3. Щелкните вкладку Поддержка.
  4. Выберите IP-адрес шлюза по умолчанию <gateway-ip> и нажмите http: // <gateway-ip>: 3000 в своем браузере.

Попался: у вас должен быть http: // в адресе, иначе IE выдаст вам «Веб-страница не может быть отображена».


6

Для Django важно сделать следующее:

./manage.py runserver [IP-адрес шлюза по умолчанию]: 8000

так как

https://docs.djangoproject.com/en/dev/ref/django-admin/

Обратите внимание, что IP-адрес по умолчанию 127.0.0.1 недоступен с других компьютеров в вашей сети. Чтобы сделать ваш сервер разработки доступным для просмотра на других машинах в сети, используйте его собственный IP-адрес (например, 192.168.2.1) или 0.0.0.0 или :: (с включенным IPv6).


5

Я просто потратил час, пытаясь заставить это работать, следуя инструкциям по SO, но мой в итоге оказался немного другим.

Настройки VMWare

1.) Установите соединение VMWare на NAT
2.) запустите> cmd> ipconfig> скопируйте значение шлюза по умолчанию
3.) отредактируйте файл hosts (c: / Windows / System32 / drivers / etc / hosts)

  • добавьте это в свой файл hosts:

<gateway-ip> yourserver.local

Настройки OS X

1.) отредактируйте конфигурацию Apache (например, sudo vim /etc/apache2/httpd.conf)

  • добавьте эту запись vhost в свой файл httpd.conf:
ИмяVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
    DocumentRoot "/ путь / к / вашему / проекту"
    Имя сервера yourserver.local

    <Каталог "/ путь / к / вашему / проекту">
        AllowOverride All
        Опции Все
    </ Directory>
</ VirtualHost>
  • сохранить и выйти (: wq)

2.) Отредактируйте файл хостов (sudo vim / etc / hosts)

  • добавьте эту строку в свой файл hosts

127.0.0.1 yourserver.local

3.) Перезагрузите Apache (sudo apachectl restart)

Я обнаружил, что мне пришлось переключить настройку подключения на VMWare, чтобы перезапустить подключение, прежде чем эти настройки сработали для меня. Надеюсь, это поможет.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.