X Window 시스템이 없는 VNC 서버

X Window 시스템이 없는 VNC 서버

X 서버를 설치하지 않고도 VNC 서버가 작동합니까? vnc가 X Server와 작동한다는 것을 알고 있지만 vnc가 없으면 어떨까요?

답변1

아니요, 일반적으로 VNC를 사용하여 원격으로 연결하려는 서버에 X를 설치해야 합니다. 왜냐하면 VNC는 단지 이 서버에서 X 데스크탑을 다시 표시하기 때문입니다.

컴퓨팅에서 가상 네트워크 컴퓨팅(VNC)은 원격 프레임 버퍼 프로토콜(RFB)을 사용하여 다른 컴퓨터를 원격으로 제어하는 ​​그래픽 데스크탑 공유 시스템입니다. 키보드와 마우스 이벤트를 한 컴퓨터에서 다른 컴퓨터로 전송하고 그래픽 화면 업데이트를 네트워크를 통해 다른 방향으로 다시 전달합니다.

이 부분은 사람들을 혼란스럽게 할 수 있습니다.

VNC 서버가 실행 중인 시스템에는 물리적 디스플레이가 필요하지 않습니다. 일반적인 작동 방법에서 뷰어는 서버의 포트(기본 포트 5900)에 연결됩니다.

"디스플레이"를 언급하면 ​​실제 모니터를 말하는 것입니다. 원격 서버에서는 GUI 데스크탑을 실행할 수 있도록 X를 설치하고 구성해야 합니다.

Xvnc, X11vnc 및 vncserver는 어떻습니까?

Xvnc

Xvnc은(는) 독립 실행형으로 실행할 수 있는 X11 서버이지만 이를 작동하려면 데스크톱이 필요합니다. 그렇지 않으면 시작할 때 검은색 창만 표시됩니다. 따라서 Xvnc에는 자체 X 서버가 포함되어 있으므로 기술적으로 X를 설치할 필요가 없습니다.

따라서 Xvnc는 실제로 하나의 서버 두 대입니다. 응용 프로그램에서는 X 서버이고 원격 VNC 사용자에게는 VNC 서버입니다. 관례적으로 우리는 VNC 서버 디스플레이 번호가 X 서버 디스플레이 번호와 동일하도록 준비했습니다. snoopy:2는 X 세계와 VNC 세계 모두에서 'snoopy' 시스템의 디스플레이 2를 참조합니다.

일반적으로 프로세스를 단순화하도록 설계되고 Perl로 작성된 vncserver 스크립트를 사용하여 Xvnc를 시작합니다. 아마도 귀하의 선호도와 현지 상황에 맞게 편집하고 싶을 것입니다. Xvnc를 직접 실행하는 것보다 vncserver를 사용하는 것이 좋지만 Xvnc에는 기본적으로 몇 가지 확장 기능을 제외하고 표준 X 서버와 동일한 옵션이 있습니다. Xvnc -h를 실행하면 목록이 표시됩니다.

$ export DISPLAY=localhost:1.0
$ /usr/bin/Xvnc :1 -ac -auth "/root/.Xauthority" \
    -geometry "1200x700" -depth 8 -rfbwait 120000 \
    -rfbauth /root/.vnc/passwd 2> /root/.vnc/ServerDaemon.log &
$ /bin/sleep 10
$ /usr/bin/fvwm 2> /root/.vnc/fvwm.log &
x11vnc

Xvnc에 자체 X 서버가 포함되어 있는 경우x11vnc하지 않습니다. 이미 실행 중인 X 서버, Xvnc 또는 Xvfb와 통합되는 VNC 서버입니다. 프레임버퍼가 있는 사물에 연결할 수 있는 독특한 기능이 있습니다.

발췌

x11vnc는 X 서버의 프레임 버퍼 사본을 RAM에 보관합니다. X11 프로그래밍 인터페이스 XShmGetImage는 프레임 버퍼 픽셀 데이터를 검색하는 데 사용됩니다. x11vnc는 X 서버의 프레임 버퍼를 복사본과 비교하여 어떤 픽셀 영역이 변경되었는지 확인합니다(따라서 VNC 뷰어로 전송해야 함).

발췌

이를 통해 원격 클라이언트에서 X Window 세션 및 x11vnc 소프트웨어를 호스팅하는 컴퓨터로 원격 액세스할 수 있으며 X 서버의 프레임 버퍼에서 변경 사항을 지속적으로 폴링합니다. 이를 통해 사용자는 자신의 네트워크에 있는 원격 컴퓨터에서 또는 마치 사용자가 앞에 앉아 있는 것처럼 인터넷을 통해 X11 데스크탑(KDE, GNOME, XFCE 등)을 제어할 수 있습니다. x11vnc는 웹캠이나 TV 튜너 카드, iPAQ, Neuros OSD, Linux 콘솔, Mac OS X 그래픽 디스플레이 등 X11이 아닌 프레임 버퍼 장치도 폴링할 수 있습니다.

x11vnc는 원격 제어를 위한 추가 디스플레이(또는 X 데스크탑)를 생성하지 않습니다. 대신, TightVNC Server와 같은 다른 Linux 대안과 달리 Unix 계열 컴퓨터의 모니터에 실시간으로 표시되는 기존 X11 디스플레이를 사용합니다. 그러나 Xvnc 또는 Xvfb를 사용하여 '가상' 추가 디스플레이를 생성하고 x11vnc를 여기에 연결하여 헤드리스 서버에 대한 X-11 액세스를 활성화할 수 있습니다.

vnc서버

vncserverVNC를 사용하여 연결할 원격 서버에 VNC + X를 설정하는 복잡성을 완화하는 데 도움이 되는 프런트엔드 Perl 스크립트입니다.

vncserver는 VNC(가상 네트워크 컴퓨팅) 데스크톱을 시작하는 데 사용됩니다. vncserver는 Xvnc 서버 시작 프로세스를 단순화하는 Perl 스크립트입니다. 적절한 옵션으로 Xvnc를 실행하고 VNC 데스크탑에서 창 관리자를 시작합니다.

참고자료

답변2

X11(X)을 실행하지 않고 프레임버퍼를 사용한다면, Framebuffer-vncserver가 있습니다.https://github.com/ponty/framebuffer-vncserver 입력을 지원하지 않는다는 점을 제외하고는 잘 작동합니다. 서버 측에 입력을 직접 주입하면 쉽게 해결할 수 있습니다.

관련 정보