«ifconfig» выдает ошибку на Bash на Ubuntu в Windows

6797
Don't Root here plz...

Когда я пытаюсь использовать команду «ifconfig» в Bash в Ubuntu в Windows (WSL), это выдает мне такую ​​ошибку:

root @ example: ~ # ifconfig
Предупреждение: невозможно открыть / proc / net / dev (такого файла или каталога нет). Ограниченный выход.

И когда я пытаюсь запустить "iwconfig": -

eth0 нет беспроводных расширений.

Wi-Fi нет беспроводных расширений.

нет никаких беспроводных расширений.

und0 нет беспроводных расширений.

und1 нет беспроводных расширений.

Это наводит меня на мысль, что он не обнаружил сетевые устройства, но как работает интернет? Интернет работает хорошо, так как я использовал apt-get для установки приложений;

Я не Linux Pro, не говоря уже о WSL Pro, поэтому я мог бы дать несколько советов о том, как решить эту проблему?

2
Реализация Bash в Windows не полностью реализована, и многие связанные с сетью части ядра в настоящее время не реализованы. MarkoPolo 7 лет назад 0
@MarkoPolo Должен согласиться с этим, поэтому это все еще бета-функция. Don't Root here plz... 7 лет назад 0

1 ответ на вопрос

3
grawity

WSL не запускает полноценное ядро ​​Linux - он только переводит каждый отдельный системный вызов в его вариант Windows. Поэтому WSL не нужно «обнаруживать» устройства так же, как настоящий Linux, потому что сама Windows уже сделала это.

Кроме того, «обнаружение» устройства - это не то же самое, что раскрытие информации о нем. Файлы в /proc/netтолько для информационных целей; они не нужны для реального использования сети. Так что это не большая проблема, если они отсутствуют.

Кроме того, большинство сетевых программ не заботятся о реальных устройствах; они имеют дело только с высокоуровневыми функциями (сокеты BSD) и позволяют ОС обрабатывать детали. Следовательно, до тех пор, пока WSL реализует такие функции, как socket()и, connect()и sendto()этого достаточно.


Ситуация iwconfigсхожа: беспроводные устройства уже управляются самой Windows; WSL просто не знает, как транслировать информацию о ссылках на программы Linux, но большинству из них все равно не обязательно это знать.

Кроме того, iwconfigэто старый инструмент, который использует почти устаревший WEXT API. Я подозреваю, что разработчики больше заботятся о том, чтобы современные инструменты на основе nl80211, например, iwработали в первую очередь.

(Даже многие драйверы Linux больше не поддерживают WEXT напрямую - они эмулируют его только поверх nl80211.)

Хм, я вижу. Как мне выполнять такие вещи, как расширенный мониторинг сети, если WSL даже не обнаруживает сетевые подключения / адаптеры? Я проголосовал, но позвольте мне увидеть, если кто-то ответит, прежде чем принять. Don't Root here plz... 7 лет назад 0
Либо используйте собственные программы Windows (хотите tcpdump, используйте Wireshark), либо подождите, пока Microsoft улучшит подсистему WSL (например, см. [Выпуск 66] (https://github.com/Microsoft/BashOnWindows/issues/66), [выпуск 239] ( https://github.com/Microsoft/BashOnWindows/issues/239)). grawity 7 лет назад 0

Похожие вопросы