Беспроводная сеть в Virtualbox

13

Я только что установил свой первый экземпляр Ubuntu Server (12.04) и сразу столкнулся со следующими проблемами:

  • Запуск apt-get installили updateсбой (см. Ниже)
  • Запуск ifconfigдает специфические IP-адреса, начиная с, 10.x.x.xи мой маршрутизатор вообще не видит сервер на своей странице «Подключенные устройства» (это Netgear потребительского уровня)

При запуске apt-getя получаю 50+ следующих ошибок:

Failed to fetch <some-http-url>. Temporary failure resolving <blah>.ubuntu.com

Я прочитал об этой ошибке за 12.04 и нашел несколько похожих постов на этом форуме и о сбое сервера, которые рекомендовали зайти /etc/resolv.confи добавить запись:

nameserver 8.8.8.8

К моему удивлению, я обнаружил, что это /etc/resolv.confбыла символическая ссылка, указывающая куда-то еще, и мне пришлось сначала удалить ее, а затем создать новую с записью, указанной выше.

Я перезапустил сервер и попытался запустить apt-getснова, те же результаты.

Как начать диагностику проблемы (я относительно новый пользователь Linux / Ubuntu)?

Дополнительные детали, которые могут помочь:

  • На самом деле это виртуальная машина, работающая в качестве гостевой ОС VirtualBox.
  • Физическим хостом, на котором установлена ​​эта виртуальная машина, является мой ноутбук, имеющий беспроводное соединение; Мне интересно, если (каким-то образом) ноутбук получает сеть по беспроводной сети, но, возможно, виртуальная машина VBox и / или серверная ОС Ubuntu не настроены для беспроводной связи, и поэтому ничего не «проходит»?

Заранее спасибо за любые указатели!

Редактировать :

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

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

Вот вывод, когда я бегу ifconfigиз терминала:

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

И вот вывод, когда я бегу routeиз терминала:

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

Бег ping google.com:

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

zharvey
источник
1
Не могли бы вы добавить вывод: dig <blah>.archive.ubuntu.comdig @ 8.8.8.8 <blah> .archive.ubuntu.com` и dig @8.8.8.8 archive.ubuntu.com. Что такое содержимое <blah> в любом случае? Можете ли вы пропинговать <blah> .archive.ubuntu.com с хоста вашей виртуальной машины?
Джон С. Грубер
1
HWAddr, Вероятно , ОК , чтобы показать, так как каждая виртуальная машина получает свой собственный уникальный MAC - адрес.
Хенрик
1
И fe80::..адрес - локальный IPv6, по которому я не могу с вами связаться. И от ping - это сервер, который вы пингуете, а не ваш шлюз, так что он ничего не дает.
Хенрик

Ответы:

22

Краткий ответ: это проблема сети.

Я вижу сценарий так:

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

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

  1. Убедитесь, что у роутера есть интернет. Вы можете использовать тот же хост или другое устройство, подключенное к нему, чтобы проверить это.

  2. Убедитесь, что на хосте есть интернет через роутер или любой другой источник. Чтобы проверить , просто отправить пинг на google.com, например , вот так: ping google.com.

Если точки 1 и 2 хороши (ваш роутер работает отлично и у него есть интернет, а у вашего хоста есть интернет), тогда мы переходим к гостю и виртуальной коробке. Может быть, полезно прочитать о том, как поддержка беспроводной сети обрабатывается в VirtualBox, прочитав карту Wi-Fi в Ubuntu на виртуальной машине.

Сначала нам нужно узнать следующую информацию:

  • В среде виртуальной коробки нет беспроводного соединения. Все «виртуальные» соединения относятся к кабельным / проводным подключенным. Поэтому, когда вы включаете сетевую карту в виртуальном госте, вы создаете виртуальное проводное соединение, а не виртуальное беспроводное .

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

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

  • Если у вашего хоста нет доступа к интернету, у вашего гостя его не будет. То же самое касается и того, что если у вашего хоста есть доступ к Интернету, а ваше соединение с хоста на гостя разрешает совместное использование интернета, то у гостя, скорее всего, также будет интернет (поведение по умолчанию с Virtualbox).

  • Я буду использовать Virtualbox 4.1.20, который выглядит иначе, чем тот, который вы используете (может быть, я не знаю). Я добавлю сетевой образ, чтобы помочь и показать различия:

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

  • Я буду использовать Ubuntu 12.04 в качестве хоста и гостя (это работает одинаково в 12.10 или 13.04). В случаях, когда Windows является хостом, вам нужно убедиться, что брандмауэр не блокирует определенный порт, который будет использовать гость.

  • Я предполагаю, что Хост не использует прокси, просто подключен напрямую к маршрутизатору через беспроводное / проводное соединение.

  • Выходные данные от Гостя следующие с ifconfig и route:

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

Теперь о точках, которые вы хотите решить:

  1. Настройте сеть для сервера VM Ubuntu
  2. Получить ВМ для подключения к интернету
  3. Получить роутер, чтобы увидеть виртуальную машину

Позвольте мне сначала упомянуть, что пункт 3 будет невозможен, если предположение Virtualbox не поддерживает переадресацию портов. Ваш маршрутизатор будет видеть переводы, сделанные от вашего Гостя, как если бы они были сделаны с фактического Хоста. Таким образом, без пересылки (что несколько поддерживается в последней версии) маршрутизатор никогда не увидит виртуальную машину, только хост.

Конечно, есть способы обойти это, например, указав хосту пересылать вещи гостю через механизм virtualbox. Или настройка (проще я думаю) гостя для перенаправления порта. Например это:

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

Итак, имея это в виду, мы делаем следующее в гостевой системе:

  1. Проверьте, есть ли у гостя доступ в Интернет по общему ping google.comподходу.

    Если пинг работает, то мы знаем, что интернет-соединение существует. Возможно, проблема заключается в разрешении сайта назначения.

  2. Попробуйте следующее:

    /etc/init.d/network restart и / или dhclient

  3. Убедитесь, что /etc/network/interfaceэто правильно. Мой пример будет:

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

  4. Измените тип адаптера в параметрах сети в окне конфигурации Virtualbox.

  5. Проверьте, правильно ли работает клиент Ubuntu Desktop или другая ОС. (Прямо сейчас у меня есть только ISO-образ рабочего стола 12.10 и 12.04).

Луис Альварадо
источник
Вау, спасибо @Luis Alvarado за такой исчерпывающий ответ (+1). Несколько повторений для каждого из ваших 5 предложений: (1) ping google.comна гостевой виртуальной машине, похоже, все работает нормально, так что еще можно выполнить, чтобы подтвердить, что я действительно получаю интернет? (2) У меня есть только /etc/init.d/networking(не network) служба, и когда я пытаюсь перезапустить ее, я получаю предупреждение, что она устарела. (3) Мой etc/network/interfaceфайл выглядит точно так же, как ваш. (4) Какой тип адаптера следует использовать и какие последующие настройки? (5)
Будут
Я думаю, что первое, что мне нужно для подтверждения, это пункт № 1: тот факт, который, pingказалось, начинает действовать и ведет себя так, как будто все работает нормально. Я обновлю свой исходный вопрос со снимком экрана вывода, пожалуйста, дайте мне знать, если это «нормальный» вывод пинга и свидетельствует об успешном соединении inet.
Жарвей
Извините, похоже, что предложение щедрости снизило меня до минимального порога повышения в 15, поэтому похоже, что я не могу повысить ваш ответ, в противном случае я бы: - /
zharvey
Здравствуй. Позвольте мне кратко изложить комментарий: 1. Если ваш пинг работает, то виртуальная машина имеет правильное соединение с хостом. 2. Не беспокойтесь о файле / etc / network, если ваш интерфейс правильно настроен, как вы упомянули, и ping работает, то это не имеет значения. 3. Не беспокойтесь об адаптере, так как он работает только в том случае, если другие не работают. Что бы я включил, это ОС, которую вы используете в качестве хоста, и если на этом хосте установлен какой-то брандмауэр. Можете ли вы также виртуализировать ISO-образ рабочего стола Ubuntu и посмотреть, есть ли у live cd подключение к Интернету?
Луис Альварадо
Сегодня, наконец, мне удалось загрузить Ubuntu Server 12.04.1 и провести тестирование с ним. Это связано правильно. Поэтому я больше ориентируюсь на ваш хост, создавая проблему или неверную конфигурацию при установке сервера. Я больше склоняюсь к тому, чтобы хост отрицал что-то, потому что, насколько я могу прочитать от вас, у вас есть некоторый опыт работы с компьютерами, а Ubuntu Server довольно прост в использовании.
Луис Альварадо
3

Это наиболее определенно проблема сети. Чтобы подтвердить это, попробуйте сначала пропинговать IP-адреса внутри вашей локальной сети:

ping 10.1.1.1

(который может быть IP вашего роутера)

а затем пингуют IP-адреса во «внешнем мире»

Кроме того, даже если вы используете свою виртуальную машину на ноутбуке, который подключается через Wi-Fi, вам не нужно настраивать Wi-Fi на гостевой машине - VirtualBox эмулирует «проводной» сетевой адаптер, поэтому ваша гостевая ОС считает, что она работает на машине который подключен к локальной сети с помощью кабеля.

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

См. Http://www.virtualbox.org/manual/ch06.html для получения более подробной информации.

Настройка VirtualBox по умолчанию (NAT) создает «частную» сеть между вашим хостом и гостевыми машинами, причем хост-машина пересылает весь трафик, исходящий от гостевого компьютера снаружи, и отправляет ответы обратно гостю (аналогично тому, как маршрутизатор подключает ваш ноутбук к Интернет). Гость не имеет индивидуального IP-адреса в вашей локальной сети и не может быть доступен извне вашего ноутбука, но вы можете получить доступ к Интернету от гостя, потому что пакеты транслируются в локальную сеть на хост-машине, а затем в Интернет через маршрутизатор. Это объясняет, почему вы не видите отдельное устройство в настройках вашего роутера

Сергей
источник
Спасибо за отличный ответ @Sergey (+1) - но я все еще немного растерялся! Вы говорите, что виртуальная машина, работающая на моем ноутбуке, может выходить в Интернет, потому что пакеты транслируются в локальную сеть с хост-компьютера. Так что, если это так, почему не apt-getработает? Если виртуальная машина может получать входящее сетевое соединение, apt-getне должно быть проблем с загрузкой контента с удаленных URL-адресов ... да? Еще раз спасибо!
Жарвей
Или это то, что виртуальная машина может принимать пакеты только из внутренней локальной сети (между операционной системой хоста и всеми ее гостями)?
Жарвей
1
@zharvey: я имел в виду хост / гость с правильно настроенной сетью NAT (что обычно бывает при создании виртуальной машины с настройками по умолчанию) - я подозреваю, что ваша виртуальная машина может быть неправильно настроена. Пожалуйста, зайдите в настройки вашей виртуальной машины и убедитесь, что у вас есть сетевой адаптер, что виртуальный кабель Ethernet «подключен», что тип сети установлен на NAT. Возможно добавьте несколько скриншотов к вашему вопросу. Затем начните VM и запустить ifconfigи routeкоманды там , а также опубликовать результаты.
Сергей
Еще раз спасибо @Sergey (+1 снова) - пожалуйста, смотрите прикрепленные скриншоты и дайте мне знать, если что-нибудь выпадет на вас! Еще раз спасибо!
Жарвей
1

Вот что я заметил из вашего вопроса:

  1. Сообщение: «Не удалось получить. Временная ошибка разрешения <blah> .ubuntu.com»
  2. Вы можете связаться с google.com просто отлично.

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

Я предлагаю вам изменить исходные тексты программного обеспечения для использования другого архива Ubuntu, возможно, только archive.ubuntu.com.

Джон С. Грубер
источник
На самом деле я должен согласиться. Если ОП может пинговать Google и просматривать Интернет (необходимо проверить), то у него есть рабочее соединение. Проблема с сервером, выбранным в источниках, а не с интернет-соединением.
fabricator4
1

Вот что сработало для меня:

попытка настроить беспроводную связь не сработала,
добавив сведения о свойствах сети на виртуальной машине Ubuntu и изменив Windows, тоже не получилось

хотя хост был беспроводным, гостевой (Ubuntu VM) работает так, как если бы он был подключен виртуальным кабелем, поэтому следующее решило проблему:
Окно Ubuntu VM> Устройства> Сеть> Параметры сети ...> установите флажок Подключен кабель

Рабин Утам
источник
1

/etc/resolv.conf is symlink и будет symlink после удаления, потому что resolvconf всегда сбрасывает его.

Если вы хотите использовать Google DNS, добавьте эти строки в свой /etc/resolvconf/resolv.conf.d/head :

nameserver 8.8.8.8   
nameserver 8.8.4.4

Если вы хотите, чтобы ваш маршрутизатор обнаружил вашу виртуальную машину, вы должны использовать «Мостовой адаптер». В разделе «Сетевые адаптеры» измените поле с надписью «NAT» на «Мостовой адаптер». Если вы установите его как мостовой адаптер, виртуальная машина получит IP-адрес и т. Д. От DHCP-сервера. Если у вашего роутера его нет или его нет в сети, Virtualmachine не может получить настройки автоматически, и вы должны указать их вручную.

я не уверен в этом <blah>.ubuntu.com не решит, но я бы посоветовал вам попробовать другое зеркало.

Я использую mirrors.ubuntu.com/mirrors.txt, который всегда содержит ближайшие возможные зеркала. Чтобы использовать его, добавьте эти строки в ваш /etc/apt/sources.list:

deb mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse   
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse   
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-security main restricted universe multiverse   
deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse   
deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse    
deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise-security main restricted universe multiverse

Если вы тоже хотите иметь backports, добавьте также следующие строки:

deb mirror://mirrors.ubuntu.com/mirrors.txt precise-backports main restricted universe multiverse   
deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise-backports main restricted universe multiverse   

Для меня http://mirrors.ubuntu.com/mirrors.txt содержит:

http://ubuntu.trumpetti.atm.tut.fi/ubuntu/

http://www.nic.funet.fi/pub/mirrors/archive.ubuntu.com/

http://mirrors.nic.funet.fi/ubuntu/

http://archive.ubuntu.com/ubuntu/

потому что я в Финляндии.

Микаэла
источник
Если каждый может редактировать и лучше с уценкой, чем я, пожалуйста, не стесняйтесь исправлять тот беспорядок, который я вызвал с уценкой выше
Микаэла
Это ошибочный ответ. (1) Если /etc/resolv.conf был символической ссылкой, и вы удалили эту символическую ссылку, resolvconf не создаст заново символическую ссылку. (2) Файл /etc/resolvconf/resolv.conf.d/head не подходит для размещения параметров сервера имен. Адреса серверов имен должны быть в / etc / network / interfaces, если вы используете ifup, или должны быть введены в NetworkManager, если вы используете NetworkManager. Если вы действительно, действительно хотите включить адрес сервера имен 8.8.8.8 статически в resolv.conf, то поместите «сервер имен 8.8.8.8» в /etc/resolvconf/resolv.conf.d/base.
Jdthood
0

Эта ссылка содержит руководство по подключению к беспроводным сетям с помощью командной строки: http://www.linuxjournal.com/content/wi-fi-command-line .

Тем не менее, вы можете восстановить ваш resolv.confфайл.

зеленый
источник
Неужели это так просто? Ubuntu Server не поставляется с беспроводным автоопределением? Итак, когда он показывает IP-адрес, это просто системный по умолчанию или что-то? Любая идея, как я мог восстановить resolv.conf? Спасибо (+1)!
Жарвэй
@zharvey: это вряд ли решит вашу проблему, так как вам НЕ нужно настраивать Wi-Fi на гостевой машине.
Сергей
0

Ok. Маленький вопрос! Можете ли вы использовать Интернет в вашем браузере? Если да, попробуйте следующее: попробуйте изменить сервер, выбрав менеджер обновлений, определения, загрузку с, а затем выберите сервер рядом с вами. и затем попробуйте проверить свои обновления снова.

Я думаю, что это ошибка. Пожалуйста, попробуйте и скажите мне, если это работает.

Celso
источник
0

Я также запускаю рабочий стол и сервер Ubuntu на VirtualBox. И у меня была такая же проблема, как у вас. Мой обходной путь состоял не в том, чтобы настроить сетевую карту в VirtaulBox как NAT, а как Bridged Adapter.

Надеюсь, это поможет !;)

PS: по ссылке Сергей разместил (руководство VirtualBox):

«Мостовая сеть Это для более сложных сетевых нужд, таких как моделирование сети и запуск серверов в гостевой системе. Когда эта функция включена, VirtualBox подключается к одной из установленных сетевых карт и обменивается сетевыми пакетами напрямую, обходя сетевой стек операционной системы хоста».

Bulix
источник
0

Эта проблема в основном связана с назначением одинаковых IP-адресов как адаптеру Host WiFi (через DHCP-сервер маршрутизатора Wi-Fi), так и гостевому интерфейсу (DHCP-сервер VirtualBox в сети Nat).

Из документации VirtualBox об интегрированном DHCP-сервере. Тонкая настройка механизма VirtualBox NAT :

In NAT mode, the guest network interface is assigned to the IPv4 range 10.0.x.0/24
by default where x corresponds to the instance of the NAT interface +2. So x is 2
when there is only one NAT instance active. In that case the guest is assigned to the 
address 10.0.2.15, the gateway is set to 10.0.2.2 and the name server can be found at
10.0.2.3.

Посмотрев IP-адрес WiFi-адаптера вашего хоста, вы обнаружите, что назначенный ему адрес также находится в 10.0.2.0/24диапазоне сети.

Это является причиной проблемы, поскольку теперь драйвер Nat для VirtualBox смущен тем, что адреса хоста и гостя находятся в одной подсети.

Чтобы это исправить, вы можете изменить подсеть, обслуживаемую DHCP-сервером VirtualBox, с помощью команды VBoxManage (пока виртуальная машина выключена):

Vboxmanage modifyvm VMName --natnet1 "198.162/16"

И вы готовы к работе (так как 198.162.0.0 почти никогда не используется на серверах DHCP в сетевых устройствах SOHO).

Samveen
источник
0

Вам необходимо установить «VirtualBox Oracle VM VirtualBox Extension Pack».

Сначала запустите VBoxManage --versionна своем терминале Ubuntu (я на Mint). Затем загрузите пакет расширений, который соответствует вашей версии VBox, с https://www.virtualbox.org/wiki/Downloads .

На VBox нажмите Ctrl+G («Настройки») и прокрутите вниз до вкладки «Расширение». Нажмите «Добавить новый пакет», затем добавьте загруженный файл и дайте ему установить.

Попытайся!

Тощий
источник