2014-09-03 3 views
0

vnc 뷰어 하나를 열어 xen 가상 시스템을 연결합니다. 동시에 vnc 뷰어를 열어 동일한 가상 시스템을 연결합니다. vnc 뷰어는 연결할 수 없습니다. 상태는 항상 "연결 중 ...."입니다. 지금까지 내가 아는 한, 그 이유는 젠은 여러 vnc 클라이언트가 동일한 가상 머신을 동시에 연결할 수 없기 때문입니다. 누구나 같은 문제가 있다면? 이 문제를 해결하는 방법? 당신의 대답을 기다리고 있습니다.xen은 여러 개의 vnc 클라이언트 연결을 지원합니까?

-nevershared 
      Never allow shared desktops. 

    -alwaysshared 
      Always allow shared desktops. 

는 일반적으로 I를 사용하고 수정되는 vncserver가 명령을 사냥하기 위해 말하고 싶지만, 그러나 젠은 노출 다르게 작동 할 나타납니다

답변

0

vncserver가는 특히, 공유의 다른 종류를 허용하는 옵션이 있습니다 설정할 플래그를 통해 일부 옵션. Xen을 사용하면 2010 년에 여러 개의 VNC 연결이 바닐라 QEMU에 추가 된 것으로 생각되며 같은 시간에 Xen에 추가되는 것으로 간주되지만 Xen 문서에서 예상되는 이점을 볼 수는 없습니다. 그물, 그래서 어쩌면 그것은 일어나지 않았다.

Xen이 여전히이를 직접 지원하지 않고 기존 X 서버에 추가로 연결하려고하는 경우 첫 번째 세션에서 x11vnc를 실행하여 추가 연결에 대한 지원을 추가 할 수 있습니다 (- 공유 및 아마도 이전 옵션). 는 VM에

: 당신의 x11vnc는 로컬 호스트의 연결을 허용해야하고 추가 연결은 다음 명령을 사용하여 VM에 터널을 만들기 위해 SSH를 사용하여 추가 할 수 있습니다에

# :0 -> port 5900, increase if needed. If vncserver's already there, definitely do. 
# x11vnc require root access to reach a Ubuntu login screen, or matching user access 
# if a user is already logged in. 
# An -auth option is usually needed - this one is for lighdm, but can vary wildly, 
# the output of x11vnc has a lot info on this. The running X server will often 
# have the exact thing you need in its own command line. 
# 
x11vnc -shared -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbwait 600 

당신의 로컬 컴퓨터 :

로컬 그런
# adjust the 5900 to be the sum of 5900 plus the number after the ":" in x11vnc: 
# the 5901 tells which :(something) to use with vncviewer, just subtract 5900. 
# 
ssh -XC -L5901:localhost:5900 yourvmhostname 
#   |    | 
# local port for :1  target port on VM for :0 

실행

vncviewer :1 # connects to the 5901 part on your *own* host, provided by the ssh. 
: (여기 : 1 위에서 5901을 왜, 맛 조정입니다)

한 가지 변칙 :이 명령은 사용하려는 :(n) 디스플레이에 대한 마법 쿠키가있는 .Xauthority 파일에 의존합니다. vncserver 스크립트는 일반적으로 이러한 작업을 수행하며, 일단 존재하면 다시 만들 필요가 없습니다. 당신이 자체 vncserver가 사용하지 않는 경우, 당신은 그들에게 자신을해야 할 수도 있습니다 :

remdpy=7  # assuming you need cookies for display :7 for some reason. 
host=$(uname -n) 
cookie=1fedaff375011821b5e0b4cf514d574a # or something, see vncserver's example 
for key in $host:$remdpy $host/unix:$remdpy ; do 
    if xauth list $key | grep -sq . ; then 
    echo $key already present 
    else 
    xauth -f ~/.Xauthority add $key . $cookie 
    fi 
done 

이 보여줍니다 같은 쿠키를 사용하지 마십시오.

VM (또는 실제 호스트)의 내부 서브넷을 숨기는 게이트웨이 호스트를 펀치하려면 첫 번째 단계는 VM을 통해 터널을 설정하는 것입니다. 다음과 같은 것입니다 (루트는 가정입니다. 가능하다면 더 작은 ID를 사용하십시오).

gateway=192.168.0.1 
hidehost=172.16.0.1 
# make a tunnel from localhost:2222 to $hidehost:22 
ssh -CNn -L2222:$hidehost:22 [email protected]$gateway & 
# connect through it to $hidehost and run x11vnc there 
ssh -C -p 2222 -L5901:127.0.0.1:5900 [email protected] \ 
    'x11vnc -shared -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbwait 600' 
# connect to VNC on localhost:5901 - which uses the 2nd tunnel we just made 
vncviewer :1 # run in a different window. 

이것은 내 테스트에서 효과가있었습니다. 두 개의 SSH는 -OProxyCommand를 사용하여 결합 될 수 있습니다 (배경 SSH 작업을 정리할 필요가 없도록)하지만 더 복잡합니다. 예 :

gateway=192.168.0.1 
hidehost=172.16.0.1 
ssh -C -oProxyCommand="ssh [email protected]$gateway -n -W $hidehost:22" \ 
    -L5901:127.0.1:5900 [email protected] \ 
    'x11vnc -shared -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbwait 600' 
vncviewer :1 # run in a different window. 
+0

먼저 환자의 조언에 감사드립니다. –

+0

먼저 환자의 조언에 감사드립니다. 사실, VM은 공용 IP 주소를 갖고 있지 않거나 로컬 시스템과 동일한 서브 네트워크를 유지했기 때문에 VM은 IP를 통해 로컬 시스템에 연결할 수 없습니다. 그렇다면 ssh를 사용하여 여러 연결로 쉽게 액세스 할 수 있습니다. 내가 아는 한, 가장 최근의 qemu가 직접 지원하기 때문에 KVM은 여러 vnc 뷰어 클라이언트에서 지원됩니다. 내 상황에서, 만약 내가 그것을 지원하기 위해 xen을 패치해야만한다면? 아니면 더 나은 해결책을 줄 수 있습니까? 이 문제는 저에게 중요합니다. 곧 회신하길 바랍니다. 고마워요, 친구. –

+0

흠 ...정상적인 IP 주소를 가지고 있지 않은 것은 문제가 있습니다 만, 일반적으로 충분한 미친 SSH 터널링으로 해결할 수 있습니다. VM에 SSH를 할 수 있다면 VNC 서비스에 액세스 할 수있는 SSH 명령을 만들 수 있습니다. 어떻게 연결하는지 알려주세요. –

관련 문제