그래픽 로그인 화면으로 액세스하기 위해 x11vnc를 설정하는 방법은 무엇입니까?


50

Ubuntu 12.10을 실행하는 서버가 있으며 로그인하지 않고이 서버에 원격으로 연결할 수 있어야합니다.

많은 솔루션을 찾았지만 12.10에서 작동하지 않는 것 같습니다.

누구나 x11vncVNC에 연결할 때 그래픽 로그인 화면이 표시되도록 서비스로 시작 하는 방법 (사용자 로그인 전에)을 구성하는 방법에 대한 단계별 지침을 제공 할 수 있습니까?

저는 Linux를 처음 사용하므로 응답 / 코멘트에 최대한 자세하게 설명하십시오.

감사


일반 사용자가 원격 컴퓨터 화면에 연결하기 위해 수행해야하는 모든 명령 및 구성의 양은 엄청납니다. 원격 데스크톱 기능은 값 비싼 에디션에서만 작동하지만 Windows에서는 몇 번의 마우스 클릭만으로 작동합니다. 몇 시간을 보냈 는데도 여전히 VNC를 자동으로 시작할 수 없습니다. 이것이 리눅스가 일반 사용자들에게 인기없는 OS로 남아있는 이유입니다 ... ( "Linux는 Android에서 사용됩니다!"와 같은 것을 말하지 마십시오. 단어는 상황에 따라 다른 의미를 갖습니다. context.)
젠장 야채

답변:


43

x11vnc 설치 :

sudo apt-get install x11vnc

사용자의 비밀번호를 작성하십시오.

x11vnc -storepasswd

ssh 설정이있는 경우 이미 로그인 한 것으로 가정하여 x11vnc를 시작할 수 있지만 암호 파일을 사용하도록 지시해야합니다.

x11vnc -usepw

로그인하지 않으면 설명과 함께 오류가 발생합니다.

If NO ONE is logged into an X session yet, but there is a greeter login
program like "gdm", "kdm", "xdm", or "dtlogin" running, you will need
to find and use the raw display manager MIT-MAGIC-COOKIE file.
Some examples for various display managers:

 gdm:     -auth /var/gdm/:0.Xauth
          -auth /var/lib/gdm/:0.Xauth
 kdm:     -auth /var/lib/kdm/A:0-crWk72
          -auth /var/run/xauth/A:0-crWk72
 xdm:     -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk
 dtlogin: -auth /var/dt/A:0-UgaaXa

로그인에 lightdm을 사용한다고 가정하면이 문제를 해결할 수 있습니다. 다음 명령으로 x11vnc를 시작할 수 있습니다.

sudo x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw

이것이 x11vnc를 루트로 실행하는 것이 가장 좋은 아이디어인지 확실하지 않습니다. 누군가 sudo를 사용하지 않고 로그인에 액세스하는 방법으로 편집 할 수 있습니다.

이것이 실행되면 krdc (KDE의 경우)와 같은 vnc 클라이언트를 사용하여 연결할 수 있어야합니다. ssh 세션을 열지 않고도 GNU Screen 을 사용 하여 x11vnc를 계속 실행할 수 있습니다.

나는 http://ubuntuforums.org/showthread.php?t=2039022 를 사용하여 이것을 알아낼 수있었습니다 .

시작시 실행할 수있는 샘플 시작 작업은 다음과 같습니다. /etc/init/x11vnc.conf에 넣어야합니다. (최신 버전의 Ubuntu는 systemd를 사용하므로 샘플 systemd 구성이있는 다른 답변을 참조하십시오.)

# description "start and stop x11vnc"

description "x11vnc"

start on runlevel [2345]
stop on runlevel [^2345]

console log
#chdir /home/
#setuid 1000
#setgid 1000

respawn
respawn limit 20 5

exec x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -usepw

이 파일을 만들었 으면 다음을 실행하여 시작할 수 있습니다. sudo start x11vnc 다음 위치에서 로그를 확인할 수 있습니다. /var/log/upstart/x11vnc.log


1
x11vnc정상적인 사용자로 실행할 수 있으며 문제 없습니다. 예를 들어 호스트로 ssh x11vnc -safer -forever -display :0 2>&1 &하고 tmux 세션에서 실행 하는 것이 좋습니다 (모범 사례) $USER.
Terry Wang

또한 참조 용으로 뷰포트를 변경하려면 superuser.com/questions/270608/…
Wtower

2
이것은 요청에 따라 자동 시작하는 방법을 설명하지 않습니다 (그리고 그러한 기능에 대한 일반적인 요구 사항입니다)
LovesTha

1
x11vnc 옵션의 전체 목록은 여기를 참조하십시오. : 그것은 나에게이 찾을하는 데 시간이 오래 걸렸다 karlrunge.com/x11vnc/x11vnc_opts.html
가브리엘 스테이 플스

1
: 그리고 부팅시 자동 시작으로 라즈베리 파이에이 설정에 대한 훌륭한 튜토리얼 여기를 참조 megaleecher.net/Raspberry_Pi_VNC_Setup
가브리엘 스테이 플스

42

위의 답변은 다음과 같이 systemd (15.04+)가있는 Ubuntu 버전에 대한 몇 가지 수정 사항을 해결하여 문제를 해결합니다.

  • -auth guessx11vnc 의 새로운 기능을 활용하십시오 .
  • 시스템 업데이트 (시작하지 않음)

다음을 실행하여 설치하십시오.

sudo apt-get install x11vnc
sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
# for Ubuntu 15.04+
sudo nano /lib/systemd/system/x11vnc.service
# for Ubuntu 16.10+
sudo nano /etc/systemd/system/x11vnc.service

이것을 파일에 삽입하십시오 :

[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service

[Service]
ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
Restart-sec=2

[Install]
WantedBy=multi-user.target

그런 다음 시작하십시오.

sudo systemctl daemon-reload
sudo systemctl start x11vnc

부팅시 서비스가 시작되는지 확인하십시오.

sudo systemctl enable x11vnc

참조 된 bbs.archlinux.org/viewtopic.php?id=168756 에 대한 몇 가지 조언은 / Afters의 PARAMS 필요
babelmonk

2
왜이 답변이 정답으로 표시되지 않습니까?
Cybex

1
디스플레이가 전혀 없다면, 임의의 해상도를 설정하는 것이 sudo xrandr --fb 1920x1080좋습니다 : .
Orient

2
주어진 x11vnc가 즉시 작동하지는 않습니다. 실패시 2 초마다 다시 시작하는 서비스를 커밋하기 전에 테스트 명령을 제공하는 것이 좋습니다. 헤드리스 클라우드 Ubuntu 17.10 서버에서 lightdm 및 xfce4를 사용하고 있습니다. Restart-sec해야RestartSec
레이 포스에게

1
우분투 18.04도 RestartSec오히려 원하는 것 같습니다 Restart-sec.
Scott Willeke

14

방법은 다음과 같습니다.

  1. X11VNC 서버를 설치하십시오 (또는 Ubuntu Software Center-> X11VNC Server를 통해)

    sudo apt-get install x11vnc
    
  2. VNC 비밀번호 파일을 작성하십시오.

    sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
    
  3. 편집기 nano (또는 gedit, leafpad 등)에서 작업 파일을 작성하십시오.

    sudo nano /etc/init/x11vnc.conf
    
  4. 이것을 파일에 붙여 넣으십시오.

    start on login-session-start
    
    script
    
    /usr/bin/x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc.pass -rfbport 5900 -bg -o /var/log/x11vnc.log
    
    end script
    
  5. 파일을 저장하십시오. Upstart 이벤트 login-session-start에 대한 작업을 작성했습니다 .

  6. 우분투를 다시 시작하십시오.

그게 다야! 이제 로그인하기 전에도 VNC 클라이언트와 연결할 수 있습니다.


그러나 모니터가 연결될 때까지 lightdm이 인증 파일을 만들지 않을 때 어떻게 작동합니까?
LovesTha

@didibus Lubuntu 에서이 작업을 시도했지만 x11vnc매번 자동 시작 되지 않습니다. 그 문제에 대해서는 서비스로 시작하지도 않습니다. 파일 구문이 정확하고 x11vnc쉘에서 잘 시작할 수 있습니다 . 내가 무엇을 놓치고 있습니까?
linuxgringo

이것은 루 분투에서도 작동합니다. 바나나 파이를위한 LeMaker의 Lubuntu 버전.
AaronD

3

babelmonks는 bash 스크립트로 응답하고 x11vnc.sh로 복사하여 저장하고 sudo bash /path/to/file/x11vnc.sh로 실행하십시오 (죄송합니다.

#!/bin/bash
#install x11vnc & set password
apt-get install x11vnc -y
x11vnc -storepasswd 123456 /etc/x11vnc.pass
#create config file for  system service
cat > /lib/systemd/system/x11vnc.service <<-EOF
[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service

[Service]
 ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/killall x11vnc

[Install]
WantedBy=multi-user.target
EOF
#restart new services &  enable on boot
systemctl daemon-reload
systemctl start x11vnc
systemctl enable x11vnc

다른 답변을 개선하려면 수정을 제안하고 새 답변을 만들지 마십시오.
David Foerster

편집 @ nix-badweasel
babelmonk


1

다음은 sddmKDE 5에 대한 구성 입니다. 현재 -auth guess는 작동하지 않습니다 sddm. 인증 파일은 매번 다르므로와 같은 것이 필요합니다 -auth /var/run/sddm/*. 서비스는 다음과 같습니다.

[Unit]
Description="x11vnc"
After=multi-user.target

[Service]
ExecStart=/bin/sh -c "/usr/bin/x11vnc -xkb -noxrecord -display :0 -auth /var/run/sddm/* -rfbauth /etc/x11vnc.pass"
ExecStop=/usr/bin/killall x11vnc

[Install]
WantedBy=multi-user.target

난 후에 넣어해야 multi-user.target후 경우 display-manager.service, x11vnc어쩌면, 인증 파일을 찾을 수 없습니다 sddm나중에 인증 파일을 생성합니다. 이것은 Manjaro 18에서 테스트되었습니다.


0

내 자신의 쉘을 사용합니다 : https://github.com/dvdvideo1234/UbuntuBatches/tree/master/x11VNC

start on login-session-start

script

sudo /usr/bin/x11vnc -xkb -auth /var/run/lightdm/root/:0 -noxrecord -noxfixes -noxdamage -rfbauth /var/srv/x11vnc/x11vnc.pass -forever -bg -rfbport <your_port> -o /var/srv/x11vnc/x11vnc.log

end script

파일에 :

/etc/init/x11vnc.conf

로그온 화면에서 암호를 묻는 경우에도 부팅시 자동으로 시작됩니다.


0

x11vnc 패키지 설치

#sudo apt-get install x11vnc

그런 다음 암호를 설정하십시오

#x11vnc -usepw

그런 다음 x11vnc에 대한 시작 스크립트를 작성하십시오.

#sudo nano /etc/x11vnc.sh

파일에서 :

/usr/bin/x11vnc -bg -forever -shared -reopen -usepw

그런 다음 저장

#sudo chmod 777 /etc/x11vnc.sh

그런 다음 제어 파일 => 시작 응용 프로그램에 스크립트 파일을 추가 한 다음 추가를 클릭하십시오

> Name-----------x11vnc

> Command-----<map the script file

> Comment------service

모든 사용자에게 추가해야합니다.

이것은 사용자 로그인 후에 만 ​​실행됩니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.