x11vnc Server unter User automatisch starten?
x11vnc Server unter User automatisch starten?
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ß?
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ß?
Re: x11vnc Server unter User automatisch starten?
Oh, ich wusste gar nicht, dass der auch eine GUI hat.
Ich habe den x11vnc auf meinem HTPC im Autostart, dafür reicht:
Ohne die Option -gui läuft er ohne die GUI. Die Konfiguration wird dann aus ~/.x11vncrc gelesen, sieht bei mir z.B. so aus:
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.
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
Code: Alles auswählen
$ cat ~/.x11vncrc
display :0
rfbauth /home/.../.vnc/passwd
forever
Manchmal bekannt als Just (another) Terminal Hacker.
-
- Beiträge: 2094
- Registriert: 07.07.2006 18:32:05
Re: x11vnc Server unter User automatisch starten?
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.
Bei Interesse poste ich das gerne.
Re: x11vnc Server unter User automatisch starten?
Ja, natürlich besteht Interesse!
-
- Beiträge: 2094
- Registriert: 07.07.2006 18:32:05
Re: x11vnc Server unter User automatisch starten?
==== Autostart Skript erstellen ====
Quelle
**/etc/init.d/local.autostart**
==== Skript in das Runlevel einfügen ====
==== Passwort für x11vnc speichern (einmalig) ====
==== /usr/local/src/x11vnc.sh ====
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
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
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;
Re: x11vnc Server unter User automatisch starten?
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?
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?
Re: x11vnc Server unter User automatisch starten?
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:
2. Schritt
Eine zweite Datei /usr/local/bin/x11vnc.sh erstellen. Datei gehört root:root und hat 700 als Rechte:
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!![Thumbs Up :THX:](./images/smilies/thumbup.gif)
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.
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
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
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!
![Thumbs Up :THX:](./images/smilies/thumbup.gif)
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.
Re: x11vnc Server unter User automatisch starten?
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?
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?
Re: x11vnc Server unter User automatisch starten?
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.
Re: x11vnc Server unter User automatisch starten?
Danke, das werde ich mal testen!
Re: x11vnc Server unter User automatisch starten?
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.
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.
Re: x11vnc Server unter User automatisch starten?
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:
Nicht funktionierendes Laptop:
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...
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.
![Neutral :|](./images/smilies/icon_neutral.gif)
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
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
Woran liegt es, daß der x11vnc auf Laptop "dibm" autostartet, auf Laptop "dp771" aber nicht? Ich such' mir hier gerade 'nen Wolf...
Re: x11vnc Server unter User automatisch starten?
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![Wink ;)](./images/smilies/icon_wink.gif)
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
![Wink ;)](./images/smilies/icon_wink.gif)