이 가이드에서는 VNC 원격 액세스를 CentOS 7/8 및 RHEL 9/8/7 데스크톱 에디션에서 tigervnc-server 프로그램을 통해 설치하고 구성하는 방법을 설명하겠습니다. 이를 통해 원격 데스크톱 머신에 액세스할 수 있습니다.
VNC (가상 네트워크 컴퓨팅)는 사용자 계정이 그래픽 사용자 인터페이스가 제공하는 자원을 활용하여 원격으로 연결하고 원격 시스템을 제어할 수 있는 서버-클라이언트 프로토콜입니다.
다른 VNC 서버와 달리 VNC X나 Vino와 같이 런타임 데스크톱에 직접 연결하는 것과는 달리, tigervnc-vncserver는 사용자마다 별도의 가상 데스크톱을 구성하는 다른 메커니즘을 사용합니다.
요구 사항
1 단계: CentOS에서 VNC 설치 및 구성
1. Tigervnc-server는 Xvnc 서버를 실행하고 Gnome 또는 다른 데스크톱 환경을 VNC 데스크톱에서 병렬 세션으로 시작하는 프로그램입니다.
A started VNC user session can be accessed by the same user from multiple VNC clients. In order to install the TigerVNC server in CentOS/RHEL, open a terminal session and issue the following yum command with root privileges.
$ sudo yum install tigervnc-server

2. 프로그램을 설치한 후, VNC 프로그램을 실행하려는 사용자로 로그인하고 터미널에서 아래 명령어를 실행하여 VNC 서버에 대한 암호를 구성합니다.
암호는 최소 6자리 이상이어야 합니다.
$ su - your_user $ vncpasswd

3. 다음으로, VNC 서비스 구성 파일을 systemd 디렉토리 트리에 있는 데몬 구성 파일을 통해 사용자에게 추가합니다. VNC 템플릿 파일을 복사하려면 루트 권한으로 다음 cp 명령어를 실행해야 합니다.
만약 사용자가 sudo 권한이 부여되지 않았다면, 직접 root 계정으로 전환하거나 root 권한을 가진 계정에서 명령어를 실행하십시오.
# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
4. 다음 단계에서 /etc/systemd/system/ 디렉토리에서 복사된 VNC 템플릿 구성 파일을 편집하고 아래 샘플에 표시된 것처럼 사용자를 반영하도록 다음 값을 교체하십시오.
@
기호 뒤의 1
값은 디스플레이 번호(포트 5900+display
)를 나타냅니다. 또한 시작된 각 VNC 서버에 대해 포트 5900은 1씩 증가됩니다.
# vi /etc/systemd/system/vncserver@\:1.service
파일 vncserver@:1.service에 다음 줄을 추가하십시오.
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=tecmint Group=tecmint WorkingDirectory=/home/tecmint ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/usr/bin/vncserver %i -geometry 1280x1024 PIDFile=/home/tecmint/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' [Install] WantedBy=multi-user.target

5. VNC 서비스 파일에 적절한 변경 사항을 만든 후, systemd 시스템 초기화 프로그램을 다시 로드하여 새로운 VNC 구성 파일을 선택하고 TigerVNC 서버를 시작하십시오.
또한 아래 명령어를 실행하여 VNC 서비스 상태를 확인하고 VNC 데몬을 시스템 전체에서 활성화하십시오.
# systemctl daemon-reload # systemctl start vncserver@:1 # systemctl status vncserver@:1 # systemctl enable vncserver@:1

6. VNC 서버가 소유한 리스닝 상태의 열려있는 포트를 나열하려면 ss 명령을 실행하세요. 이 명령은 네트워크 소켓을 표시하는 데 사용됩니다. VNC 서버 인스턴스 하나만 시작했기 때문에 첫 번째 열린 포트는 5901/TCP입니다.
다시 말하지만, ss 명령은 root 권한으로 실행해야 합니다. 다른 사용자를 위해 병렬로 다른 VNC 인스턴스를 시작하는 경우, 두 번째 인스턴스의 포트 값은 5902, 세 번째 인스턴스의 포트 값은 5903이며, 이와 같이 진행됩니다. 포트 6000+는 X 애플리케이션이 VNC 서버에 연결할 수 있도록 사용됩니다.
# ss -tulpn| grep vnc

7. 외부 VNC 클라이언트가 VNC 서버에 연결할 수 있도록 하려면 방화벽을 통해 적절한 VNC 열린 포트가 통과되어야 합니다.
VNC 서버 인스턴스 하나만 시작한 경우, 첫 번째 할당된 VNC 포트만 열면 됩니다: 5901/TCP를 사용하여 방화벽 구성을 실행 중에 적용하기 위해 아래 명령을 실행하세요.
# firewall-cmd --add-port=5901/tcp # firewall-cmd --add-port=5901/tcp --permanent
Step 2: Connecting to CentOS Desktop via VNC Client
8. 플랫폼 독립 프로토콜인 원격 그래픽 사용자 인터페이스 VNC 연결은 GUI와 특수한 VNC 클라이언트가 있는 거의 모든 운영 체제에서 수행할 수 있습니다.
A popular VNC client used in Microsoft-based operating systems, fully compatible with Linux TigerVNC server, is the RealVNC VNC Viewer.
원격으로 CentOS Desktop에 연결하기 위해 Microsoft OS를 VNC 프로토콜을 통해 연결하려면 VNC Viewer 프로그램을 열고, CentOS VNC 서버의 IP 주소와 포트 번호를 추가한 다음, [enter] 키를 누르십시오.
VNC 연결이 설정되면 연결이 암호화되지 않았다는 경고가 화면에 표시되어야 합니다. 아래 스크린샷에 설명된 대로입니다.


9. 경고를 우회하려면 Continue 버튼을 클릭하고 2번에서 VNC 서버용으로 설정한 암호를 추가하면 VNC 서버 인스턴스를 실행하도록 구성된 사용자로서 CentOS Desktop에 원격으로 연결되어야 합니다.


10. 새로운 Authentication 메시지가 화면에 나타나고 사용자에게 루트 권한이 없는 경우, 아래 스크린샷에 표시된 대로 Cancel 버튼을 눌러 CentOS Desktop으로 계속하십시오.

서버와 클라이언트 간에 설정된 VNC 통신 및 교환된 모든 데이터(암호 제외)가 보안 채널을 통해 실행되지 않는다는 점에 유의하십시오. VPN 데이터 전송을 암호화하고 보안을 유지하려면 먼저 안전한 SSH 터널을 설정하고 이후의 VPN SSH 터널을 통한 트래픽을 실행해야 합니다.
11. 다른 CentOS Desktops를 통해 VNC 프로토콜을 사용하여 CentOS Desktop에 원격으로 연결하려면 먼저 다음 명령을 실행하여 시스템에 vinagre 패키지가 설치되어 있는지 확인하십시오.
$ sudo yum install vinagre
12. 비네그레 유틸리티를 열려면 응용 프로그램 -> 유틸리티 -> 원격 데스크톱 뷰어로 이동하여 아래 스크린샷에 표시된 대로 진행하십시오.

13. CentOS 데스크톱에 원격으로 연결하려면 연결 버튼을 클릭하고, VNC 프로토콜을 목록에서 선택하고, 원격 VNC 서버의 IP 주소와 포트(5900+디스플레이 번호)를 추가하고, 다음 스크린샷에서 설명한 대로 VNC 사용자용으로 설정된 암호를 제공하십시오.



14. 또 다른 인기 있는 VNC 클라이언트는 Remmina로, 특히 데비안 기반 배포판에서 GNOME 데스크톱 환경을 실행하는 Linux 기반 플랫폼에서 사용됩니다.
Remmina Remote Desktop 클라이언트를 데비안 기반 배포판에 설치하려면 다음 명령어를 실행하십시오.
$ sudo apt-get install remmina
Step 3: CentOS에서 여러 VNC 세션 구성
15. 동일한 사용자 아래에서 새로운 병렬 VNC 세션을 실행해야 하는 경우, 터미널 콘솔을 열고, 새로운 VNC 세션을 시작하려는 사용자로 로그인하고, 아래 명령어를 실행하십시오.
서버를 처음 시작할 때 이 세션에 대한 새 암호를 제공하라는 메시지가 표시됩니다. 그러나 이 세션은 로그인된 사용자의 권한으로 실행되며 systemd VNC 서버 세션과는 독립적으로 실행된다는 점에 유의하십시오.
$ vncserver

16. 새로운 VNC 세션은 다음으로 사용 가능한 VNC 기반 포트(이 예에서는 5900+3 디스플레이)를 엽니다. 열린 포트를 표시하려면 아래 인용구에서 설명한대로 루트 권한없이 ss 명령어를 실행하십시오. 이 명령은 사용자에 의해 소유된 시작된 VNC 세션만 나열합니다.
$ ss -tlpn| grep Xvnc

17. 이제 이 새로운 VNC 세션을 사용하여 CentOS 데스크톱에 원격으로 연결하고, 아래 이미지에서 설명한대로 VNC 클라이언트에서 IP:포트 조합(192.168.1.23:5903)을 제공하십시오.

이 로그인한 사용자 권한으로 시작된 VNC 서버 인스턴스를 중지하려면 루트 권한없이 다음 명령을 실행하십시오. 이 명령은 이를 시작한 사용자만 소유한 모든 시작된 VNC 인스턴스를 제거합니다.
$ su - your_user $ killall Xvnc
모든 작업을 마쳤습니다! 이제 운영 체제가 제공하는 그래픽 사용자 인터페이스를 사용하여 CentOS 시스템에 액세스하여 관리 작업을 수행할 수 있습니다.
Source:
https://www.tecmint.com/install-and-configure-vnc-server-in-centos-7/