
Когда я пытаюсь использовать команду «ifconfig» в Bash на Ubuntu на Windows (WSL), возникает следующая ошибка:
root@пример:~#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, но большинству из них это знать и не нужно.
Кроме того, iwconfig
это старый инструмент, который использует почти устаревший API WEXT. Я подозреваю, что разработчики больше заботились бы о создании современных инструментов на основе nl80211, таких какiw
работай в первую очередь.
(Даже многие драйверы Linux больше не поддерживают WEXT напрямую — они только эмулируют его поверх nl80211.)