无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 1680|回复: 9
打印 上一主题 下一主题

配置 WiFi 为 repeater 模式

  [复制链接]
跳转到指定楼层
1#
发表于 2022-7-15 17:28:31 | 只看该作者 回帖奖励 |正序浏览 |阅读模式


前段时间需要在嵌入式板子上实现 wifi 的 repeater 模式,同一个无线网卡既做 AP 又做 client。下面介绍一下如何实现:


1. 确认网卡是否支持 AP 模式


    iw list 命令将输出 AP 是否支持 AP 模式

    Supported interface modes:
                 IBSS
                 managed
                 AP
                 AP/VLAN
                 monitor


    如果输出的 supported interface modes 中有 AP,说明此网卡支持 AP 模式。如果没有,接下来的工作就不需要做了。


2. 将无线网卡分成两个虚拟网卡


    如果一个系统有两个无线网卡,暂且命名为 wlan0 和 wlan1. 如果想让这个设备既可以做 AP,又可以连接外网。做法应该是这样的,将 wlan0 作为client,连接一个路由器;将 wlan1 作 AP,产生一个热点,其他设备来连接这个热点。然后再将 wlan0 和 wlan1 桥接或者 NAT 方式打通。这样连接在 AP 上的设备就可以上网了。


    同理,如果(只有)一个网卡,也可以这么做,通过 iw 命令可以实现:


    #!/usr/rootdirs/bin/bash
    ifconfig wlan0 down
    sleep 1
    iw dev wlan0 interface add wlan0_sta type managed addr 04:f0:21:35:d7:24
    sleep 1
    iw dev wlan0 interface add wlan0_ap type managed addr 12:34:56:78:ab:ce



3. 用其中一个网卡连接外部路由


    通过 命令 wpa_supplicant -B -Dnl80211 -i  wlan0_sta -c  wpa_supplicant.conf


    wpa_supplicant.conf 文件是需要连接到路由的配置信息,如 SSID,password 等,这里就不贴出来了。


    当上面的命令执行成功,即 wlan0_sta 连接到了外部路由器,需要将此时的 channel 获取到。为什么呢?因为用同一个无线网卡虚拟出来的两个无线网卡,如要实现 repeater 模式,必须在同一个 channel 上,而且必须和外部路由处于同一个 channel 上。所以接下来的 wlan0_ap 的 channel 就要以现在获取的为准。如何获取通道,执行如下命令:


    iw dev wlan0_sta info | grep channel | awk '{print $2}'


4. 用剩下的那个网卡启动 AP 模式


    根据步骤 3 的 channel 设置 hostapd.conf 文件,然后执行:


     hostapd -B hostapd.conf


5. 将 wlan0_sta 和 wlan0_ap 关联起来


iptables -t nat -A POSTROUTING -o wlan0_sta -j MASQUERADE
iptables -A FORWARD -i wlan0_sta -o wlan0_ap -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0_ap -o wlan0_sta -j ACCEPT

【转贴者注】由于使用了 iptables, 因此,可能需要设置 /proc/sys/net/ipv4/ip_forward 为 1 才行.

10#
发表于 2023-6-5 10:44:40 | 只看该作者
谢谢分享。
回复

使用道具 举报

9#
发表于 2022-11-10 14:15:29 | 只看该作者
就是中继吗? 牛逼啊
回复

使用道具 举报

8#
发表于 2022-11-6 10:48:58 | 只看该作者
希望分享好帖继续
回复

使用道具 举报

7#
发表于 2022-11-3 14:48:14 | 只看该作者
看看如何配置 WiFi 为 repeater 模式,学习学习啊
回复

使用道具 举报

6#
发表于 2022-10-19 18:40:18 | 只看该作者
必须要学习 r
回复

使用道具 举报

5#
发表于 2022-10-1 12:00:25 | 只看该作者
高手!
回复

使用道具 举报

4#
 楼主| 发表于 2022-7-20 05:35:14 | 只看该作者
搜 "script setup wifi repeater" 时,搜到

https://forum.xda-developers.com/t/wip-update-nov-28th-wifi-repeater-shell-script.3997111/

上述网页提及 create_ap :

https://github.com/oblique/create_ap

虽然 create_ap 已停止开发,但作者在项目主页上推荐了两个项目:

https://github.com/lakinduakash/linux-wifi-hotspot
https://github.com/garywill/linux-router

两个项目貌似都不错(后者 linux-router 的作者是中国人),但目前我还没时间进行探索和研究。

如果访问 github 不畅通,可以试试某些镜像,比如:


http://git.what996.com/lakinduakash/linux-wifi-hotspot
http://git.what996.com/garywill/linux-router


回复

使用道具 举报

3#
发表于 2022-7-16 06:21:15 | 只看该作者
高手!
回复

使用道具 举报

2#
发表于 2022-7-15 22:20:05 | 只看该作者
谢谢分享。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-11 00:08

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表