Linux WiFi 射频开关`rfkill`控制无线网启停与`ifconfig`显示的关系
1 rfkill命令简介
rfkill命令可以用来打开和关闭WiFi的射频开关。
1.1 rf的含义
射频(rf)是Radio Frequency的缩写,rfkill可以管理wifi、wlan、bluetooth、uwb、wimax、wwan、gps、fm、nfc无线信号。
这种开关在某种程度上能够控制硬件的状态,使用的例子有:飞行模式、硬件节能。
1.2 常用命令
rfkill常用有如下的命令:
# 罗列出所有的无线设备 rfkill list# 关闭所有的射频设备 rfkill block all # 打开所有的射频设备 rfkill unblock all# 可以关掉/打开某种类型的设备,例如WiFi rfkill block wifi rfkill unblock wifi# 也可以对于某个设备进行打开和关闭 # 下面的编号可以从`rfkill list`中查看 rfkill block/unblock 编号2 rfkill与ifconfig配合使用
2.1 正常的现象
假设我的当前系统里面存在一个网卡wlan0,关闭其射频信号,之后使用ifconfig则查看不到wlano这个网卡的信号了,代码(代码1)如下:
rfkill block wifi ifconfig然后我再使用rfkill打开射频,之后就可以使用ifconfig查看到wlan0了,具体代码(代码2)如下:
rfkill unblock wifi ifconfig2.2 为什么这样使用
由于存在这种特性,则计划使用这种特性来,查看ifconfig来确定某个无线网卡的状态。
为什么不使用rfkill list来查看对应无线设备的状态了?
这时因为,在展示的列表中,对应的设备只有编号,并不是很客观能与具体那个无线设备联系起来。
2.3 发现的问题
但是发现一个问题,在我多次交替执行打开/关闭WiFi设备之后,无论是打开还是关闭设备,这个无线网在ifconfig中一直显示,发现上面的判断的规律失效了,我尝试的系统是CentOS7.x。
2.4 配合ifconfig up/down解决问题
当我还想使用这个rfkill和ifconfig判断是否关闭wlan0,怎么做呢?
我发现使用ifconfig interface up/down能够控制ifconfig中显示。如果我在使用rfkill启停网络之后,再配合使用ifconfig interface up/down,那么这样就能再使用ifconfig就能达到刚才的功能了。
在具体执行的时候,只有rfkill启动了射频,才能使用ifconfig interface up,因此在逆向操作时候,先执行ifconfig interface down再执行rfkill停止射频。具体代码如下:
这样在其他程序或者进程/线程中就能使用ifconfig方便判断硬件射频启停的状态了。
3 其他建议
由于ifconfig命令已经算是过时的命令,则实际使用中,最后慢慢摆脱对于这个命令的依赖,使用ip命令代替。
本文章讨论的时候,只存在一个WiFi网络,所有可以方便使用rfkill block/unblock wifi粗略控制开关,否则具体控制设备编号开控制启停。
本文章对于是否禁掉无线的判断使用ifconfig并不是最好的,可以用其他更好方法尝试。
总结
以上是生活随笔为你收集整理的Linux WiFi 射频开关`rfkill`控制无线网启停与`ifconfig`显示的关系的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Exception in thread
- 下一篇: linux mkdir命令用法,linu