"ifconfig"가 Windows Ubuntu의 Bash에서 오류를 발생시킵니다.

"ifconfig"가 Windows Ubuntu의 Bash에서 오류를 발생시킵니다.

Windows(WSL)의 Ubuntu에서 Bash에 대해 "ifconfig" 명령을 사용하려고 하면 다음과 같은 오류가 발생합니다.

루트@예:~#ifconfig
경고: /proc/net/dev를 열 수 없습니다(해당 파일이나 디렉터리가 없습니다). 제한된 출력.

그리고 "iwconfig"를 실행하려고 하면 :-

eth0에는 무선 확장이 없습니다.

wifi0 무선 확장이 없습니다.

무선 확장이 없습니다.

und0 무선 확장이 없습니다.

und1 무선 확장이 없습니다.

이로 인해 네트워크 장치가 감지되지 않았다고 믿게 되었습니다. 그렇다면 인터넷은 어떻게 작동합니까? 인터넷이 잘 작동해요. 제가 사용해본 것처럼요.적절한앱 설치

저는 wsl 전문가는 물론이고 Linux 전문가도 아닙니다. 그렇다면 이 문제를 극복하는 방법에 대한 조언을 좀 주실 수 있을까요?

답변1

WSL은 전체 Linux 커널을 실행하지 않으며 각 개별 syscall을 Windows 변형으로만 변환합니다. 따라서 WSL은 그렇지 않습니다.필요실제 Linux와 동일한 방식으로 장치를 "감지"합니다. Windows 자체에서 이미 그렇게 했기 때문입니다.

게다가 장치를 "탐지"하는 것은 장치에 대한 정보를 노출하는 것과는 다릅니다. 의 파일은 /proc/net정보 제공 목적으로만 사용됩니다. 실제로 인터넷을 사용하는 데는 필요하지 않습니다. 따라서 없어져도 큰 문제는 되지 않습니다.

게다가,대부분의 네트워크 프로그램상관 안해실제 장치에 대해;상위 수준 기능(BSD 소켓)만 처리하고 OS가 세부 사항을 처리하도록 합니다. 따라서 WSL이 socket()connect()및 같은 기능을 구현하는 한 sendto()그것으로 충분합니다.


상황은iwconfig 비슷합니다. 무선 장치는이미Windows 자체에서 관리됩니다. WSL은 링크 정보를 Linux 프로그램으로 변환하는 방법을 모르지만 대부분은 어쨌든 그것을 알 필요가 없습니다.

게다가 iwconfig거의 사용되지 않는 WEXT API를 사용하는 오래된 도구입니다. 나는 개발자들이 다음과 같은 최신 nl80211 기반 도구를 만드는 데 더 관심을 가질 것이라고 생각합니다.iw먼저 일하세요.

(심지어 많은 Linux 드라이버도 더 이상 WEXT를 직접 지원하지 않습니다. nl80211 위에서만 에뮬레이션합니다.)

관련 정보