参考资料

1. 前言

1.1 常见远程桌面软件推荐

随着过去一年多的研究生生涯,也陆陆续续用了几款远程桌面软件。目前来看都还不错。我主要用过的是4款:TeamViewerRustDesk, 向日葵, ToDesk。这4款ubuntu和windows下均可使用。

4个软件的界面分别如下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 比较

  • 其中,个人体验而言,TeamViewer,RustDesk,ToDesk是优于向日葵的。因为向日葵免费版不能够进行传输文件剪贴板也不能共享(不能相互之间复制粘贴文字)。
  • 速度而言,使用局域网时,体验上三者没有什么差别;不使用局域网连接时,向日葵速度>TeamViewer>RustDesk=ToDesk。所以,使用局域网时,还是推荐使用后三者的。不过可以自建服务器,不过我自己没有试过,还不懂咋搞。。。
  • 使用向日葵可能会碰到的一个问题,就是远程连接Ubuntu时,一连接就秒断的问题。具体可参考这个。之前实验室的服务器就碰到了这个问题,折腾了很久都没解决,还差点把系统搞崩了,因此果断放弃在服务器上使用向日葵,转为使用后3种了。

2. 使用windows远程桌面连接ubuntu

用过windows远程桌面连接的小伙伴们都知道,使用起来非常顺畅丝滑,界面清晰。但它只能在windows之间使用,远程连接ubutnu还需要进行一些配置。

2.1 安装xrdp

Xrdp 是一个微软远程桌面协议(RDP)的开源实现,它允许我们通过图形界面控制远程系统。这里使用RDP而不是VNC作为远程桌面,是因为Windows自带的远程桌面连接软件用的就是RDP协议,RDP在Windows下的体验非常好,包括速度很快(因为压缩方案做得比较好),可以直接在主机和远程桌面之间复制粘贴等等。

有的Xwindow软件是不太兼容xrdp的(比如ubuntu 18.04的默认桌面),但是ubuntu 20.04使用的Gnome是完全ok的。

安装过程如下:

sudo apt install xrdp

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

sudo systemctl status xrdp

可以将xrdp设为开机启动

sudo systemctl enable xrdp

默认情况下,xrdp 使用/etc/ssl/private/ssl-cert-snakeoil.key,它仅仅对ssl-cert用户组成语可读,所以需要运行下面的命令,将xrdp用户添加到这个用户组:

sudo adduser xrdp ssl-cert  
sudo systemctl restart xrdp

然后使用Windows自带的远程桌面软件连接服务器IP地址或者域名就行了。

2.2 问题1:远程连接后出现黑屏

连接远程桌面输入账户和密码后,进入ubuntu20.04后,如果出现的是黑屏ubuntu系统下登出用户(log out),远程连接正常。

或者使用下面步骤解决根本问题。

详情可阅读参考资料2.

  • 打开startwm.sh文件

    sudo vim /etc/xrdp/startwm.sh
    
  • 在以下位置添加如下内容:

    unset DBUS_SESSION_BUS_ADDRESS
    unset XDG_RUNTIME_DIR
    

    在这里插入图片描述

  • 然后重启xrdp服务,重新尝试连接即可。

    sudo systemctl restart xrdp
    

除此之外,若远程登录后不登出直接关闭远程窗口,ubuntu系统登录后无法看到桌面,需要远程后登出才可以使用。

2.3 问题2:远程连接只能登陆root用户,无法登录普通用户

  • 进行 ~/.xsession的配置,以下以ubuntu20.04 gnome桌面类型配置为例。

    echo gnome-session > ~/.xsession
    
  • 修改startwm.sh

    sudo vim /etc/xrdp/startwm.sh
    

    test -x /etc/X11/Xsession && exec /etc/X11/Xsession前添加如下代码:

    gnome-session
    . /etc/X11/Xsession
    

    在这里插入图片描述

    • 重启xrdp服务
    sudo systemctl restart xrdp
    
  • 使用windows远程连接工具连接Ubuntu,输入相应的用户密码后即可进入

3. 进行内网穿透

进行内网穿透的手段还可以参考博客。这里不再赘述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐