Tag Archives: putty

Xming, putty 를 이용한 원격 X 프로그램 실행

꽤 오래전에 다니던 회사에서 eXceed를 이용했었는데 그 당시 회사에서 사용하던 피씨의 메모리는 64M였습니다. 로터스 노츠와 싱글(ㅎㅎ)을 띄우면 더이상 띄울수 있는 프로그램이 별로 없었습니다. (요즘은 싱글이 웹기반으로 바뀐거 같더군요..) 그 당시는 피씨용 오픈소스 엑스서버가 없었습니다. 메모리 사용량이 적은 Xmanager의 평가판을 사용하다가 사용기간이 지나서 프로그램을 번갈아가면서 어렵게 사용하던 기억이 납니다. Xmanager는 우리나라 회사에서 만든 좋은 프로그램이었는데 회사에서 eXceed 있다고 다시 구매를 못했었습니다.

지금 오픈소스 엑스서버를 찾아보니 cygwin기반으로 도는 Cygwin/X와 mingw(Minimalist GNU for Windows)로 별도 라이브러리 필요없는 Xming이 있더군요. 저는 Xming을 설치했습니다. 여기에서 Xming과 Xming-fonts를 받아서 설치했습니다. 설치는 간단하더군요. 설치후 엑스서버를 다시 시작해주고, ssh를 이용한 터널링으로 쉽고 안전한 방법으로 원격 서버해  연결하여 클라이언트 프로그램을 띄웠습니다.

putty 설정에서 “접속-SSH-터널링” 에서 “X11 포워딩 사용”을 선택하고 “X 디스플레이 위치”를 “localhost:0” 으로 설정하고 세션을 저장했습니다. 원격 서버에 연결하고, 로그인 후 xterm &을 실행하면 새 xterm이 윈도우즈 화면에 뜹니다. ^^. 단, 원격 서버의 sshd_config에서 X11Forwarding yes로 설정되어 있어야합니다.

원격 서버에서 DISPLAY 환경변수를 세팅하는 방법도 있지만, 안전하지도 않고 세팅하기도 힘듭니다. DISPLAY 환경변수를 이용한 방법은 모든 정보가 암호화 없이 그냥 갑니다. 또, 요즘 엑스서버는 디폴트로 localhost를 제외한 호스트에서는 연결을 받아들이지 않기 때문에 X0.hosts 등에 원격 서버를 등록해야합니다. 또한 PC가 방화벽 뒤나 공유기(NAT) 뒤에 있다면 더욱더 상황이 복잡해집니다.

엑스 서버를 얘기하면 서버와 클라이언트의 구분이 좀 애매해집니다. 원격 유닉스 서버가 엑스 클라이언트 역할을 하고, 로컬 윈도우즈 호스트가 엑스 서버 역할을 합니다. 윈도우즈에서 엑스 서버 프로그램이 뜨고, 원격 유닉스에서는 엑스 서버에 화면을 그려주도록 요청하는 클라이언트로 동작합니다.

엑스서버를 윈도우즈에 깔지 않고 서버의 그래픽하면 보는 방법으로 VNC를 이용한 방법도 있습니다. VNC가 나온지 꽤 되었는데, 예전에 비하면 많이 빨라졌더군요. vnc를 사용하면 세션이 관리가 되서 편해서텍스트의 screen과 비슷한 형태로 사용하고 있습니다. 그런데 제 컴퓨터에서만 문제가 되는지 모르겠지만, 키 입력을 빨리할때문자가 빠지거나 문자가 반복해서 찍힌다던지 하는 버그가 있는거 같습니다. 윈도우즈간 vnc에서는 못본 문제인거 같은데 문제가 왜발생하는지 좀더 연구해봐야겠습니다.

사실 저는 거의 텍스트 위주로 작업하기 때문에 꼭 필요할 경우만 X윈도우 프로그램을 띄웁니다. 엑스윈도우에서 직접 작업할때는 열심히 윈도우 메니저를 꾸면서 사용하지만, 윈도우즈에서 동시에 사용할때는 그냥 윈도우즈 화면과 동일하게 독립적으로 띄우는게 작업 효율면에서 더 효과적인거 같네요.