写在前面
遇到了远程桌面访问ubuntu系统并使用RViz的需要,试了常用的vnc4server
,在没有外接显示器的情况下,vnc4server需要虚拟一个显示器出来,虚拟显示器可以使用Xvfb工具。相比之下,个人比较喜欢tigervnc
,自带的Xvnc工具可以自动完成虚拟显示器这一步骤,该工具继承在vncserver里,不需要手动执行。启动VNC服务后可以用xrandr命令查看当前连接的显示器。如果需要在浏览器访问,可以安装noVNC
。
安装tigervnc
sudo apt update
sudo apt install
tigervnc-standalone-server tigervnc-common
vncserver :1 -localhost no -SecurityTypes=none --I-KNOW-THIS-IS-INSECURE
vncserver -list
vncserver -kill :1
如果登录之后发现灰屏,修改配置文件,修改**~/.vnc/xstartup**文件
#!/bin/sh
#Uncomment the following two lines for normal desktop:
#unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
mate-session &
修改的内容如下:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
...
mate-session&
其中查看桌面类型使用echo $DESKTOP_SESSION
命令
如果是mate桌面,改成mate-session&
如果是gnome桌面,改成gnome-session &
开机自启动
创建文件
sudo vim /etc/systemd/system/tigervncserver.service
文件内容
[Unit]
Description=Start TigerVNC server at startup
After=syslog.target network.target[Service]
Type=forking
User={你的用户名}
PAMName=loginPIDFile=/home/{你的用户名}/.vnc/%H:1.pid
ExecStartPre=-/usr/bin/vncserver -kill :1 > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 :1 -localhost no -SecurityTypes=none --I-KNOW-THIS-IS-INSECURE
ExecStop=/usr/bin/vncserver -kill :1[Install]
WantedBy=multi-user.target
文件创建完成后设置服务
sudo systemctl daemon-reload
sudo systemctl enable tigervncserver.service
sudo systemctl start tigervncserver
使用noVNC
git clone https://github.com/novnc/noVNC.git
cd noVNC
./utils/launch.sh --vnc localhost:5901
接下来就可以打开浏览器访问了
http:/localhost:6080/vnc.html
此处可能遇到的问题是tigervnc只兼容Edge浏览器,chrome和firefox无法打开。在意这个问题的话可以使用官方推荐的几款VNC工具,因为浏览器访问用的不多就没深究了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)