介绍
X11VNC Server是一个在图形环境下远程控制的软件,它能够将一台已经连接X窗口系统的Linux主机的显示输出提供给远程的VNC客户端。
远程访问X11VNC的好处很多,例如:当一个用户需要一个高密度的显示器但无法为每个用户提供一个此类显示器时,通过X11VNC可以利用服务器上的显示器同时为多个远程客户端提供X窗口系统的访问。
X11VNC是一个基于VNC技术的远程控制软件,它开发于Unix和Linux平台,可以将X窗口系统的输出重定向到本地的VNC客户端。
X11VNC Server配置
安装X11VNC
在Ubuntu操作系统中,首先需要更新apt缓存,然后使用以下命令安装X11VNC:
sudo apt update sudo apt install x11vnc
基本X11VNC Server配置
安装完成后,我们需要使用以下命令来设置密码:
x11vnc -storepasswd
它会提示您输入一个密码,该密码会被加密并存储在~/.vnc/passwd文件中,以备远程访问时使用。
现在,我们需要运行x11vnc服务器:
x11vnc -forever -usepw -display :0
这将启动X11VNC服务器,并将其绑定到本地的5900端口上,您现在可以使用任意VNC客户端连接。
设置启动脚本
要设置X11VNC每次系统启动时自动启动,我们需要创建一个systemd服务文件。
首先,使用nano或vim命令创建一个名为x11vnc.service的空文件:
sudo nano /etc/systemd/system/x11vnc.service
然后,将以下内容输入到文件中:
[Unit] Description=Start x11vnc at startup. After=multi-user.target [Service] Type=simple ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/user/.vnc/passwd -rfbport 5900 -shared [Install] WantedBy=multi-user.target
请记住,需要更改ExecStart行中的用户名,以匹配您系统上的当前用户名。
保存并关闭文件。
我们现在需要启动X11VNC服务并将其设置为系统启动时启动:
sudo systemctl daemon-reload sudo systemctl enable x11vnc.service sudo systemctl start x11vnc.service
X11VNC特征
Encryption(加密)
X11VNC支持加密连接,当您提供-V 参数的时候将启动SSL连接。这样,所有的数据传输都将会被加密,并且不需要其他配置工作。例如:
x11vnc -ssl SAVE
这将启用加密连接,并将保存SSL证书和私钥到$HOME/.vnc/ssl/目录中,以备以后的使用。
Reverse Connections(反向连接)
通过在-connect参数中指定您的服务器IP地址和端口号,您可以轻松地将X11VNC反向连接到您的客户端。例如:
x11vnc -connect your_server_ip:5900
这将启用一个反向连接,并将其与远程服务器建立连接,以便您可以访问 X 窗口系统。
绕过登录屏幕
连接到X11VNC时,由于VNC协议的特殊性质,它会立即绕过登录屏幕而进入正在运行的会话当中。因此,当您需要远程连接到服务器是,您将需要在远端访问再输入密码。
下面是一个例子,如果你想在远程机器上本地运行一个新的gnome-shell,请使用以下命令:
x11vnc -forever -auth guess -noxdamage -repeat -rfbauth ~/.vnc/passwd -rfbport 5900 -shared -o /var/log/x11vnc.log -loop -bg -geometry 1600x900 -localhost -display :0 -noxfixes -noxrecord -nonap -scrollcopyrect
结论
X11VNC Server是一个功能强大的远程控制工具,对于需要使用X窗口系统的设备的访问和维护,都有着很好的支持。