远程运行Linux窗口程序使用X Windows太重量级了,可以使用Xvfb新建虚拟X窗口,通过x11vnc启动VNC Server并转发Xvfb启动的虚拟窗口。
apt install x11vnc xvfb
yum install xorg-x11-server-Xvfb
yum install x11vnc
#新建X虚拟窗口
Xvfb :1 -screen 0 1024x768x24 -nolisten tcp &
#设置默认窗口为新建的虚拟窗口,打开窗口程序时调用
export DISPLAY=:1
#或
DISPLAY=:1 firefox
INIT:
#!/bin/bash
#chkconfig: 345 95 50
#description: Starts xvfb on display 1
if [ -z "$1" ]; then
echo "`basename $0` {start|stop}"
exit
fi
case "$1" in
start)
Xvfb :1 -screen 0 1024x768x24 -nolisten tcp &
export DISPLAY=:1
echo 'export DISPLAY=:1' >> ~/.bashrc
;;
stop)
killall Xvfb
;;
esac
新建VNC服务器并转发指定X窗口
x11vnc -listen 0.0.0.0 -rfbport 5900 -noipv6 -passwd password -display :1 -forever
然后通过VNC客户端连接,默认端口5900,Windows下可使用TightVNC或UltraVNC。
启动的软件窗口太小,设置:
xdotool search --name ".*Mozilla Firefox" windowsize 1440 900
ubuntu下firefox中文显示乱码需安装中文字体:
apt install fonts-wqy-microhei