2

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

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

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

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

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

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

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

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

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

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

1 ответ1

3

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.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .