VirtualBox:Ubuntu 上 Debian 客户机中的两个网络接口(NAT 和仅主机接口)

VirtualBox:Ubuntu 上 Debian 客户机中的两个网络接口(NAT 和仅主机接口)

我在 VirtualBox 上创建了一个具有两个接口的 Debian 虚拟机:一个 NAT 接口(用于访问互联网)和一个仅主机接口。但是,我不知道如何使两个界面同时工作。如果我将仅主机定义为适配器 1,我可以从主机访问我的虚拟机,但不能从互联网访问;如果我将 NAT 定义为适配器 1,我可以访问互联网,但无法访问我的来宾 Debian。

那么,如何才能使两个界面协同工作呢?

笔记:我仍在尝试将主机的某些端口映射到来宾 SO 的 SSH 端口,因此无需建议我这样做:)

编辑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这是第一个适配器是时的输出网络地址转换一:

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这是第一个适配器是时的输出网络地址转换一:

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

答案1

解决方案非常简单:我只需将以下行添加到Debian 虚拟机/etc/network/interfaces文件:

allow-hotplug eth1
iface eth1 inet dhcp

第二行指示接口通过 DHCP 获取 IP。第一行在启动时加载界面。

要将更改应用到正在运行的系统,请调用:

ifup eth1

接口的名称eth1可能会有所不同,用于ifconfig -a列出所有可用的接口。

编辑: 满的/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

答案2

我的 Ubuntu 14.04 VM 也遇到了类似的问题,@brandizzi 为 Debian 建议的解决方案几乎没有什么变化。

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

对于 UBUNTU 16.04

运行命令

ifconfig -a

寻找新的接口,就像我的例子中的那样,它是“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

在 Ubuntu 18.04 主机、VirtualBox 6.1 中,使用 Ubuntu 19.04 作为来宾

在来宾编辑/etc/netplan/50-cloud-init.yaml文件中,添加两行,如下所示(在版本行之前)。看起来来宾中的网络配置仅设置为处理一个网络,第二个网络必须手动添加

network:
    ethernets:
        enp0s3:
            dhcp4: true
        enp0s8:
           dhcp4: true
    version: 2

答案4

Ubuntu 服务器 20.04 LTS用途网络计划默认情况下用于网络配置。在这种情况下,默认配置文件是/etc/netplan/00-installer-config.yaml.

  • 获取设备名称ip link

  • 将设备插入文件中/etc/netplan/00-installer-config.yaml(例如enp0s8):

enp0s8:
  addresses: [192.168.2.89/24] # example
  gateway4: 192.168.2.1
  dhcp4: true
  • 运行sudo netplan apply以应用更改。

查看这个链接了解更多信息。

相关内容