x11vnc Server unter User automatisch starten?

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
dirk11
Beiträge: 2818
Registriert: 02.07.2013 11:47:01

x11vnc Server unter User automatisch starten?

Beitrag von dirk11 » 07.03.2016 16:54:40

Hi Leute,

ich habe auf ein paar entfernten Rechnern für Fernhilfe x11vnc-Server installiert. Der wird dann durch ssh getunnelt. Problem: der muß manuell aufgerufen werden, und er speichert seine Parameter nicht. Dabei geht es vor allem um "accept connections". Man muß das erste "aufpoppende" Fenster mit OK bestätigen, dann im zweiten besagtes Accept connections anhaken und das dann mit Apply oder Ok bestätigen.

Kann ich das z.B. durch ein Wrapperscript dahingehend automatisieren, daß das bei der Anmeldung des Users automatisch geschieht und dieser nichts mehr dazutun muß?

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: x11vnc Server unter User automatisch starten?

Beitrag von JTH » 07.03.2016 20:34:03

Oh, ich wusste gar nicht, dass der auch eine GUI hat.

Ich habe den x11vnc auf meinem HTPC im Autostart, dafür reicht:

Code: Alles auswählen

$ cat ~/.config/autostart/x11vnc.desktop 
[Desktop Entry]
Type=Application
Name=x11vnc
Exec=/usr/bin/x11vnc
Ohne die Option -gui läuft er ohne die GUI. Die Konfiguration wird dann aus ~/.x11vncrc gelesen, sieht bei mir z.B. so aus:

Code: Alles auswählen

$ cat ~/.x11vncrc 
display :0
rfbauth /home/.../.vnc/passwd
forever
Verbindungen werden so ohne Nachfrage akzeptiert und durch das forever beendet sich der Server nicht gleich, wenn die erste Verbindung beendet wird. Falls du noch mehr Optionen brauchst, musst du mal in die manpage gucken.
Manchmal bekannt als Just (another) Terminal Hacker.

Alternativende
Beiträge: 2091
Registriert: 07.07.2006 18:32:05

Re: x11vnc Server unter User automatisch starten?

Beitrag von Alternativende » 07.03.2016 21:16:58

Ich habe dafür ein Script gebastelt, vergleichsweise aufwendig, aber dafür ging es auch im.Display Manager meine ich zumindest. Das mit dem forever wusste ich z.B nicht und dass muss ich noch einpflegen.

Bei Interesse poste ich das gerne.

dirk11
Beiträge: 2818
Registriert: 02.07.2013 11:47:01

Re: x11vnc Server unter User automatisch starten?

Beitrag von dirk11 » 07.03.2016 22:47:42

Ja, natürlich besteht Interesse!

Alternativende
Beiträge: 2091
Registriert: 07.07.2006 18:32:05

Re: x11vnc Server unter User automatisch starten?

Beitrag von Alternativende » 08.03.2016 07:32:03

==== Autostart Skript erstellen ====

Quelle


**/etc/init.d/local.autostart**

Code: Alles auswählen

#! /bin/sh
### BEGIN INIT INFO
# Provides:          local.autostart
# Required-Start:    $start
# Required-Stop:     $shutdown
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Kurze Beschreibung
# Description:       Lange Bechreibung
### END INIT INFO
# Author: Name

# Aktionen
sh /usr/local/src/x11vnc.sh
==== Skript in das Runlevel einfügen ====

Code: Alles auswählen

update-rc.d local.autostart defaults

==== Passwort für x11vnc speichern (einmalig) ====

Code: Alles auswählen

x11vnc -storepasswd yourVNCpasswordHERE /root/.vnc/passwd
==== /usr/local/src/x11vnc.sh ====

Code: Alles auswählen

#!/bin/bash

sleep 5s
/usr/bin/x11vnc -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /root/.vnc/passwd -rfbport 5900 -noxrecord -noxfixes -noxdamage -forever -bg -o /var/log/x11vnc.log


exit 0;

dirk11
Beiträge: 2818
Registriert: 02.07.2013 11:47:01

Re: x11vnc Server unter User automatisch starten?

Beitrag von dirk11 » 08.03.2016 18:35:49

Danke! D.h., damit kann ich sogar das login aus der Ferne starten und der lokale User kann dann so "übernehmen", wie der Desktop steht? Das wäre ja sehr geil, eine Lösung, nach der ich schon lange suche. Muss ich das anstelle des lightdm starten oder zusätzlich?

Und noch ein Nachtrag: ich nutze ganz bewußt noch initrd - an welche Stelle gehört denn das Start-Script? Rein logisch gedacht müßte es ja, wenn es so wie oben von mir vermutet funktioniert, vor dem lightdm aufgerufen werden, also als S20 (lightdm steht hier als S21lightdm in /etc/rc2.d). Oder?

dirk11
Beiträge: 2818
Registriert: 02.07.2013 11:47:01

Re: x11vnc Server unter User automatisch starten?

Beitrag von dirk11 » 08.03.2016 23:52:23

Soo. Ein wenig Experimentierzeit später...
Es funktioniert mit dem folgenden, allerdings muß ich -nopw setzen, sonst wird natürlich nach dem Passwort gefragt, welches vorher in der Datei abgelegt wurde. Da ich den vnc aber auf localhost beschränke und er sowieso nur durch einen ssh-Tunnel zugänglich ist, ist das kein Problem.

1. Schritt:
Eine Datei /etc/init.d/x11vnc-autostart erstellen, welche wie folgt aussieht. Datei gehört root:root und hat 755 als Rechte, wie alle anderen Dateien in dem Verzeichnis auch:

Code: Alles auswählen

#! /bin/sh -e
### BEGIN INIT INFO
# Provides:             x11vnc-autostart
# Required-Start:       lightdm
# Required-Stop:
# X-Stop-After:         x11-common
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Description: Autostart fuer x11vnc-Server
### END INIT INFO
# Author: https://debianforum.de/forum/viewtopic.php?f=32&t=159896

# Aktion
sh /usr/local/bin/x11vnc.sh

exit 0
2. Schritt
Eine zweite Datei /usr/local/bin/x11vnc.sh erstellen. Datei gehört root:root und hat 700 als Rechte:

Code: Alles auswählen

#!/bin/bash

sleep 5

/usr/bin/x11vnc -auth /var/run/lightdm/root/:0 -display :0 -nopw -rfbport 5900 -listen localhost -noxrecord -noxfixes -noxdamage -noipv6 -forever -bg -o /var/log/x11vnc.log

exit 0
Vermutlich könnte ich diese eine relevante Zeile sogar oben in das init-script integrieren, aber so ist's übersichtlicher.
Dann
update-rc.d x11vnc-autostart defaults
ausführen. Nach einem Reboot funktioniert alles wie gewünscht. Auf dem lokalen Client, mit welchem der entfernte Desktop angeschaut werden soll, wird die ssh-Verbindung wie folgt aufgerufen:
ssh user@entfernter_Rechner -C -L 5901:localhost:5900
Dann auf dem lokalen Rechner einen VNC-Client starten, localhost:5901 auswählen und die Verbindung steht.

Danke für die Anregungen! :THX:

Dirk
P.S.: Vorausgesetzt wird die Nutzung von lightdm als Session-Manager und dem x11vnc-Server. Wer andere Software benutzt, muß das natürlich individuell anpassen.

P.P.S.: Falls jemand weiß, wie ich das initscript dahingehend umbaue, daß es start|stop|restart kann: immer her damit.

dirk11
Beiträge: 2818
Registriert: 02.07.2013 11:47:01

Re: x11vnc Server unter User automatisch starten?

Beitrag von dirk11 » 19.03.2016 13:41:57

Ich muss das Thema nochmal hervorkramen. Ich muss ein Problem des x11vnc umgehen (ich denke, es liegt am Client ssvnc): ich habe einen Zielrechner, dessen Bildschirmauflösung genauso ist wie die eines meiner beiden Monitore, vor denen ich sitze. Dadurch wird bei einer Verbindung ein VNC-Fenster geöffnet, welches für den entfernten Desktop minimal zu klein ist, so daß ich scrollen muss. Wäre kein Problem, aber scrollen geht nur in eine Richtung, sprich ich kann zwar runterscrollen, aber nicht wieder rauf - der Scrollbalken springt schlicht immer wieder zurück.

Wie kann ich jetzt auf dem Quellrechner, wo also der vnc-Server läuft, die übertragene Auflösung (bei Beibehaltung des korrekten Seitenverhältnis) um wenige Prozentpunkte verringern, so daß das Bild nicht zu schlecht wird, ich aber nicht mehr scrollen muss?

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: x11vnc Server unter User automatisch starten?

Beitrag von JTH » 19.03.2016 18:05:21

Die manpage erwähnt eine -scale-Option, der man einen Faktor -scale 0.9 oder -scale 9/10 oder eine Zielauflösung mitgeben kann -scale 800x600. Ob die Option genau das macht, was du suchst, müsstest du ausprobieren.
Manchmal bekannt als Just (another) Terminal Hacker.

dirk11
Beiträge: 2818
Registriert: 02.07.2013 11:47:01

Re: x11vnc Server unter User automatisch starten?

Beitrag von dirk11 » 19.03.2016 18:34:51

Danke, das werde ich mal testen!

dirk11
Beiträge: 2818
Registriert: 02.07.2013 11:47:01

Re: x11vnc Server unter User automatisch starten?

Beitrag von dirk11 » 20.03.2016 23:21:18

Ein -scale 0.97 hat's getan. Danke für den Hinweis!

Mir ist noch nicht so ganz klar, was die Optionen -noxrecord -noxfixes -noxdamage machen. Ja, ich habe gelesen, was in der manpage steht, aber ich verstehe nicht, was es bei diesen Optionen bedeutet.

dirk11
Beiträge: 2818
Registriert: 02.07.2013 11:47:01

Re: x11vnc Server unter User automatisch starten?

Beitrag von dirk11 » 02.11.2020 23:34:00

Hi Leute, ein uralter Thread, aber ich muss ihn leider nochmal hervor kramen, vielleicht hat ja jemand die zündende Idee:

Die weiter oben von mir erwähnte Lösung lief bis dato einwandfrei. Ich habe hier jetzt zwei Laptops, die vor kurzem auf Buster aktualisiert wurden. Im Zuge dessen wurde auch auf systemd als Start-System umgestellt, also einfach nur sysvinit-core gegen das systemd-Pendant ausgetauscht. Das funktioniert auch im Großen und Ganzen, aber auf dem vor zwei Monaten aktualisierten Laptop wird der X11vnc auto-gestartet, auf dem heute aktualisierten Laptop aber nicht. :|

Hat vielleicht jemand eine Idee, woran das liegen könnte? Datenstand ist auf beiden gleich, die Installation ist auch ziemlich identisch, was der Grund ist, wieso ich das überhaupt nicht verstehe.

Funktionierendes Laptop:

Code: Alles auswählen

root@dibm:/# find . -name x11vnc*
./etc/init.d/x11vnc-autostart
./usr/bin/x11vnc
./usr/local/bin/x11vnc.sh
./sys/fs/cgroup/devices/system.slice/x11vnc-autostart.service
./sys/fs/cgroup/pids/system.slice/x11vnc-autostart.service
./sys/fs/cgroup/memory/system.slice/x11vnc-autostart.service
./sys/fs/cgroup/systemd/system.slice/x11vnc-autostart.service
./sys/fs/cgroup/unified/system.slice/x11vnc-autostart.service
./run/systemd/generator.late/x11vnc-autostart.service
./run/systemd/generator.late/graphical.target.wants/x11vnc-autostart.service
./run/systemd/generator.late/multi-user.target.wants/x11vnc-autostart.service
Nicht funktionierendes Laptop:

Code: Alles auswählen

root@dp771:/# find . -name x11vnc*
./etc/init.d/x11vnc-autostart
./usr/bin/x11vnc
./usr/local/bin/x11vnc.sh
./run/systemd/generator.late/x11vnc-autostart.service
Starte ich den x11vnc von Hand ("klassisch" mit /etc/init.d/x11vnc-autostart start), so funktioniert das ohne jegliche Fehlermeldung.

Woran liegt es, daß der x11vnc auf Laptop "dibm" autostartet, auf Laptop "dp771" aber nicht? Ich such' mir hier gerade 'nen Wolf...

dirk11
Beiträge: 2818
Registriert: 02.07.2013 11:47:01

Re: x11vnc Server unter User automatisch starten?

Beitrag von dirk11 » 02.11.2020 23:50:32

Ich mach dann mal die Ingrid:
Wie Schuppen vor den Augen ist mir auf einmal aufgefallen, daß in einer Fehlermeldung (sinngemäß) "...no symlink.." drinsteht. Nachgesehen, es ist kein einziger Start-Symlink vorhanden. Whut? Keine Ahnung, warum die plötzlich und unerwartet abhanden gekommen sind.
Also
update-rc.d x11vnc-autostart defaults
gemacht, danach nochmal enable, reboot und: TADAAA!

Danke für die Aufmerksamkeit, legt euch wieder hin ;)

Antworten