当我尝试使用 Ubuntu 笔记本电脑同时连接两个相同的 WiFi AP 时遇到问题。
该笔记本电脑上有两个 WiFi NIC,一个是嵌入式的(例如,Wifi-A),另一个是华硕 USB-N13 ProN USB 加密狗(例如,Wifi-B)。
我可以成功连接和控制(嗯,实际上这些 AP 是索尼相机,A6000) 通过这两个 WiFi NIC 连接这两个 AP(比如,AP-A 和 AP-B),前提是每次只使用一个 AP。
例如,使用 Wifi-A 控制 AP-A 或 AP-B,或者使用 Wifi-B 控制 AP-A 或 AP-B,都可以。我认为这证明 AP 和 WiFi NIC 硬件功能正常,并且 WiFi NIC 和 AP 的任何组合都可以正常工作。
但是,如果我尝试同时连接和控制两个 AP,情况就会有所不同。同时连接两个 AP 没问题(尽管有时不太顺畅),但控制它们却不行。
以下是实验步骤的列表:
Wifi-B 连接到 AP-B。Wifi-B 获取 IP 地址 192.168.122.166
Wifi-A 连接到 AP-A。Wifi-A 获取 IP 地址 192.168.122.165
向 Wifi-A 发送 M-SEARCH 请求,并得到 AP-A 的响应。然后成功获取设备描述 XML 文件。(这是 Sony A6000 支持的标准 SSDP 程序)
向 Wifi-B 发送 M-SEARCH 请求但从未得到响应
由于我不熟悉网络管理,我想知道这样的配置(一台笔记本电脑 + 两个 WiFi NIC + 两个相同的 AP)是否无效,因为这些 AP 都将使用 IP 地址 192.168.122.1(似乎没有选项可以更改此 IP 地址)?如果此配置无效,有什么方法(例如,修改 Ubuntu 的某些设置)可以修复或解决?
由于我发布此问题几天后没有收到索尼 Stackoverflow 的回复,我只能向 Serverfault 寻求帮助,因为这个问题实际上可能是索尼人不熟悉的网络问题。
如果有人能对此问题发表评论,我将不胜感激。
@Burgi,以下是我对您的问题的回答:
为什么摄像机不能连接到同一个网络?
我猜是因为索尼原本想要让这些相机用户通过手机或平板电脑等移动设备来控制相机,而不是通过 PC、Mac 等计算机。即使在没有 WiFi AP(例如在现场)的情况下,也可以将手机无线连接到相机,将相机变成一个允许移动设备连接的 AP 是一个可行的解决方案。
如果您对详细信息感兴趣,可以在这里找到可免费下载的 Sony Camera Remote API beta SDK: https://developer.sony.com/downloads/camera-file/sony-camera-remote-api-beta-sdk/
它们在物理上是否相距很远,从而信号不会重叠?
不是。事实上,这两台相机是并排的
是否有现有的 wifi 或 LAN 可供连接?
这些摄像头所在的地方确实有 WiFi 或 LAN。但是,由于它们没有 RJ45 端口,LAN 也无济于事。而且,即使在某些模式下,它们可以连接到 WiFi AP,以便可以访问互联网下载程序(是的,它们基本上是运行 FedoraCore 的计算机!),这种模式无法提供我需要的功能:接受并执行来自计算机的命令。只有当它们充当 WiFi AP 时,此功能才可用。
为什么要有两块网卡?
因为据我所知,一个 WiFi NIC 只能连接到一个 AP。连接两个 AP 需要两个 NIC。当然,如果我能只使用一个 NIC 连接两个 AP,我会非常高兴。这可能吗??
经过多天的实验,确定这个症状是由于两台A6000的IP地址冲突(都是192.168.122.1)引起的。
由于我找不到更改它们的方法,因此在这种配置(一台笔记本电脑 + 两个 Wifi 适配器 + 两个 A6000)下,我的最佳解决方案是使用 Linux 网络命名空间。将 Wifi-B 移动到新的网络命名空间确实解决了这个问题,因为每个网络命名空间都有自己的网络堆栈。现在我可以从我的笔记本电脑自由访问这两个 A6000。
我希望这个答案对遇到类似问题的人有帮助。
答案1
这确实看起来有点奇怪。我对此有很多疑问。
- 为什么摄像机不能连接到同一个网络?
- 它们在物理上是否相距很远,从而信号不会重叠?
- 是否有现有的 wifi 或 LAN 可供连接?
- 为什么要有两块网卡?
通常,对于此类设备,您可以单独配置它们以连接到现有网络,这通常由 wifi 路由器或交换机提供。然后,您可以在该网络提供的范围内为它们分配不同的 IP 地址。
如果网络不可用,您仍可以通过编辑笔记本电脑上的内部 NIC 的网络设置来配置设备,使其与相机制造商提供的设置一致,但您必须一次完成一项操作。然后,当您想要连接到互联网时,您需要重新配置 NIC。
不需要第二个 NIC,并且可能会使问题复杂化,请将其从等式中删除。
答案2
按照你的意思去做是行不通的,原因正如你所说。两个摄像头的 IP 地址相同,因此当你尝试连接到该 IP 地址时,即使你在计算机的两个 NIC 上获得不同的 IP 地址,端点 IP 也是相同的,你机器上的 IP 堆栈无法区分这两个 IP 地址。
以下是一些可能有效的方法:
也许摄像机启用了 IPv6?他们很可能无意中启用了此功能,因此您可能能够与摄像机的 IPv6 链路本地地址通信。这两个链路本地地址可能不同。您可以通过运行嗅探器(例如 tcpdump)来查看是否有任何来自摄像机的 ipv6 流量,以发现是否有任何 IPv6 支持。
与其尝试在一台机器上完成所有工作,为什么不将其拆分成虚拟机呢?一台虚拟机可能连接到其中一个 NIC,而另一台虚拟机则连接到另一个 NIC。
答案3
您需要找到一种方法来更改摄像机的 IP 地址。如果您可以使用ssh
或telnet
连接到摄像机,您可能会更成功。
一旦您能够更改摄像机使用的 IP 地址,您将能够配置笔记本电脑上的路由表,以便为正确的摄像机使用正确的接口(wifi 卡)。此外,如果您将摄像机配置为使用完全不同的子网,ubuntu 很可能会自行确定路由表配置。