Xvfb的使用与vnc连接

Xvfb是X Virtual Framebuffer的缩写,它是一个虚拟X服务器,用于在没有物理显示设备的情况下运行图形界面应用程序。通常情况下,Xvfb被用于服务器环境或无需图形用户界面的系统上。

有时再图形界面的linux去fuzz GUI程序,GUI程序会阻挡我们的操作,这里将GUI程序放到虚拟显示设备显示,那再好不过了

安装与使用

1
sudo apt-get install xvfb

在Linux系统中,X服务器通过显示端口号来区分不同的显示屏,通常使用:0作为默认的物理显示端口,而虚拟显示端口从:1开始。所以虚拟显示端口起码得从1开始,1024x768x16 是分辨率,16是颜色的位数(8是256色,16是增强色,32位是真彩色)

而-screen应该是虚拟屏幕的编号

1
Xvfb :1 -screen 0 1024x768x16
1
2
3
4

比如一个显示端口,两个screen
```
Xvfb :1 -screen 0 1024x768x16 -screen 1 1024x768x16
1
2
3
4
5

安装x11vnc,x11vnc是一个用于远程访问X会话的VNC服务器。

```
sudo apt-get install x11vnc

启动服务器,绑定的是编号是1的

1
2
x11vnc -display :1 
x11vnc -display :1.0

这个默认是screen 0,所以上面两个等价,假如是screen 1

1
x11vnc -display :1.1

让程序再screen 1上显示,设置一下DISPLAY环境变量即可

1
export DISPLAY=:1.1

之后即可通过vnc客户端连接5900端口即可

当然共享当前物理显示也行,就是编号是0

1
x11vnc -display :0

当然最好设置密码

先生成密码文件

1
2
3
4
5
fuzzplat@fuzzplat:~$ x11vnc -storepasswd
Enter VNC password:
Verify password:
Write password to /home/fuzzplat/.vnc/passwd? [y]/n y
Password written to: /home/fuzzplat/.vnc/passwd

你可以cat一下这个文件,是加密的,之后启动的时候通过-rfbauth指定密码文件路径

1
x11vnc -display :2 -rfbauth /home/fuzzplat/.vnc/passwd

再访问呢就要输入密码了

或者不太安全的是再命令行指定密码,下面的密码是test,推荐使用上面的

1
x11vnc -display :1 -passwd test
打赏专区