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
- 下一篇: 测试透射晶格分析的软件,透射电镜(TEM