After setting up a basic Debian server I do the following.
Old VNC Setup Notes
For 18.04 I decided to go with TigerVNC according to Linuxize How to Install and Configure VNC on Ubuntu 18.04. The main difference is that I can not be bothered using a secure link in my home private network. So to allow a direct connection add -localhost no
to the TigerVNC command line to allow direct connection, see GitHub TigerVNC notes unable to connect to socket: Connection refused(10061) #117
The basic set up is given in have the know how Ubuntu Sever install VNC, with more detailed startup details given in Ubuntu Server: How to run VNC on startup.
I prefer a full xfce desktop to a cut down gnome one, so I installed it instead, see How to Install and Configure VNC on Ubuntu 16.04 from Digitalocean.
A concise setup is here VNC server on Ubuntu 18.04 Bionic Beaver Linux.
I basically follow the Have the know how instructions, but instead of sudo apt install gnome-core
, use sudo apt install xfce4 xfce4-goodies
. I have been using vnc4server, not tightvncserver. Also in ~/.vnc/xstartup, only:
#!/bin/bash
unset SESSION_MANAGER
startxfce4 &
(Basically the startxfce4 &, instead of metacity &, gnome-settings-daemon &, gnome-panel &)
The xfce screen-saver seems to default on and use significant system resources, and is basically unnecessary on a headless server. To disable perform the following:
In the xfce desktop go to the Applications Menu > Settings > Screensaver
and disabled the screensaver, then from the File
menu chose Kill Daemon
.
Then go to the Applications Menu > Settings > Session and Startup
and unchecked Screensaver (launch screensaver and locker program)
in the Application Autostart
tab.
(The xfce screensavers actually look quite nice, and may make sense on a standard desktop install.)
The xfce default shell seems to be sh (/bin/sh), I prefer bash (/bin/bash). To check the current shell, type: echo $SHELL
. To use bash simply type bash
. To make permanent add the line exec /bin/bash
to the end of vim ~/.profile
. You will need to restart VNCserver for this to take effect.
Some other important tips:
*To start server vncserver -geometry 2200×1340
. (I have 2 preferred geometries, one for smaller screens (1880×1040) and one for larger (2200×1340))
*To stop server “vncserver -kill :1” or :2
*The server log files are stored in ~/.vnc, less ~/.vnc/KPTreeServer:1.log
or :2. (A log files may contain a number of errors and warnings, however this does not necessarily mean the vncserver will not operate correctly.)
*The .pid files in ~/.vnc generally show which vnc are currently running, performance can be checked by viewing the log file. The running vnc server process(es) can also be checked with the command ps -A | grep vnc
*The vncserver startup configuration file: vim ~/.vnc/xstartup
*I set up cron to run the following script at boot: vim ~/Myscripts/StartVNC.sh
, StartVNC.sh:
#!/bin/sh
/usr/bin/vncserver -geometry 1880x1020
/usr/bin/vncserver -geometry 2350x1335
*The cron script statement is /home/homedirectory/Myscripts/StartVNC.sh >/dev/null 2>&1
(I elected not to use the systemd setup described in the Digitalocean set instructions as I normally run 2 vncservers with different geometries to allow better performance on tablet/laptop/desktop computers.)
If connection is refused may need to use option -localhost no
, e.g. vncserver -localhost no