UPDATED!
checkout vnc section of: https://dwaves.de/2018/05/07/getting-started-with-raspberry-pi-2-model-b-v1-1-vs-odroid-xu4-vnc-display-0-and-1/
UPDATED AGAIN!
if you have problems connecting and get the error message: “x11vnc error: socket: Address family not supported by protocol (97)”
then you probably have ipv6 disabled on the client. (and even if you are not using it… it seems like the server “requires” it)
vim /etc/default/grub # find GRUB_CMDLINE_LINUX="ipv6.disable=1" # and comment it out or remove this # GRUB_CMDLINE_LINUX="ipv6.disable=1" # then run (tested with: debian8/ubuntu) update-grub
# RedHat/Fedora/CentOS7 update grub config and menu grub2-mkconfig grub2-mkconfig -o /boot/grub2/grub.cfg # and restart and you should be able to connect reboot
it is wise to, monitor all logs while you are trying to get vnc server working… it can reveal a lot what is going on and wrong.
forget about Xvnc and tigervnc…
x11vnc is probably what you want: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-remote-access-for-the-gnome-desktop-on-centos-7
it cost me some time and concentration to figure this out…
what you probably want is “screen sharing” – e.g. SEE THE SAME SCREEN as if you were sitting at the monitor of the actual machine.
tightvnc client accessing screen shared by centos7 x11vnc – same desktop vnc also accessible from windows ssh tunneled via putty 0.65:
requirements: make sure you can ssh into your machine with a standard non-root user.
hostnamectl; # tested with
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-693.11.1.el7.x86_64
Architecture: x86-64
it might be necessary to activate auto login…!!! -> https://dwaves.de/2016/09/24/linux-debian-8-gnome2-mate-desktop-autologin-auto-login/
why? because it seems that x11vnc is NOT running while initial LOGIN SCREEN is shown, which sucks but it is okay for me.
yum install x11vnc; # install vnc enabled xorg server reboot; # reboot server # when server has finished it's reboot # x11vnc does not work at login screen # so login to server so x11 get's started # and you see server's desktop # consider enabling auto login vim /etc/lightdm/lightdm.conf; # comment out those two lines autologin-user=username autologin-user-timeout=0 # BE ROOT ON THE CLIENT! # (non-root users are not allowed to redirect local ports) su - root; # simulates a proper root login # ssh into machine and forward client-localhost:5900 via ssh to server-localhost:5900 ssh user@192.168.0.101 -L 5900:localhost:5900 x11vnc -display :0 -auth .Xauthority; # test start vnc server ############################################################### #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# #@ @# #@ ** WARNING ** WARNING ** WARNING ** WARNING ** @# #@ @# #@ YOU ARE RUNNING X11VNC WITHOUT A PASSWORD!! @# #@ @# #@ This means anyone with network access to this computer @# #@ may be able to view and control your desktop. @# #@ @# #@ >>> If you did not mean to do this Press CTRL-C now!! <<< @# #@ @# #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# #@ @# #@ You can create an x11vnc password file by running: @# #@ @# #@ x11vnc -storepasswd password /path/to/passfile @# #@ or x11vnc -storepasswd /path/to/passfile @# #@ or x11vnc -storepasswd @# #@ @# #@ (the last one will use ~/.vnc/passwd) @# #@ @# #@ and then starting x11vnc via: @# #@ @# #@ x11vnc -rfbauth /path/to/passfile @# #@ @# #@ an existing ~/.vnc/passwd file from another VNC @# #@ application will work fine too. @# #@ @# #@ You can also use the -passwdfile or -passwd options. @# #@ (note -passwd is unsafe if local users are not trusted) @# #@ @# #@ Make sure any -rfbauth and -passwdfile password files @# #@ cannot be read by untrusted users. @# #@ @# #@ Use x11vnc -usepw to automatically use your @# #@ ~/.vnc/passwd or ~/.vnc/passwdfile password files. @# #@ (and prompt you to create ~/.vnc/passwd if neither @# #@ file exists.) Under -usepw, x11vnc will exit if it @# #@ cannot find a password to use. @# #@ @# #@ @# #@ Even with a password, the subsequent VNC traffic is @# #@ sent in the clear. Consider tunnelling via ssh(1): @# #@ @# #@ http://www.karlrunge.com/x11vnc/#tunnelling @# #@ @# #@ Or using the x11vnc SSL options: -ssl and -stunnel @# #@ @# #@ Please Read the documention for more info about @# #@ passwords, security, and encryption. @# #@ @# #@ http://www.karlrunge.com/x11vnc/faq.html#faq-passwd @# #@ @# #@ To disable this warning use the -nopw option, or put @# #@ 'nopw' on a line in your ~/.x11vncrc file. @# #@ @# #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# ############################################################### 19/02/2018 18:19:44 x11vnc version: 0.9.13 lastmod: 2011-08-10 pid: 2416 19/02/2018 18:19:44 Using X display :0 19/02/2018 18:19:44 rootwin: 0x281 reswin: 0x2a00001 dpy: 0xf69b80 19/02/2018 18:19:44 19/02/2018 18:19:44 ------------------ USEFUL INFORMATION ------------------ 19/02/2018 18:19:45 X DAMAGE available on display, using it for polling hints. 19/02/2018 18:19:45 To disable this behavior use: '-noxdamage' 19/02/2018 18:19:45 19/02/2018 18:19:45 Most compositing window managers like 'compiz' or 'beryl' 19/02/2018 18:19:45 cause X DAMAGE to fail, and so you may not see any screen 19/02/2018 18:19:45 updates via VNC. Either disable 'compiz' (recommended) or 19/02/2018 18:19:45 supply the x11vnc '-noxdamage' command line option. 19/02/2018 18:19:45 19/02/2018 18:19:45 Wireframing: -wireframe mode is in effect for window moves. 19/02/2018 18:19:45 If this yields undesired behavior (poor response, painting 19/02/2018 18:19:45 errors, etc) it may be disabled: 19/02/2018 18:19:45 - use '-nowf' to disable wireframing completely. 19/02/2018 18:19:45 - use '-nowcr' to disable the Copy Rectangle after the 19/02/2018 18:19:45 moved window is released in the new position. 19/02/2018 18:19:45 Also see the -help entry for tuning parameters. 19/02/2018 18:19:45 You can press 3 Alt_L's (Left "Alt" key) in a row to 19/02/2018 18:19:45 repaint the screen, also see the -fixscreen option for 19/02/2018 18:19:45 periodic repaints. 19/02/2018 18:19:45 19/02/2018 18:19:45 XFIXES available on display, resetting cursor mode 19/02/2018 18:19:45 to: '-cursor most'. 19/02/2018 18:19:45 to disable this behavior use: '-cursor arrow' 19/02/2018 18:19:45 or '-noxfixes'. 19/02/2018 18:19:45 using XFIXES for cursor drawing. 19/02/2018 18:19:45 GrabServer control via XTEST. 19/02/2018 18:19:45 19/02/2018 18:19:45 Scroll Detection: -scrollcopyrect mode is in effect to 19/02/2018 18:19:45 use RECORD extension to try to detect scrolling windows 19/02/2018 18:19:45 (induced by either user keystroke or mouse input). 19/02/2018 18:19:45 If this yields undesired behavior (poor response, painting 19/02/2018 18:19:45 errors, etc) it may be disabled via: '-noscr' 19/02/2018 18:19:45 Also see the -help entry for tuning parameters. 19/02/2018 18:19:45 You can press 3 Alt_L's (Left "Alt" key) in a row to 19/02/2018 18:19:45 repaint the screen, also see the -fixscreen option for 19/02/2018 18:19:45 periodic repaints. 19/02/2018 18:19:45 19/02/2018 18:19:45 XKEYBOARD: 19/02/2018 18:19:45 Switching to -xkb mode to recover these keysyms: 19/02/2018 18:19:45 xkb noxkb Keysym ("X" means present) 19/02/2018 18:19:45 --- ----- ----------------------------- 19/02/2018 18:19:45 X 0x40 at 19/02/2018 18:19:45 X 0x5b bracketleft 19/02/2018 18:19:45 X 0x5d bracketright 19/02/2018 18:19:45 X 0x7b braceleft 19/02/2018 18:19:45 X 0x7d braceright 19/02/2018 18:19:45 X 0x7c bar 19/02/2018 18:19:45 X 0x5c backslash 19/02/2018 18:19:45 19/02/2018 18:19:45 If this makes the key mapping worse you can 19/02/2018 18:19:45 disable it with the "-noxkb" option. 19/02/2018 18:19:45 19/02/2018 18:19:45 19/02/2018 18:19:45 X FBPM extension not supported. 19/02/2018 18:19:45 X display is capable of DPMS. 19/02/2018 18:19:45 -------------------------------------------------------- 19/02/2018 18:19:45 19/02/2018 18:19:45 Default visual ID: 0x21 19/02/2018 18:19:45 Read initial data from X display into framebuffer. 19/02/2018 18:19:45 initialize_screen: fb_depth/fb_bpp/fb_Bpl 24/32/4416 19/02/2018 18:19:45 19/02/2018 18:19:45 X display :0 is 32bpp depth=24 true color 19/02/2018 18:19:45 19/02/2018 18:19:45 Autoprobing TCP port 19/02/2018 18:19:45 Autoprobing selected TCP port 5900 19/02/2018 18:19:45 Autoprobing TCP6 port 19/02/2018 18:19:45 Autoprobing selected TCP6 port 5900 19/02/2018 18:19:45 listen6: bind: Address already in use 19/02/2018 18:19:45 Not listening on IPv6 interface. 19/02/2018 18:19:45 19/02/2018 18:19:45 Xinerama is present and active (e.g. multi-head). 19/02/2018 18:19:45 Xinerama: number of sub-screens: 1 19/02/2018 18:19:45 Xinerama: no blackouts needed (only one sub-screen) 19/02/2018 18:19:45 19/02/2018 18:19:45 fb read rate: 500 MB/sec 19/02/2018 18:19:45 fast read: reset -wait ms to: 10 19/02/2018 18:19:45 fast read: reset -defer ms to: 10 19/02/2018 18:19:45 The X server says there are 13 mouse buttons. 19/02/2018 18:19:45 screen setup finished. 19/02/2018 18:19:45 19/02/2018 18:19:45 WARNING: You are running x11vnc WITHOUT a password. See 19/02/2018 18:19:45 WARNING: the warning message printed above for more info. 19/02/2018 18:19:45 The VNC desktop is: debian.domain.box:0 PORT=5900 ****************************************************************************** Have you tried the x11vnc '-ncache' VNC client-side pixel caching feature yet? The scheme stores pixel data offscreen on the VNC viewer side for faster retrieval. It should work with any VNC viewer. Try it by running: x11vnc -ncache 10 ... One can also add -ncache_cr for smooth 'copyrect' window motion. More info: http://www.karlrunge.com/x11vnc/faq.html#faq-client-caching # now you should already be able to connect to localhost with a vnc-client-software and get a response # you could now Ctrl+C and "do it better" with authentication x11vnc -storepasswd; # generate a per user password file Enter VNC password: (i think you can't use passwords longer than 8 chars?) Verify password: Write password to /home/user/.vnc/passwd? [y]/n y Password written to: /home/user/.vnc/passwd # start again x11vnc server pass auth x11vnc -display :0 -auth .Xauthority -rfbauth /home/user/.vnc/passwd -forever # if one is using MATE Gnome2, one can place the line above into autostart applications # -forever = do not quit on vnc client disconnect = keep running
time to connect
on the same machine that your ssh-terminal is running fire up a vnc client
centos7:
yum install vnc
# installs
tigervnc.x86_64 1.8.0-2.el7_4 @updates
installs tigervnc viewer, for windows user realvnc
possible errors
if you get:
channel 3: open failed: administratively prohibited: open failed
you will have to enable:
AllowTcpForwarding yes
in:
vim /etc/ssh/sshd_config # save quit and restart systemctl restart sshd
now RECONNECT and it should work again.
perfectly!
exactly what i wanted.
# start again x11vnc server with pixel caching and pass auth
x11vnc -display :0 -auth .Xauthority -ncache 10 -rfbauth /home/user/.vnc/passwd
but it seems a lot of vnc viewer clients DO NOT SUPPORT this feature and display funny stuff…
“x11vnc noncache – this is the pixel buffer cache region – your vnc viewer is not hiding it from you – pay no attention to the man behind the curtain” X-D
define resolution and other settings
all options: x11vnc all options.manpage.txt
what i do is save the “vnc startup command” in
vim /scripts/start_vnc.sh
currently it reads like:
x11vnc -display :0 -geometry 1366x768 -auth .Xauthority -rfbauth /home/user/.vnc/passwd
ssh tunnel from windows<-ssh->linux via putty
putty is really a neat beast… it can do ssh port forwarding from windows to linux. GOOD JOB!
open port in firewall?
INSECURE! if you use the ssh port-forwarding-tunnel you DO NOT NEED to even open a port – because you are connecting to localhost. on the client and server 😉
firewall-cmd --zone=public --add-port=5900/tcp --permanent; # open port 5900firewall-cmd --reload; # make changes active
remove tigervnc:
if you already have installed it and tried to config it in vane, get rid of it and reboot…
yum remove tigervnc-server.x86_64
yum remove tigervnc-server-minimal.x86_64
yum remove tigervnc-license.noarc
misc debug stuff:
# monitor all logs
find /var/log/ -type f \( -name "*" \) ! -path '*.gz*' -exec tail -n0 -f "$file" {} +
what display session is active?
your desktop gnome2 mate or other uses a session, vncserver needs to know what session you would like to screen-share:
loginctl list-sessions SESSION UID USER SEAT 1 1000 user seat0 loginctl show-session -p Display -p Active 1 Display=:0 Active=yes lsof -i -P -n|grep vnc; # check if vncserver is running and listening x11vnc 1888 user 10u IPv4 25838 0t0 TCP *:5900 (LISTEN) x11vnc 1888 user 11u IPv6 25839 0t0 TCP *:5900 (LISTEN) x11vnc 1888 user 12u IPv6 23301 0t0 TCP [::1]:5900->[::1]:53956 (ESTABLISHED)
Links:
http://www.karlrunge.com/x11vnc/
http://www.karlrunge.com/x11vnc/ssvnc.html
liked this article?
- only together we can create a truly free world
- plz support dwaves to keep it up & running!
- (yes the info on the internet is (mostly) free but beer is still not free (still have to work on that))
- really really hate advertisement
- contribute: whenever a solution was found, blog about it for others to find!
- talk about, recommend & link to this blog and articles
- thanks to all who contribute!
