参考:

https://blog.csdn.net/weixin_41803874/article/details/81233789

一共两台电脑,分别为服务端和客户端,为与场景联系方便,我们将需要被显示桌面的电脑称为移动端,将显示移动端桌面并进行远程操控的电脑成为遥控端。

一、遥控端准备

直接下载VNC Viewer,网址为:https://www.realvnc.com/en/connect/download/viewer/

根据系统的不同选择不同版本,由于博主遥控端为Ubuntu,因此选择Linux-DEB X64

下载完成后双击安装或者dpkg -i安装即可。安装完毕后,在终端:

 ~$ vncviewer 

即可打开软件。(忽略下图中已经有的几个ip。。。)

二、移动端准备

博主移动端也为Ubuntu系统。安装x11vnc

sudo apt-get install x11vnc

值得注意的是,这里有的人推荐使用vncserver,这个东西确实不错,但是用ros的时候会出现rviz打不开等一系列问题。因此这里首先推荐使用x11vnc,本文最后会补充上vncserver的方式。

安装完毕后左上角搜索,单击打开即可。(图来自于参考链接,懒得截新图了。。。)

打开后,首先出现的界面用来设置端口号,默认5900:

单击OK以后,稍等1、2秒,会弹出来第二个界面,用来设置通信密码,注意上面Accept Connections需要勾选:

密码随便设点简单的比如1、2之类的就行,方便。最后单击OK。

三、移动端和遥控端进行连接

在遥控端的VNC Viewer软件中,输入移动端ip和端口号(格式:192.168.43.62:5900),后者即为刚才在x11server中第一个界面内填写的。

然后输入密码即可实现远程桌面:

至于怎么关闭x11vnc,只能在杀死于后台。下述展示的命令,第一行为还没有打开x11vnc的情况,第二条为打开以后的情况,第三条也为打开以后的情况,第四条为关闭以后的情况。那么如何关闭呢?

aaeon@aaeon-desktop:~$  ps -ef|grep -i vnc
root      7106     1  0 22:29 ?        00:00:00 /usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/aaeon/.vnc/passwd -rfbport 5900 -shared
aaeon    15205 14012  0 22:32 pts/0    00:00:00 grep --color=auto -i vnc
aaeon@aaeon-desktop:~$  ps -ef|grep -i vnc
root      7106     1  0 22:29 ?        00:00:00 /usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/aaeon/.vnc/passwd -rfbport 5900 -shared
aaeon    16496 12269  5 22:32 ?        00:00:01 x11vnc -gui tray=setpass -rfbport PROMPT -bg -o %HOME/.x11vnc.log.%VNCDISPLAY
aaeon    16596 16495  0 22:32 ?        00:00:00 /usr/bin/tail -f /tmp/x11vnc.tray.PpLO1S
aaeon    16651 16495  0 22:32 ?        00:00:00 [x11vnc] <defunct>
aaeon    18128 14012  0 22:33 pts/0    00:00:00 grep --color=auto -i vnc
aaeon@aaeon-desktop:~$ ps -e|grep -i vnc
 7106 ?        00:00:00 x11vnc
16496 ?        00:00:21 x11vnc
16651 ?        00:00:00 x11vnc <defunct>
aaeon@aaeon-desktop:~$ ps -e|grep -i vnc
 7106 ?        00:00:00 x11vnc
kill -9 PID

上述命令的PID用 ps -e|grep -i vnc第一列的数值替换。

 至此,x11vnc的方法介绍完毕。下面vncserver的方法并不推荐。

特殊用法:可以在移动端电脑终端直接输入x11vnc,可以绕开界面的使用,直接在遥控端连接相应ip和端口即可控制移动端,这样没有密码是很危险的。

* 补充vncserver使用方法

首先安装

sudo apt-get install vnc4server
sudo apt-get install xfce4

然后在终端运行一下vncserver,生成配置文件

vncserver :1

这个过程中需要设置一个密码。

接下来杀掉刚运行的这个vncserver

vncserver -kill :1

接下来修改启动文件/home/【你的】/.vnc/xstartup,将其中的内容改为:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &

网上如下还有这么改的,但是容易出现灰屏、或者不显示桌面图标,不建议:

#!/bin/sh

export XKL_XMODMAP_DISABLE=1
# 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 &
gnome-session &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

保存推出后,在终端重新启动:

vncserver :1

然后在遥控端使用VNC Viewer,在上面栏目输入:格式:192.168.43.62:1

然后就弹出来了,值得注意的是使用vncserver并不代表把桌面远程copy过来,而是相当于复制了一套系统,这套系统开程序什么的并不在移动端显示。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐