Я использую Ubuntu Server в VirtualBox. Когда я выбираю вариант внутренней сети для сетевого адаптера и запускаю виртуальную машину, я получаю только IPv6-адрес. Мне также нужен адрес IPv4. Мой хост (работающий под управлением Windows 7) получает адреса IPv4 и IPv6, когда я запускаю ipconfig
. Когда я запускаю ifconfig
на гостевой машине (на сервере Ubuntu), он отображает только IPv6. Как я могу это исправить?
5 ответов
Попробуйте запустить:
sudo ifup eth0
В интерфейсе командной строки терминала от имени пользователя Ubuntu.
Вы также можете просмотреть сетевую документацию, в которой говорится, что Virtualbox не управляет опцией «внутренняя сеть», поэтому, если вы хотите, чтобы ваша виртуальная машина взаимодействовала с вашим хостом, вам нужно указать хост - только в сети или в режиме моста /NAT, если вы хотите, чтобы у вашей виртуальной машины был такой же доступ к сети, что и у вашего хоста.
В отличие от IPv6, IPv4 не имеет встроенной автоматической настройки; Большую часть времени используется DHCP . Попробуйте запустить dhclient eth0
или dhcpcd eth0
(в зависимости от того, с каким Ubuntu поставляется).
Если ваш Windows 7 имеет IP-адрес, он выглядит следующим образом: 169.254.0.1
?
Если да, то это потому, что Windows не удалось получить IP-адрес с виртуальной коробкой и использовать APIPA для получения IP-адреса. (автоматическое определение IP-адреса)
Кроме того, если вы хотите, чтобы ваша виртуальная машина имела доступ к вашему хосту, правильной настройкой будет сеть «только для хоста», а не внутренняя сеть.
Вот ссылка на Virtualbox Doc для такого рода конфигурации.
Убедитесь, что вы подключаете виртуальную машину к правильному сетевому адаптеру на компьютере с Win7. Случилось ли это, когда я подключился к проводной сети, а затем подключил ноутбук через WiFi (другой хост хост)
Я знаю, что на данный момент этому вопросу уже несколько лет , но стоит вернуться к обновленному ответу, поскольку ни один из других ответов не касался проблемы, вызвавшей это на моей машине.
Во-первых, чтобы уточнить - я получал эту ошибку при попытке соединить две виртуальные машины через внутреннюю сеть - обеим были назначены адреса IPv6. В вашем вопросе упоминается, что ваш хост-компьютер получает IPv6-адрес - ваш хост не должен быть частью сети, если вы используете опцию внутренней сети VirtualBox. (Терминология могла измениться за 5 лет после того, как был задан вопрос.)
Настройка DHCP на хосте
Если вы настроите сетевые настройки вашей виртуальной машины на использование внутренней сети с использованием графического интерфейса VirtualBox и настроек машины, она будет использовать адреса IPv6 по умолчанию - и они также не смогут пинговать друг друга, если вы используете ping6. Решением является небольшая настройка DHCP-сервера на хост-компьютере с помощью утилиты VBoxManage
.
VBoxManage dhcpserver add \
--netname intnet \
--ip 10.2.0.1 \
--netmask 255.255.0.0 \
--lowerip 10.2.0.1 --upperip 10.2.0.255 \
--enable
Это позволит серверу DHCP выдавать IP-адреса в диапазоне от 10.2.0.1
до 10.2.0.255
. Если DHCP-сервер уже существует, вы должны изменить add
чтобы modify
:
VBoxManage dhcpserver modify \
--netname intnet \
--ip 10.3.0.1 \
--netmask 255.255.0.0 \
--lowerip 10.3.0.1 --upperip 10.3.0.255 \
--enable
Наконец, вы можете удалить DHCP-сервер, когда закончите, используя команду удаления:
VBoxManage dhcpserver remove --netname intnet
Также смотрите это видео на YouTube по настройке внутренней сети с использованием VirtualBox.
Почему другие решения не работают
- Решение по @IanWilson не работает б / с
ifup eth0
расскажет вамeth0
уже вверх; его восстановление и резервное копирование просто переназначат IPv6-адрес (иping6
все равно не сможет получить доступ к другим виртуальным машинам во внутренней сети). - Решение @grawity не работает, поскольку b / c
dhclient eth0
либо приведет к тому, что интерфейс получит другой адрес IPv6, либо интерфейс вообще потеряет свой адрес IPv6. - Ответ @ Стивена и ответ @ epingle рассматривают ситуацию с сетевым мостом, когда хост может связываться с виртуальными блоками по сети, а не с настройкой внутренней сети, когда к сети подключены только виртуальные блоки.