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


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.