您只需通过以下方式安装x11vnc:
sudo apt-get install x11vnc xvfb fluxbox
可选择安装fluxbox以获得简单的窗口管理器。
在 shell 中运行 x11vnc
然后要设置对 Xvfb 的访问以进行远程控制,您可以使用 X11 over SSH 或 VNC over SSH,例如
export DISPLAY=:1
Xvfb $DISPLAY -screen 0 1024x768x16 &
fluxbox &
x11vnc -display $DISPLAY -bg -forever -nopw -quiet -listen localhost -xkb
使用脚本运行x11vnc
这是运行Xvfb、x11vnc和fluxbox的脚本友好版本:
export DISPLAY=${DISPLAY:-:0} # Select screen 0 by default.
xdpyinfo
if which x11vnc &>/dev/null; then
! pgrep -a x11vnc && x11vnc -bg -forever -nopw -quiet -display WAIT$DISPLAY &
fi
! pgrep -a Xvfb && Xvfb $DISPLAY -screen 0 1024x768x16 &
sleep 1
if which fluxbox &>/dev/null; then
! pgrep -a fluxbox && fluxbox 2>/dev/null &
fi
echo "IP: $(hostname -I) ($(hostname))"
注意:我在以下Docker project中使用它(检查.funcs.cmds.inc.sh)。
使用单线运行x11vnc
或者您可以使用以下单行:
$ x11vnc -create -env FD_PROG=/usr/bin/fluxbox \
-env X11VNC_FINDDISPLAY_ALWAYS_FAILS=1 \
-env X11VNC_CREATE_GEOM=${1:-1024x768x16} \
-gone 'killall Xvfb' \
-bg -nopw
-
-create 让它启动 Xvfb
-
X11VNC_FINDDISPLAY_ALWAYS_FAILS=1 使其进入已创建的 Xvfb 会话(显示 :1 而不是 :0 这将是普通桌面)
-
FD_PROG=/usr/bin/fluxbox 让它启动 Fluxbox(Ubuntu 的那个,应该有背景 Ubuntu 徽标)
-
X11VNC_CREATE_GEOM=${1:-1024x768x16} 将屏幕设置为 16 位颜色 1024x768
-
-gone 在退出时清理,否则 Xvfb 会被抛在后面(杀死 xvfb 也会杀死 fluxbox)
连接到 VNC
如果你的 Xvfb 只在 localhost 上监听,你可以设置到 localhost 的隧道,这样 vncviewer 就可以连接到 localhost 来远程控制服务器。例如
ssh -N -T -L 5900:localhost:5900 user@remotehost &
vncviewer -encodings 'copyrect tight zrle hextile' localhost:5900
或者用密码监听所有地址,使用:
x11vnc -display :0.0 -usepw
要设置密码,请运行:x11vnc -storepasswd。
请参阅:Remote control over SSH 在 Xvfb 维基百科页面
也检查一下: