Linux WiFi 射频开关`rfkill`控制无线网启停与`ifconfig`显示的关系
1 rfkill命令簡介
rfkill命令可以用來打開和關閉WiFi的射頻開關。
1.1 rf的含義
射頻(rf)是Radio Frequency的縮寫,rfkill可以管理wifi、wlan、bluetooth、uwb、wimax、wwan、gps、fm、nfc無線信號。
這種開關在某種程度上能夠控制硬件的狀態(tài),使用的例子有:飛行模式、硬件節(jié)能。
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 正常的現(xiàn)象
假設我的當前系統(tǒng)里面存在一個網(wǎng)卡wlan0,關閉其射頻信號,之后使用ifconfig則查看不到wlano這個網(wǎng)卡的信號了,代碼(代碼1)如下:
rfkill block wifi ifconfig然后我再使用rfkill打開射頻,之后就可以使用ifconfig查看到wlan0了,具體代碼(代碼2)如下:
rfkill unblock wifi ifconfig2.2 為什么這樣使用
由于存在這種特性,則計劃使用這種特性來,查看ifconfig來確定某個無線網(wǎng)卡的狀態(tài)。
為什么不使用rfkill list來查看對應無線設備的狀態(tài)了?
這時因為,在展示的列表中,對應的設備只有編號,并不是很客觀能與具體那個無線設備聯(lián)系起來。
2.3 發(fā)現(xiàn)的問題
但是發(fā)現(xiàn)一個問題,在我多次交替執(zhí)行打開/關閉WiFi設備之后,無論是打開還是關閉設備,這個無線網(wǎng)在ifconfig中一直顯示,發(fā)現(xiàn)上面的判斷的規(guī)律失效了,我嘗試的系統(tǒng)是CentOS7.x。
2.4 配合ifconfig up/down解決問題
當我還想使用這個rfkill和ifconfig判斷是否關閉wlan0,怎么做呢?
我發(fā)現(xiàn)使用ifconfig interface up/down能夠控制ifconfig中顯示。如果我在使用rfkill啟停網(wǎng)絡之后,再配合使用ifconfig interface up/down,那么這樣就能再使用ifconfig就能達到剛才的功能了。
在具體執(zhí)行的時候,只有rfkill啟動了射頻,才能使用ifconfig interface up,因此在逆向操作時候,先執(zhí)行ifconfig interface down再執(zhí)行rfkill停止射頻。具體代碼如下:
這樣在其他程序或者進程/線程中就能使用ifconfig方便判斷硬件射頻啟停的狀態(tài)了。
3 其他建議
由于ifconfig命令已經(jīng)算是過時的命令,則實際使用中,最后慢慢擺脫對于這個命令的依賴,使用ip命令代替。
本文章討論的時候,只存在一個WiFi網(wǎng)絡,所有可以方便使用rfkill block/unblock wifi粗略控制開關,否則具體控制設備編號開控制啟停。
本文章對于是否禁掉無線的判斷使用ifconfig并不是最好的,可以用其他更好方法嘗試。
總結
以上是生活随笔為你收集整理的Linux WiFi 射频开关`rfkill`控制无线网启停与`ifconfig`显示的关系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Exception in thread
- 下一篇: 测试透射晶格分析的软件,透射电镜(TEM