FreeNX
NX technology is a computer program that handles remote X Window System connections, and attempts to greatly improve on the performance of the native X display protocol to the point that it can be usable over a slow link such as a dial-up modem. It wraps remote connections in SSH sessions for encryption.
Remote X Displays with FreeNX
모뎀을 이용하면서 SSH 암호화로 통신하면서 GNOME이나 KDE 세션에서 매우 빠른 반응 속도를 보여주기 위해 압축을 사용하는 X 서버 기술을 상상해보라. FreeNX는 놀랄만한 성능을 보여주면서 원격 데스크톱 제품 군에 등장했다. 씬 클라이언트는 오디오, 비디오, 인쇄, 기타 무거운 응용프로그램들을 사용할 때도 대역폭을 적게 사용해야 하며, 세션 종료 대신에 세션 대기 기능을 제공해야 한다. 리눅스를 사용하기를 원한다면 하드웨어없이 실제 가상 KVM 전환을 제공하는 FreeNX를 사용해야 한다.
(역주: KVM switch은 키보드, 비디오 케이블, 마우스의 약자로 KVM switch는 흔히 말하는 키보드, 마우스, 비디오 케이블을 모두 공유해주는 공유기를 의미한다)
FreeNX는 리눅스를 사람들이 사용하는 응용프로그램의 소스로 만들어주기 때문에 윈도우 원격 데스크톱 프로토콜 (RDP)이나 VNC와는 다르다. 리눅스 서버를 설치하고 OpenOffice.org나 파이어폭스 웹 브라우저를 원격 사용자에게 최소한의 하드웨어만으로 제공하고 싶다면 FreeNX를 사용하면 된다. 또, 윈도우98이나 맥OS X 같은 클라이언트를 사용한다해도 리눅스 서버에 연결해서 실행할 수 있게 해주는 무료 클라이언트를 NoMachine NX에서 가져올 수 있다.
리눅스에서 FreeNX 서버를 사용하면 원격 컴퓨팅에 대해서도 안전한 환경을 제공한다. 클라이언트는 리눅스에서 실행될 수 있으며, FreeNX는 X를 설치하지 않고도 윈도우나 맥킨토시 같은 다양한 운영체제에서 X 클라이언트 세션을 만들 수 있게 해준다. 이글을 쓰는 현재 사용할 수 있는 클라이언트 중에 플레이스테이션2, iPAQ, 자우루스 5XXX에서 사용할 수 있는 것도 있다.
사용자가 이용할 수 있는 기능과 내용을 제어할 수 있기 때문에 시스템 관리자들도 FreeNX를 환영할 것이다. 또, 키보드, 마우스, 비디오 케이블을 교환해주는 하드웨어 스위치 없이, 하나의 키보드, 비디오 콘솔, 마우스가 연결된 데이터 센터에서 각 리눅스 서버를 볼 수 있고, 조작할 수도 있다. 하나의 데스크톱에서 여러 개의 윈도우를 표시할 수 있으며, 여러 서버를 동시에 모니터링할 수도 있다. KVM 스위치는 한 번에 한 서버만 볼 수 있기 때문에 이런 기능을 제공하지 못한다.
Gian Filippo Pinzari는 비대하고, 안전하지 못한 X 클라이언트/서버 프로토콜을 가져다가 독창적인 압축 방식을 적용해서 날씬하게 만듦으로써 NX를 개발했다. 그의 회사, NoMachine.com은 2003년에 이 코드를 GPL 라이선스로 공개했다. NX는 한번에 사용할 수 있는 세션의 개수가 2개로 제한되어 있는데 이 제약을 풀은 것이 FreeNX 이다.
FreeNX Server
- Fedora 16: set up FreeNX server and connect to Linux machines from Windows through NX session
- Using NX Server with Fedora
리눅스에서 FreeNX서버를 기동시키는 방법에 대하여 설명한다. 아래의 설명은 Fedora 17을 기준으로 설명한다.
rpm을 사용하여 FreeNX가 설치되어있는지 확인한다.
설치되어있지 않다면 yum을 사용하여 FreeNX를 설치한다.
정상적으로 설치했다면 설치된 파일정보를 rpm을 사용하여 확인한다.
아마 아래와 같은 형식으로 나타날 것이다.
/etc/logrotate.d/freenx-server
/etc/nxserver
/etc/nxserver/client.id_dsa.key
/etc/nxserver/node.conf
/etc/nxserver/passwords
...
/usr/sbin/nxkeygen
/usr/sbin/nxsetup
...
/var/lib/nxserver
...
/var/lib/nxserver/home/.ssh/authorized_keys
/var/lib/nxserver/home/.ssh/authorized_keys.disabled
/var/lib/nxserver/home/.ssh/client.id_dsa.key
/var/lib/nxserver/home/.ssh/known_hosts
/var/lib/nxserver/home/.ssh/server.id_dsa.pub.key
/var/log/nx
이 중, 중요한 파일은 아래와 같다.
-
/usr/sbin/nxsetup
: 설치를 위한 셋업파일. -
/etc/nxserver/node.conf
: 설정파일. -
/var/lib/nxserver/home/.ssh/client.id_dsa.key
: 클라이언트 SSH인증키.
설정파일을 수정한다. (만약 첫 설치시 /etc/nxserver/node.conf.sample
파일만 존재한다면 /etc/nxserver/node.conf
로 복사한다.)
클라이언트에 사용할 인증키를 복사한다. 단, /usr/NX/share/client.id_dsa.key
가 아닌, /var/lib/nxserver/home/.ssh/client.id_dsa.key
를 복사해야 한다. (정확한 사용방법은 Warning message log 등을 참조한다.)