VirtualBox: dua antarmuka jaringan (NAT dan yang hanya host) di tamu Debian di Ubuntu

48

Saya membuat VM Debian di VirtualBox dengan dua antarmuka: satu NAT (untuk mengakses internet) dan satu-satunya host. Namun, saya tidak tahu bagaimana cara membuat kedua antarmuka bekerja secara bersamaan. Jika saya mendefinisikan host-only sebagai adapter 1, saya dapat mengakses VM saya dari host tetapi tidak dari internet; jika saya mendefinisikan NAT sebagai adaptor 1, saya dapat mengakses internet tetapi tidak dapat menjangkau tamu saya Debian.

Jadi, bagaimana saya bisa membuat kedua antarmuka bekerja bersama?

Catatan : Saya masih mencoba memetakan beberapa port dari host saya ke port SSH dari guest saya SO, jadi tidak perlu menyarankan saya untuk melakukannya :)

EDIT : Ini adalah output ifconfigketika adaptor pertama adalah satu -satunya host :

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)

Ini adalah output netstat -nrketika adaptor pertama adalah satu -satunya host :

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

Ini adalah output ifconfigketika adaptor pertama adalah yang 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)

Ini adalah output netstat -nrketika adaptor pertama adalah yang 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
brandizzi
sumber

Jawaban:

48

Solusinya adalah cukup sederhana: Aku hanya harus menambahkan baris berikut di mesin virtual Debian 's /etc/network/interfacesberkas:

allow-hotplug eth1
iface eth1 inet dhcp

Baris kedua menginstruksikan antarmuka untuk mendapatkan IP melalui DHCP. Baris pertama memuat antarmuka saat boot.

Untuk menerapkan perubahan pada sistem yang sedang berjalan, aktifkan:

ifup eth1

Nama untuk eth1antarmuka dapat bervariasi, gunakan ifconfig -auntuk mendaftar semua antarmuka yang tersedia.

EDIT : penuh /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
brandizzi
sumber
1
Saya bisa konfirmasi. Debian tidak mengatur antarmuka kedua di /etc/network/interfaces. Atasi masalah saya, terima kasih. Untuk potensi debugging, ini adalah dua antarmuka virtio yang disediakan oleh Virtualbox. Salah satunya adalah antarmuka NAT yang digunakan untuk akses internet (NAT disediakan secara individual oleh vbox), yang lainnya adalah jaringan host-only dengan DHCP di kelas IP pribadi yang sama sekali berbeda. Versi Debian diuji 6.0.6 x64.
davolfman
bisakah Anda memposting seluruh / etc / network / interface Anda. Telah berjuang dengan ini selama 2 hari sekarang.
John Nicholas
@ JohnNicholas selesai. Perhatikan bahwa Anda harus mengedit file tamu /etc/network/interfaces .
brandizzi
bersorak, milikku sama. Masalah saya adalah ketika saya memiliki adaptor NAT pertama di vbox, adaptor (host) lainnya akan mencoba menggunakan server dhcp pada adaptor itu dan semuanya akan salah. Ketika saya memesan adaptor di vbox sebagai tuan rumah saja maka NAT semua mulai bekerja (terlepas dari pemesanan mereka di linux cukup menarik). Netctl tidak memiliki masalah ini di vm lain.
John Nicholas
2
Ini bekerja dengan baik, terima kasih! Namun Ubuntu 18 sekarang menggunakan antarmuka baru yang disebut "netplan". Adakah cara untuk mereplikasi hal di atas di netplan?
yahermann
11

Saya menghadapi masalah yang sama dengan Ubuntu 14.04 VM saya, dan Solusi yang disarankan oleh @brandizzi untuk Debian bekerja dengan sedikit perubahan.

EDIT: file /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
auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet dhcp

Untuk UBUNTU 16.04

Jalankan perintah

ifconfig -a

Cari antarmuka baru seperti dalam kasus saya 'enp0s8'

EDIT file /etc/network/interfaces:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp0s3
iface enp0s3 inet dhcp

auto enp0s8
iface enp0s8 inet dhcp  
Pandurang Patil
sumber
3
Ini sekarang juga berlaku untuk Debian 9+ (pengaturan Ubuntu 16)
Maksim Luzik
3

Kedua adaptor harus dikonfigurasi dalam Debian

Tampaknya dalam kedua kasus Anda hanya memiliki satu adaptor yang dikonfigurasi, maka masalah Anda.

Buat 2 adapter dalam konfigurasi VirtualBox VM Anda dan kemudian mulai. Jika Anda hanya melihat satu adaptor yang dikonfigurasi ketika menggunakan ifconfig (satu eth0, tidak ada eth1 juga), maka Anda harus menggunakan alat konfigurasi jaringan untuk Debian (Network Manager, ifupdown, dll.) Untuk mengkonfigurasi kedua antarmuka di DHCP. Jadi, Anda harus memiliki eth0 dan eth1 di DHCP.

Huygens
sumber
0

Pastikan Anda menggunakan subnet ruang Alamat Pribadi terpisah untuk setiap antarmuka.

Jadi misalnya, untuk antarmuka yang NAT, Anda bisa menggunakan alamat di ruang 192.168.0.0/16.

Antarmuka yang hanya 'host' bisa berada di ruang 10.0.0.0/24.

George M
sumber
Yah, mereka dipisahkan (ruang NAT saya 10.0.2.0/24 dan NAT saya 192.168.56.0/24).
brandizzi
Bisakah Anda mengedit pertanyaan Anda untuk menyertakan output ifconfigdan netstat -nragar kami dapat melihat bagaimana antarmuka dan perutean dikonfigurasi?
George M
Ok, saya menambahkan output dari perintah ke pertanyaan.
brandizzi