Skip to content

TigerVNC

TigerVNC is a high-performance, platform-neutral implementation of VNC (Virtual Network Computing), a client/server application that allows users to launch and interact with graphical applications on remote machines. TigerVNC provides the levels of performance necessary to run 3D and video applications, and it attempts to maintain a common look and feel and re-use components, where possible, across the various platforms that it supports. TigerVNC also provides extensions for advanced authentication methods and TLS encryption.

TigerVNC Server

Linux에서 TigerVNC서버를 기동시키는 방법에 대하여 설명한다. Fedora의 경우 기본 vnc-server를 TigerVNC로 사용하고 있다. 따라서 이후 TigerVNC는 모두 vnc로 지칭하며, 아래의 설명은 Fedora 17을 기준으로 설명한다.

먼저, rpm을 사용하여, vnc-server가 설치되어있는지 확인한다.

$ rpm -qa | grep tigervnc-server

vnc-server가 존재하지 않다면 yum을 사용하여 설치한다.

$ yum install tigervnc-server

정상적으로 설치했다면 아래와 같이 rpm을 사용하여 설치된 파일 리스트를 확인한다.

$ rpm -ql tigervnc-server

아래와 같은 형식으로 나타나는 것을 확인한다.

/etc/sysconfig/vncservers
/usr/bin/vncserver
/usr/bin/x0vncserver
/usr/lib/systemd/system/[email protected]
/usr/share/man/man1/vncserver.1.gz
/usr/share/man/man1/x0vncserver.1.gz

중요한(알아야 할) 디렉터리 및 파일은 아래와 같다.

  • 설정파일: /etc/sysconfig/vncservers
  • 비밀번호 및 관련 데이터 저장 디렉터리: /root/.vnc/
  • 실행파일: /usr/bin/vncserver
  • 비밀번호 설정 실행파일: /usr/bin/vncpasswd

vi를 사용하여 VNC 설정파일(/etc/sysconfig/vncservers)을 편집해야 한다.

# VNC를 사용할 세션정보를 입력해야 한다. VNCSERVERS="세션번호:사용자ID" 와 같은 방식으로 입력한다.
# 만약 세션이 여러개일 경우 공백으로 구분한다. Ex) "1:user1 2:user2"
VNCSERVERS="1:user1 2:user2"

# VNC서버가 실행될 때 넘겨줄 인자정보를 입력한다. VNCSERVERS에서 정의한 세션번호를 배열번호로 사용한다.
VNCSERVERARGS[1]="-geometry 1024x768 -depth 16 -nolisten tcp -nohttpd -localhost"
VNCSERVERARGS[2]="-geometry 1024x768 -depth 16"

비밀번호를 설정한다. VNC는 반드시 비밀번호를 설정해야 한다. (/root/.vnc/passwd 파일에 암호화 되어 저장된다.)

$ vncpasswd

VNC서버를 실행한다. 인자로 실행할 세션번호를 넘겨줘야 한다. (세션번호를 입력할 때 콜론(:)을 사용해야 한다.)

$ vncserver :1

방화벽 설정을 실행하여 PORT를 열어준다. VNC서버는 TCP를 사용하며, 5900+세션번호의 방식으로 포트가 열린다. 따라서 만약, 1번 세션을 열었을 경우 5901 포트의 TCP방식을 방화벽에서 열어주면 된다.

$ system-config-firewall

이제, 클라이언트에서 접속 가능하다. 만약 VNC서버를 정지하고 싶을 경우 아래와 같이 해당 세션을 -kill 인자와 함께 적어주면 된다.

$ vncserver -kill :1

Check list

만약 VNC 서버가 정상적으로 작동하지 않을 경우 아래의 방법으로 확인하면 된다.

  • 해당 IP에 대한 Ping 테스트.
  • 기동된 서버의 세션 리스트 확인. (vncserver -list)
  • 해당 프로세스 정상작동 여부. (ps -aux)
  • 네트워크 상태 확인. (netstate -na)
  • 방화벽 정책 확인. (iptables -nvL 또는 system-config-firewall)
  • 설정파일 확인. (vi /etc/sysconfig/vncservers)

See also

Favorite site