Как разрешить гостю VirtualBox (под управлением Windows) выходить в Интернет?

30

У меня есть виртуальная машина VirtualBox. Хост-машина работает под управлением Ubuntu. Гостевая (виртуальная) машина работает под управлением Windows XP.

Я погуглил эту проблему, и люди утверждают, что исправили ее, изменив тип адаптера на NAT, но у меня нет такой возможности:

введите описание изображения здесь

Есть идеи?

Обновить:

Это не сработало, просто переключив его на NAT. Вот текущие настройки (показаны все детали):

введите описание изображения здесь

Вот скриншот гостя, показывающий некоторую информацию о сети:

(Обратите внимание, что этот вопрос о том, как предоставить виртуальной машине доступ к Интернету в VirtualBox, поэтому наличие картинки с Windows автоматически не делает это не по теме!)

введите описание изображения здесь

Увеличенное изображение здесь.

umpirsky
источник

Ответы:

34

Настройка NAT

NAT не является опцией для типа адаптера . Скорее, это опция для Attached to .

Нажмите там, где в данный момент написано Bridged Adapter, и вы сможете выбрать NAT .

Кстати, причина, по которой иногда помогает его изменение на NAT , не является специфической для гостей Windows. Скорее, если ваш физический (хост) ПК находится в локальной сети, Bridged Adapter (а также NAT ) обычно работает нормально. Если ваш физический ПК имеет сетевое соединение только для одного компьютера - как это часто бывает, если он подключен напрямую к кабельному / DSL / ISDN-модему, который имеет только один порт Ethernet, - тогда нет локальной сети для подключения к , так что тогда вы должны использовать NAT .

Если вы используете Bridged Adapter и ваш хост-компьютер находится в физической локальной сети, ваш гостевой компьютер будет автоматически видеть и видеть компьютеры в локальной сети. Если вы используете NAT в локальной сети, гостевой компьютер сможет видеть другие компьютеры в локальной сети, но другие компьютеры в локальной сети (кроме хоста виртуализации) не смогут его видеть.

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

Если это работает, отлично. Иначе...

Проверьте настройки сети гостя

В виртуальной машине откройте конфигурацию сетевых подключений (из панели управления или в меню «Пуск»> «Настройки»). Если вы вручную не настроили несколько интерфейсов для гостевых машин в VirtualBox (или к ним не подключены реальные сетевые адаптеры с переадресацией через USB), вы увидите только один, и если вы не изменили его имя, он будет называться Local Area Связь (возможно, с номером после него).

Щелкните правой кнопкой мыши по этому и выберите Свойства .

гостевой компьютер, Windows XP Network Connections: это первое место, где нажимают «Свойства»

В разделе Соединение используются следующие элементы , нажмите Интернет-протокол (TCP / IP) и нажмите Свойства .

гостевой компьютер, Windows XP «Local Area Connection», показывающий список протоколов и сервисов

Убедитесь, что конфигурация правильная.

Для мостовых соединений

Если сетевой адаптер виртуальной машины был подключен к VirtualBox, а не переключен на NAT, то это как если бы существовал сетевой коммутатор уровня 2, соединяющий три устройства:

  • Виртуальная машина.
  • Физический хост-компьютер.
  • К чему бы ни был подключен физический хост-компьютер (на конкретном хост-сетевом адаптере, который был подключен). Например, если ваш компьютер подключен к маршрутизатору, это похоже на то, как коммутатор подключен к маршрутизатору. Если он подключен по беспроводной сети к точке доступа, это похоже на то, что коммутатор является беспроводным мостом .

Таким образом, ваша виртуальная машина «сетевая» эквивалентна вашей хост-машине . Какими бы ни были настройки (кроме, конечно, своего IP-адреса), ваша виртуальная машина должна иметь.

Для NAT-подключений

Если вы выбрали NAT для Attached to в VirtualBox, то ваш реальный компьютер работает как небольшой домашний / офисный маршрутизатор . На вашей хост-машине работает DHCP-сервер, доступный только виртуальным машинам VirtualBox, и гость получает от него всю информацию о конфигурации своей сети.

DHCP-сервер VirtualBox предоставит гостю как IP-адрес, так и информацию DNS, поэтому следует выбрать оба эти параметра:

  • Получить IP-адрес автоматически
  • Получить адрес DNS-сервера автоматически

гостевой компьютер, настройки Windows XP TCP / IP, вкладка Общие

Это ключ.

Это особая проблема для системы в этом вопросе. Если это единственная проблема с конфигурацией, то решение этой проблемы должно полностью решить проблему.

У вас есть ручные настройки, а не DHCP.

Это может сработать, но ручные настройки должны быть правильными, и вы также хотели бы убедиться, что IP-адрес не находится в диапазоне IP-адресов, которые назначает ваш маршрутизатор (или может произойти конфликт с другим устройством на сети).

В этом случае ручные настройки вообще не верны, потому что:

  1. IP-адрес хост-машины на сетевом интерфейсе, через который он обеспечивает подключение к Интернету гостю, не совпадает с его IP-адресом в физической сети. Даже если IP-адрес вашего компьютера 192.168.1.1 «в реальной жизни», гость не может получить к нему доступ таким образом.

    • Скорее всего, если вы настроите его таким образом самостоятельно, вы, возможно, подумали, что вам следует ввести IP-адрес своего домашнего / офисного маршрутизатора (который часто является 192.168.1.1) в качестве шлюза по умолчанию и основного DNS-сервера.

    Но гость не может напрямую получить доступ к физическому маршрутизатору NAT на вашем столе (или где-либо еще), потому что любые данные, передаваемые между виртуальной машиной и реальным маршрутизатором, должны проходить через маршрутизатор виртуальной машины, а маршрутизатор виртуальной машины - это ваш компьютер (доступ к которому осуществляется через эту специальную виртуальную сеть). интерфейс).

  2. Так как шлюз по умолчанию неправильный, маршрутизация не происходит, и виртуальная машина не может получить доступ ни к каким физическим сетевым устройствам за пределами вашего компьютера.

  3. Поскольку IP-адрес виртуальной машины находится за пределами правильного диапазона (обычно это 10.2.2. *), А маска подсети 255.255.255.0, он не может получить доступ к правильному диапазону. (Маска подсети правильная, но вместе с IP-адресом она идентифицирует неправильную подсеть.)

  4. DNS-сервер также должен быть фиксированным, иначе хосты не будут доступны через их доменные имена (например, askubuntu.com).

Если по какой-то причине вам нужно использовать «статический IP», то есть не использовать DHCP, вам нужно будет получить правильную информацию из VirtualBox и ввести ее. Пожалуйста, дайте мне знать, если вам нужна помощь с этим (я могу расширить это, чтобы включить инструкции).

Предполагая, что с DHCP все в порядке, вы можете решить эту проблему, настроив свой интернет-протокол (свойства TCP / IP) , настройки вкладки « Общие » выглядят как на скриншоте выше.

Все еще нет подключения к Интернету? Время для устранения неполадок

Это может помочь собрать дополнительную информацию от гостевой стороны. В виртуализированной системе Windows XP, которая таинственным образом не подключается к Интернету, установите гостевые дополнения VirtualBox (для этого нажмите « Устройства» > « Установить гостевые дополнения» ; дополнительную информацию см. В руководстве ). Перезагрузитесь и посмотрите, сможете ли вы подключиться к Интернету. Если вы не можете этого сделать, вы все равно сделали что-то полезное, потому что теперь вы можете копировать и вставлять между гостевым и хостовым буфером обмена.

Так что откройте командную строку в Windows. Один из способов сделать это - запустить:

Пуск> Выполнить ...> cmd.exe

Теперь запустите эту команду, чтобы получить информацию о сетевых интерфейсах и соединениях гостевой системы Windows.

ipconfig /all

Затем скопируйте весь текст в командной строке в буфер обмена. Эта функция доступна в контекстном меню, вызываемом щелчком правой кнопкой мыши в любом месте окна командной строки. Затем вы можете отредактировать свой вопрос в хост-системе Ubuntu, где у вас есть работающее подключение к Интернету, и вставить его.

  • В более общем плане, для людей, которые не задают этот вопрос:

    Затем вы можете вставить его в приложения в вашей хост-системе Ubuntu, что позволит вам ссылаться на него, когда ваша виртуальная машина Windows приостановлена ​​/ отключена. Вы можете предоставить это тому, кто пытается вам помочь. Вы можете включить его в свой вопрос здесь, на Ask Ubuntu

    (Однако, если ваша сетевая проблема заключается в виртуальной установке, а не в виртуальном оборудовании или программном обеспечении VirtualBox - например, если ваша виртуальная машина нормально подключалась к Интернету до тех пор, пока вы не установили программное обеспечение Windows, отличное от гостевых дополнений , - тогда ваша проблема скорее всего будет рассматриваться как не по теме для Ask Ubuntu. Впрочем, скорее всего это будет тема для Супер пользователя .)

Элия ​​Каган
источник
2
Я изменил получение IP и DNS автоматически, и это сработало! Ваш ответ был точным и подробным, большое спасибо за это, я уверен, что это будет очень полезным ресурсом для других людей, имеющих подобные проблемы. Я принял ваш ответ и учредил награду, добавив вам 100 моей текущей репутации через 24 часа. Благодарность!
umpirsky
Все еще нужен TL; др. Кстати, вы устраняете неполадки Windows!
Брайам
Спасибо, и Бог благословит вас во имя Иисуса! Ответ очень помог! Переключение (с использованием NAT) на DHCP с обеих сторон решило проблему!
лексема
@Eliah, Вы заявили, что " если вы используете NAT в локальной сети, гостевой компьютер сможет видеть другие компьютеры в локальной сети ". Как это возможно? Разве гость не сможет видеть только хост, и каждое соединение должно проходить через хост?
Pacerier
@Pacerier Нет. Это аналогично ситуации, когда вы подключаете один маршрутизатор NAT к другому маршрутизатору NAT, который обеспечивает доступ к Интернету. Предположим, что компьютер A находится за NAT-маршрутизатором X, а компьютер B и NAT-маршрутизатор X находятся за другим NAT-маршрутизатором Y, который обеспечивает доступ к устройствам в Интернете, таким как компьютер C. Это позволяет A (и B) адресовать C, сохраняя C и даже B от адресации A. Но это также позволяет A обращаться к B. С точки зрения B, A скрывается за X. С точки зрения A, B вообще не скрывается - B, как Y, является хостом в сети, где A может получить доступ через шлюз X.
Элия ​​Каган
10

Это решение отлично сработало для меня (Хост ОС: Ubuntu 14.04; Гостевая ОС: Windows XP SP3):

Выберите « PCnet-PCI II (Am79C970A) » в «NAT» -> «Дополнительно» -> «Тип адаптера».

timfrostmann
источник
1
Работал на Windows 7 в качестве хоста и Windows XP в качестве гостя
Муса Хайдари
Работал на Windows 8.1 в качестве хоста, а Ubuntu 14.04 в качестве гостя
user11153
@frostmann, почему это работает?
Pacerier
работал ... в win8
chandil03
работает и в WinXP!
Трунг Та
4

NAT находится в раскрывающемся списке Attached to .

Тип адаптера расширенный и не должен быть изменен в большинстве случаев.

Мост должен работать нормально, но вы должны настроить сетевой интерфейс. Имя должно быть установлено для вашего интернет-интерфейса на хост-машине (очень вероятно, WLAN для беспроводной, Eth для Ethernet).

Rosch
источник