我在 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
以应用更改。
查看这个链接了解更多信息。