我想使用以太网和内置 WiFi 同时连接到两个网络,或者通过安装额外的 WiFi 适配器连接到两个 WiFi 网络。
我的要求:我有两组设备(A组和B组),需要相互通信但不直接通信。该地点没有互联网。 A 组设备连接到 WiFi 路由器 A,B 组设备连接到 WiFi 路由器 B(必须不要连接到同一路由器)。我希望 Linux 设备同时连接到路由器 A 和路由器 B,并充当两个组之间的中介。 Linux 设备应从 A 组(通过路由器 A)接收消息,处理信息并将结果通知发送到 B 组(通过路由器 B),反之亦然。
问题:
- 如何设置 Linux 同时连接到两个网络?
- 如何识别消息来自哪个网络并相应地处理该消息?
- 如何指定通知的目标网络并将其发送到该网络?
答案1
确保每个网络都有自己的网络范围,例如wlan0
is192.168.0.0/24
和wlan1
is 192.168.1.0/24
。这回答了您的问题(2)和(3):检查“消息”的源地址(消息是什么格式?UDP数据包?您如何阅读消息?)以识别消息来自哪个网络,然后您通过您要发送到的 IP 地址来定位网络。这是基本的网络路由......
启用 IP 转发 ( echo 1 > /proc/sys/net/ipv4/ip_forward
),让一个网络上的设备直接连接到另一个网络上的设备;将 Linux 系统设置为这些设备上的(默认)网关。
至于如何配置 Linux 同时连接到两个网络:这取决于您的发行版和您使用的工具。对于没有networkmanager
运行的 Debian,您需要进行/etc/network/interfaces
适当的配置;对于 Red Hat,您需要配置/etc/sysconfig/networking/
.
编辑:禁用WiFi路由器上的DHCP服务器,按照我上面的描述在正确的网络中为LAN接口分配一个固定IP(192.168.0.0/24中的一个,例如192.168.0.2和192.168.1.0/24中的一个,例如192.168 .1.2)。为每个路由器提供自己的无线 ID(当然还有自己的密码)。
给Linux中的接口相应的地址,但以.1结尾。 (由于您已经订购了新的 Linux 系统,请确保它有两个接口,您可能需要订购额外的网络接口卡 (NIC) 来完成此操作。)通过 LAN 端口将 Linux 系统连接到 WiFi 路由器;不要使用WAN端口,即WiFi路由器仅用作接入点,它不路由任何东西。我们将路由留给Linux。 (没有必要使用,iptables
因为默认情况下一切都是允许的,并且这里不需要 NAT。但是,iptables
在稍后阶段使用它来限制允许的流量可能会很有用。)
在 Linux 中安装 DHCP 服务器,并将其配置为在两个接口上分发地址(可以找到大量有关如何执行此操作的文档)。配置 DHCP 服务器以将 Linux 系统 IP 作为默认网关。