ubuntu 设置x11vnc服务

Ubuntu 18.04 设置x11vnc服务

自带的vino-server也可以用但是不好用,在ubuntu论坛上看见推荐的x11vnc(ubuntu关于vnc的帮助页面),使用设置一下,结果发现有一些坑需要填,所以写下来方便下次使用

转载请说明出处,谢谢配合?

下载并安装x11vnc

apt update -y
apt install -y x11vnc

配置开启自启动

#让x11vnc在任何环境下通过systemd自动启动
vim /lib/systemd/system/x11vnc.service

#将下方内容填写到/lib/systemd/system/x11vnc.service文件中,USERNAME换成你自己环境中的用户,也可以使用x11vnc -storepasswd 指定认证密码存储位置
[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/USERNAME/.vnc/passwd -rfbport 5900 -shared -display :0

[Install]
WantedBy=multi-user.target

#重载 systemd 管理的单元文件,使配置生效(没有权限的话使用root用户或sudo)
systemctl daemon-reload

#开机自启设置
systemctl enable x11vnc.service

#启动x11vnc
systemctl start x11vnc.service

#重启x11vnc
systemctl restart x11vnc.service

#关闭x11vnc
systemctl stop x11vnc.service

#查看x11vnc状态
systemctl status x11vnc.service

问题与解决方案

  1. x11vnc连接黑屏
#查看ubuntu的桌面管理环境是否是GDM3,x11vnc 在 GDM3 中不起作用,因此需要使用lightdm桌面管理环境

#安装lightdm(权限不够使用root用户或sudo)
apt install -y lightdm

#切换至lightdm
dpkg-reconfigure lightdm
#选择lightdm,如下图

设置lightdm

  1. x11vnc使用-auth guess无法启动
#使用guess可能会出现问题
#也可以通过下面的命令查看auth指定lightdm Xauthority文件的路径
ps aux | grep auth
  1. 不使-display :0会出现如下问题
 xauth:  unable to generate an authority file name 
xauth:  unable to generate an authority file name
-auth guess: using default XAUTHORITY for display='unset' XOpenDisplay("") failed.
Trying again with XAUTHLOCALHOSTNAME=localhost ...
XOpenDisplay failed. No -display or DISPLAY.
Trying ":0" in 4 seconds.  Press Ctrl-C to abort.

查看x11vnc进程与防火墙

#查看进程是否存在,
netstat -ntlup | grep x11vnc

#查看防火墙是否允许允许vnc指定的端口访问

#允许5900端口访问
iptables -A INPUT -p tcp --dport 5900-j ACCEPT
#或直接使用iptables -F

#没有iptables查看ufw状态
ufw status

#禁用ufw
ufw disable