我有一个机器人,上面有一台机载计算机,它通过以太网与基站通信(通过无线电,但机器人计算机上的接口是以太网)。机器人安装了一个特定的传感器,我可以使用传感器的 API 与它通信,传感器通过 USB 连接到机器人,并在机器人的网络列表中显示为 USB0,大概是通过一些 USB 以太网设备。
USB0 的 IP 地址由传感器的 DHCP 提供,但以太网网络必须使用静态 IP 地址。
我想桥接以太网 - Eth0 网络和 USB0 网络,以便我可以从基站访问传感器网络服务器。
我不确定如何将静态 IP 桥接到 dhcp IP(dhcp IP 地址始终相同),或者桥接是否是合适的解决方案。
这是我当前的 netplan 配置文件 -
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
dhcp4: false
addresses: [192.168.1.150/24]
gateway4: 192.168.1.254
nameservers:
addresses: [8.8.8.8,8.8.4.4]
optional: true
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"Robot-AP":
password: "SomePassword"
mode: ap
传感器的IP地址为192.168.42.1
,USB0的IP地址为192.168.42.2
答案1
桥接器只有一个 IP 地址,供双方使用。听起来你可能需要路由,而不是桥接器。
要启用路由(假设您不需要 NAT),只需将 /proc/sys/net/ipv4/ip_forward 设置为 1 即可。然后,您两侧的机器都需要知道另一个网络的路由是通过路由器上的本地接口进行的。但是,可能无法在传感器上配置路由表。在这种情况下,您需要使用 NAT,这样当您的基站尝试连接到机器人以太网 IP 上的 Web 端口时,连接就会转发到您的传感器。
互联网上有许多有关 NAT 的操作指南。 http://linux-ip.net/html/nat-dnat.html是描述如何转发单个端口的代码,这正是您在这里想要的。