Vraag Hoe stel ik x11vnc in om toegang te krijgen tot het grafische inlogscherm?


Ik heb een server met Ubuntu 12.10 en moet op afstand naar deze server kunnen inloggen zonder ingelogd te zijn.

Ik heb veel oplossingen gevonden, maar geen lijkt te werken met 12.10.

Kan iemand me stapsgewijze instructies geven over hoe te configureren? x11vnc om te beginnen als een service (voorafgaand aan gebruikersinlog) zodat ik bij het verbinden met VNC een grafisch inlogscherm krijg te zien?

Ik ben nieuw voor Linux, dus geef alsjeblieft zo veel mogelijk details in je reacties / opmerkingen.

Bedankt


43
2017-12-17 18:27


oorsprong


De hoeveelheid van al deze opdrachten en configuraties die een gemiddelde gebruiker hoeft te doen om verbinding te maken met het scherm van een externe computer is gewoon belachelijk. In Windows werkt het gewoon ... met een paar muisklikken, hoewel de functie Extern bureaublad alleen werkt voor dure edities. Ik heb een paar uur doorgebracht en ik kon VNC nog steeds niet automatisch laten starten. Dit is de reden waarom Linux voor de gemiddelde gebruiker een impopulair besturingssysteem blijft ... (Gelieve geen dingen te wijzen zoals "Linux wordt gebruikt in Android!" Of zoiets.) Woorden hebben verschillende betekenissen in verschillende context. Je weet wat "Linux" ik bedoel in dit context.) - Damn Vegetables


antwoorden:


Installeer x11vnc:

sudo apt-get install x11vnc

Maak een wachtwoord voor uw gebruiker:

x11vnc -storepasswd

Als je ssh-setup hebt, kun je dit gebruiken om x11vnc te starten, ervan uitgaande dat je al bent ingelogd, maar vergeet niet om het te vertellen om je wachtwoordbestand te gebruiken:

x11vnc -usepw

Als je niet bent ingelogd krijg je een foutmelding met de uitleg:

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

Ervan uitgaande dat u lightdm gebruikt voor het inloggen, kunt u dit probleem oplossen door x11vnc te starten met de volgende opdracht:

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

Ik ben niet zeker dat dit het beste idee is om x11vnc als root uit te voeren. Misschien kon iemand bewerken met een manier om toegang te krijgen tot de login zonder gebruik te maken van sudo.

Nadat dit is uitgevoerd, moet u verbinding kunnen maken via een vnc-client zoals krdc (voor KDE). Misschien wil je gebruiken GNU-scherm om x11vnc draaiende te houden zonder dat de ssh-sessie geopend is

Ik kon dit achterhalen met behulp van http://ubuntuforums.org/showthread.php?t=2039022.

Hier is een voorbeeldstarttaak die u kunt gebruiken om hem bij het opstarten te laten werken. Het moet in /etc/init/x11vnc.conf gezet worden. (Merk op dat nieuwere versies van Ubuntu systemd gebruiken, dus zie het andere antwoord dat een voorbeeld systemd config heeft):

# 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

Nadat u dit bestand hebt gemaakt, kunt u het starten door het volgende uit te voeren:     sudo start x11vnc U kunt het logboek bekijken op: /var/log/upstart/x11vnc.log


36
2018-03-28 15:42



Je kan lopen x11vnc als een normale gebruiker, geen probleem. Bijvoorbeeld: ssh naar de host en uitvoeren x11vnc -safer -forever -display :0 2>&1 & in een tmux-sessie (good practice) zal het onderlopen $USER. - Terry Wang
Ook, alleen ter referentie, om de viewport te wijzigen: superuser.com/questions/270608/... - Wtower
Dit verklaart niet hoe het automatisch moet starten zoals gevraagd (en is een algemene vereiste voor een dergelijke functie) - LovesTha
Zie hier voor een volledige lijst van x11vnc-opties. Het kostte me een lange tijd om dit te vinden: karlrunge.com/x11vnc/x11vnc_opts.html - Gabriel Staples
En kijk hier voor een uitstekende tutorial over het opzetten van dit op een Raspberry Pi met auto-start bij het opstarten: megaleecher.net/Raspberry_Pi_VNC_Setup - Gabriel Staples


De bovenstaande antwoorden lossen het probleem op, hoewel een paar amendementen voor versies van Ubuntu met systemd (15.04+), als volgt:

  • Profiteer van nieuw -auth guess functionaliteit in x11vnc - wat helpt!
  • Update voor systemd (niet upstart)

Voer de volgende stappen uit om te installeren:

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

Voeg dit toe aan het bestand:

[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

Begin dan met:

sudo systemctl daemon-reload
sudo systemctl start x11vnc

En zorg ervoor dat de service start bij het opstarten:

sudo systemctl enable x11vnc

29
2017-09-22 09:17



verwezen bbs.archlinux.org/viewtopic.php?id=168756 voor wat advies over vereist / Afters-params - babelmonk
waarom wordt dit antwoord niet als het juiste antwoord gemarkeerd? - Cybex
Als er helemaal geen weergave is, wil je misschien een willekeurige resolutie instellen: sudo xrandr --fb 1920x1080. - Orient
Het is geen gegeven dat de x11vnc onmiddellijk zal werken. Het is een goed idee om een ​​testopdracht te geven voordat u zich tot een service wendt die elke twee seconden opnieuw opstart bij een fout. Ik gebruik lightdm en xfce4 op een Ubuntu 17.10-server zonder hoofd wolk. Restart-sec zou moeten zijn RestartSec - Ray Foss
Ubuntu 18.04 lijkt ook te willen RestartSec liever dan Restart-sec. - Scott Willeke


Hier is hoe:

  1. Installeer de X11VNC-server (of via Ubuntu Software Center -> X11VNC-server)

    sudo apt-get install x11vnc
    
  2. Maak een VNC-wachtwoordbestand.

    sudo x11vnc -storepasswd yourVNCpasswordHERE /etc/x11vnc.pass
    
  3. Maak een taakbestand aan in de editor nano (of gedit, leafpad enz.).

    sudo nano /etc/init/x11vnc.conf
    
  4. Plak dit in het bestand:

    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. Bewaar het bestand. U hebt een taak gecreëerd voor het Upstart-evenement login-sessie-start.

  6. Start Ubuntu opnieuw.

Dat is het! U moet nu al vóór het inloggen verbinding kunnen maken met een VNC-client.


13
2017-09-25 18:33



Maar hoe krijg je het aan het werk wanneer lightdm het Auth-bestand niet maakt totdat een monitor is aangesloten? - LovesTha
@didibus Ik heb dit in Lubuntu geprobeerd te doen, maar x11vnc slaagt er niet altijd in om automatisch te starten. Het zal zelfs niet als een dienst beginnen, trouwens. Bestandsyntaxis is correct en ik kan beginnen x11vnc van de schaal prima. Wat mis ik? - linuxgringo
Dit werkt ook op Lubuntu. Specifiek, LeMaker's versie van Lubuntu voor de Banana Pi. - AaronD


babelmonks antwoord als een bash-script, kopieer en sla op als x11vnc.sh & run met sudo bash /path/to/file/x11vnc.sh (sorry heb je niet genoeg rep om een ​​reactie te posten)

#!/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

2
2018-01-02 23:26



Als u een ander antwoord wilt verbeteren, stelt u een bewerking voor en maakt u geen nieuw antwoord. - David Foerster
Zal dit graag aan de mijn toevoegen als je een edit @ nix-badweasel wilt maken - babelmonk


Gebruik mijn script voor eenvoudige installatie: installvncubuntu1604.sh

Gebruik:

chmod +x ./installvncubuntu1604.sh; sudo ./installvncubuntu1604.sh

1
2018-03-14 16:20





Ik gebruik mijn eigen shell: 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

in het bestand:

/etc/init/x11vnc.conf

Het maakt het automatisch opstarten tijdens het opstarten, zelfs op het aanmeldscherm vraagt ​​het om een ​​wachtwoord.


0
2018-03-12 09:04





Installeer x11vnc-pakket

#sudo apt-get install x11vnc

Stel vervolgens het wachtwoord in

#x11vnc -usepw

Maak vervolgens het opstartscript voor x11vnc

#sudo nano /etc/x11vnc.sh

In bestand:

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

Sla dan op

#sudo chmod 777 /etc/x11vnc.sh

Voeg vervolgens het scriptbestand toe aan Control Center => Startup Application Klik vervolgens op Toevoegen

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

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

> Comment------service

Dit moet verplicht worden toegevoegd voor alle gebruikers

Dit wordt alleen uitgevoerd na gebruikersaanmelding


0
2017-08-23 12:24