前言

我们都知道Windows系统默认是有远程桌面功能的,远程桌面功能非常适合工控机安装在现场远程调试使用。但是如果我们的工控机安装的是Linux Ubuntu操作系统,那情况就要稍微复杂一点,因为Ubuntu桌面版系统默认是不提供远程桌面功能的,但是工程师可以通过安装X11VNC软件包支持远程桌面功能,具体安装和设置如下:

安装软件包

sudo apt install net-tools
sudo apt install x11vnc

设置密码

安装完后,需要设置VNC登录密码,运行指令:

x11vnc -storepasswd

该指令会让用户输入两次密码,密码会保存在用户Home目录下的~/.vnc/passwd文件中:

Enter VNC password:
Verify password:
Write password to /home/USERNAME/.vnc/passwd?  [y]/n y
Password written to: /home/USERNAME/.vnc/passwd

手动测试

密码设置完后,就可以通过指令测试VNC功能了,注意使用该条测试指令时,不能添加sudo提升账号权限,否则系统会切换到root账号下运行,由于root账号此时没有用户界面,所以会导致VNC功能不正常:

x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/USERNAME/.vnc/passwd -rfbport 5901 -shared

程序运行后,显示如下界面,等待VNC客户端接入:
日志文件夹

在Windows操作系统上,打开TigerVNCViewer软件,输入IP地址和端口,点连接按钮:
日志文件夹

输入密码后,就会打开远程桌面界面了:
日志文件夹

开机启动VNC服务

以上为测试VNC功能的方法,我们不可能每次使用VNC功能时,都需要手动运行x11vnc指令代码,我们应该让系统启动后,自动开启VNC功能,此时就需要把VNC功能作为系统服务来执行。配置x11vnc服务,让VNC功能以服务的形式自启动,方式如下:

  1. 新建服务配置文件:/lib/systemd/system/x11vnc.service(可以使用指令sudo gedit /lib/systemd/system/x11vnc.service创建X11VNC服务配置文件),该配置文件中一定要指定启动服务的用户名,目前很多网站上的说明均没有该设置,如果没有指定用户名,那么默认是使用root账号启动服务的,此时只有使用root账号登录后,才可以使用VNC功能:

     [Unit]
     Description=Start x11vnc at startup.
     After=multi-user.target
     [Service]
     User=michael
     Type=simple
     ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/michael/.vnc/passwd -rfbport 5900 -shared
     [Install]
     WantedBy=multi-user.target
    
  2. 重新加载服务,启用服务

     sudo systemctl daemon-reload
     sudo systemctl enable x11vnc.service
    
  3. 重启系统,使用TigerVNCViewer连接Ubuntu远程桌面。

日志文件夹