【问题标题】:Debian guest on VirtualBox with bridged adapter has no internet access带有桥接适配器的 VirtualBox 上的 Debian 来宾无法访问 Internet
【发布时间】:2016-05-26 11:12:31
【问题描述】:

我已经设置了一个 Debian 来宾,我正在使用它来了解有关 VirtualBox、Debian 的更多信息,稍后我将在其上使用 NodeJS 服务器。

一段时间后,我注意到当我为 VM 设置桥接适配器时,我无法用它做一些事情。 NPM 不会安装包,因为它超时。我尝试运行“w3m google.com”,甚至查找 google.com 的 ip 以检查 DNS 问题。

无论如何,我无法连接到任何形式的互联网。但我可以 ping 任何东西就好了。我可以 ping google、npmjs.org 等。

感谢您的帮助。

更新:我今天一直在研究这个,更新的路由器,华硕,我读到人们对带有桥接适配器的贝尔金路由器有问题,所以我换了,反正华硕是新的。

主机通过以太网线连接。 虚拟机很好地显示在路由器上,并且我使用路由器提供的 IP 连接到该设备就好了。但我仍然无法连接到 google.com 或其他任何东西。

【问题讨论】:

    标签: linux networking debian virtualbox virtualization


    【解决方案1】:

    这太长了,无法在评论中解释。下面是桥接适配器的工作原理。

    但是,如果您可以从来宾 debian ping 通,则意味着发生了某种形式的 DHCP,您必须拥有 IP(与主机不同的 IP)。我会检查路由器配置,看看您是否不允许/禁止使用 TCP/UDP 协议的特定 MAC 和/或 IP(这是某些人在其路由器上使用的衡量标准)。


    桥接适配器

    VirtualBox 上的桥接适配器在与您的(主机)实际机器的电缆连接上模拟好像有一个桥接器(很容易将其视为集线器)。即使通过无线连接,模拟也是类似的。

    对于(几乎)所有目的,来宾(debian)和主机连接的路由器直接连接。拥有独立的 MAC、独立的 IP,它们甚至提供独立的 ARP 请求。

    router <---> host machine running VirtualBox
      ^
      |
      +-----> guest machine running Debian
    

    这是通过发送具有不同硬件地址的数据包来完成的(您可以在适配器中配置硬件地址)。

    您需要配置来宾系统 (Debian) 以连接到网络,就好像它是一台单独的机器一样。例如,如果您使用来自主机的 WPA 连接,则需要在来宾计算机中配置 WPA(包括用户名和密码)。

    【讨论】:

    • 是的,这是正确的,我知道桥接适配器的工作原理。 pc 主机是有线的,我今天尝试了几件事,我将更新问题以反映我的尝试。
    • 目前,我赌的是 DNS 问题(可能是由奇怪的 DHCP 交互引起的)。由于您没有 Internet 存储库,因此可能无法安装 dnsutils。相反,一个检查 DNS 解析是否正常的好方法是一个简单的wget -v google.com,在正常情况下,它应该首先解析 DNS(通过 UDP),然后下载 index.html(通过 TCP)。如果你能给出它的输出,那将是最有帮助的。
    【解决方案2】:

    我不是专家,但经过一些研究,我可以解决类似的问题。我有一台托管 Debian 服务器的 Mac。我在 Mac 的接口 en0 上使用了桥接适配器。

    1) 我的 Mac 在 192.168.10.101 上运行。我知道,因为我运行命令:

    ifconfig -a
    

    接口en0显示IP

    en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        ether 6c:40:08:98:72:4c 
        inet6 fe80::6e40:8ff:fe98:724c%en0 prefixlen 64 scopeid 0x4 
        inet 192.168.10.101 netmask 0xffffff00 broadcast 192.168.10.255
    

    2) 在我的 Mac 上运行 netstat 命令:

    netstat -nr
    
    Internet:
    Destination        Gateway            Flags        Refs      Use   Netif Expire
    default            192.168.10.1       UGSc          296      142     en0
    

    我看到 Mac 网关在 192.168.10.1

    3) Mac 和 Debian 必须与网关在同一网段,我的意思是 192.168.10.xxx。所以我决定我的 Debian 必须在静态 IP 192.168.10.115 上运行。

    我在我的 Debian 服务器上编辑了 /etc/network/interfaces 文件,使其看起来像这样:

    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).
    
    source /etc/network/interfaces.d/*
    
    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    # The primary network interface
    allow-hotplug eth0 
    iface eth0 inet static 
    address 192.168.10.115 
    netmask 255.255.255.0 
    gateway 192.168.10.1 
    dns-nameservers 8.8.8.8 192.168.10.1
    

    然后我从我的 Mac 上 ping 并从我的 Debian 上 ping,他们回答了 Ok。我也可以从 Debian 访问互联网,因为我的默认网关与我的 Mac 相同。

    root@debian64:/home/myuser# route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    default         TEW-711BR       0.0.0.0         UG    0      0        0 eth0
    link-local      *               255.255.0.0     U     1000   0        0 eth0
    

    我希望它有所帮助,如果有人有更好的解释,我想学习。

    【讨论】:

      【解决方案3】:

      你能在主人和客人之间ping吗?可能在 /etc/resolv.conf(称为 nameserver)和 /etc/network/interfaces(称为 @987654323)中,来宾上的 DNS 名称服务器的地址不同@)。设置静态 IP 后可能会发生这种情况。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-22
        • 1970-01-01
        • 2020-05-30
        • 2019-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多