0%

给Linux(Ubuntu 16.04/18.04)配置远程访问环境

年后给实验室装了一台小服务器,安装了Ubuntu系统,这篇博客记录一下给Ubuntu配置远程访问的设置过程。

虽然服务器是一台GPU服务器,但是出于简便考虑没有在服务器上安装虚拟化环境,有需要安装LXD或者Docker的朋友可以参考这几篇博客:实验室GPU服务器共享方案搭建多人共用的GPU服务器为实验室建立公用GPU服务器搭建实验室公共GPU服务器

SSH设置

远程连接最方便并且最稳定的就是SSH了,安装好SSH之后就基本可以远程操作服务器。SSH的安装非常简单,Ubuntu下通过apt安装即可:

1
sudo apt install openssh-server

安装完重启后,SSH服务就会自动运行了。客户端方面,Ubuntu默认提供SSH支持,而Windows在1809之后也内置了OpenSSH,在系统附加功能中打开开关后,通过cmd即可调用。如果系统版本较老则可以使用XShell。

SFTP设置 - 利用rclone

上面安装命令会顺带安装上SFTP客户端。SFTP可以看作加密的FTP协议,可以用来远程访问服务器的文件。SFTP现在已经受到广泛的支持,例如Android上的Solid Explorer就内置了SFTP访问功能。

这里介绍一个可以把远程文件挂载到本地的软件——rclone。安装rclone可以从官网下载二进制文件直接拷贝安装,或者下载打包好的deb文件,也可以使用snap进行安装。安装完成之后使用rclone config添加SFTP服务器,然后就可以rclone mount进行挂载。此外还可以使用RcloneBrowser等GUI进行更加直接的操作。

Tip: 如果你是在Ubuntu上安装RcloneBrowser的话,可以通过修改/usr/share/applications/rclone-browser.desktop文件来修改图标。(原来的图标实在太丑了)

远程桌面设置

远程桌面的设置就比较麻烦了,这里的远程桌面服务选择xrdp,关于xrdp,vnc等等服务的比较网上都有。由于最开始安装的是Gnome Ubuntu16.04,因此遇到了很多坑,最后配完远程桌面时显卡驱动崩了,因此最后换到了Ubuntu18.04。因此如果需要远程桌面的朋友可以考虑升级到Ubuntu18.04。

为了使用上Gnome桌面,最初参考的是一篇在Ubuntu16.04上配置xrdp访问Unity桌面的博客,最后安装完确实是可以完成访问的,并且如果碰到远程登陆之后提示需要新建color profile的话可以通过这个博客解决。但最后由于安装完xserver-xorg后显卡驱动崩了,换用了18.04。

在18.04下安装xrdp就简单多了,xrdp版本较新,也不需要安装tigervnc。具体教程还是参考了这篇博客,大概步骤就是

  1. 安装xrdpxserver-xorg。需要先安装的xserver-xorg的原因参见这篇博客
    1
    2
    apt install xserver-xorg-core xsrever-xorg-input-all
    apt install xrdp

如果你安装了Nvidia驱动的话NV还提供定制版的nvidia-xserver-xorg,也可以通过apt直接安装。安装NV驱动和安装xrdp最好连续进行,避免安装完其他东西之后回头来发现要重装(亲身教训= =)

  1. 添加echo [session] > ~/.xsession/etc/xrdp/startwm.sh文件里。这里的[session]内容需要从/usr/share/xsessions里的桌面环境文件中拷贝出来,例如如果想远程桌面环境运行Gnome3,那么就把[session]替换成gnome-session --session=gnome(这行命令就是从/usr/share/xsessions/gnome.desktop文件中提取出来的)
  2. 修复一些小问题。例如上文提到的color profile问题可以通过这篇很详细的博客提到的方法进行解决

然后在使用xrdp的时候你可能会碰到一些问题,这里记录一些常见问题的解决方法

  • 远程用户在home路径下会挂在一个叫thinclient_drives的文件夹: 在/etc/xrdp/sesman.ini中的Chansrv部分里将FuseMountName改为别的名字(例如.thinclient_drives)。这个文件夹的作用是实现远程文件拷贝的功能。

X11 Forwarding

X11转发是Linux的一种实现远程图形界面的方法,它基于X11窗口协议,类似于Windows对远程GDI的实现。设置好X11以后便可以在ssh中运行远程带有图形界面的程序了~它相比xrdp更好配置,但是使用范围没有xrdp广,因为它只支持程序级别的图形界面,而不是桌面级别的。其设置方法也很简单,在服务器端的/etc/ssh/sshd_config中将X11Forwarding选项设为yes即可。在客户端则取决于平台,在Linux平台由于系统界面就是基于X11的(Wayland除外),因此直接使用ssh -X命令连接服务器就能支持X11转发,而在Windows上则需要额外安装X11服务器,著名的有Vcxsrv, X410等。这里推荐使用MobaXTerm,这个SSH客户端自带X11服务器,开箱可用,并且性能不错!

静态IP

如果想要稳定地连接服务器,还需要给服务器配置静态IP。由于我是在大学校园内,静态IP需要申请。我们的网管要求关闭SSH的远程root登陆,以及关闭不必要的服务,此外还推荐服务器用户使用rsakey登陆SSH。这些要求有利于保护服务器安全,因此也推荐在有需要的情况下完成这些操作。


以上就是给Ubuntu服务器配置远程桌面的主要步骤,步骤不多但是比较花时间。文中提到的几个博客的网站有提供不少的Linux设置教程,可以供读者参考。

其他参考阅读:

Treat me some coffee XD