13.3. VNC 뷰어
vncviewer
는 그래픽 사용자 인터페이스를 표시하고 vncserver
를 원격으로 제어하는 프로그램입니다.
vncviewer
를 실행하는 경우 전체 화면 모드 전환 또는 뷰어 종료와 같은 다양한 작업을 수행하는 항목이 포함된 팝업 메뉴가 있습니다. 또는 터미널을 통해 vncviewer
를 작동할 수 있습니다. 명령줄에서 vncviewer -h
를 입력하여 vncviewer
의 매개 변수를 나열합니다.
13.3.1. VNC 뷰어 설치
TigerVNC 클라이언트를 설치하려면 vncviewer
, root
로 다음 명령을 실행합니다.
~]# yum install tigervnc
13.3.2. VNC 서버에 연결
VNC 서버가 구성되면 VNC 뷰어에서 연결할 수 있습니다.
GUI를 사용하여 VNC 서버에 연결
-
인수 없이
vncviewer
명령을 입력하고VNC Viewer를 입력합니다. 연결 세부 정보
유틸리티가 표시됩니다. VNC 서버가 연결할지 묻는 메시지를 표시합니다. 필요한 경우 기존 VNC 연결을 동일한 디스플레이로 분리하지 않으려면 다음과 같이 데스크탑을 공유할 수 있는 옵션을 선택합니다.
- 버튼을 선택합니다.
-
Misc.
탭을 선택합니다. -
Shared
버튼을 선택합니다. - 확인 을 눌러 주 메뉴로 돌아갑니다.
연결할 주소 및 표시 번호를 입력합니다.
address:display_number
- 연결을 눌러 VNC 서버 디스플레이에 연결합니다.
VNC 암호를 입력하라는 메시지가 표시됩니다. 글로벌 기본 VNC 암호를 설정하지 않는 한 디스플레이 번호에 해당하는 사용자의 VNC 암호입니다.
VNC 서버 데스크탑을 보여주는 창이 나타납니다. 이는 일반 사용자가 보는 데스크탑이 아니며 Xvnc 데스크탑입니다.
CLI를 사용하여 VNC 서버에 연결
주소를 사용하여
viewer
명령을 입력하고 인수로 표시 번호를 입력합니다.vncviewer address:display_number
여기서 address 는
IP
주소 또는 호스트 이름입니다.- VNC 암호를 입력하여 인증합니다. 글로벌 기본 VNC 암호를 설정하지 않는 한 디스플레이 번호에 해당하는 사용자의 VNC 암호입니다.
- VNC 서버 데스크탑을 보여주는 창이 나타납니다. 이는 일반 사용자가 보는 데스크탑이 아니며 Xvnc 데스크탑입니다.
13.3.2.1. VNC의 방화벽 설정
암호화되지 않은 연결을 사용하는 경우 firewalld
에서 연결을 차단할 수 있습니다. firewalld
가 VNC 패킷을 통과하도록 허용하려면 특정 포트를 TCP
트래픽에 열 수 있습니다. -via
옵션을 사용하면 트래픽이 기본적으로 firewalld
에서 활성화되는 SSH
로 리디렉션됩니다.
VNC 서버의 기본 포트는 5900입니다. 원격 데스크탑에 액세스할 수 있는 포트를 사용하려면 기본 포트와 사용자의 할당된 표시 번호를 합계합니다. 예를 들어 두 번째 디스플레이의 경우: 2 + 5900 = 5902.
디스플레이 0
에서 3
까지의 경우 아래에 설명된 대로 서비스 옵션을 통해 VNC 서비스에
대한 firewalld
지원을 사용하십시오. 3
보다 큰 숫자의 경우 해당 포트는 firewalld에서 포트 열기 에서 설명하는 대로 구체적으로 열어야 합니다.
firewalld에서 VNC 서비스 활성화
다음 명령을 실행하여
firewalld
설정에 대한 정보를 확인합니다.~]$ firewall-cmd --list-all
특정 주소에서 모든 VNC 연결을 허용하려면 다음과 같이 명령을 사용합니다.
~]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.122.116" service name=vnc-server accept' success
이러한 변경 사항은 다음 시스템을 시작한 후에도 유지되지 않습니다. 방화벽을 영구적으로 변경하려면
--permanent
옵션을 추가하는 명령을 반복합니다. 방화벽 풍부한 언어 명령 사용에 대한 자세한 내용은 Red Hat Enterprise Linux 7 보안 가이드 를 참조하십시오.위 설정을 확인하려면 다음과 같이 명령을 사용합니다.
~]# firewall-cmd --list-all public (default, active) interfaces: bond0 bond0.192 sources: services: dhcpv6-client ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules: rule family="ipv4" source address="192.168.122.116" service name="vnc-server" accept
특정 포트 또는 포트 범위를 열기 위해 firewall-cmd
명령 줄 툴에 --add-port
옵션을 사용합니다. 예를 들어 VNC 디스플레이 4
는 TCP
트래픽에 대해 포트 5904
를 열어야 합니다.
firewalld에서 포트 열기
공개 영역에서
TCP
트래픽의 포트를 여는 경우 다음과 같이root
로 명령을 실행합니다.~]# firewall-cmd --zone=public --add-port=5904/tcp success
현재 퍼블릭 영역에 열려 있는 포트를 보려면 다음과 같이 명령을 실행합니다.
~]# firewall-cmd --zone=public --list-ports 5904/tcp
firewall-cmd --zone=zone --remove-port=number/protocol
명령을 사용하여 포트를 제거할 수 있습니다.
이러한 변경 사항은 다음 시스템을 시작한 후에도 유지되지 않습니다. 방화벽을 영구적으로 변경하려면 --permanent
옵션을 추가하는 명령을 반복합니다. firewalld
에서 포트 열기 및 닫기에 대한 자세한 내용은 Red Hat Enterprise Linux 7 보안 가이드 를 참조하십시오.
13.3.3. SSH를 사용하여 VNC 서버에 연결
VNC 는 통신의 가능한 공격에 대한 보안이 없는 일반 텍스트 네트워크 프로토콜입니다. 통신을 보호하려면 -via
옵션을 사용하여 server-client 연결을 암호화할 수 있습니다. 이렇게 하면 VNC 서버와 클라이언트 사이에 SSH
터널이 생성됩니다.
VNC 서버-클라이언트 연결을 암호화하는 명령 형식은 다음과 같습니다.
vncviewer -via user@host:display_number
예 13.1. via 옵션 사용
SSH
를 사용하여 VNC 서버에 연결하려면 다음과 같이 명령을 입력합니다.~]$ vncviewer -via USER_2@192.168.2.101:3
- 암호를 입력하라는 메시지가 표시되면 암호를 입력하고 Enter 를 눌러 확인합니다.
- 원격 데스크탑이 있는 창이 화면에 나타납니다.
VNC 액세스 제한
암호화된 연결만 선호하는 경우 systemd.service
파일인 ExecStart 줄에 -localhost
옵션을 사용하여 암호화되지 않은 연결을 모두 방지할 수 있습니다.
ExecStart=/usr/sbin/runuser -l user -c "/usr/bin/vncserver -localhost %i"
이렇게 하면 vncserver
가 -via
옵션의 결과로 SSH
를 사용하여 전송된 로컬 호스트 및 포트 전달 연결을 허용하지 않습니다.
SSH
사용에 대한 자세한 내용은 12장. OpenSSH 을 참조하십시오.