Linux虚拟屏幕Xvfb的介绍

14,151次阅读
没有评论

Xvfb是流行的虚拟现实库,可以使很多需要图形界面的程序虚拟运行;

使用原因

淘宝列表页爬取经常会跳滑动验证码,需要使用puppeteer控制浏览器模拟人工滑动,而在无头模式下,无论怎么滑动都无法通过,必须使用有头模式,而CentOS服务器上没有界面,所以只能使用虚拟屏幕,使浏览器运行在虚拟屏幕上。

安装及使用

# 安装
yum install Xvfb

# 启动  7:虚拟屏幕id,使用时需要用到;  1336x768x24:屏幕分辨率;
Xvfb :7 -screen 0 1336x768x24 2>/dev/null &

# 使用    启动puppeteer程序前需指定运行在哪个虚拟屏幕上,如下命令,运行在虚拟屏幕id为7的上
export DISPLAY=:7

远程控制、监控

一般情况下,Xvfb都运行在Linux服务器上,你无法看到虚拟屏幕的运行情况,程序的调试十分麻烦,所以你需要在本地远程连接你服务器上所在的虚拟屏幕,进行监控控制。

服务器端

x11vnc:远程桌面,可以使人远程连接服务器上的虚拟屏幕;

# 安装 ubuntu
sudo apt install x11vnc

# 安装 centos
yum install -y x11vnc

# 启动  5900:连接端口  password:连接密码  7:虚拟屏幕id
x11vnc -listen 0.0.0.0 -rfbport 5900 -noipv6 -passwd password -display :7

用户端

可以使用vncviewer工具远程连接。

其它

python有一个第三方库PyVirtualDisplay,该库可以在python程序中启动指定运行端口xvfb程序,并且可远程监听。

正文完
 1
评论(没有评论)