将 RPI 连接到受保护网络中的 Virtualbox Linux VM

将 RPI 连接到受保护网络中的 Virtualbox Linux VM

我处在一个受保护的网络上,该网络仅向已注册的设备提供 IP 地址。我可以注册我的笔记本电脑、Windows 计算机和 RPI,但不能注册该笔记本电脑上的每个 VM,因此我认为桥接适配器不是一个选择。我希望能够在 RPI 和 VM 之间进行通信。

到目前为止我已经尝试过这个:

我有 3 个实体:(1)一个 Windows 主机,IP 为 134.58.46.117 (2)一个 Virtualbox Linux Guest VM,已配置,atm,带有 NAT 网络和仅主机适配器。它在 eth0 上的 IP 为 10.0.2.15,在 eth1 上的 IP 为 192.168.56.102 (3)Jessie 上的 RPI,在 eth0 上的 IP 为 134.58.46.172。

我可以从 Windows 主机 ping 192.168.56.102。我可以从 RPI ping Windows 主机。我可以从 Windows 主机 ping RPI。我已使用以下路由配置了 RPI:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.56.0    134.58.46.117   255.255.255.0   UG    0      0        0 eth0

当我从 RPI ping VM(因此执行“ping 192.168.56.10”)时,我没有收到任何响应。

Windows 主机上的 Wireshark检测来自 134.58.46.172 到目的地 192.168.56.102 的数据包,但没有返回任何内容。

知道问题出在哪里吗?或者用其他方法做我想做的事?

答案1

您需要两个步骤才能实现此目的:

  1. 首先,您需要在 Windows 计算机上允许 IPv4 转发。这将允许它将数据包从一个接口移动到另一个接口。执行此操作的说明取决于您使用的 Windows 版本,例如,对于 XP,您可以使用此引用对于 Windows 10,您可以使用其他参考无论如何,谷歌Windows YourVersion IPv4 转发了解更多信息。无论如何,这只是更改 Windows 注册表项的问题,尽管确切的键会随着 Windows 版本的改变而改变。

  2. 您需要指示 Linux 计算机使用 Windows 主机作为 RPI 的网关。可以使用以下命令完成此操作:

    ip route add RPI_IP_ADDRESS/32 via WINDOWS_HOST_IP_ADDRESS
    

    这可确保数据包可以与 Linux VM 客户端的标头一起反向流动:这样它们就会被识别为对 RPI 发起的对话的相关回复。如果您不使用此方法,数据包标头将被更改为反映 Windows 主机 IP 地址,这意味着 RPI 将从不同于其写入的地址接收回复。

就这样。

编辑

参考评论:

为你的 Linux 客户端提供一个假的 MAC 地址,该地址可以访问你的 LAN。使用 RPI 监听对话,tcpdump -i eth0 -n arp。这将显示网络上存在的 MAC 地址数量。使用以下命令更改 Linux 客户端的 MAC 地址麦克查格,将其设置为您刚刚学到的那个。现在使用 Bridge 适配器作为 Linux 客户机。它会像魔法一样工作。此外,您可能考虑购买一台带有真实操作系统的 PC,因为您要做的事情相当复杂。Windows 在这方面有所欠缺。

  1. 窃取地址不是干扰其他人的连接:数据包是编号的,如果您的电脑收到错误编号的数据包,它就会丢弃它。

  2. 你可以按如下方式在启动时使其永久生效:在虚拟机上(我假设你使用的是 Debian 或衍生产品 Ubuntu/Mint,……如果不是,那么它会同步以适应你所在的位置),编辑/etc/网络/接口,并粘贴以下内容(假设eth1是要连接的接口):

    auto eth1
    iface eth1 inet dhcp
             pre-up macchanger -m XX:XX:XX:XX:XX:XX eth1
    

就是这样。

相关内容