【问题标题】:Redirecting Ethernet traffic through another interface通过另一个接口重定向以太网流量
【发布时间】:2026-02-15 06:45:01
【问题描述】:

我正在做一个项目,我想通过另一个接口重定向以太网流量。设置如下:

我有一台可以正常连接互联网的电脑。我还有一块 MBED LPC1768 板,我可以通过 USB 与我的电脑连接。我可以将二进制文件上传到此设备并运行它。例如,我可以让它充当键盘并将击键​​发送到计算机。我还可以让设备充当鼠标并发送鼠标事件。

现在我希望设备充当以太网接口。由于该设备是使用 USB 连接的,因此我正在考虑使用 USB 以太网协议。我选择了适用于 Linux 和 OS X 的 USBCDC-ECM 协议。插入设备时,设备被正确识别为以太网接口。此外,我在嵌入式设备上运行了一个 DHCP 服务器,以便为计算机分配一个 IP 地址。请注意,该设备没有与外界的有效互联网连接(计算机确实有)。

因此嵌入式设备可以从计算机捕获互联网流量。当设备收到数据包时,我想分析数据包,将其发送回计算机并通过工作接口将其重定向。

例如,我有一台笔记本电脑,并且在接口wlan0 上有一个工作连接。现在我插入设备。它被分配给接口eth0eth0 是我在计算机上的首选接口,因此所有流量都转到eth0。我在设备上捕获此流量,现在我想将流量发送回计算机并通过wlan0(或任何其他工作接口)将其路由。所以基本上,我想创建一个设备来捕获数据并将其发送回计算机,就像一个用于互联网流量的中间件 USB 设备。

这可能吗?我宁愿不修改操作系统上的设置并让设备管理它。我的主要操作系统是 Ubuntu 14.04,所以我现在不关心 Windows 或 OS X。另外,有没有其他方法可以做到这一点?也许 USBCDC-ECM 不是最好的选择。

任何帮助将不胜感激。

【问题讨论】:

  • 这个问题太广泛了。您对实际编程问题有任何具体问题吗?你自己试过什么?你试过恩智浦论坛吗?
  • 如果它被分配了一个地址,那就是一个DHCP 客户端而不是一个服务器
  • 好的,在阅读了其他帖子之后:您是想让电路板本身通过“另一个接口”(LPC1768 实际上具有片上以太网 MAC)连接到互联网,还是让 PC 用作董事会和 i-net 之间的桥梁?对于后者:这实际上不是编程问题,而是关于管理。
  • @Clifford 是的,我已经在问题中对其进行了编辑。计算机获得一个 IP 地址,设备将该 IP 地址提供给计算机。
  • @Olaf 开发板本身没有可用的互联网连接。我希望它从计算机接收互联网请求,分析这些数据包并将它们发送回计算机,然后让它们通过有效的接口路由。

标签: routes embedded protocols ethernet dhcp


【解决方案1】:

我不确定您尝试完成什么,但如果您的设备已经显示为以太网连接,您不能使用 iptables 将流量重定向到您的设备吗?

否则,您可以让您的设备充当 DNS 服务器并处理传入的 dns 查找并重定向它们。只是一个疯狂的想法。

【讨论】:

    【解决方案2】:

    Internet 连接共享 (ICS)(也称为网络桥接)配置主机(MBED 板所连接的计算机)。如何完成取决于主机的操作系统;例如:

    在这种情况下,主机是 DHCP 服务器,并为设备提供地址;设备本身必须是 DHCP client 而不是 server

    【讨论】:

    • 这不是和通过USB反向绑定手机的过程一样吗?
    【解决方案3】:

    如果您有 Linux 操作系统,则可以使用 iptables 并指示 LAN 外的所有流量都通过该接口。这才是正确的做法。

    【讨论】:

    • Linux on ARM Cortex-M MCU?不错!
    • @Olaf;问题不清楚,但也许是需要配置的主机并且可能正在运行Linux。
    • @Clifford:我重新阅读了这个问题:是的,这可能是真的。我确实将它解释为板本身的“正确接口”和“另一个接口”。然而,由于他没有澄清这一点(也许他试图配置他的 PC 并丢失了 i-net?),这都是推测性的。
    • 计算机在 Linux 操作系统上运行。嵌入式设备(LPC1768)不运行 Linux,而是运行我可以自己编译的二进制文件。
    • @Devos50:很明显 LPC 不运行 Linux,因为这在该硬件上几乎是不可能的(ucLinux 仍然处于活动状态吗?)。您应该编辑您的问题以包含更多信息。它可能不是 LPC,而是 PC。您可能想要的是“反向网络共享”,只需搜索这个(也用于 android 设备)。还要更正 DHCP 服务器上的该部分。那将是您的 Linux PC。
    最近更新 更多