文章目录

  • 写在前面
    • 方法一(简单又实用)
    • 方法二(安装xrdp服务)
    • 方式三(VNCserver)
    • 三种远程登录方式比较

开心一刻

舍长:我的香水不见了!你们快帮着找找啊!
       众人:你还用香水??啥牌子的??
       舍长:SIX GOD啊,我只用那个。
       众人:牛逼啊,没听过啊,啥样子啊?.
       舍长:六神花露水,你们谁拿了?
       众人。。。

写在前面

最近几天浏览博客时,无意看到了linux中使用vnc实现windows中访问linux的桌面服务,类似于windows中的桌面共享,我就闲来无事研究研究linux桌面共享。待查阅了大量博客以及在虚拟机ubuntu20.10中实验,终于大概弄好了linux桌面共享,且我总共发现了三种linux桌面共享的方式,特地写在这里,供大家参考。在操作之前,建议换一下国内源。

方法一(简单又实用)

ubuntu20.10中已经自带桌面共享的功能,使用的是vino-server实现的,如果虚拟机中安装的ubuntu是桌面版,那么可以尝试按照如下方式打开桌面共享。
       1. 首先进入ubuntu桌面,点击Setting -> Sharing -> Screen Sharing,如下图所示:

       2. 点击Screen Sharing之后,弹出下图界面,将图中的三个按钮点击开启之后(图中目前为关闭状态),再输入VNC登录时的密码即可。

       3. 关闭远程连接加密请求,否则提示"vnc连接提示不支持安全类型",关闭远程连接请求需安装dconf-editor软件包,安装好后在terminal中输入dconf-editor即可打开:

# 安装dconf-editor
sudo apt install dconf-editor

4. 打开dconf-editor后,进入:org -> gnome -> desktop -> remote access -> require encrytion 选择关闭:

       在此,就实现了ubuntu桌面共享,在windows系统中,使用vnc viewer即可远程连接ubuntu桌面。需要注意的是,在使用vnc viewer登录时,如果要输入密码,切记系统输入法切换为英文,否则无法输入密码。(这个是在我的系统中遇到的问题,如果大家没有遇到,请忽略)

但是此方法有个缺点,vino-server不能在console中运行,这也就意味着如果用户不能登录到系统桌面,那么vino-server无法启动,那么也就无法连接到ubuntu的桌面。例如系统重启之后是用ssh远程登录的,那么此时是无法使用vnc viewer登录到桌面的,对于使用ubuntu共享桌面的方式登录系统,如果碰到需要系统重启的问题,就会很令人头大,需要跑到服务器跟前去登录一下桌面才可以。
       当然这个问题也是有办法解决的,牺牲一下系统的安全性就可以了。解决方法如下:

  1. 查看当前用的是什么桌面管理器:
cat /etc/X11/default-display-manager

我的是/usr/sbin/gdm3,那么编辑文件:

sudo vim /etc/gdm3/custom.conf

把下面的三行注释掉,其中AutomaticLogin行修改成自己的用户名。

WaylandEnable=false
AutomaticLoginEnable = true
AutomaticLogin = user1

重启电脑就可以登录了。这种修改方式使得系统启动时无需输入账号密码即可进入桌面系统。

方法二(安装xrdp服务)

Xrdp 是一个微软远程桌面协议(RDP)的开源实现,它允许你通过图形界面控制远程系统。通过 RDP,你可以登录远程机器,并且创建一个真实的桌面会话,就像你登录本地机器一样。windows系统中默认远程登录用的就是RDP协议,在ubuntu中安装xrdp服务意味着在登录ubuntu远程桌面时可以使用windows的远程桌面软件。安装步骤如下:

一、安装桌面环境

Ubuntu 服务器通常使用命令行进行管理,并且默认没有安装桌面环境。如果你正在运行 Ubuntu 桌面版,忽略这一步。

在 Ubuntu 源仓库有很多桌面环境供你选择。一个选择是安装 Gnome,它是 Ubuntu 20.04 的默认桌面环境。另外一个选项就是安装 xfce。它是快速,稳定,并且轻量的桌面环境,使得它成为远程服务器的理想桌面。

运行下面任何一个命令去安装你选择的桌面环境:

  • 安装 Gnome
sudo apt update
sudo apt install ubuntu-desktop
  • 安装 Xfce
sudo apt update
sudo apt install xubuntu-desktop

取决于你的系统,下载和安装 GUI 软件包,将会花费一些时间。

二、安装 Xrdp

Xrdp 被包含在默认的 Ubuntu 软件源中。想要安装它,运行:

sudo apt install xrdp

一旦安装完成,Xrdp 服务将会自动启动。你可以输入下面的命令,验证它:

sudo systemctl status xrdp

输出将会像下面这样:

       默认情况下,Xrdp 使用/etc/ssl/private/ssl-cert-snakeoil.key,它仅仅对“ssl-cert” 用户组成语可读。所以为了能够登录远程桌面,运行下面的命令,将xrdp用户添加添加到这个用户组:

sudo useradd xrdp ssl-cert

PS: 我不太明白为什么要执行上述useradd命令,而且执行之后我用自己的普通账户登录仍然无法远程登录,但是使用root账户是可以的,我目前没有解决普通账户无法登陆的问题。

重启 Xrdp 服务,使得修改生效:

sudo systemctl restart xrdp

三、Xrdp 配置
       Xrdp 配置文件定位在/etc/xrdp目录。对于基本的 Xrdp 链接,你不需要对配置文件做任何改动。

Xrdp 使用默认的 X Window 桌面环境(Gnome or XFCE)。

主要的配置文件被命名为 xrdp.ini。这个文件被分成不同的段,允许你设置全局配置,例如安全,监听地址,创建不同的 xrdp 登录会话等。

不管什么时候你对配置文件做出修改,你需要重启 Xrdp 服务。

Xrdp 使用startwm.sh文件启动 X 会话。如果你想使用另外一个 X Window 桌面,编辑这个文件。

四、配置防火墙

Xrdp 守护程序在所有的网络接口上监听端口3389。如果你在你的 Ubuntu 服务器上运行一个防火墙,你需要打开 Xrdp 端口。

想要允许从某一个指定的 IP 地址或者 IP 范围访问 Xrdp 服务器,例如192.168.33.0/24,你需要运行下面的命令:

sudo ufw allow from 192.168.33.0/24 to any port 3389

如果你想允许从任何地方访问(由于安全原因,这种方式不鼓励),运行:

sudo ufw allow 3389

想要增加安全,你可以考虑 Xrdp 仅仅监听 localhost,并且创建一个 SSH 隧道,将本地机器的3389端口到远程服务器的同样端口之间的流量加密。

五、连接 Xrdp 服务器

现在你已经设置好你的 Xrdp 服务器,是时候打开你的 Xrdp 客户端并且连接到服务器。

如果你有一台 Windows 电脑,你可以使用默认的 RDP 客户端。在 Windows 搜索栏输入“remote”,并且点击“Remote Desktop Connection”或者使用“win+R”组合键,然后输入mstsc。这将会打开一个 RDP 客户端。在“计算机”区域输入远程服务器 IP地址,并且点击“连接”。

       再登录屏幕,输入你的用户名和密码,点击“OK”。用root用户登陆不容易出错,普通用户容易出错

       一旦登录,你将看到默认的 Gnome 或者 Xfce 桌面,它应该像下面这样:

       现在你可以从你的本地机器上使用你的键盘和鼠标和远程桌面进行交互了。

方式三(VNCserver)

安装vncserver的步骤如下:

一、安装桌面环境和VNCServer

#更新
apt update
#安装桌面环境
sudo apt install xfce4 xfce4-goodies
#安装vncserver
apt install tightvncserver
#启动vncserver
vncserver

随后按照提示,输入vncserver登录时候的密码并再次输入确认。

从远程登录之后发现桌面一片灰白。看来还需要配置一下vncserver的环境:

二、配置vncserver的参数

#关闭vncserver :1窗口
vncserver -kill :1
#备份原来的配置文件
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
#编辑新的配置文件
vim ~/.vnc/xstartup

在xstartup文件中更新为如下内容:

#!/bin/bash
xrdb $HOME/.Xresources
gnome-sesseion &

然后设置该文档的权限

chmod u+x ~/.vnc/xstartup

随后重新启动vncserver即可连接图像界面,截图如下:

PS:这种方法不一定能成功,原因我不是很清楚。我猜测不成功的原因是在启动的时候需要执行某些文件,但是用户没有可执行的权限,所以最后执行不成功。

三种远程登录方式比较

vino-server Xrdp vnc-server
优点 系统自带,配置简单 配置简单,可用windows自带的远程桌面登录 配置简单,但不一定能成功连接远程桌面
缺点 重启后必须登录个人桌面后才可启动 root用户登陆不容易出错,普通用户容易出错 出错不好解决

综合我自己尝试这三种远程桌面登录ubuntu的方式,我觉得使用vino-server最方便,在这个基础上,安装xrdp服务,然后在windows系统中使用自带的远程登录工具时,使用VNC-any的方式登录远程桌面,这样就可以避免下载vnc viewer,使用起来跟windows远程登录方式也无差别。
文中都是我个人的理解,如有错误的地方欢迎下方评论告诉我,我及时更正,大家共同进步

ubuntu20.10设置桌面共享的三种方式相关推荐

  1. Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  2. Linux中设置服务自启动的三种方式(转)

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  3. LaTeX中设置字体颜色的三种方式

    以下的三种方式都需要导入color包,即\usepackage{color}. 实验环境:window10,TexLive2019. 1.使用系统自定义的颜色 使用语法: \textcolor{red ...

  4. linux 运行apj,Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  5. Elasticsearch 设置默认值的三种方式

    1.实战问题 在使用 Elasticsearch 过程中,不免还会有 Mysql 等关系型数据库的使用痕迹,以下两个都是实战开发问到的问题: Elasticsearch 新增字段,能在 Mapping ...

  6. QT设置背景图片的三种方式

    QPalette的方法 基本步骤: (1). 首先设置QWidget的autoFillBackground属性为真 (2). 然后定义一个QPalette对象,设置QPalette对象的背景属性(颜色 ...

  7. linux 设置开机启动项三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务. 在解问题之前先来看看Linux的启动流程 Linux的启动流程 主要顺序就是: 1. 加载内核 2. 启动初始化进程 3. 确定运 ...

  8. OO ALV 设置搜索帮助的三种方式 ONF4 EVENT

    一.在 FIELDCAT 中设置参照 二.CALL FUNCTION  'F4IF_INT_TABLE_VALUE_REQUEST ' 三.CALL FUNCTION ' HELP_VALUES_GE ...

  9. #![feature]` may not be used on the stable release channel 问题解决及设置Rust Channel的三种方式

    今天在编译一个Rust开源项目时报了下面的错误: Compiling base_proc_macro v0.1.0 (/data/code/rust/tensorbase/crates/base/pr ...

  10. linux设置开机自启服务,linux设置服务开机自启动的三种方式

    linux设置服务开机自启动的三种方式 这里介绍一下linux开机自动启动的几种方法,共计3种,大家可以借鉴一下!经验里面以centos 5.3系统为例! 方法1:.利用ntsysv命令进行设置,利用 ...

最新文章

  1. 公安领域知识图谱不断升温 或成AI下一风口
  2. (六十三)第四章复习题
  3. java equals重写原则_java中为何重写equals时必须重写hashCode方法详解
  4. LeetCode - 3Sum Closest
  5. shutil模块、json和pickle模块
  6. WinFormsChartSamples
  7. 2013浙大878操作系统大题答案解析
  8. iOS开发编译错误:std::terminate(), referenced from:
  9. 安装软件报:The installer has encountered an unexpected error installing this package....此类错误...
  10. 韩国与日本历年GDP总量和人均GDP的对比(1953-2020年)
  11. word在另外计算机格式不对,为什么同一个word文档在两台电脑上打开里面的格式不一样...
  12. windows 7 数据执行保护 开启关闭方法
  13. ESXI自动关机 ping值检测关机脚本
  14. 江阴长泾/江阴各乡镇到无锡汽车客运站/无锡东站/硕放机场站快捷班车的购票方法
  15. 教程篇 | 史上最简单也最全新手Revit教程
  16. 水银开关控制LED灯灯灭
  17. 二月天:输入年可以获取当前年的二月有多少天
  18. iSpring Suite教程:iSpring Suite 9如何处理早期版本的课程
  19. SLAM方向公众号、知乎、博客上有哪些大V可以关注?
  20. 互联网+时代电子商务发展建议

热门文章

  1. springboot调用so文件
  2. excel进销存添加网页模块,可手机开单
  3. java程序员简历范文
  4. cocos-lua 获取鼠标点击位置
  5. Java的Appium自动化测试教程
  6. SpreadJS 14.2.5 中文版
  7. SpreadJS V15.0 Update2 新特性一览
  8. Windows安装Redis新手教程
  9. php中如何计算字符串长度,PHP字符串长度计算 - strlen()函数使用介绍
  10. 【地图API】地址录入时如何获得准确的经纬度?淘宝收货地址详解