1. Install Unity on Ubuntu18.04. (on 16.04, it doesn't need this step)
As Ubuntu18.04 has changed to use GNOME as its default display management, it will block VNC connect somehow ("The connection is refused by the computer"). Checked the x11vnc log, it shows:
03/05/2017 16:12:19 passing arg to libvncserver: -rfbauth
03/05/2017 16:12:19 passing arg to libvncserver: /etc/x11vnc.pass
03/05/2017 16:12:19 passing arg to libvncserver: -rfbport
03/05/2017 16:12:19 passing arg to libvncserver: 5900
03/05/2017 16:12:19 x11vnc version: 0.9.13 lastmod: 2011-08-10 pid: 30259
xauth: unable to generate an authority file name
03/05/2017 16:12:19 -auth guess: failed for display='unset'
03/05/2017 16:12:19 -auth guess: since we are root, retrying with FD_XDM=1
03/05/2017 16:12:19 -auth guess: failed for display='unset'
After tried several ways from google, I still cannot fix it. So just switch to Unity desktop. R