"ifconfig" gibt einen Fehler in Bash unter Ubuntu unter Windows aus

6990
Don't Root here plz...

Wenn ich versuche, den Befehl "ifconfig" unter Bash unter Ubuntu unter Windows (WSL) zu verwenden, wird ein Fehler wie folgt angezeigt: -

root @ example: ~ # ifconfig
Warnung: / proc / net / dev kann nicht geöffnet werden (keine solche Datei oder ein solches Verzeichnis). Begrenzte Ausgabe

Und wenn ich versuche, "iwconfig" auszuführen: -

eth0 keine drahtlosen Erweiterungen.

Wifi0 keine Wireless-Erweiterungen.

Es gibt keine drahtlosen Erweiterungen.

keine drahtlosen Erweiterungen.

und1 keine drahtlosen Erweiterungen.

Dies lässt mich glauben, dass es die Netzwerkgeräte nicht erkannt hat, aber wie funktioniert das Internet? Internet funktioniert gut, da ich mit apt-get Apps installiert habe.

Ich bin kein Linux-Profi, geschweige denn ein WSL-Profi. Könnte ich Ihnen ein paar Ratschläge geben, wie Sie dieses Problem lösen können?

2
Die Bash-Implementierung unter Windows ist nicht vollständig ausgestattet, und viele netzwerkbezogene Teile des Kernels sind derzeit nicht implementiert. MarkoPolo vor 8 Jahren 0
@MarkoPolo Muss damit einverstanden sein, deshalb ist es immer noch eine Beta-Funktion. Don't Root here plz... vor 8 Jahren 0

1 Antwort auf die Frage

3
grawity

WSL führt keinen vollständigen Linux-Kernel aus, sondern übersetzt nur jeden einzelnen Syscall in seine Windows-Variante. Daher WSL nicht brauchen zu „erkennen“ Geräte die gleiche Art und Weise echte Linux würde, da Windows selbst schon getan hat.

Außerdem ist das "Erkennen" eines Geräts ohnehin nicht dasselbe wie das Anzeigen von Informationen. Die Dateien /proc/netsind nur zu Informationszwecken; Sie werden nicht benötigt, um das Netz tatsächlich zu nutzen. Es ist also kein großes Problem, wenn sie fehlen.

Darüber hinaus kümmern sich die meisten Netzwerkprogramme nicht um die tatsächlichen Geräte. Sie befassen sich nur mit übergeordneten Funktionen (BSD-Sockets) und lassen das Betriebssystem die Details handhaben. Daher solange WSL implementiert Funktionen wie socket()und connect()und sendto(), das ist genug.


Die Situation iwconfigist ähnlich: Die drahtlosen Geräte werden bereits von Windows selbst verwaltet. WSL weiß einfach nicht, wie sie die Link-Informationen in Linux-Programme umwandeln soll, aber die meisten von ihnen müssen das sowieso nicht wissen.

Außerdem iwconfigist ein altes Tool, das die fast veraltete WEXT-API verwendet. Ich vermute, die Entwickler würden sich mehr darum kümmern, moderne, auf nl80211 basierende Tools wie die iwArbeit zuerst zu erstellen .

(Auch viele Linux-Treiber unterstützen WEXT nicht mehr direkt, sie emulieren sie nur auf nl80211.)

Hmmm, ich verstehe. Wie mache ich Dinge wie die erweiterte Netzwerküberwachung, wenn WSL nicht einmal die Netzwerkverbindungen / Adapter erkennt? Ich habe zugesagt, aber lassen Sie mich sehen, ob noch jemand antwortet, bevor Sie ihn annehmen. Don't Root here plz... vor 8 Jahren 0
Verwenden Sie entweder native Windows-Programme (möchten Sie tcpdump verwenden? Wireshark verwenden) oder warten Sie, bis Microsoft das WSL-Subsystem verbessert hat (z. B. [Problem 66] (https://github.com/Microsoft/BashOnWindows/issues/66), [Problem 239] ( https://github.com/Microsoft/BashOnWindows/issues/239)). grawity vor 8 Jahren 0