这个帖子里的方法有点过时了,不推荐继续使用。

有的时候会碰到这么一种情况,带着电脑和手机出去蹭网,无奈只有一个账号,手机上了电脑就没得用了,电脑用了手机就上不了网。如果能用电脑连接 Wifi 然后再开热点给手机用该多好。一般情况下,每台笔记本里面只有一张无线网卡,按照常规的思路要一边作为 STA 连接在别的热点上,一边又要做 AP 给手机用的话似乎就非得再买一张 USB 的无线网卡了。不过现在有一种方法可以让一张无线网卡同时处于 STA 和 AP 的状态,一边作为客户端连在别的 AP 上,一边又自己作为 AP 让别的客户端来连接。

这种特殊的“一卡两用”的状态需要 WDS 的支持。WDS 是一个复杂的东西,现在只讲特定情况下的应用。一般来讲,采用 ath9k 驱动的无线网卡都是支持 WDS 的(其它基于 mac80211 的驱动不详,不过值得一试)。另外,为了能使用 WDS ,还要求 hostapd 的版本在 0.7.x 以上。

下面是一个小脚本,它将在 wlan0 上启动一个 AP ,同时生成一个新的接口 wds0 ,可供 NetworkManager 直接作为 STA 使用。

#!/bin/sh
WIFI=wlan0 # NOTE 1
PHY=phy0 # NOTE 2
WAN=wds0 # NOTE 3# Extra NAT Module
modprobe nf_nat_pptp
modprobe nf_nat_ftp
# NOTE 4# Config Wireless
ifconfig $WIFI up
ifconfig $WIFI 172.16.1.1/24
ifconfig $WIFI mtu 1500# Configure dnsmasq
cat > /etc/dnsmasq.conf << EOF
dhcp-range=172.16.1.100,172.16.1.150,255.255.255.0,24h
port=0
dhcp-option=option:dns-server,8.8.8.8,8.8.4.4
interface=$WIFI
EOF
# NOTE 5# DHCP server
service dnsmasq stop
service dnsmasq start# AP and WDS STA
hostapd -B ./hostapd-wds.conf
iw phy $PHY interface add $WAN type wds
ifconfig $WAN hw ether b4:82:fe:54:c8:3e # NOTE 6
ifconfig $WAN up# Enable IPv4 Forwarding
echo "1"  > /proc/sys/net/ipv4/ip_forward
iptables -P FORWARD ACCEPT# NAT with iptables
iptables -t nat -A POSTROUTING -o $WAN -s 172.16.1.1/24 -j MASQUERADE

  

NOTES:

  1. wlan0 是无线网卡默认的接口名称。使用时请根据实际情况设定。对于使用基于 mac80211 架构驱动的网卡,其接口名一般是 wlanx ,系统中的第一张网卡一般是 wlan0 。稍后这个接口会被作为 AP 使用;
  2. 这是对应的无线网卡的 PHY 的名称,一般为 phy0 ,可以这样找出:先 lspci 找出无线网卡的 PCI 地址,然后 ls /sys/bus/pci/devices/[对应的完整 PCI 地址]/ieee80211 即可找出;
  3. 期望的 WDS STA 接口名称,完全依个人喜好填写,不要和已有的接口冲突即可;
  4. 加载这些额外的 module 是为了保证在 NAT 后面的 PPTP 客户端和 FTP 服务器能正常工作;
  5. dnsmasq 的配置请参考 http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq.conf.example ,本例中 dnsmasq 只做 DHCP 服务器,IP 地址范围 172.16.1.100 – 172.16.1.150 ,租期 24 小时,DNS 服务器默认为 8.8.8.8 和 8.8.4.4 ;
  6. 这里的 MAC 地址也是按照个人喜好设定的,不过不要和系统已有的任何网卡地址相同(包括无线网卡的 AP 接口)。

有关的 hostapd-wds.conf 的内容如下,请放置在该脚本的工作目录下:

auth_algs=1
beacon_int=300
channel=6 # NOTE 1
country_code=CN
ctrl_interface_group=adm
ctrl_interface=/var/run/hostapd
driver=nl80211 # NOTE 2
dtim_period=2
dump_file=/tmp/hostapd.dump
eapol_key_index_workaround=0
eap_server=0
fragm_threshold=2346
hw_mode=g #NOTE 3
ieee80211d=1
ieee80211n=1 #NOTE 4
ignore_broadcast_ssid=0
interface=wlan0 #NOTE 5
logger_stdout=-1
logger_stdout_level=2
logger_syslog=-1
logger_syslog_level=2
macaddr_acl=0
max_num_sta=16
own_ip_addr=127.0.0.1
preamble=1
rsn_pairwise=CCMP
rts_threshold=2347
ssid=dword-relay # NOTE 6
wds_sta=1
wmm_ac_be_acm=0
wmm_ac_be_aifs=3
wmm_ac_be_cwmax=10
wmm_ac_be_cwmin=4
wmm_ac_be_txop_limit=0
wmm_ac_bk_acm=0
wmm_ac_bk_aifs=7
wmm_ac_bk_cwmax=10
wmm_ac_bk_cwmin=4
wmm_ac_bk_txop_limit=0
wmm_ac_vi_acm=0
wmm_ac_vi_aifs=2
wmm_ac_vi_cwmax=4
wmm_ac_vi_cwmin=3
wmm_ac_vi_txop_limit=94
wmm_ac_vo_acm=0
wmm_ac_vo_aifs=2
wmm_ac_vo_cwmax=3
wmm_ac_vo_cwmin=2
wmm_ac_vo_txop_limit=47
wmm_enabled=1
wpa=2
wpa_gmk_rekey=7200
wpa_group_rekey=1200
wpa_passphrase=qwertyuiop #NOTE 7
wpa_ptk_rekey=600
wpa_strict_rekey=1
wps_state=0

  

NOTES:

  1. 在这里设置新生成的 AP 的信道,最好和 STA 界面要连接的 AP 的信道保持一致;
  2. 驱动视网卡而定,如果网卡的驱动是 ath9k 这样基于 mac80211 的驱动的话,这里选 nl80211 就可以了;
  3. 模式有 a/b/g 可选,视网卡的情况和需求而定;
  4. 是否打开 802.11n ,视网卡的情况和需求而定;
  5. 网卡 AP 界面名称;
  6. 新 AP 的 ESSID ;
  7. 新 AP 的 WPA2 密码句;
  8. 其余关于 hostapd 的配置可参考:http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap-07.git;a=blob_plain;f=hostapd/hostapd.conf;hb=HEAD ;
  9. 关键是把 wds_sta 设置为“ 1 ”。

最后,sudo 执行脚本,然后通过 NetworkManager 让 wds0 (或者其他你设置的名字)连接上一个热点,即可一边蹭网一边共享热点了。

有图有真相:

参考:

  • http://en.wikipedia.org/wiki/Wireless_distribution_system
  • http://www.tummy.com/journals/entries/jafo_20041220_000528 (适用于老机器上过时的 madwifi 驱动)
  • http://wireless.kernel.org/en/users/Documentation/iw#Setting_up_a_WDS_peer

转载于:https://www.cnblogs.com/killiancheung/p/4757493.html

让无线网卡同时工作在 AP 和 STA 模式相关推荐

  1. ap模式和sta模式共存_让无线网卡同时工作在 AP 和 STA 模式

    这个帖子里的方法有点过时了,不推荐继续使用. 有的时候会碰到这么一种情况,带着电脑和手机出去蹭网,无奈只有一个账号,手机上了电脑就没得用了,电脑用了手机就上不了网.如果能用电脑连接 Wifi 然后再开 ...

  2. 四、ESP32单片机wifi的AP与STA模式使用

    ESP32单片机wifi的AP与STA模式使用 关于WIFI的AP与STA简介 ESP32串口通信 AP与STA模式相关函数 AP相关 STA相关 ESP32开启AP模式 ESP32开启STA模式 总 ...

  3. 路由器AP 和 STA模式共存

    什么是AP+STA共存模式?如何设置?哪些模块支持该应用? 答: AP+STA组网模式是一种非常实用的组网模式:当模块作为AP时,它同时又可以作为一个STA模式存在,例如:WIFI模块作为AP,可以让 ...

  4. AP和STA模式分别是什么意思

    AP和STA模式分别是什么意思 物联网无线通讯wifi模块AP和STA模式分别是什么意思?   Wifi模块为串口或TTL电平转WIFI通信的一种传输转换模块,内置无线网络协议IEEE802.11协议 ...

  5. ESP32 (WIFI)-AP、STA模式(14)

    提示:本博客作为学习笔记,有错误的地方希望指正 文章目录 一.ESP32 WIFI模式概述 二.ESP32 WIFI-AP初始化流程 三.WIFI-AP示例 四.ESP32 WIFI-STA初始化流程 ...

  6. 物联网无线通讯wifi模块AP和STA模式分别是什么意思?

    Wifi模块为串口或TTL电平转WIFI通信的一种传输转换模块,内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈,能够实现用户串口或TTL电平数据到无线网络之间的转换. Wifi模块 ...

  7. wpa_supplicant 和hostpad让WiFi模块同时工作在AP+STA模式

    本文将介绍如何使用 wpa_supplicant服务程序和wpa_cli 客户端程序,让嵌入式设备的WIFI模块工作在station模式并连接网络,以及如何使用hostapd和udhcpd创建一个WI ...

  8. WIFI模块中AP模式和STA模式的区别

    WIFI模块中,AP和STA模式中分别意思是: 1.AP:也就是无线接入点,是一个无线网络的创建者,是网络的中心节点.一般家庭或办公室使用的无线路由器就是一个AP. 2.STA站点就是每一个连接到无线 ...

  9. ap模式和sta模式共存_WIFI模块的STA模式和AP模式有什么区别

    展开全部 WIFI模块中,AP和STA模式中分别意思是: 1.AP:也就是无线62616964757a686964616fe4b893e5b19e31333431366239接入点,是一个无线网络的创 ...

最新文章

  1. 开发各种信息管理系统的标准演示数据都帮你整理好了,少了录入演示\测试\模拟数据的烦恼了[提供下载]...
  2. 服务机器人---方案设计中需要评估确认的点
  3. TFS 2015 敏捷开发实践 – 看板的使用
  4. 云炬60s看世界20211119
  5. LinkedBlockingQueue的put,take方法
  6. thinkphp 助手函数url不生成https_thinkphp5.0 URL 地址生成
  7. 用计算机处理信息教学反思,《人工智能处理信息》教学反思
  8. 【Kafka】Kafka客户端分配方案
  9. 计算机图形学------空间摄像机
  10. 值类型和引用类型 是什么 区别
  11. 使用python、java语言批量下载抖音中我的视频、我喜欢的视频,解析抖音视频,批量下载抖音...
  12. layer修改弹框标题样式
  13. 布局中颜色搭配怎么看最舒服之白色的最佳10种颜色搭配
  14. 【STM32学习】(28)STM32实现光照度采集(标准库和HAL库实现)
  15. 《AngularJS深度剖析与最佳实践》一1.6 实现AOP功能
  16. Nature:基于宏基因组测序构建人类肠道微生物组参考基因集
  17. Java JMF的使用
  18. Markdown中如何插入EXCEL表格
  19. DB2创建新用户及授权研究
  20. System Repair Engineer (SREng) 2.5.16.900 版本

热门文章

  1. GoldenGate常用命令(九)
  2. F5补丁修复及几点命令
  3. 《精通Android 5 多媒体开发》——第6章,第6.1节视频系统结构
  4. android View 绘制完成监听
  5. Enterprise Library +Caliburn.Micro+WPF CM框架下使用企业库验证,验证某一个属性,整个页面的文本框都变红的原因...
  6. jQueryPager(JQuery分页插件pagination实现Ajax分页)
  7. LeetCode4. 寻找两个有序数组的中位数
  8. html 多页面合并,让多个HTML页面 使用 同一段HTML代码
  9. linux 双网卡bond命令,Linux的双网卡绑定(即bond0)
  10. 手机里tencent文件夹能删吗_手机内存卡里的tencent这个文件夹可以删吗?