Use X11vnc https://en.wikipedia.org/wiki/X11vnc
您所需要的只是安装x11vnc
via:
sudo apt-get install x11vnc xvfb fluxbox
Optionally install fluxbox to have simple window manager.
Run 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
Run x11vnc
使用脚本
这是可以运行的脚本友好版本Xvfb
, x11vnc
and 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))"
Note: I'm using it in the following Docker project https://github.com/EA31337/EA-Tester (check .funcs.cmds.inc.sh
).
Run 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 仅在本地主机上侦听,您可以设置到本地主机的隧道,这样 vncviewer 就可以连接到本地主机以远程控制服务器。例如。
ssh -N -T -L 5900:localhost:5900 user@remotehost &
vncviewer -encodings 'copyrect tight zrle hextile' localhost:5900
或者要监听所有带有密码的地址,请使用:
x11vnc -display :0.0 -usepw
To setup password, run: x11vnc -storepasswd
.
See: 通过 SSH 进行远程控制 https://en.wikipedia.org/wiki/Xvfb#Remote_control_over_SSH在 Xvfb 维基百科页面
还检查:
- 在 Docker 容器中使用 VNCserver + GUI 应用程序 + Virtual Display https://stackoverflow.com/q/36221215/55075
- 带有 x11vnc 和 Xvfb 的 Ubuntu Fluxbox GUI http://www.richud.com/wiki/Ubuntu_Fluxbox_GUI_with_x11vnc_and_Xvfb