13장. TigerVNC
tigerv
nc(Tiger Virtual Network Computing)는 다른 컴퓨터를 원격으로 제어할 수 있는 그래픽 데스크탑 공유를 위한 시스템입니다.
tigerv
nc는 클라이언트-서버 원칙에 따라 작동합니다. 서버는 출력(vncserver
)과 클라이언트 (vncviewer
)가 서버에 연결됩니다.
이전 Red Hat Enterprise Linux 배포판과 달리, Red Hat Enterprise Linux 7의 TigerVNC
는 systemd
시스템 관리 데몬을 해당 구성에 사용합니다. /etc/sysconfig/vncserver
구성 파일은 /etc/systemd/system/vncserver@.service
로 교체되었습니다.
13.1. VNC 서버 링크 복사링크가 클립보드에 복사되었습니다!
vncserver
는 VNC(Virtual Network Computing) 데스크탑을 시작하는 유틸리티입니다. 이는 적절한 옵션과 함께 Xvnc 를 실행하고 VNC 데스크탑에서 창 관리자를 시작합니다. vncserver
를 사용하면 사용자가 어디에서나 액세스할 수 있는 시스템에서 별도의 세션을 동시에 실행할 수 있습니다.
13.1.1. VNC 서버 설치 링크 복사링크가 클립보드에 복사되었습니다!
TigerVNC 서버를 설치하려면 root
로 다음 명령을 실행합니다.
yum install tigervnc-server
~]# yum install tigervnc-server
13.1.2. VNC 서버 구성 링크 복사링크가 클립보드에 복사되었습니다!
디스플레이 설정, 네트워크 주소 및 포트, 보안 설정 등의 선택적 매개 변수를 사용하여 사용자 계정이 시스템에 존재하는 경우 VNC 서버는 하나 이상의 사용자에 대한 디스플레이를 시작하도록 구성할 수 있습니다.
단일 사용자에 대해 VNC 디스플레이 구성
/etc/systemd/system/vncserver@.service
라는 구성 파일이 필요합니다. 이 파일을 생성하려면/usr/lib/systemd/system/vncserver@.service
파일을root
로 복사합니다.cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service
~]# cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemd
가 필요에 따라 메모리에 적절히 명명된 인스턴스를 자동으로 만들어 서비스 파일의'%i'
를 표시 번호로 대체하므로 파일 이름에 표시 번호를 포함할 필요가 없습니다. 단일 사용자의 경우 파일 이름을 변경할 필요가 없습니다. 여러 사용자의 경우, 예를 들어 특정 방식으로 사용자 이름을 파일 이름에 추가하여 각 사용자에 대해 고유하게 지정된 서비스 파일이 필요합니다. 자세한 내용은 13.1.2.1절. “두 사용자의 VNC 서버 설정” 을 참조하십시오./etc/systemd/system/vncserver@.service
를 편집하고 [Services] 섹션에 있는 다음 행에서 USER 를 VNC 서버를 설정하려는 사용자 이름으로 교체합니다. 파일의 나머지 행은 수정되지 않은 상태로 둡니다.ExecStart=/usr/bin/vncserver_wrapper <USER> %i
ExecStart=/usr/bin/vncserver_wrapper <USER> %i
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고VNC 데스크탑의 기본 크기는 1024x768입니다.
사용자의 VNC 세션은
~/.vnc/config
파일을 사용하여 추가로 구성할 수 있습니다.예를 들어 VNC 창 크기를 변경하려면 다음 행을 추가합니다.
geometry= <WIDTH> x <HEIGHT>
- 변경 사항을 저장합니다.
변경 사항을 즉시 적용하려면 다음 명령을 실행합니다.
systemctl daemon-reload
~]# systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 구성 파일에 정의된 사용자 또는 사용자의 암호를 설정합니다. 먼저
root
에서 USER 로 전환해야 합니다.su - USER vncpasswd
~]# su - USER ~]$ vncpasswd Password: Verify:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요저장된 암호는 암호화되지 않습니다. 암호 파일에 대한 액세스 권한이 있는 모든 사용자는 일반 텍스트 암호를 찾을 수 있습니다.
13.1.3절. “VNC 서버 시작” 으로 이동합니다.
13.1.2.1. 두 사용자의 VNC 서버 설정 링크 복사링크가 클립보드에 복사되었습니다!
동일한 시스템에서 두 개 이상의 사용자를 구성하려면 각 사용자에 대해 서로 다른 템플릿 유형 서비스 파일을 생성합니다.
-
두 개의 서비스 파일(예:
vncserver-USER_1@.service
및vncserver-USER_2@.service
)을 만듭니다. 두 파일 모두에서 USER 를 올바른 사용자 이름으로 대체합니다. 두 사용자의 암호를 설정합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
13.1.3. VNC 서버 시작 링크 복사링크가 클립보드에 복사되었습니다!
서비스를 시작하거나 활성화하려면 명령에서 직접 표시 번호를 지정합니다. 단일 사용자에 대해 VNC 디스플레이 구성 에서 위에서 구성한 파일은 템플릿으로 작동하며, %i
는 systemd
의 표시 번호로 대체됩니다. 유효한 표시 번호를 사용하여 다음 명령을 실행합니다.
systemctl start vncserver@:display_number.service
~]# systemctl start vncserver@:display_number.service
시스템을 시작할 때 서비스가 자동으로 시작되도록 활성화할 수도 있습니다. 그런 다음 로그인하면 vncserver
가 자동으로 시작됩니다. root
로서 다음과 같이 명령을 실행합니다.
systemctl enable vncserver@:display_number.service
~]# systemctl enable vncserver@:display_number.service
이때 다른 사용자는 VNC 뷰어 프로그램을 사용하여 정의된 디스플레이 번호 및 암호를 사용하여 VNC 서버에 연결할 수 있습니다. 그래픽 데스크탑이 설치되어 있으면 해당 데스크탑의 인스턴스가 표시됩니다. 현재 대상 시스템에 표시된 인스턴스와 같지 않습니다.
13.1.3.1. 두 명의 사용자 및 두 개의 다른 디스플레이에 대해 VNC 서버 설정 링크 복사링크가 클립보드에 복사되었습니다!
구성된 두 VNC 서버의 경우 vncserver-USER_1@.service 및 vncserver-USER_2@.service의 경우 다른 표시 번호를 활성화할 수 있습니다. 예를 들어 다음 명령은 USER_1의 VNC 서버가 디스플레이 3에서 시작되고, USER_2에 대한 VNC 서버가 디스플레이 5에서 시작되도록 합니다.
systemctl start vncserver-USER_1@:3.service systemctl start vncserver-USER_2@:5.service
~]# systemctl start vncserver-USER_1@:3.service
~]# systemctl start vncserver-USER_2@:5.service
13.1.4. GDM용 XDMCP를 사용하여 xinetd 기반 VNC 설정 링크 복사링크가 클립보드에 복사되었습니다!
GDM(X Display Manager Control Protocol)을 사용하여 xinetd를 기반으로 하는 VNC 설정은 주로 씬 클라이언트로 구성된 클라이언트 시스템에 유용한 설정입니다. 설정 후 클라이언트는 GDM 로그인 창에 액세스하여 시스템 계정에 로그인할 수 있습니다. 설정의 전제 조건은 gdm, vnc, vnc-server 및 xinetd 패키지가 설치되어 있다는 것입니다.
yum install gdm tigervnc tigervnc-server xinetd
~]# yum install gdm tigervnc tigervnc-server xinetd
xinetd 서비스를 활성화해야 합니다.
systemctl enable xinetd.service
~]# systemctl enable xinetd.service
시스템 기본 대상 단위는 graphical.target
여야 합니다. 현재 설정된 기본 대상 유닛을 가져오려면 다음을 사용합니다.
systemctl get-default
~]# systemctl get-default
기본 대상 단위는 다음을 사용하여 변경할 수 있습니다.
systemctl set-default target_name
~]# systemctl set-default target_name
GDM 로그인 창에 액세스 및 로그인
/etc/gdm/custom.conf
구성 파일을 편집하여 XDMCP를 사용하도록 GDM을 설정합니다.[xdmcp] Enable=true
[xdmcp] Enable=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 콘텐츠를 사용하여
/etc/xinetd.d/xvncserver
라는 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow server_args 섹션에서
-query localhost
옵션은 각 Xvnc 인스턴스가 xdmcp 세션에 대해 localhost를 쿼리합니다.깊이
옵션은 생성할 VNC 데스크탑의 비트 단위(비트)를 지정합니다. 허용 가능한 값은 8, 15, 16 및 24이며 다른 값으로 인해 예기치 않은 애플리케이션 동작이 발생할 수 있습니다.서비스를 정의할
/etc/services
를 편집합니다. 이렇게 하려면/etc/services
파일에 다음 스니펫을 추가합니다.VNC xinetd GDM base
# VNC xinetd GDM base service_name 5950/tcp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 구성 변경 사항을 적용하려면 시스템을 재부팅합니다.
또는 다음을 실행할 수 있습니다. init 수준을 3으로 변경하고 5로 돌아가 gdm을 강제로 다시 로드합니다.
init 3 init 5
# init 3 # init 5
Copy to Clipboard Copied! Toggle word wrap Toggle overflow gdm이 UDP 포트 177에서 수신 대기 중인지 확인합니다.
netstat -anu|grep 177
# netstat -anu|grep 177 udp 0 0 0.0.0.0:177 0.0.0.0:*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow xinetd 서비스를 다시 시작합니다.
systemctl restart xinetd.service
~]# systemctl restart xinetd.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow xinetd 서비스가 새 서비스를 로드했는지 확인합니다.
netstat -anpt|grep 595
# netstat -anpt|grep 595 tcp 0 0 :::5950 :::* LISTEN 3119/xinetd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow vncviewer 명령을 사용하여 설정을 테스트합니다.
vncviewer localhost:5950
# vncviewer localhost:5950
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 암호가 표시되지 않는 localhost에 VNC 세션을 시작합니다. GDM 로그인 화면이 표시되고 유효한 사용자 이름 및 암호를 사용하여 시스템의 모든 사용자 계정에 로그인할 수 있습니다. 그런 다음 원격 연결에서 동일한 테스트를 실행할 수 있습니다.
설정에 대한 방화벽을 구성합니다. 방화벽 구성 도구를 실행하고 시스템에 들어오는 연결을 허용하도록 TCP 포트 5950을 추가합니다.
firewall-cmd --permanent --zone=public --add-port=5950/tcp firewall-cmd --reload
~]# firewall-cmd --permanent --zone=public --add-port=5950/tcp
~]# firewall-cmd --reload
13.1.5. VNC 세션 종료 링크 복사링크가 클립보드에 복사되었습니다!
vncserver
서비스를 활성화하는 것과 유사하게 시스템을 시작할 때 서비스의 자동 시작을 비활성화할 수 있습니다.
systemctl disable vncserver@:display_number.service
~]# systemctl disable vncserver@:display_number.service
또는 시스템이 실행 중이면 root
로 다음 명령을 실행하여 서비스를 중지할 수 있습니다.
systemctl stop vncserver@:display_number.service
~]# systemctl stop vncserver@:display_number.service