VirtualBox: два сетевых интерфейса (NAT и хост-единственные) в гостевой Debian на Ubuntu

Я создал виртуальную машину Debian на VirtualBox с двумя интерфейсами: NAT (для доступа к Интернету) и только для хоста. Тем не менее, я не знаю, как заставить оба интерфейса работать одновременно. Если я определяю хост-только как адаптер 1, я могу получить доступ к моей виртуальной машине с хоста, но не через Интернет; если я определяю NAT как адаптер 1, я могу получить доступ к Интернету, но не могу связаться с моим гостем Debian.

Итак, как я мог объединить оба интерфейса?

Примечание . Я все еще пытаюсь сопоставить некоторый порт с моего хоста на SSH-порт от моего гостя SO, поэтому нет необходимости предлагать мне это делать 🙂

EDIT : это вывод ifconfig когда первый адаптер является единственным для хоста :

 eth0 Link encap:Ethernet HWaddr 08:00:27:f6:b2:45 inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fef6:b245/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:495 errors:0 dropped:0 overruns:0 frame:0 TX packets:206 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:48187 (47.0 KiB) TX bytes:38222 (37.3 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:560 (560.0 B) TX bytes:560 (560.0 B) 

Это вывод netstat -nr когда первый адаптер является единственным для хоста :

 Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 

Это вывод ifconfig когда первым адаптером является NAT :

 eth0 Link encap:Ethernet HWaddr 08:00:27:f6:b2:45 inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fef6:b245/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:53 errors:0 dropped:0 overruns:0 frame:0 TX packets:59 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6076 (5.9 KiB) TX bytes:5526 (5.3 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:16 errors:0 dropped:0 overruns:0 frame:0 TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1664 (1.6 KiB) TX bytes:1664 (1.6 KiB) 

Это вывод netstat -nr когда первый адаптер является NAT одним:

 Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0 

Решение было довольно простым: мне просто пришлось добавить следующие строки в /etc/network/interfaces виртуальной машины Debian :

 allow-hotplug eth1 iface eth1 inet dhcp 

Вторая строка указывает интерфейсу на получение IP-адреса через DHCP. Однако выполнение этого будет работать только после того, как я позвонил ifup eth1 . Поэтому я добавил первую строку, которая загрузила интерфейс во время загрузки.

EDIT : полный /etc/network/interfaces :

 # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet dhcp allow-hotplug eth1 iface eth1 inet dhcp 

Оба адаптера должны быть настроены в Debian

Кажется, что в обоих случаях у вас только один адаптер настроен, следовательно, ваша проблема.

Создайте 2 адаптера в конфигурации VirtualBox вашей виртуальной машины и запустите ее. Если вы используете только один сконфигурированный адаптер при использовании ifconfig (один eth0, no eth1 тоже), тогда вы должны использовать инструмент настройки сети для Debian (Network Manager, ifupdown и т. Д.), Чтобы настроить оба интерфейса в DHCP. Таким образом, вы должны иметь eth0 и eth1 в DHCP.

Я столкнулся с аналогичной проблемой с моей Ubuntu VM, а решение, предлагаемое @brandizzi для Debian, мало изменилось.

 # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet dhcp 

Убедитесь, что вы используете отдельные подсетей Private Address space для каждого интерфейса.

Так, например, для интерфейса, который является NAT, вы можете использовать адрес в пространстве 192.168.0.0/16.

Интерфейс, который является «только хостом», может находиться в пространстве 10.0.0.0/24.