在 Windows 10 上,我有一个运行着 ubuntu VirtualBox,并且在 Windows 主机上有两个以太网接口:
- “以太网”
- “无线局域网”
我现在想将主机上的这两个真实以太网设备与 ubuntu 客户机上的两个虚拟接口连接起来。为此,我在 VirtualBox 配置上定义了两个桥接适配器,用于连接到“以太网”(适配器 2)和“WLAN”(适配器 3):
在 VirtualBox 客户机中,我在文件中定义网络配置/etc/netplan/01-network-manager-all.yaml
如下:
# Let NetworkManager manage all devices on this system
network:
version: 2
ethernets:
enp0s8:
link-local: []
dhcp4: yes
enp0s9:
link-local: []
dhcp4: no
addresses:
- 192.168.200.100/24
gateway4: 192.168.200.220
然后的输出ip addr show
显示这个(不正确/无效的)配置:
2: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
link/ether 08:00:27:64:6a:fb brd ff:ff:ff:ff:ff:ff
inet 192.168.200.243/24 brd 192.168.200.255 scope global dynamic enp0s8
valid_lft 43151sec preferred_lft 43151sec
3: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:ee:d0:c4 brd ff:ff:ff:ff:ff:ff
inet 192.168.200.100/24 brd 192.168.200.255 scope global enp0s9
valid_lft forever preferred_lft forever
问题:
- 如何找出 VirtualBox 设置上的哪个适配器对应于 ubuntu 主机中的哪个接口?对应
Adapter2
于enp0s8
还是enp0s9
?如何找出? - 如何“修复”连接到 Windows“WLAN”适配器的接口设置,以便客户机 ubuntu 确实连接到 Windows“WLAN”适配器和外部互联网?因为我无法 ping 8.8.8.8,即 ubuntu 客户机系统似乎没有外部互联网连接。同样奇怪的是,ubuntu 客户机中的两个接口位于同一子网中
192.168.200
。这看起来不对劲,可能是 ubuntu 客户机无法通过 Windows“WLAN”适配器访问外部互联网的问题。如何解决这个问题? - 我可能有第三个以太网适配器,用于连接有线互联网
- 我不是网络方面的专家。例如,我不太清楚在网络设置中为适配器定义的“网关”是什么意思。
- 如果我忘记了什么,或者有后续问题,我深表歉意。如前所述,我不是网络专家。理想情况下,答案将包含一些关于其工作原理的一般解释。
通过 MAC 地址进行比较。它由 VirtualBox 分配,因此您可以
▶ Advanced
在虚拟机的适配器设置下看到它,并与 的输出进行比较ip -br link
。实际上,您可以直接在 Netplan 或 systemd-networkd 配置中使用 MAC 地址作为匹配条件,完全避免使用接口名称(或分配自定义名称)。Ubuntu Desktop 上的默认配置将使用 NetworkManager,但从您之前的帖子来看,您似乎已决定使用 Netplan,因此您可以像这样配置它:
(避免使用
ethXXX
自定义名称。)ethernet.mac-address
使用 NetworkManager,可以通过设置连接配置文件来实现同样的效果。不要跳过步骤。首先修复问题 #1 – 即确定哪个接口通向哪里 – 否则,您拥有的任何静态 IP 或网关配置都是毫无意义的,尝试修复它是毫无意义的。
一旦您整理好接口并确保每个接口都有其应有的配置(例如,静态 192.168.200.100 实际上位于属于 192.168.200 的接口上,等等),那么它通常就可以正常工作。
如果之后仍然不起作用,请使用 查看路由表
ip route
,特别是路由default
。这些路由直接对应于您为每个接口指定的网关,并且 Linux 将使用具有最低度量的“默认”路由来访问互联网。该命令
ip route get 8.8.8.8 fibmatch
是验证内核对默认路由的选择的一种简单方法——如果它返回错误的接口,那么该接口可能不应该指定网关。例如,如果“静态”接口没有 Internet 访问(例如,Internet 访问通过“DHCP”接口),那么您应该从“静态”接口中删除“网关”参数,以便它不会通过它生成默认路由。
更具体地说,当一个接口仅连接到一个子网(并且不会再连接到其他任何地方)时,它就不需要网关,因为网关(路由器)不处理本地通信 - 网关(默认或其他)的唯一目的是提供超出本地子网的路径。
(在这两者之间,仅通向有限网络集的接口 - 不仅仅是一个子网,但没有完全的互联网访问 - 仍然不需要默认网关;而是有用于更具体路由的网关。)
嗯,其中一个位于子网中,因为您已通过 Netplan 静态定义了它,因此另一个必须通过 DHCP 获得其地址。这很可能意味着两个接口需要交换 - 从 DHCP 获取 192.168.200 地址的接口可能是应该具有静态配置的接口,反之亦然。
这对于评论来说太长了,如果这不能回答你的问题,请添加详细信息。
你的 Windows 10 机器有 2 个 NIC
乙太網絡無線
你的 Windows 10 机器有一个 Linux 虚拟主机
您已将以太网桥接到适配器 2 您已将 WLAN 桥接到适配器 3
你使用了此网络配置
你的 eth8 是 192.168.200.243
你的 eth9 是 192.168.200.100 gw 192.168.200.220
悬赏列出了 2 个问题。问题列出了 5 个问题:
enp0s8 的 MAC 地址为 08:00:27:64:6a:fb enp0s9 的 MAC 地址为 08:00:27:ee:d0:c4
如果您返回到虚拟盒网络适配器设置页面并单击高级箭头,那里将会有一个 mac 地址。然后您可以关联哪个是 enp0s8 哪个是 enp0s9。
2.如何“修复”连接到 Windows“WLAN”适配器的接口设置,以便客户机 ubuntu 确实连接到 Windows“WLAN”适配器和外部互联网?因为我无法 ping 8.8.8.8,也就是说,ubuntu 客户机系统似乎没有外部互联网连接。同样奇怪的是,ubuntu 客户机中的两个接口位于同一子网 192.168.200 中。这看起来不对劲,可能是 ubuntu 客户机无法通过 Windows“WLAN”适配器访问外部互联网的问题。如何修复这个问题?
由于您使用的是桥接模式,因此 2 个 ubuntu 接口位于同一个 .200 子网中,该模式会将这些虚拟接口视为与您的 Windows 10 主机插入同一网络级别,我假设它也在 .200 子网中。如果不是,您可能不想要桥接模式。
如果你想表达的是,你的 Linux 虚拟客户机上的 enp0s8 适配器是你想要用来使用互联网的适配器,我认为你做错了
您是否希望让您的虚拟客户端能够从网络上的其他计算机访问,或者只是能够从虚拟机使用互联网。您希望虚拟机使用什么互联网连接来访问互联网,它需要使用 1、2、3 还是更多?
4 我不是网络方面的专家。例如,我不太清楚在网络设置中为适配器定义的“网关”是什么意思。
网卡是一种物理对象,可让设备在连接的网络上进行通信。它们有一个称为 mac 地址的物理地址,这使它们独一无二。它的十六进制数看起来像这样 08:00:27:64:6a:fb。
当计算机中的网卡插入网络设备(例如路由器)时,该网络设备可以在更高的网络层进行通信并为每台机器分配虚拟地址,这些地址就是 IP 地址。它们看起来像 192.168.1.1。
IP 地址在逻辑上被分成更小的组,称为网络。所有网络都有一个默认网关和多个主机。网络中的机器通过它知道要请求哪个设备继续向距离自己较远的机器发出请求
例如 192.168.200.1/24 网络包含从 200.0 到 200.254 的所有 IP。通常,向设备分发 DHCP IP 的路由器将是 .1,而设备会将 192.168.200.1 列为其网关。
所有机器都有 1 个默认网关,或默认网络设备。
从您显示的配置中,我可以假设您的路由器是 192.168.200.20(如果不是,则从您的网络配置中删除此网关配置,它会将流量从该虚拟机发送到该主机)
将 192.168.200.243 分配给您启用 dhcp 的网络适配器,您将 102.168.200.100 分配给另一个,并说它的网关是 .220
如果现在的目标是让桥接配置正常工作,请在 Linux 机器上输入
netstat -rn
这将列出默认网关地址。确保这些设置正确。
如果您可以从主机访问互联网但无法 ping 通,请检查 Windows 级别的网络适配器上可能存在的过滤器。