Windows10 WSL2에서 Linux GUI 실행하기

최근 CVE 분석할 때 실습하거나 Wargame 풀 때 여러 OS 환경에서 해보는 중이라 (ubuntu 16.04/18.04/kali 등등..)

virtual OS를 사용하는 경우가 많아진 겸 VMware, Virtualbox, Docker, WSL2를 한번씩 다 써보고 있는 중이다.

맛만보자 컨셉 

 

WSL2를 활성화 한 후 Ubuntu 18.04를 설치하고 wsl2 환경에서 gui를 실행하기 위한 방법을 찾아보았으나

MS에서 공식적으로 support 해주는 linux gui app은 Windows11 build 22000 이상을 전제로 하고 있다.

 

Windows 11

https://docs.microsoft.com/ko-kr/windows/wsl/tutorials/gui-apps

 

WSL을 사용하여 Linux GUI 앱 실행

WSL에서 Linux GUI 앱 실행을 지원하는 방법을 알아봅니다.

docs.microsoft.com

Windows11 사용자의 경우 위의 docs를 참고하여 진행하면 될 것 같다.

 

 

Windows10

필자는 현재 OS를 Windows10으로 사용중이므로 아래의 블로그를 참고하여 진행하였다.

https://psychoria.tistory.com/739

 

 

1. VcXsrv Windows X Server 설치

설치 링크

https://sourceforge.net/projects/vcxsrv/ 

 

VcXsrv Windows X Server

Download VcXsrv Windows X Server for free. Windows X-server based on the xorg git sources (like xming or cygwin's xwin), but compiled with Visual C++ 2012 Express Edition. Source code can also be compiled with VS2008, VS2008 Express Edition and VS2010 Expr

sourceforge.net

 

install 파일 실행 시 뜨는 설치 옵션 설정 화면

 

설치 경로 설정

 

설치 완료

 

설치 완료 후 최근 설치된 앱에 XLaunch가 확인된다. 해당 앱을 실행한다.

 

 

2. XLanch 실행 및 설정

default로 설정된 값을 그대로 유지하고 다음 클릭

 

⭐ GUI 프로그램 실행 시 권한 문제 발생 방지를 위해 Disable access control을 check 해야 한다고 함

 

⭐ Save configuration 클릭하여 현재 설정 파일 저장

 

 

3. 방화벽 설정

위 단계에서 마침 버튼 누르면 VcXsrv가 바로 실행되고 방화벽 설정 팝업이 뜬다.

default로 한 후 액세스 허용 클릭

 

 

4. WSL Display 설정

wsl에 설치된 Ubuntu를 실행하여 아래의 명령어 수행

export DISPLAY="`grep nameserver /etc/resolv.conf | sed 's/nameserver //'`:0"
export LIBGL_ALWAYS_INDIRECT=1

 

이후 연결할 때마다 해당 명령어가 자동 적용되도록 .bashrc 파일에 내용 추가

sudo nano ~/.bashrc

Ctrl+X로 Exit 후 Y 입력하여 변경 내용 저장

❗ Yes를 선택하면 저장할 파일명을 입력하도록 안내하는데 default로 현재 파일 이름이 써져 있으므로 그대로 변경하지 않고 Enter 입력하면 nano가 종료된다. (참고)

 

 

5. Test

이제 GUI 프로그램 사용이 가능해졌는지 Test 해보도록 한다.

 

gedit 설치

sudo apt-get update
sudo apt install gedit

 

gedit 실행 

정상적으로 GUI 프로그램이 동작하는 것을 확인 할 수 있다.

 

😎 firefox도 설치, 실행 완료

 

 

ref : https://psychoria.tistory.com/739

'Knowledge' 카테고리의 다른 글

Docker 명령어 정리  (0) 2022.05.03
⭐ 참고 사이트 정리  (0) 2021.07.03
Front-End ( 프론트 엔드 ) vs Back-End ( 백엔드 )  (0) 2019.09.25
네이밍 컨벤션 ( Naming Convention )  (0) 2019.09.23
도커 ( Docker )  (0) 2019.09.11