Linux VM에 대해 VNC를 사용하도록 설정

XenServer에서 원격으로 VM을 제어할 때 사용하는 VNC(Virtual Network Computing)를 기본적으로 지원하도록 VM을 설정할 수 없습니다. XenCenter 그래픽 콘솔에 연결하려면 VNC 서버와 X 디스플레이 관리자가 VM에 설치되어 있고 올바르게 구성되었는지 확인해야 합니다. 이 섹션에서는 XenCenter 그래픽 콘솔과 올바르게 상호 작용할 수 있도록 지원되는 각 Linux 운영 체제 배포판에서 VNC를 구성하는 절차를 설명합니다.

CentOS 기반 VM의 경우 동일한 기본 코드를 사용하여 그래픽 VNC 액세스를 제공하므로 아래의 Red Hat 기반 VM에 대한 지침을 사용해야 합니다. CentOS 4는 Red Hat Enterprise Linux 4를 기반으로 하며 CentOS 5는 Red Hat Enterprise Linux 5를 기반으로 합니다.

Debian Squeeze VM에서 그래픽 콘솔을 사용하도록 설정

참고

Debian Squeeze VM에서 그래픽 콘솔을 사용하도록 설정하기 전에 Linux 게스트 에이전트가 설치되어 있는지 확인합니다. 자세한 정보는 Linux 게스트 에이전트 설치의 내용을 참조하십시오.

Debian Squeeze 가상 컴퓨터에 대한 그래픽 콘솔은 VM 내에서 실행되는 VNC 서버를 통해 제공됩니다. 권장 구성에서 그래픽 콘솔은 표준 디스플레이 관리자를 통해 제어되므로 로그인 대화 상자가 나타납니다.

  1. 데스크톱 시스템 패키지가 있는 Squeeze 게스트를 설치하거나 표준 절차에 따라 apt를 사용하여 GDM(디스플레이 관리자)을 설치합니다.

  2. apt-get(또는 유사한 명령)를 사용하여 Xvnc 서버를 설치합니다.

    apt-get install vnc4server
    

    참고

    Gnome Display Manager 버전 3 디먼을 사용하는 Debian Squeeze Graphical Desktop Environment가 많은 CPU 시간을 차지할 수 있습니다. Citrix에서는 Gnome Display Manager gdm3 패키지를 제거하고 다음과 같이 gdm 패키지를 설치할 것을 권장합니다.

    apt-get install gdm
    apt-get purge gdm3
    
  3. vncpasswd 명령과 암호 정보를 기록할 파일 이름을 사용하여 VNC 암호를 설정합니다. 암호가 없으면 심각한 보안 위험이 발생합니다. 예:

    vncpasswd /etc/vncpass
    
  4. gdm.conf 파일(/etc/gdm/gdm.conf)을 수정하여 [servers][daemon] 섹션을 다음과 같이 확장함으로써 VNC 서버가 디스플레이 0을 관리하도록 구성합니다.

    [servers]
    0=VNC
    [daemon]
    VTAllocation=false
    [server-VNC]
    name=VNC
    command=/usr/bin/Xvnc -geometry 800x600 -PasswordFile /etc/vncpass BlacklistTimeout=0
    flexible=true
    
  5. GDM을 다시 시작한 다음 XenCenter에서 그래픽 콘솔을 감지할 때까지 기다립니다.

    /etc/init.d/gdm restart
    

    참고

    ps ax | grep vnc 같은 명령을 사용하여 VNC 서버가 실행 중인지 확인할 수 있습니다.

Red Hat, CentOS 또는 Oracle Linux VM에서 그래픽 콘솔을 사용하도록 설정

참고

Red Hat VM을 VNC에 대해 설정하기 전에 Linux 게스트 에이전트를 설치했는지 확인하십시오. 자세한 정보는 Linux 게스트 에이전트 설치의 내용을 참조하십시오.

Red Hat VM에서 VNC를 구성하려면 GDM 구성을 수정해야 합니다. GDM 구성은 사용 중인 Red Hat Linux의 버전에 따라 위치가 다른 파일에 유지됩니다. 수정하기 전에 먼저 이 구성 파일의 위치를 결정하십시오. 이 파일은 이 섹션의 여러 후속 절차에서 수정됩니다.

VNC 구성 파일의 위치 확인

Red Hat Linux 버전 4를 사용하는 경우 GDM 구성 파일은 /etc/X11/gdm/gdm.conf입니다. 이 파일은 사용자가 자체적으로 지정한 구성과 GDM 버전의 공급자가 지정한 기본값이 들어 있는 통합된 구성 파일입니다. 이 유형의 파일은 이 버전의 Red Hat Linux에 포함되어 있으므로 이전 버전의 GDM에서 기본적으로 사용됩니다.

Red Hat Linux 버전 5.x를 사용하는 경우 GDM 구성 파일은 /etc/gdm/custom.conf입니다. 이 파일은 기본 구성을 재정의하는 사용자 지정 값만 들어 있는 분리된 구성 파일입니다. 이 유형의 파일은 이 버전의 Red Hat Linux에 포함되어 있으므로 최신 버전의 GDM에서 기본적으로 사용됩니다.

VNC를 사용하도록 GDM 구성

  1. 루트로 로그인하여 VM의 텍스트 CLI에서 rpm -q vnc-server gdm 명령을 실행합니다. 패키지 이름 vnc-servergdm이 해당 버전 번호가 지정된 상태로 나타납니다.

    이들 패키지 이름이 표시되면 적절한 패키지가 이미 설치된 것입니다. 패키지 중 하나가 설치되지 않았다는 메시지가 표시되면 설치 중 그래픽 데스크톱 옵션을 선택하지 않은 경우일 수 있습니다. 계속하려면 이 패키지를 설치해야 합니다. VM에서의 추가적인 소프트웨어 설치에 대한 자세한 내용은 해당하는 Red Hat Linux x86 Installation Guide를 참조하십시오.

  2. 원하는 텍스트 편집기에서 GDM 구성 파일을 열고 파일에 다음 줄을 추가합니다.

    [server-VNC]
    name=VNC Server
    command=/usr/bin/Xvnc -SecurityTypes None -geometry 1024x768 -depth 16 \
    -BlacklistTimeout 0
    flexible=true
    
    • 4.x의 구성 파일에서 이 줄을 [server-Standard] 섹션 위에 추가해야 합니다.

    • Red Hat Linux 5.x의 구성 파일에서는 빈 [servers] 섹션에 이 줄을 추가해야 합니다.

  3. 표준 X 서버 대신 Xvnc 서버가 사용되도록 구성을 수정합니다.

    • Red Hat Linux 3 또는 4를 사용하는 경우에는 바로 위에 다음 줄이 있습니다.

       0=Standard
      

      이 줄을 다음과 같이 수정합니다.

       0=VNC
      
    • Red Hat Linux 5.x 이상을 사용하는 경우에는 위 줄을 [servers] 섹션 바로 아래, [server-VNC] 섹션 앞에 추가해야 합니다.

  4. 파일을 저장하고 닫습니다.

  5. /usr/sbin/gdm-restart 명령을 실행하여 GDM을 다시 시작하여 구성에서 변경한 내용을 적용합니다.

참고

Red Hat Linux는 그래픽 방식 시작에 실행 수준 5를 사용합니다. 설치가 실행 수준 3에서 시작되도록 구성된 경우에는 이를 변경해야 디스플레이 관리자가 시작되어 그래픽 콘솔에 액세스할 수 있습니다.

방화벽 설정

VNC 방화벽 설정 구성, RHEL. 기본적으로 방화벽 구성에서는 VNC 트래픽의 통과가 허용되지 않습니다. VM과 XenCenter 사이에 방화벽이 있는 경우 VNC 연결이 사용하는 포트 트래픽을 허용해야 합니다. 기본적으로 VNC 서버는 TCP 포트 5900 + n에서 VNC 뷰어의 연결을 수신합니다. 여기서 n은 표시 번호입니다(일반적으로 0). 따라서 Display-0에 대해 설정된 VNC 서버는 TCP 포트 5900에서 수신하고 Display-1은 TCP-5901에서 수신합니다. 방화벽 설명서를 참조하여 이들 포트가 열려 있는지 확인하십시오.

IP 연결 추적을 사용하거나 연결이 한 쪽에서만 시작되도록 제한하려면 방화벽 구성을 사용자 지정해야 할 수 있습니다.

VNC 포트를 열기 위해 Red Hat 기반 VM 방화벽을 사용자 지정하려면

  1. Red Hat Linux 4.x 및 5.x의 경우 system-config-securitylevel-tui를 사용합니다.

  2. “Customize(사용자 지정)”를 선택하고 다른 포트 목록에 5900을 추가합니다.

또는, service iptables stop 명령을 실행하여 다음에 재부팅할 때까지 방화벽을 비활성화하거나 chkconfig iptables off를 실행하여 영구적으로 사용하지 않을 수 있습니다. 이 경우 외부에 추가 서비스가 표시되어 VM의 전체적인 보안이 저하될 수 있습니다.

VNC 화면 해상도

그래픽 콘솔로 VM에 연결한 후 화면 해상도가 맞지 않으면(예를 들어 VM의 디스플레이가 너무 커서 그래픽 콘솔 창에 제대로 표시되지 않는 경우) VNC 서버의 geometry 매개 변수를 다음과 같이 설정하여 조절할 수 있습니다.

  1. 원하는 텍스트 편집기를 사용하여 GDM 구성 파일을 엽니다.

  2. 위에서 추가한 [server-VNC] 섹션을 찾습니다.

  3. 예를 들어 다음과 같이 명령줄을 편집합니다.

    command=/usr/bin/Xvnc -SecurityTypes None -geometry 800x600
    

    여기서 geometry 매개 변수의 값은 유효한 모든 화면 너비와 높이일 수 있습니다.

  4. 파일을 저장하고 닫습니다.

RHEL, CentOS 또는 OEL 6.x VM에 VNC를 사용하도록 설정

Red Hat Linux 버전 6.x를 사용하는 경우 GDM 구성 파일은 /etc/gdm/custom.conf입니다. 이 파일은 기본 구성을 재정의하는 사용자 지정 값만 들어 있는 분리된 구성 파일입니다. 이 유형의 파일은 이 버전의 Red Hat Linux에 포함되어 있으므로 최신 버전의 GDM에서 기본적으로 사용됩니다.

운영 체제를 설치하는 동안 Desktop(데스크톱) 모드를 선택합니다.

  1. 이를 위해 RHEL 설치 화면에서 Desktop(데스크톱), Customize now(지금 사용자 지정)를 선택한 후 Next(다음)를 클릭합니다.

    그러면 Base System(기본 시스템) 화면이 표시되고 Legacy UNIX compatibility(레거시 UNIX 호환성)가 선택되어 있는지 확인합니다.

  2. Desktop(데스크톱), Optional packages(선택적 패키지)를 선택한 후 Next(다음)를 클릭합니다.

    그러면 패키지가 Desktop(데스크톱) 창에 표시됩니다. tigervnc-server-<version_number>를 선택하고 를 클릭합니다.Next(다음)

다음 단계에 따라 진행하여 계속해서 RHEL 6.x VM을 설정합니다.

  1. 원하는 텍스트 편집기에서 GDM 구성 파일을 열고 적절한 섹션에 다음 줄을 추가합니다.

    [security]
    DisallowTCP=false
    
    [xdmcp]
    Enable=true
    
  2. /etc/xinetd.d/vnc-server-stream 파일을 만듭니다.

    service vnc-server
    {
                  id = vnc-server
             disable = no
                type = UNLISTED
                port = 5900
         socket_type = stream
                wait = no
                user = nobody
               group = tty
              server = /usr/bin/Xvnc
         server_args = -inetd -once -query localhost -SecurityTypes None -geometry 800x600 -depth 16
    }
    
  3. 다음 명령을 입력하여 xinetd 서비스를 시작합니다.

    # service xinetd start
    
  4. /etc/sysconfig/iptables 파일을 열고 다음 줄을 추가합니다. 이 줄을 -A INPUT -j REJECT --reject-with icmp-host-prohibited 줄 위에 추가해야 합니다.

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 5900 -j ACCEPT
    
  5. 다음 명령을 입력하여 iptables을 다시 시작합니다.

    # service iptables restart
    
  6. 다음 명령을 입력하여 gdm을 다시 시작합니다.

    # telinit 3
    # telinit 5
    

참고

Red Hat Linux는 그래픽 방식 시작에 실행 수준 5를 사용합니다. 설치가 실행 수준 3에서 시작되도록 구성된 경우에는 이를 변경해야 디스플레이 관리자가 시작되어 그래픽 콘솔에 액세스할 수 있습니다.

VNC에 대해 SLES 기반 VM 설정

참고

SUSE Linux Enterprise Server VM을 VNC에 대해 설정하기 전에 Linux 게스트 에이전트를 설치했는지 확인하십시오. 자세한 정보는 Linux 게스트 에이전트 설치의 내용을 참조하십시오.

SLES의 경우 YaST에서 구성 옵션으로 “원격 관리”를 활성화할 수 있습니다. 설치 시 SLES 설치 관리자의 Network Services(네트워크 서비스) 화면에서 원격 관리를 사용하도록 선택할 수 있습니다. 이렇게 하면 외부 VNC 뷰어를 게스트에 연결하고 그래픽 콘솔을 표시할 수 있습니다. SLES 원격 관리 기능을 사용하는 방법은 XenCenter에서 제공하는 방법과 약간 다르지만 그래픽 콘솔 기능과 통합되도록 SUSE Linux VM에서 구성 파일을 수정할 수 있습니다.

VNC 서버 확인

구성을 변경하기 전에 VNC 서버가 설치되어 있는지 확인합니다. SUSE에는 기본적으로 tightvnc 서버가 함께 제공됩니다. 이 서버는 적절한 VNC 서버이지만 원하는 경우 표준 RealVNC 배포판을 사용할 수도 있습니다.

다음 명령을 실행하여 tightvnc 소프트웨어가 설치되었는지 확인할 수 있습니다.

rpm -q tightvnc

원격 관리를 사용 가능하도록 설정

SLES 소프트웨어를 설치하는 동안 원격 관리를 사용 가능하도록 설정하지 않은 경우에는 다음과 같이 사용 가능하도록 설정할 수 있습니다.

  1. VM에서 텍스트 콘솔을 열고 YaST 유틸리티를 실행합니다.

    yast
    
  2. 화살표 키를 사용하여 왼쪽 메뉴에서 Network Services(네트워크 서비스)를 선택하고 Tab 키를 눌러 오른쪽 메뉴로 이동한 다음 화살표 키를 사용하여 Remote Administration(원격 관리)을 선택합니다. Enter 키를 누릅니다.

  3. Remote Administration(원격 관리) 화면에서 Tab 키를 눌러 Remote Administration Settings(원격 관리 설정) 섹션으로 이동합니다. 화살표 키를 사용하여 Allow Remote Administration(원격 관리 허용)을 선택하고 Enter 키를 눌러 확인란에 X 표시를 합니다.

  4. Tab 키를 눌러 Firewall Settings(방화벽 설정) 섹션으로 이동합니다. 화살표 키를 사용하여 Open Port in Firewall(방화벽에서 포트 열기)을 선택하고 Enter 키를 눌러 확인란에 X 표시를 합니다.

  5. Tab 키를 눌러 Finish(마침) 단추로 이동하고 Enter 키를 누릅니다.

  6. 설정을 적용하려면 디스플레이 관리자를 다시 시작해야 한다는 메시지 상자가 표시됩니다. Enter 키를 눌러 메시지를 확인합니다.

  7. 원래의 YaST 최상위 메뉴가 나타납니다. Tab 키를 눌러 Quit(종료) 단추로 이동하고 Enter 키를 누릅니다.

xinetd 구성 수정

원격 관리를 사용 가능하도록 설정한 후 XenCenter의 연결을 허용하거나 타사 VNC 클라이언트를 사용하려는 경우에는 구성 파일을 수정해야 합니다.

  1. 원하는 텍스트 편집기에서 /etc/xinetd.d/vnc 파일을 엽니다.

    파일에는 다음과 같은 섹션이 들어 있습니다.

    service vnc1
    {
    socket_type = stream
    protocol    = tcp
    wait        = no
    user        = nobody
    server      = /usr/X11R6/bin/Xvnc
    server_args = :42 -inetd -once -query localhost -geometry 1024x768 -depth 16
    type        = UNLISTED
    port        = 5901
    }
    
  2. port 줄을 다음과 같이 편집합니다.

    port = 5900
    
  3. 파일을 저장하고 닫습니다.

  4. 다음 명령으로 디스플레이 관리자와 xinetd 서비스를 다시 시작합니다.

    /etc/init.d/xinetd restart
    rcxdm restart
    

SUSE Linux는 그래픽 방식 시작에 실행 수준 5를 사용합니다. 원격 데스크톱이 나타나지 않으면 VM이 실행 수준 5에서 시작되도록 구성되어 있는지 확인합니다.

방화벽 설정

VNC 방화벽 설정 구성, SLES. 기본적으로 방화벽 구성에서는 VNC 트래픽의 통과가 허용되지 않습니다. VM과 XenCenter 사이에 방화벽이 있는 경우 VNC 연결이 사용하는 포트 트래픽을 허용해야 합니다. 기본적으로 VNC 서버는 TCP 포트 5900 + n에서 VNC 뷰어의 연결을 수신합니다. 여기서 n은 표시 번호입니다(일반적으로 0). 따라서 Display-0에 대해 설정된 VNC 서버는 TCP 포트 5900에서 수신하고, Display-1은 TCP-5901에서 수신합니다. 방화벽 설명서를 참조하여 이들 포트가 열려 있는지 확인하십시오.

IP 연결 추적을 사용하거나 연결이 한 쪽에서만 시작되도록 제한하려면 방화벽 구성을 사용자 지정해야 할 수 있습니다.

SLES 10.x VM의 방화벽에서 VNC 포트를 열려면

  1. VM에서 텍스트 콘솔을 열고 YaST 유틸리티를 실행합니다.

    yast
    
  2. 화살표 키를 사용하여 왼쪽 메뉴에서 Security and Users(보안 및 사용자)를 선택하고 Tab 키를 눌러 오른쪽 메뉴로 이동한 다음 화살표 키를 사용하여 Firewall(방화벽)을 선택합니다. Enter 키를 누릅니다.

  3. Firewall(방화벽) 화면에서 화살표 키를 사용하여 왼쪽 메뉴에서 Allowed Services(허용된 서비스)를 선택합니다.

  4. Tab 키를 눌러 오른쪽의 Firewall Configuration: Allowed Services(방화벽 구성: 허용된 서비스) 필드로 이동합니다. 화살표 키를 사용하여 Advanced(고급) 단추(오른쪽 아래 근처의 Next(다음) 단추 바로 위)를 선택하고 Enter 키를 누릅니다.

  5. Additional Allowed Ports(허용된 추가 포트) 화면에서 TCP Ports(TCP 포트) 필드에 5900을 입력합니다. Tab 키를 눌러 OK(확인) 단추로 이동한 다음 Enter 키를 누릅니다.

  6. Tab 키를 눌러 Next(다음) 단추로 이동하고 Enter 키를 누른 다음, Summary(요약) 화면에서 Tab 키를 눌러 Accept(동의) 단추로 이동하고 Enter 키를 누릅니다. 그런 다음 마지막으로 최상위 YaST 화면에서 Tab 키를 눌러 Quit(종료) 단추로 이동하고 Enter 키를 누릅니다.

  7. 다음 명령으로 디스플레이 관리자와 xinetd 서비스를 다시 시작합니다.

    /etc/init.d/xinetd restart
    rcxdm restart
    

또는, rcSuSEfirewall2 stop 명령을 실행하여 다음에 재부팅할 때까지 방화벽을 비활성화하거나 YaST를 사용하여 영구적으로 사용하지 않을 수 있습니다. 이 경우 외부에 추가적인 서비스가 표시되어 VM의 전체적인 보안이 저하될 수 있습니다.

SLES 11.x VM의 방화벽에서 VNC 포트를 열려면

  1. VM에서 텍스트 콘솔을 열고 YaST 유틸리티를 실행합니다.

    yast
    
  2. 화살표 키를 사용하여 왼쪽 메뉴에서 Security and Users(보안 및 사용자)를 선택하고 Tab 키를 눌러 오른쪽 메뉴로 이동한 다음 화살표 키를 사용하여 Firewall(방화벽)을 선택합니다. Enter 키를 누릅니다.

  3. Firewall(방화벽) 화면에서 화살표 키를 사용하여 왼쪽 메뉴에서 Custom Rules(사용자 지정 규칙)를 선택한 다음 Enter 키를 누릅니다.

  4. Tab 키를 눌러 Custom Allowed Rules(사용자 지정 허용된 규칙) 섹션의 Add(추가) 단추로 이동한 다음 Enter 키를 누릅니다.

  5. Source Network(소스 네트워크) 필드에서 0/0을 입력합니다. Tab 키를 눌러 Destination Port(목적지 포트) 필드로 이동하고 5900을 입력합니다.

  6. Tab 키를 눌러 Add(추가) 단추로 이동한 다음 Enter 키를 누릅니다.

  7. Tab 키를 눌러 Next(다음) 단추로 이동하고 Enter 키를 누른 다음, Summary(요약) 화면에서 Tab 키를 눌러 Finish(마침) 단추로 이동하고 Enter 키를 누릅니다. 그런 다음 마지막으로 최상위 YaST 화면에서 Tab 키를 눌러 Quit(종료) 단추로 이동하고 Enter 키를 누릅니다.

  8. 다음 명령으로 디스플레이 관리자와 xinetd 서비스를 다시 시작합니다.

    /etc/init.d/xinetd restart
    rcxdm restart
    

또는, rcSuSEfirewall2 stop 명령을 실행하여 다음에 재부팅할 때까지 방화벽을 비활성화하거나 YaST를 사용하여 영구적으로 사용하지 않을 수 있습니다. 이 경우 외부에 추가적인 서비스가 표시되어 VM의 전체적인 보안이 저하될 수 있습니다.

VNC 화면 해상도

그래픽 콘솔로 가상 컴퓨터에 연결한 후 화면 해상도가 일치하지 않으면(예를 들어 VM의 디스플레이가 너무 커서 그래픽 콘솔 창에 제대로 표시되지 않는 경우) VNC 서버의 geometry 매개 변수를 다음과 같이 설정하여 조절할 수 있습니다.

  1. 원하는 텍스트 편집기로 /etc/xinetd.d/vnc 파일을 열고 service_vnc1 섹션(displayID 1에 해당)을 찾습니다.

  2. server-args 줄의 geometry 인수를 원하는 디스플레이 해상도로 편집합니다. 예를 들면 다음과 같습니다.

    server_args  = :42 -inetd -once -query localhost -geometry 800x600 -depth 16
    

    여기서 geometry 매개 변수의 값은 유효한 모든 화면 너비와 높이일 수 있습니다.

  3. 파일을 저장하고 닫습니다.

  4. VNC 서버를 다시 시작합니다.

    /etc/init.d/xinetd restart
    rcxdm restart
    

실행 수준 확인

Red Hat 및 SUSE Linux VM에서는 그래픽 방식 시작에 실행 수준 5를 사용합니다. 이 섹션에서는 VM이 실행 수준 5에서 시작되도록 구성되어 있는지 확인하는 방법과 Linux 실행 수준이 아닌 경우 변경하는 방법을 설명합니다.

  1. /etc/inittab을 확인하여 기본 실행 수준이 어떻게 설정되어 있는지 확인합니다. 다음과 같은 줄을 찾습니다.

    id:n:initdefault:
    

    n이 5가 아니면 파일을 편집하여 5로 수정합니다.

  2. 실행 수준을 전환하는 데 재부팅이 실제로 필요한 경우 이를 피하려면 이와 같이 변경한 후 telinit q ; telinit 5 명령을 실행합니다.