티스토리 뷰

리눅스에서 지원하는 gui exe 파일을 실행하기 위해선

window 기준으로 X11 툴을 사용하여 포워딩을 통해 gui exe 파일을 실행시킬 수 있다.

 

xhost + localhost:0  방식과 xauth list 에 직접 추가하는 방식을 도입해보았지만, 해결이 되지 않았고,

sshd 설정 또한 수정한 적이 없었기 때문에 원인을 알기가 어려웠다.

 

본인의 경우 방법3. 6000 번 포트 공유 활성화 방법을 통해 해결할 수 있었다....

근본적으로 해당 포트로 공유되는데 window 에서 어떤 이유인지 막힌 원인으로 되지 않았던 것으로 예측한다.

 

만약 이유를 아신다면 댓글로 알려주시면 감사하겠다....

 

방법 1. X11 포워딩 확인

vi /etc/ssh/sshd_config 설정

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

 

sshd 재시작

sudo systemctl restart sshd

 

방법 2. DISAPLY 환경 변수 확인

1. export 설정 수동 설정

- localhost 는 192.168.0.0 의 형태의 window ip 를 입력해주며, display 값은 xlaunch 실행 시에 설정한 Display number 를 입력해준다. ( 소숫점이 영향을 받기도 하니 정확히 입력해주는 것이 좋다. )

- 해당 유저로 실행할 때 자동으로 설정하고 싶다면 .bash_profile 에 추가해주면 된다.

export DISPLAY=localhost:0.0

 

2. Display 값 적용 확인

echo $DISPLAY

 

방법 3. Xming / X 서버 확인 ( 본인은 이 방법으로 해결 )

1. Windows에서 X 서버(Xming, VcXsrv 등)가 실행 중인지 확인

2. 6000번 포트를 사용하도록 설정

- Xming의 실행 파일은 일반적으로 C:\Program Files (x86)\Xming\Xming.exe에 존재한다. 경로는 사용자의 경로에 맞게 설정 후 cmd 에서 실행시킨다.

"C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow -ac

 

:0 의 경우 X 서버 디스플레이 번호로 :0 은 기본적으로 6000 번 포트를 의미한다.

따라서 -clipboard 옵션으로 windows와 X11 클립 보드 공유를 활성화 시킨 후 -multiwindow 옵션을 통해 X 어플리케이션을 별도 창으로 표시할 수 있도록 설정했다.

-ac 는 X 서버 인증 비활성화 옵션으로 보안이 필요하지 않은 로컬 환경에서만 동작하도록 설정해주었다. ( 본인 window 는 방화벽이 내려가있는 상태이다. )

 

방법 4. 방화벽 설정

1. Windows 방화벽 허용

- 제어판 → Windows Defender 방화벽 → 허용되는 앱 → 앱 허용에서 Xming.exe를 추가

2. 6000번 포트 열기

netsh advfirewall firewall add rule name="Xming 6000" dir=in action=allow protocol=TCP localport=6000
댓글