VirtualBox: hai giao diện mạng (NAT và chỉ dành cho máy chủ) trong máy khách Debian trên Ubuntu


48

Tôi đã tạo một máy ảo Debian trên VirtualBox với hai giao diện: một NAT (để truy cập internet) và một máy chủ chỉ có một máy chủ. Tuy nhiên, tôi không biết làm thế nào để làm cho cả hai giao diện hoạt động cùng một lúc. Nếu tôi xác định máy chủ chỉ là bộ điều hợp 1, tôi có thể truy cập máy ảo của mình từ máy chủ nhưng không phải internet; nếu tôi xác định NAT là bộ điều hợp 1, tôi có thể truy cập internet nhưng không thể truy cập Debian khách của mình.

Vì vậy, làm thế nào tôi có thể làm cho cả hai giao diện làm việc cùng nhau?

Lưu ý : Tôi vẫn đang cố gắng ánh xạ một số cổng từ máy chủ của tôi sang cổng SSH từ khách SO của tôi, vì vậy không cần phải đề nghị tôi làm điều đó :)

EDIT : Đây là đầu ra ifconfigkhi bộ điều hợp đầu tiên là bộ duy nhất của máy chủ :

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)

Đây là đầu ra của netstat -nrkhi bộ điều hợp đầu tiên là bộ duy nhất :

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

Đây là đầu ra ifconfigkhi bộ điều hợp đầu tiên là bộ chuyển đổi 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)

Đây là đầu ra netstat -nrkhi bộ điều hợp đầu tiên là bộ chuyển đổi 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

Câu trả lời:


48

Giải pháp khá đơn giản: Tôi chỉ cần thêm các dòng sau vào tệp của máy ảo Debian/etc/network/interfaces :

allow-hotplug eth1
iface eth1 inet dhcp

Dòng thứ hai hướng dẫn giao diện lấy IP qua DHCP. Dòng đầu tiên tải giao diện khi khởi động.

Để áp dụng các thay đổi cho hệ thống đang chạy, hãy gọi:

ifup eth1

Tên cho eth1giao diện có thể thay đổi, sử dụng ifconfig -ađể liệt kê tất cả các giao diện có sẵn.

EDIT : đầy đủ /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

1
Tôi có thể xác nhận. Debian không thiết lập giao diện thứ hai trong /etc/network/interfaces. Đã sửa lỗi của tôi, cảm ơn. Để gỡ lỗi tiềm năng, đây là hai giao diện virtio được cung cấp bởi Virtualbox. Một là giao diện NAT được sử dụng để truy cập internet (NAT được cung cấp riêng bởi vbox), hai là mạng chỉ lưu trữ với DHCP trong lớp IP riêng hoàn toàn khác. Phiên bản Debian đã thử nghiệm 6.0.6 x64.
davolfman

bạn có thể vui lòng gửi toàn bộ / etc / mạng / giao diện của bạn xin vui lòng. Đã đấu tranh với điều này trong 2 ngày nay.
John Nicholas

@JohnNicholas xong. Lưu ý rằng bạn nên chỉnh sửa tập tin khách /etc/network/interfaces .
brandizzi

chúc mừng, tôi cũng vậy Vấn đề của tôi là khi tôi có bộ điều hợp NAT đầu tiên trong vbox, bộ điều hợp (máy chủ) khác sẽ cố gắng sử dụng máy chủ dhcp trên bộ điều hợp đó và tất cả sẽ gặp trục trặc. Khi tôi ra lệnh cho các bộ điều hợp trong vbox chỉ là máy chủ thì NAT tất cả bắt đầu hoạt động (không phân biệt thứ tự của chúng trong linux đủ thú vị). Netctl không có vấn đề này trong một vm khác.
John Nicholas

2
Điều này làm việc tuyệt vời, cảm ơn! Tuy nhiên, Ubuntu 18 hiện sử dụng một giao diện mới gọi là "netplan". Bất kỳ ý tưởng làm thế nào để nhân rộng ở trên trong netplan?
yahermann

11

Tôi đã phải đối mặt với vấn đề tương tự với máy ảo Ubuntu 14.04 của mình và Giải pháp được đề xuất bởi @brandizzi cho Debian hoạt động với rất ít thay đổi.

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

Dành cho UBUNTU 16.04

Chạy lệnh

ifconfig -a

Hãy tìm giao diện mới như trong trường hợp của tôi, đó là '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  

3
Điều này hiện cũng áp dụng cho Debian 9+ (thiết lập Ubuntu 16)
Maksim Luzik

3

Cả hai bộ điều hợp nên được cấu hình trong Debian

Có vẻ như trong cả hai trường hợp, bạn chỉ có một bộ điều hợp được cấu hình, do đó vấn đề của bạn.

Tạo 2 bộ điều hợp trong cấu hình VirtualBox của VM và sau đó khởi động nó. Nếu bạn chỉ thấy một bộ điều hợp được cấu hình khi sử dụng ifconfig (một eth0, không có eth1), thì bạn nên sử dụng công cụ cấu hình mạng cho Debian (Network Manager, ifupdown, v.v.) để định cấu hình cả hai giao diện trong DHCP. Vì vậy, bạn nên có eth0 và eth1 trong DHCP.


0

Đảm bảo bạn đang sử dụng các mạng con không gian Địa chỉ riêng cho từng giao diện.

Vì vậy, ví dụ, đối với giao diện là NAT, bạn có thể sử dụng một địa chỉ trong không gian 192.168.0.0/16.

Giao diện 'chỉ lưu trữ' có thể ở trong không gian 10.0.0.0/24.


Chà, chúng được tách ra (không gian NAT của tôi là 10.0.2.0/24 và NAT của tôi là 192.168.56.0/24).
brandizzi

Bạn có thể chỉnh sửa câu hỏi của mình để bao gồm đầu ra của ifconfignetstat -nrvì vậy chúng tôi có thể xem cách giao diện và định tuyến được định cấu hình không?
George M

Ok, tôi đã thêm đầu ra của các lệnh cho câu hỏi.
brandizzi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.