![WSL[2]은 게스트 Linux 시스템에 어떤 제한을 두나요?](https://rvso.com/image/1711497/WSL%5B2%5D%EC%9D%80%20%EA%B2%8C%EC%8A%A4%ED%8A%B8%20Linux%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%97%90%20%EC%96%B4%EB%96%A4%20%EC%A0%9C%ED%95%9C%EC%9D%84%20%EB%91%90%EB%82%98%EC%9A%94%3F.png)
Windows PC에 WSL2를 받자마자 설치했습니다.CentOS 8.2 적용버전. 탐색하면서 호스트의 NTFS 파일 시스템을 즉시 읽고 쓸 수 있다는 사실을 발견했습니다. 인터넷에도 연결되어 있었지만 연결을 관리하는 방법을 찾을 수 없었습니다. Network Manager를 설치할 수 있지만 명령을 Could not create NMClient object
실행할 때마다 메시지가 표시됩니다 nmcli
. SELinux( )를 찾지 못했습니다 getenforce
. 방화벽 firewall-cmd
을 설치했지만 Failed to connect to socket /run/dbus/system_bus_socket
. systemctl
오류가 System has not been booted with systemd...
발생했습니다. 그런 다음"WSL용 페도라 리믹스"Windows 앱 스토어에서 9.99달러에 다음과 같은 메모와 함께 제공되었습니다.
다음 패키지는 WSL용 Fedora Remix의 기본 설치에서 제거되었습니다: grub, plymouth, kernel, sssd, linux-firmware, dracut, parted, e2fsprogs, iprutils, ppc64-utils, selinux-policy,policycoreutils, sendmail, Firewalld, fedora-release, fedora-logos 및 fedora-release-notes.
그렇다면 주요 질문은 다음과 같습니다. Linux 기능은 WSL에 의해 어떻게 제한됩니까?
그런 다음 우리가 관심을 갖는 것은 분명히 이러한 문제를 해결하는 방법입니다. 첫 번째 걱정은: 인터넷 연결이 안전한가요? 사람들이 일부 서비스를 통해 내 WSL Linux에 연결할 수 있는 경우 사람들이 내 호스트 PC에 들어가는 것을 막는 방화벽이 없는 것 같습니다. 위에 쓴 내용과 관련하여: 왜 해당 오류가 발생합니까 nmcli
? 어쨌든 SELinux를 실행하는 것이 가능합니까? 어쨌든 에서처럼 유닛을 관리하는 것이 가능합니까 systemctl
?
답변1
WSL2는 기본적으로 실제 Linux 커널과 사용자 지정 초기화 시스템을 사용하는 Linux VM입니다. 이 사용자 정의 커널은 특수 드라이버를 사용하여 Windows 파일 시스템에 액세스하는 방법을 알고 있으며 가상 네트워크 어댑터를 통해 인터넷 액세스를 받습니다.
sysvinit
시스템 표준 초기화 시스템( 또는 중 하나)을 사용하지 않기 때문에 systemd
시스템이 일반적으로 시작하는 모든 서비스(예: )를 시작하지 않습니다 dbus
. 따라서 실행은 systemctl
서비스를 시작하거나 중지하는 데 작동하지 않으며 dbus
실행이 필요한 프로그램은 수동으로 시작하거나 적절한 sysvinit 스타일 스크립트를 사용하여 시작해야 합니다. 후자는 거의 모든 초기화 시스템에서 작동합니다.
WSL2는 부팅을 거의 즉각적으로 수행하기 때문에 이 사용자 지정 초기화 시스템을 사용합니다. 그렇지 않으면 제대로 작동하려면 Linux 시스템이 완전히 부팅될 때까지 기다려야 합니다. 결과적으로 전체 Linux 시스템을 설정하거나 부팅에만 필요한 패키지는 필요하지 않습니다.
사용하는 방화벽이 있는 경우 Linux 시스템이 아닌 Windows 시스템에서 구성해야 합니다. 원한다면 nftables
or 를 직접 사용할 수도 있지만 의존하는 것은 무엇 이든 좋습니다. 비슷한 이유로 네트워크 액세스는 Windows에 의해 제어되고 Windows 네트워킹 스택의 기능을 반영하므로 Network Manager를 사용하지 않습니다.iptables
systemd
SELinux가 WSL에서 작동하지 않는 이유가 확실하지 않습니다. Microsoft Linux 커널이 이를 사용하여 구축하거나 활성화하지 않기 때문일 수도 있고, 다른 운영 체제가 SELinux를 원하지 않기 때문일 수도 있습니다(예: Debian 및 Ubuntu는 AppArmor를 선호함). 모듈이거나 drvfs(WSL 파일 시스템)가 필요한 기능을 지원하지 않을 수도 있습니다.
완전한 기능을 갖춘 Linux 환경을 원한다면 실제 Linux 배포판을 설치해야 합니다. WSL2는 Windows 시스템을 사용하고 이중 부팅 없이 Linux용 애플리케이션을 개발 또는 실행하려는 경우 또는 Windows를 사용해야 하지만 Linux를 선호하지만 전체 Linux 시스템을 대체할 수는 없는 경우에 적합합니다.