
當我嘗試在 Windows(WSL)上的 Ubuntu(WSL)上的 Bash 上使用命令“ifconfig”時,它給我一個以下錯誤:-
根@範例:~#如果配置
警告:無法開啟/proc/net/dev(沒有這樣的檔案或目錄)。產量有限。
當我嘗試執行“iwconfig”時:-
eth0 沒有無線擴充。
wifi0 沒有無線擴充。
沒有無線擴充。
und0 無無線擴充。
und1 無無線擴充。
這讓我相信它沒有偵測到網路設備,但是網路是如何運作的呢?正如我所使用的那樣,網路運作良好apt-get安裝應用程式;
我不是 linux 專業人士,更不用說 wsl 專業人士了,所以我能就如何克服這個問題提供一些建議嗎?
答案1
WSL 不運行完整的 Linux 核心 - 它僅將每個單獨的系統呼叫轉換為其 Windows 變體。因此 WSL 不需要像真正的 Linux 一樣「檢測」設備,因為 Windows 本身已經做到了這一點。
此外,無論如何,「檢測」設備與暴露有關該設備的資訊並不是一回事。中的文件/proc/net
僅供參考;實際使用網路不需要它們。所以如果他們失蹤了也不是什麼大問題。
此外,大多數網路程式不管關於實際設備;它們只處理高級功能(BSD套接字)並讓作業系統處理細節。因此,只要 WSL 實作socket()
和connect()
等功能sendto()
就足夠了。
情況iwconfig
類似:無線設備是已經由Windows本身管理; WSL 只是不知道如何將連結資訊轉換為 Linux 程序,但大多數 Linux 程式都不需要知道這一點。
此外,iwconfig
它是一個使用幾乎過時的 WEXT API 的舊工具。我懷疑開發人員會更關心製作基於 nl80211 的現代工具,例如iw
先工作。
(甚至許多 Linux 驅動程式不再直接支援 WEXT – 它們僅在 nl80211 之上模擬它。)