“ifconfig”在 Windows 上的 Ubuntu 上的 Bash 上给出错误

“ifconfig”在 Windows 上的 Ubuntu 上的 Bash 上给出错误

当我尝试在 Windows(WSL)上的 Ubuntu 上的 Bash 上使用命令“ifconfig”时,它给出了如下错误:-

root@example:~#是否配置
警告:无法打开 /proc/net/dev(没有此文件或目录)。输出有限。

当我尝试运行“iwconfig”时:-

eth0 没有无线扩展。

wifi0 没有无线扩展。

没有无线扩展。

und0 没有无线扩展。

und1 没有无线扩展。

这让我相信它没有检测到网络设备,但互联网是如何工作的?互联网运行良好,因为我用过apt-get安装应用程序;

我不是 Linux 专业人士,更不用说 WSL 专业人士了,所以我能就如何解决这个问题提供一些建议吗?

答案1

WSL 不运行完整的 Linux 内核——它只将每个单独的系统调用转换为其 Windows 版本。因此 WSL 不需要以与真正的 Linux 相同的方式“检测”设备,因为 Windows 本身已经这样做了。

此外,“检测”设备与公开有关设备的信息并不是一回事。 文件中的文件/proc/net仅用于提供信息;实际使用网络时不需要它们。 因此,如果丢失了它们,也不会有什么大问题。

此外,大多数网络程序不管关于实际的设备;它们只处理高级函数(BSD 套接字),让 OS 处理细节。因此,只要 WSL 实现socket()connect()和 之类的函数sendto()就足够了。


情况iwconfig类似:无线设备已经由 Windows 本身管理;WSL 只是不知道如何将链接信息转换为 Linux 程序,但无论如何,大多数程序都不需要知道这一点。

此外,iwconfig这是一个使用几乎过时的 WEXT API 的旧工具。我怀疑开发人员更关心制作基于 nl80211 的现代工具,例如iw先工作。

(甚至许多 Linux 驱动程序不再直接支持 WEXT – 它们仅在 nl80211 之上模拟它。)

相关内容