Вопрос или проблема
У меня на хосте Ubuntu 16.04.1 LTS работает VirtualBox. Я создал новую виртуальную машину и установил тип сети на “Сетевой мост”. Затем я установил 16.04.1 LTS на гостевой системе, но не могу подключиться к любому внешнему IPv4-адресу.
Когда я запускаю ‘ifconfig’, я вижу только свой IPv6-адрес.
$ ifconfig enp0s3
enp0s3 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet6 addr: fd00:xx:xx:xx:xx:xx:xx:xx/64 Scope:Global
inet6 addr: fe80::xx:xx:xx:xx/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:933 errors:0 dropped:0 overruns:0 frame:0
TX packets:751 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:101012 (101.0 KB) TX bytes:144480 (144.4 KB)
Я могу подключиться по SSH к гостевой системе с хоста, используя IPv6-адрес. Я нашел этот вопрос, но у меня не установлен сетевой менеджер (и я не могу его установить, пока IPv4 не будет работать), а единственная другая команда ‘sudo ip link set enp0s3 up’ не помогла. Также в вопросе не упоминается WiFi, но ответы, похоже, предполагают, что это так, а я использую проводные соединения вместо WiFi.
Мой файл /etc/network/interfaces довольно общий, но комментарии указывают на то, что это интерфейс IPv6. Тем не менее, я не вижу, почему это так; все параметры верные для IPv4.
$ cat /etc/network/interfaces
# Этот файл описывает сетевые интерфейсы, доступные в вашей системе
# и как их активировать. Для получения дополнительной информации см. interfaces(5).
source /etc/network/interfaces.d/*
# Циклический сетевой интерфейс
auto lo
iface lo inet loopback
# Основной сетевой интерфейс
# Это самонастраивающийся интерфейс IPv6
auto enp0s3
iface enp0s3 inet dhcp
Обратите внимание на статус моего сетевого сервиса, между запуском поднятия сетевых служб и фактическим их выполнением есть 5-минутный разрыв. Я не уверен, что там происходит.
$ systemctl status networking.service
● networking.service - Поднять сетевые интерфейсы
Loaded: загружен (/lib/systemd/system/networking.service; включен; предустановленная настройка: включена)
Drop-In: /run/systemd/generator/networking.service.d
└─50-insserv.conf-$network.conf
Active: активен (вышел) с ср 2017-06-14 09:33:00 EDT; 55 мин. назад
Docs: man:interfaces(5)
Process: 2335 ExecStart=/sbin/ifup -a --read-environment (код=вышел, статус=0/УСПЕХ)
Process: 1947 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list --exclude=
Main PID: 2335 (код=вышел, статус=0/УСПЕХ)
Задачи: 0
Память: 0B
CPU: 0
CGroup: /system.slice/networking.service
Jun 14 09:27:58 chris-ubuntu systemd[1]: Начинаю поднимать сетевые интерфейсы...
Jun 14 09:28:01 chris-ubuntu ifup[2335]: /sbin/ifup: ожидание блокировки на /run/network/ifstate.enp0s3
Jun 14 09:33:00 chris-ubuntu systemd[1]: Успешно запустил поднятие сетевых интерфейсов.
Когда я вручную запускаю dhclient, он зависает. Syslog содержит следующие записи:
Jun 14 10:39:13 chris-ubuntu dhclient[3061]: DHCPDISCOVER на enp0s3 к 255.255.255.255 порт 67 интервал 10 (xid=0x4dfcbf2b)
Jun 14 10:39:16 chris-ubuntu dhclient[2377]: DHCPDISCOVER на enp0s3 к 255.255.255.255 порт 67 интервал 4 (xid=0x25d1c331)
Jun 14 10:39:20 chris-ubuntu dhclient[2377]: Нет DHCPOFFERS.
Jun 14 10:39:20 chris-ubuntu dhclient[2377]: Нет рабочих лизингов в постоянной базе данных - сплю.
Jun 14 10:39:23 chris-ubuntu dhclient[3061]: DHCPDISCOVER на enp0s3 к 255.255.255.255 порт 67 интервал 15 (xid=0x4dfcbf2b)
Это кажется странным, поскольку хост VirtualBox выступает в роли DHCP-сервера, так что он должен отвечать.
Вам не нужен IPv4. Конфигурация выше немного странная. (нет публичных IPv6-адресов).
Мой первый вопрос к администратору сети был бы:
Вы предоставляете веб-прокси? Тогда вы можете изменить настройки прокси, включая доступ к хостам только IPv4.
Но я предпочел бы глобальныеUnicast адреса IPv6. В таком случае DNS (DNS64/NAT64) решает проблему. Прокси также имел бы похожий эффект.
Ответ или решение
Чтобы включить IPv4 на сервере Ubuntu 16.04.1 LTS в среде VirtualBox, вам нужно будет выполнить несколько шагов для настройки сети. Вы упомянули, что используете "Bridged Adapter" в настройках вашей виртуальной машины, но сталкиваетесь с проблемами подключения к внешним IPv4-адресам и не получаете IP-адресов IPv4. Ваша конфигурация interfaces
также может требовать некоторой корректировки.
Шаг 1: Проверка конфигурации сети в VirtualBox
Убедитесь, что настройки "Bridged Adapter" в VirtualBox настроены правильно:
- Выбор сети: Убедитесь, что вы выбрали правильный сетевой интерфейс хоста (например, ваш Ethernet или Wi-Fi адаптер) в меню настроек сети виртуальной машины.
- Адаптер включен: Проверьте, что адаптер включен. Он должен быть активирован в настройках виртуальной машины.
Шаг 2: Настройка конфигурации сети
Ваш файл /etc/network/interfaces
выглядит корректно по структуре, но давайте убедимся, что он действительно отвечает вашим требованиям. Откройте файл с помощью текстового редактора, например, nano
:
sudo nano /etc/network/interfaces
Убедитесь, что конфигурация выглядит следующим образом:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto enp0s3
iface enp0s3 inet dhcp
Шаг 3: Перезапуск сетевых интерфейсов
После внесения изменений вам необходимо перезапустить сетевые службы. Выполните команду:
sudo systemctl restart networking
Или, если требуется, попробуйте отдельные команды для поднятия интерфейса:
sudo ifdown enp0s3 && sudo ifup enp0s3
Шаг 4: Проверка состояния DHCP
Если проблема продолжает существовать, проверьте, может ли ваш интерфейс получать DHCP. Запустите dhclient
вручную:
sudo dhclient enp0s3
Следите за выводом команды и логами в /var/log/syslog
. Если dhclient
все еще не получает ответа, это может указывать на проблемы с настройками DHCP на хосте VirtualBox или сети.
Шаг 5: Устранение неполадок
- Проверка подключения хоста к сети: Убедитесь, что хост имеет доступ в интернет и предоставляет DHCP.
- Обновление VirtualBox: Убедитесь, что у вас установлена последняя версия VirtualBox, так как в более новых версиях могут быть исправлены проблемы с сетью.
- Firewall и безопасность: Убедитесь, что нет блокировок на уровне брандмауэра как на хосте, так и на виртуальной машине.
Заключение
Если после выполнения всех этих шагов ваша виртуальная машина по-прежнему не получает IPv4-адрес, возможно, вам стоит обратиться к администратору сети или проверить настройки маршрутизации и DHCP-сервера. Подобные проблемы могут возникать из-за неправильного обмена данными между виртуальным адаптером и физической сетью.
Ожидаем, что данная информация поможет вам наладить работу IPv4 на вашем сервере Ubuntu в VirtualBox. Если возникнут дополнительные вопросы, не стесняйтесь задавать!