iwpriv 是什么?
iwpriv 是一个用于配置和查看无线网卡 私有(Private) 或 特定驱动(Driver-Specific) 选项的命令行工具。

iwconfig:用于配置通用的、标准化的无线参数(如ESSID、频道、模式等),这些参数遵循 IEEE 802.11 标准。iwpriv:用于配置那些没有标准、或者由特定网卡驱动厂商自己扩展的高级或调试功能,这些功能通常是iwconfig无法触及的。
核心要点:
- 驱动依赖性:
iwpriv的可用命令和参数完全取决于你正在使用的无线网卡驱动,不同的驱动(如ath5k,ath9k,b43,rt2x00等)有不同的私有命令集。 - 非标准化:同一个功能(比如开启信号强度探测),在不同驱动下可能需要使用完全不同的
iwpriv命令。 - 调试和高级功能:它通常用于开启/关闭硬件特性、调整底层参数、进行故障排查等,一般普通用户很少需要使用。
如何使用 iwpriv?
基本语法
iwpriv [无线接口名称] [命令] [参数]
[无线接口名称]:通常是wlan0,wlp3s0等,你可以使用iwconfig命令来查看所有可用的无线接口。[命令]:要执行的私有命令,get,set,monitor等。[参数]:命令所需的参数,例如要设置的值。
查看可用命令
要查看某个无线接口支持哪些私有命令,你可以使用 help 命令:
iwpriv wlan0 help
示例输出(以一个 ath9k 驱动为例):
wlan0 IEEE 802.11abgn ESSID:off/any
Mode:Managed Access Point: Not-Associated
Retry short:off RTS thr:off Fragment thr:off
Power Management:on
Link Quality=70/70 Signal level=-21 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
wlan0 commands:
get <param> Get a parameter
set <param> <value> Set a parameter
dot11n Show dot11n related information
...
这个输出会告诉你该驱动支持哪些命令(如 get, set)以及它们的作用。

常用命令和实例
iwpriv 的具体用法千差万别,但有一些常见的模式,下面我们以一些经典的驱动为例进行说明。
实例 1:开启/关闭混杂模式(Monitor Mode)
混杂模式是抓包工具(如 Wireshark, Aircrack-ng)工作的基础,让网卡接收所有数据包,而不仅仅是发给自己的。
对于使用 rt2x00 驱动的网卡:
# 查看是否支持 monitor 命令 iwpriv wlan0 help # 开启混杂模式 iwpriv wlan0 monitor 1 # 关闭混杂模式 iwpriv wlan0 monitor 0
对于使用 ath5k/ath9k 驱动的网卡(通常使用 iw 命令):

现代的 ath9k 驱动通常推荐使用更通用的 iw 命令来设置混杂模式。
# 开启混杂模式 iw wlan0 set monitor enable # 关闭混杂模式 iw wlan0 set monitor disable
注意:
iw是iwconfig的继任者,功能更强大,正在逐步取代iwconfig和iwpriv,对于很多新功能,应优先尝试iw命令。
实例 2:查看或设置驱动特有参数
很多驱动允许你通过 get 和 set 命令来调整底层参数。
对于使用 b43 驱动的旧网卡:
# 查看所有可设置的参数 iwpriv wlan0 get # 示例:开启/关闭 LED 灯 iwpriv wlan0 led 0 # 关闭 LED iwpriv wlan0 led 1 # 开启 LED # 示例:设置 TX 功率(单位为 dBm,范围取决于硬件) iwpriv wlan0 txpower 15
对于使用 hostapd 的 AP 模式(特定于某些驱动):
在将网卡设置为 AP(接入点)模式时,可能需要用 iwpriv 来设置一些与 AP 相关的私有选项。
# 设置隐藏 SSID iwpriv wlan0 hidden 1 # 取消隐藏 SSID iwpriv wlan0 hidden 0
iwpriv vs. iwconfig vs. iw
这是一个非常重要的区别,理解它们能帮助你更好地管理无线网络。
| 特性 | iwconfig |
iwpriv |
iw |
|---|---|---|---|
| 全称 | Wireless Configuration | Wireless Private | Wireless Tools (新) |
| 定位 | 传统的无线网络配置工具 | 驱动私有的高级/调试工具 | 现代的无线网络配置工具 |
| 标准 | 遵循 IEEE 802.11 标准 | 不遵循标准,驱动相关 | 遵循 IEEE 802.11 标准,并扩展了新功能 |
| 主要功能 | 设置 ESSID, BSSID, 信道, 模式(Ad-hoc/Managed), 密钥, 速率等 | 设置驱动特有功能,如开启/关闭硬件特性、调试模式、底层参数 | iwconfig 的超集,支持所有 iwconfig 功能,并增加了 VHT/HE (802.11ac/ax), 空间复用, MLO 等新特性 |
| 使用场景 | 日常的无线连接配置 | 故障排查、开启特殊硬件功能、旧系统维护 | 现代 Linux 发行版的首选,进行所有无线配置 |
| 示例 | iwconfig wlan0 essid MyNetwork |
iwpriv wlan0 monitor 1 |
iw wlan0 connect MyNetworkiw dev wlan0 set channel 6 |
总结建议:
- 优先使用
iw:如果你使用的是近几年的 Linux 发行版(如 Ubuntu 18.04+, CentOS 8+, Arch Linux 等),请优先使用iw命令,它是未来,功能更强大且标准。 iwconfig作为备选:iw基本上可以完全替代iwconfig,如果你发现某个iwconfig的命令在iw中找不到,可以查阅iw的帮助手册,它通常提供了新的替代命令。iwpriv用于特殊调试:只有当你需要配置iw和iwconfig都无法提供的、驱动特有的功能时,才考虑使用iwpriv,使用前务必查阅你的网卡驱动的官方文档。
重要注意事项
-
需要 root 权限:所有
iwpriv命令都需要管理员权限才能执行,请在命令前加上sudo。sudo iwpriv wlan0 monitor 1
-
风险性:
iwpriv可以直接操作硬件底层参数,错误的设置可能会导致网卡工作异常、网络连接断开,甚至在极少数情况下损坏硬件(虽然非常罕见)。修改前请务必了解其作用,并最好查阅相关驱动的文档。 -
过时性:随着
iw工具的成熟,很多原本需要iwpriv实现的功能已经被整合到了iw中,你可能会发现iwpriv在新系统或新驱动上已经不再被支持或使用。
