Search
Duplicate

Linux 원격 Xwindow

원리

리눅스 gui는 일종의 프로그램이다.
X11 이라는 디스플레이 서버를 통해 GUI 환경을 그린다.
X클라이언트 (프로그램)가 X서버에 띄울 화면을 알려주고, X서버는 X클라이언트한테 마우스와 키보드 같은 입력을 전달해준다.
물론 원격으로 X클라이언트가 X서버에 요청할수있다.
두 대의 컴퓨터를 사용할 경우 xhost와 display 옵션으로 윈도우 애플리케이션을 다른 컴퓨터의 화면에 띄울 수 있다.
여기서 내 노트북이 "X서버" 이고 원격 데스크톱이 "X클라이언트" 이다.
vnc와 달리 별도의 설정없이 X서버를 사용하는 프로그램이면 바로 사용가능하다

리눅스 원격 환경 (X클라이언트)

1.ssh 설정

/etc/ssh/sshd_config 파일에서
X11Forwarding yes
혹시 안될경우 X11UseLocalhost no
sshd 재시작!
sudo service ssh restart

2. 환경 변수 설정

DISPLAY 환경변수을 설정해준다.
원격_환경_주소:화면
192.168.150.11:0

3. 실행 확인

테스트 프로그램들 설치 sudo apt install x11-apps
xeyes 또는 xclock 으로 실행 확인

윈도우 로컬 환경 (X서버)

1. 윈도우 용 X서버 설치

Xming
Mobaxterm
설치하면 자동으로 Xserver 가 설치되어있다.
Cygwin
따로 Xserver를 설치해줘야함
Cygwin setup 파일 다운로드 및 실행
install from local directory 로 설치 진행
패키지 설치
xorg-server
xinit
xlaunch
virtualgl
프로그램 목록 중에 XLaunch 실행

2. 환경 변수 설정

윈도우 터미널

윈도우 환경변수로 DISPLAY=localhost:0 값을 설정해줘야한다.
하지 않으면 터미널 접속시 DISPLAY 환경변수가 자동 설정되어있지 않아 화면이 뜨지 않는다.

리눅스 터미널(Mobaxterm, Cygwin)

export DISPLAY=:0 설정

3. ssh 원격 접속

원격 접속할때 X11을 허용해야한다.
ssh -X user@hostip
옵션 (필수 아님)
ForwardAgent=yes
ForwardX11=yes
ForwardX11Trusted=yes
접속후 echo $DISPLAY 로 변수 확인

결론

네트워크 상황에 따라서 렉이 걸리고
연결이 끊기면 작업하던게 다 꺼져버리기 때문에 조금 불편하다.