Ubuntu 18.04 设置x11vnc服务
自带的vino-server也可以用但是不好用,在ubuntu论坛上看见推荐的x11vnc(ubuntu关于vnc的帮助页面),使用设置一下,结果发现有一些坑需要填,所以写下来方便下次使用
转载请说明出处,谢谢配合😆
下载并安装x11vnc
shell
apt update -y
apt install -y x11vnc
配置开启自启动
shell
#让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
问题与解决方案
- x11vnc连接黑屏
shell
#查看ubuntu的桌面管理环境是否是GDM3,x11vnc 在 GDM3 中不起作用,因此需要使用lightdm桌面管理环境
#安装lightdm(权限不够使用root用户或sudo)
apt install -y lightdm
#切换至lightdm
dpkg-reconfigure lightdm
#选择lightdm,如下图
- x11vnc使用-auth guess无法启动
shell
#使用guess可能会出现问题
#也可以通过下面的命令查看auth指定lightdm Xauthority文件的路径
ps aux | grep auth
- 不使-display :0会出现如下问题
bash
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进程与防火墙
shell
#查看进程是否存在,
netstat -ntlup | grep x11vnc
#查看防火墙是否允许允许vnc指定的端口访问
shell
#允许5900端口访问
iptables -A INPUT -p tcp --dport 5900-j ACCEPT
#或直接使用iptables -F
#没有iptables查看ufw状态
ufw status
#禁用ufw
ufw disable