Wi-Fi 指令大全
# iwlist
用于对 /proc/net/wireless 文件进行分析,得出无线网卡相关信息
# iwlist wlan0 scanning 搜索当前无线网络
# iwlist wlan0 frequen 显示频道信息
# iwlist wlan0 rate 显示连接速度
# iwlist wlan0 power 显示电源模式
# iwlist wlan0 txpower 显示功耗
# iwlist wlan0 retry 显示重试连接次数(网络不稳定查看)
# iwlist wlan0 ap 显示热点信息
# iwlist --help 显示帮助信息
# iwlist --version 显示版本信息
搜索到的某一信道实例
pi@raspberrypi:~ $ iwlist wlan0 scanning
wlan0 Scan completed :
Cell 01 - Address: 30:4A:26:50:75:48
Channel:1
Frequency:2.412 GHz (Channel 1)
Quality=70/70 Signal level=-8 dBm
Encryption key:on
ESSID:"lyndon_7549"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
18 Mb/s; 36 Mb/s; 54 Mb/s
Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s
Mode:Master
Extra:tsf=0000000000000000
Extra: Last beacon: 70ms ago
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : PSK
…………
每一个 Cell 代表一个无线网络,下面是部分字段含义:
Address:MAC 地址
Channel:信道
Frequency:中心频点
Quality:信号质量
Signal level:原始信号强度
ESSID:可以认为是 SSID,Wi-Fi 网络名
Bit Rates:波特率
Mode:Master(接入点 AP)
IEEE 802.11i/WPA2 Version 1 加密方式
# iwconfig
系统配置无线网络设备或显示无线网络设备信息。iwconfig 命令类似于 ifconfig 命令,但是他配置对象是无线网卡,它对网络设备进行无线操作,如设置无线通信频段
auto 自动模式
essid 设置 ESSID
nwid 设置网络 ID
freq 设置无线网络通信频段
chanel 设置无线网络通信频段
sens 设置无线网络设备的感知阀值
mode 设置无线网络设备的通信设备
ap 强迫无线网卡向给定地址的接入点注册
nick < 名字 > 为网卡设定别名
rate < 速率 > 设定无线网卡的速率
rts < 阀值 > 在传输数据包之前增加一次握手,确信信道在正常的
power 无线网卡的功率设置
设置网卡为 monitor 模式,以支持转 802.11 报文
sudo ifconfig wlan1 down
sudo iwconfig wlan1 mode monitor
sudo ifconfig wlan1 up
sudo wireshark
# iw
iw 是一种新的基于 nl80211 的用于无线设备的 CLI 配置实用程序。它支持最近已添加到内核所有新的驱动程序。采用无线扩展接口的旧工具 iwconfig 已被废弃,强烈建议切换到 iw 和 nl80211。
Linux 内核的其余部分,iw 仍处于开发阶段。功能被随时添加。 iw 的唯一文档就是此页和 iw help
的输出。 请帮助扩大这个页面。
有一个页面列出 iwconfig 和 iw 的用例:替换 iwconfig.
# iw help # 帮助
# iw list # 获得所有设备的功能,如带宽信息(2.4GHz,和 5GHz),和 802.11n 的信息
# iw dev wlan0 scan # 扫描
# iw event # 监听事件
# iw dev wlan0 link # 获得链路状态
# iw wlan0 connect foo # 连接到已禁用加密的 AP,这里它的 SSID 是 foo
# iw wlan0 connect foo 2432 # 假设你有两个 AP SSID 都是 foo ,你知道你要连接的是在 2432 频道
# iw wlan0 connect foo keys 0:abcde d:1:0011223344 # 连接到使用 WEP 的 AP
# iw dev wlan1 station dump # 获取 station 的统计信息
# iw dev wlan1 station get # 获得 station 对应的 peer 统计信息
# iw wlan0 set bitrates legacy-2.4 12 18 24 # 修改传输比特率
# iw dev wlan0 set bitrates mcs-5 4 # 修改 tx HT MCS 的比特率
# iw dev wlan0 set bitrates mcs-2.4 10
# iw dev wlan0 set bitrates mcs-5 # 清除所有 tx 比特率和设置的东西来恢复正常
# iw dev set txpower [] # 设置传输功率
# iw phy set txpower [] # 设置传输功率
# iw dev wlan0 set power_save on # 设置省电模式
# iw dev wlan0 get power_save # 查询当前的节电设定
# iw phy phy0 interface add moni0 type monitor # 添加一个 monitor 接口
实例
pi@raspberrypi:~ $ sudo iw dev wlan0 scan
BSS 30:4a:26:50:75:48(on wlan0)
TSF: 0 usec (0d, 00:00:00)
freq: 2412
beacon interval: 100 TUs
capability: ESS Privacy ShortSlotTime (0x0411)
signal: -15.00 dBm
last seen: 0 ms ago
SSID: lyndon_7549
Supported rates: 1.0* 2.0* 5.5* 11.0* 9.0 18.0 36.0 54.0
DS Parameter set: channel 1
ERP: Use_Protection Barker_Preamble_Mode
Extended supported rates: 6.0 12.0 24.0 48.0
HT capabilities:
Capabilities: 0x2c
HT20
SM Power Save disabled
RX HT20 SGI
No RX STBC
Max AMSDU length: 3839 bytes
No DSSS/CCK HT40
Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
Minimum RX AMPDU time spacing: 4 usec (0x05)
HT RX MCS rate indexes supported: 0-7
HT TX MCS rate indexes are undefined
HT operation:
* primary channel: 1 // 当前主信道
* secondary channel offset: no secondary // 因为 802.11n 中 40MHz 是通过一个 20MHz 主信道向上或向下绑定一个不重叠辅助 20MHz 信道来实现的,所以这个字段可设置 AP 通过什么方式来实现 40MHz; 设置为 1 表示第二信道是向上偏置,设置为 3 表示第二信道向下偏置,设置为 0 表示当期没有第二信道。
* STA channel width: 20 MHz // 定义可用于传输给 STA 的信道带宽为 20MHz
* RIFS: 0 // 减短帧间间隔,1:开启,0:禁用
* HT protection: no
* non-GF present: 0
* OBSS non-GF present: 0
* dual beacon: 0
* dual CTS protection: 0
* STBC beacon: 0
* L-SIG TXOP Prot: 0
* PCO active: 0
* PCO phase: 0
RSN: * Version: 1
* Group cipher: TKIP
* Pairwise ciphers: TKIP CCMP
* Authentication suites: PSK
* Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)
Extended capabilities:
WMM: * Parameter version 1
* BE: CW 15-1023, AIFSN 3
* BK: CW 15-1023, AIFSN 7
* VI: CW 7-15, AIFSN 2, TXOP 3008 usec
* VO: CW 3-7, AIFSN 2, TXOP 1504 usec
Country: US Environment: Indoor/Outdoor
Channels [1 - 11] @ 16 dBm
# iwpriv
显示
iwpriv ra0 show [parameters]
序号 | parameters | 说明 |
---|---|---|
1 | driverinfo | 驱动版本信息 |
2 | stat | STA TX/RX等统计信息。 |
3 | stainfo | STA信息,MAC地址/RSSI/MCS/Rate等。 |
4 | stacountinfo | STA TX/RX个数信息。 |
5 | stasecinfo | STA认证加密信息。 |
6 | bainfo | BlockAck信息。 |
7 | connStatus | AP-Clinet连接状态。 |
8 | reptinfo | MAC Repeater信息。 |
9 | wdsinfo | WDS连接列表。 |
10 | igmpinfo | IGMP Snooping列表。 |
11 | mbss | MBSS PHY 模式信息。 |
12 | blockch | DFS blocked 信道列表。 |
13 | devinfo | AP Mode, 信道, 带宽。 |
14 | sysinfo | WDEV信息。 |
15 | trinfo | TX/RX Ring配置信息 |
16 | pwrinfo | 功率内部信息 |
17 | txqinfo | TxQ信息 |
18 | sta_tr | AP BSSID/wcid等。 |
19 | stat_reset | 统计清零 |
设置
iwpriv ra0 set [parameters]=[Value]
iwpriv ra0 set Debug=3 // 设置 WLAN 驱动打印级别
iwpriv ra0 set CountryRegion=5 // 设置 2.4G 国家区域
iwpriv ra0 set CountryRegionABand=7 // 设置 5G 国家区域
iwpriv ra0 set SSID=11n-AP // 设置 AP SSID
iwpriv ra0 set Channel=6 // 设置 WiFi 信道
iwpriv ra0 set BeaconPeriod=100 // 设置 Beacon 周期
iwpriv ra0 set TxPower=100 // 设置发射功率百分比
iwpriv ra0 set HideSSID=1 // 设置启用或禁用 SSID 隐藏
iwpriv ra0 set DisConnectSta=00:11:22:33:44:55 // 设置手动断开指定连接的 STA
iwpriv ra0 set DisConnectAllSta=1 // 设置手动断开所有连接的 STA
iwpriv ra0 set MaxStaNum=0 // 设置限制每个 BSS 关联客户端的最大数量
iwpriv ra0 set HwAntDiv=0 // 设置启动或禁用硬件天线分集
iwpriv ra0 set HtBw=1 // 设置 HT WLAN 带宽
iwpriv ra0 set VhtBw=1 // 设置启用或禁用 11AC 80MHz 带宽支持
iwpriv ra0 set HtAmsdu=0 // 设置启用或禁用 AMSDU
iwpriv ra0 set HtTxBASize=64 // 设置一个传输 burst 的 AMSDU 聚合大小的数量
iwpriv ra0 set SiteSurvey= // 进行邻区扫描
iwpriv ra0 get_site_survey // 显示邻区扫描结果
iwpriv ra0 get_mac_table // 显示与 AP 关联的 STA 的 MAC 地址
# wpa_supplicant
wpa_supplicant 工具包含 wpa_supplicant 和 wpa_cli 这 2 个程序,其中 wpa_supplicant 程序作为服务端在后台运行,服务 wpa_cli 客户端的请求,从而实现 WiFi 的配置连接。wpa_supplicant 工具支持 wep、wpa、wpa2 等加密认证方式。 运行 wpa_supplicant,wpa_supplicant 程序作为 wpa_cli 的服务端,必须先启动后,才能给 wpa_cli 访问使用。
配置文件位置:/etc/wpa_supplicant/wpa_supplicant.conf
一般系统会自启 wpa_supplicant,如下:
wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dnl80211,wext
# wpa_cli
help [command] // 显示使用帮助
interface // 显示接口
interface [ifname] // 选择接口
disconnect // 断开当期连接
list_networks // 列出已配置的网络,信息包括:network id / ssid / bssid / flags
get_network <network id> <ssid/psk/key_mgmt> // 获取网络变量
signal_poll // 获取信号参数
add_network // 增加网络
list_networks // 列出网络
set_network <network id> ssid "lyndon_7549" // 设置指定网络的 ssid
set_network <network id> psk "zaqwsxcde" // 设置指定网络的 psk
enable_network <network id> // 使能指定网络
disable_network <network id> // 禁用指定网络
status // 查看当前状态
save_config // 保存当前连接设置到 /etc/wpa_supplicant/wpa_supplicant.conf 文件
# rfkill
打开、关闭无线设备
rfkill [list] // 列出无线设备
rfkill block bluetooth // 按照设备类型禁用设备(例如 bluetooth wlan 或者 all)
rfkill unblock wlan // 按照设备类型启用设备(例如 bluetooth wlan 或者 all)
# nmcli
- 安装
sudo apt install network-manager
- 创建 wifi 连接(SSID:myRouter,密码:12345678,默认使用设备 wlan0)的示例:
sudo nmcli device wifi connect myRouter password 12345678
每次命令执行后,会在 /etc/NetworkManager/system-connections/ 目录下创建一个新文件来保存配置,重复执行则创建多个这样的文件。
给特定网络接口连接 wifi
sudo nmcli device wifi connect myRouter_5G password zaqwsxcde ifname wlan2
- 查看连接信息
ubuntu@ubuntu:~$ nmcli connection show
NAME UUID TYPE DEVICE
MyHostspot c05dd00e-c4da-4991-b4ad-3f5a6015500c wifi wlan1
myRouter 42991d1e-be17-46e7-9276-8b0ec4c445a9 wifi wlan0
myRouter_5G 3e7eac4a-f79b-46c2-9edc-ac83a5a8d2e3 wifi wlan2
查看某个连接的详细信息
nmcli connection show myRouter
- 删除 wifi 连接的示例:
sudo nmcli connection delete myRouter
在 /etc/NetworkManager/system-connections/ 目录下的 Samsung-printer 文件将被删除。
- 启动连接
sudo nmcli device connect wlan0
或
sudo nmcli connection up myRouter
- 关闭连接
sudo nmcli device disconnect wlan0
或
sudo nmcli connection down myRouter
- 创建热点
sudo nmcli device wifi hotspot ifname wlan1 con-name MyHostspot ssid hhtest password 12345678
- 设置某个连接为自动连接
$ sudo nmcli connection modify MyHostspot connection.autoconnect yes
设置后可用下面指令查看
nmcli connection show myRouter
- 扫描 wifi
nmcli device wifi list
# hostapd
hostapd 是用户态的守护进程。能够使得无线网卡切换为 master 模式,模拟 AP 功能,也就是我们所说的软 AP(Soft AP)。其功能就是作为 AP 的认证服务器,负责控制管理 stations 的接入和认证。
sudo hostapd /tmp/create_ap.wlan0.conf.PZlVR1FL/hostapd.conf
# hostapd_cli
hostapd_cli 是用于访问 hostapd 并且获取当前 ap 信息和对 ap 进行操作的客户端程序。
sudo hostapd_cli -p /tmp/create_ap.wlan0.conf.PZlVR1FL/hostapd_ctrl
参考:
iwlist/iwconfig/iw 命令
Wireless network configuration ( 简体中文 )
wpa_supplicant 常用操作
wpa_supplicant、wpa_cli 的使用
无屏幕和键盘配置树莓派 WiFi 和 SSH
树莓派(Raspberry Pi 3)开启和连接蓝牙
wpa_supplicant 配置与应用
软 AP 的实现 ——hostapd 的编译运行
树莓派 . 设置无线网卡为 AP 工作模式 (pi2 和 pi3)
NetworkManager —— nmcli 命令连接 WIFI 和创建热点
nmcli 命令使用
Linux 下软 AP 功能之 Hostapd 介绍
开发调试指令大全–(MTK开发调试命令)