同时将Linux连接到两个网络


10

我想使用以太网和内置WiFi同时连接到两个网络,或者通过安装附加的WiFi适配器连接到两个WiFi网络。

我的要求:我有两组设备(A组和B组)需要彼此通信,但不能直接通信。该位置没有互联网。A组设备连接到WiFi路由器A,B组设备连接到WiFi路由器B(有必要不要将它们连接到同一路由器)。我希望Linux设备同时连接到路由器A和路由器B,并充当两个组之间的中介。Linux设备应该从组A(通过路由器A)接收消息,处理该信息并将结果通知发送到组B(通过路由器B),反之亦然。

问题:

  1. 如何设置Linux以同时连接到两个网络?
  2. 如何识别消息来自哪个网络并相应地处理该消息?
  3. 如何为通知指定目标网络并将其发送到该网络?

Answers:


1

确保每个网络都有自己的网络范围,例如wlan0is 192.168.0.0/24wlan1is 192.168.1.0/24。这回答了您的问题(2)和(3):检查“消息”的源地址(消息的格式是什么?UDP数据包?您如何阅读消息?)以标识消息来自哪个网络,并且您通过您要发送到的IP地址来定位网络。这是基本的网络路由...

启用IP转发(echo 1 > /proc/sys/net/ipv4/ip_forward),以使一个网络上的设备直接连接到另一网络上的设备;将Linux系统设置为这些设备上的(默认)网关。

关于如何配置Linux以同时连接到两个网络:这取决于您的发行版以及所使用的工具。使用Debian而不networkmanager运行,您需要进行/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设置为默认网关。


谢谢@wurtel。我是网络新手,并且具有Linux的使用知识。但是我愿意尝试任何必要的方法来完成这项工作。我已经在这个项目上工作了6个月,按照我的原始帖子中的描述对设备进行网络连接是我的下一步(必填)。如果您能给我指点,我将与他们合作。我已经订购了可以使用的Linux PC,它将在本月底交付。之后,我可以尝试您的建议进行第1步。关于2和3,我是否必须设置服务器?我使用Python和Java编写代码,但是只要可以完成工作,就可以学习其他内容。
Sivakumar Natarajan

我仍然必须弄清楚A和B组中的设备将如何与Linux设备通信。A和B组中的设备是平板电脑(iOS和Android)。A组是学生,B组是职员。这些设备在组内彼此通信,但通过Linux设备进行接口以与另一个组交互。
Sivakumar Natarajan

如果评论是您想要的行为,那么最好的选择是使linux设备充当桥梁。
eyoung100

也需要iptables配置
sandyp

编辑了我的答案。我认为配置网络接口超出了这个问题的范围(有关该主题的大量信息),而且您仍然没有说出正在使用的Linux。如果您还没有决定,我建议Debian :-)
wurtel
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.