我正在尝试弄清楚如何设置我的 RTL8188CUS Wifi 加密狗以同时在 AP 和客户端模式下运行。
我如何在 Linux 中做到这一点?
我已经hostapd
运行得很好了,我记得不久前在某个地方读过关于 RTL8188 的 AP+Client 模式的文章,但我不记得在哪里了。
附加信息
我使用的是 ARM 版 Debian 4.7.2-5。Linux 内核 3.4.90+。
我发现以下线程可能有用并且(我认为)相关:
链接 1:如何在树莓派上将单个无线适配器用于接入点和客户端? 链接 2:在 Linux 上的单个接口上创建 WiFi 接入点
我尝试了第一个链接,没有成功。
更新
我已经设法iw list
在 Debain 8 Jessie x64 上开始工作。
它输出以下内容:
software interface modes (can always be added): * AP/VLAN * monitor interface combinations are not supported
然而,根据 Realteks 最新驱动程序的发布说明,他们指出 RTL8188CUS 支持并发模式,例如STA+AP
从版本4.0.0_5967.20121201
这难道不和国家的iw list
说法相矛盾吗?
如果不是,那么如何STA+AP
实现模式?
更新 我明白了。请参阅我的回答以获取更多信息。
答案1
这取决于网卡。我没有 RTL8188,所以我不能直接告诉你,但我可以告诉你如何找到它。
你必须发出命令
iw list
并且,在其丰富的输出中,你会发现类似这样的内容:
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* monitor
software interface modes (can always be added):
* AP/VLAN
* monitor
valid interface combinations:
* #{ managed } <= 1, #{ AP } <= 1,
total <= 2, #channels <= 1, STA/AP BI must match
* #{ managed } <= 2,
total <= 2, #channels <= 1
AP
模式是接入点模式,managed
是通常的客户端模式,这是我的卡的模式。
您必须检查AP
和是否managed
都出现在受支持的模式中,然后必须检查有效的接口组合:就我而言,第一个允许的组合显然是(同时)AP 和管理模式(但每种不超过一个),假如使用相同的频道。您的情况可能会有所不同。
为了实现这一点,您必须在同一个 NIC 上拥有两个不同的虚拟接口。操作如下:
service network-manager stop
iw dev wlan0 del
iw phy phy0 interface add new0 type station
service network-manager start
iw phy phy0 interface add new1 type __ap
hostapd -B /etc/hostapd.conf
首先,我停止网络管理器,因为它有自己搞乱一切的方式,然后我将new0
物理接口上的虚拟接口重命名为phy0
(如果您的接口不是名为phy0
,请根据您的情况进行调整,您可以从 的输出中获取名称iw list
),重新启动网络管理器,这样我就可以将虚拟接口连接new0
到我附近的任何 AP。
AP
现在我可以在同一硬件上添加一个新类型的接口(请注意双下划线ap
在命令前面),最后我开始hostpad
。
路由/DNS/DHCP的配置hostapd
取决于您的具体需求,无法建立先验。
答案2
经过几周的研究,我终于解决了我的问题。
简单的答案是;
该命令iw
未在 RTL 芯片上找到任何混合模式的迹象。原因是 RTL 驱动程序默认不支持混合模式。
Realtek 称之为Concurrent modes
,并且 RTL 驱动程序默认使用注释掉的并发模式相关代码进行编译。
为了编译驱动程序和要激活并发模式,您只需取消注释其源代码中的 3 行代码即可。
支持的并发模式有STA+STA, STA+AP, STA+P2P
。
HOSTAPD
您可以通过以下链接找到我的完整背景故事和有关如何编译驱动程序和 RTL 兼容版本的完整指南:
http://randomstuffidosometimes.blogspot.se/2016/03/rtl8192cu-and-rtl8188cus-in-station-and.html