본문 바로가기
운영체제 (LNX,WIN)

원격서버 X window 프로그램 실행

by 날으는물고기 2009. 7. 7.

원격서버 X window 프로그램 실행

원격 서버(일반적으로 유닉스계열의 서버를 의미합니다.)에 접속해서 실제 실행은 서버에서 하고 키보드 마우스 입력과 화면 출력은 맥에서 할 수 있습니다. 일반 사용자 입장에서 어떻게 보면 윈격 데스크탑 연결이나 vnc랑 비슷하긴 한데 사실 조금 성격이 다른 서비스입니다.

원격 서버측의 X window 어플리케이션을 접근하는 방법은 대략 2가지가 있습니다.

1. ssh의 X11 forwarding을 통한 연결.

2. xhost와 DISPLAY환경변수 설정을 통한 직접 연결.
2번은 직접 연결이 되기 때문에 1번보다 응답속도가 빠르다는 장점이 있으나 암호화가 되지 않기 때문에 보안상 더 위험하다는 단점이 있습니다.
우선 X window를 OS X에서 사용하려면 X11 패키지를 설치해야 합니다.

애플에서 X11패키지를 기본으로 지원하지만 업데이트에 적극적이지 않기 때문에  Tiger & Leopard 사용자 모두 가급적 xQuartz( http://xquartz.macosforge.org/ )에서 최신 업데이트 버전으로 설치하길 권장합니다. 
그리고 xQuartz 설치전 자신의 맥을 최신 업데이트 버전으로 업데이트 하고 설치하시기 바랍니다.
 
설치가 완료되었다면 1번 2번 공통적으로 우선 X11을 실행합니다. X11은 "어플리케이션/유틸리티" 안에 있습니다. 기본설치 상태라면 X11이 구동된 후 아래와 같은 하얀색 터미널창이 하나 뜨게 됩니다. 
ps. 타이거 사용자는 "어플리케이션/유틸리티"에서 실행을 하고, 레퍼드 사용자는 터미널을 띄워서 터미널에서 xterm & 을 입력해서 xterm을 띄워주는게 경로가 적절하게 로딩이 되므로 바람직합니다.
이 터미널은 X window를 통해 실행이 된 xterm이란 어플리케이션입니다.


1번을 사용해 실행하기 위해서는 단순히
ssh -X 사용자ID@서버주소
예제 ) ssh -X trip2me@trip2me.com 또는 ssh -X trip2me@192.168.2.1
을 쳐 주면 X11 포워딩 기능으로 접속이 됩니다.
그다음 자신이 원하는 프로그램을 터미널상에서 입력해 실행하면 실제 실행은 원격 서버에서 작동되고 실행 결과화면만 클라이언트쪽에서 창으로 보여지게 됩니다.

ps. 항상 ssh 연결시 -X 옵션을 켜 놓기 위해서는 
/etc/ssh_config
파일에  ForwardX11 yes 를 추가해주면 됩니다.

2번을 사용하기 위해서는 X11의 보안설정을 조금 바꿔줘야 합니다.

X11에서 환경설정을 들어가면 아래 Security탭이 나오는데 거기있는 Allow Connections from networks clients 를 체크해주어야 합니다.


그렇게 하고 X11을 재실행하면 이전처럼 xterm창이 나타납니다.

여기서 먼저 접속할 서버의 주소를 xhost에 등록해서 인증을 가능하게 해 주어야 합니다.
ps. 처음에 언급한 것처럼 레퍼드 사용자가 xterm을 터미널에서 실행하지 않았다면 PATH설정이 잘 되지 않아서 /usr/X11R6/bin 이 환경변수에 없기에 절대 경로를 모두 제시해야 합니다..
/usr/X11R6/bin/xhost + 서버주소
예제 ) /usr/X11R6/bin/xhost + uglycrow.com 또는 /usr/X11R6/bin/xhost + 192.168.2.1

혹은 모든 서버를 수락하기 위해 아래처럼 ( 보안상 조금 위험하기는 합니다 ) 접근 인증을 해제합니다.

/usr/X11R6/bin/xhost +

 를 띄워져 있는 xterm에서 실행해 줍니다.

그다음 ssh나 telnet 등으로 원격 서버에 접속을 합니다.

ssh 사용자ID@서버주소

예제 ) ssh trip2me@trip2me.com 또는 ssh trip2me@192.168.2.1

혹은

telnet 서버주소

예제 ) telnet trip2me.com 또는 telnet 192.168.2.1

서버에 접속을 성공했다면 추가로 서버에서 클라이언트로 DISPLAY 환경변수 설정을 해 줍니다.

export DISPLAY=클라이언트주소:0.0

예제 ) export DISPLAY=uglycrow.com:0.0 또는 export DISPLAY=192.168.2.2:0.0

혹은 기본쉘이 csh계열이면 ( 중간에 = 이 없으니 주의 )

setenv DISPLAY 클라이언트주소:0.0

예제 ) setenv DISPLAY uglycrow.com:0.0 또는 setenv DISPLAY 192.168.2.2:0.0

이렇게 하면 사용할 준비가 완료 됩니다. 이제 자신이 원하는 Xwindow프로그램을 수행하면 됩니다.

예를들어 firefox를 원격 서버에서 실행한 모습을 맥에서 보기 위해서, 위 두가지 방법 중 하나의 방법으로 서버측에 접속하고 난 다음 xterm에서

firefox &

를 치면 ( 단 firefox가 서버측에 설치되어 실행이 가능해야 합니다. ) 아래와 같은 실행 화면을 볼 수 있습니다.

예제는 CentOS에 설치된 firefox의 작동 모습입니다.



출처 : http://cafe.naver.com/inmacbook

728x90

댓글