远程访问工具-Xmanager远程桌面教程

Xmanager远程桌面教程

欢迎关注博主,查看更多文章。教程服务端为Ubuntu环境,其他环境如Rhel或者Debian类似。

简介

本教程演示如何通过Xmanager6远程连接服务器并进行远程桌面,这是考虑到很多用户虽然习惯于shell环境(即使用xshell配合xftp就能很好地进行服务端开发),但是对于很多新人,命令行工作是不友好的,而服务器虽然有可以安装桌面环境却不能显式,Xmanager等工具实现了这个功能(Pycharm等其他远程桌面工具也可以)。(本教程基于Ubuntu18.04LTS,安装Xfc和GNOME桌面环境)

服务端配置

首先需要安装显式管理器(display manager,也是登录显示管理器),桌面版本的Linux很多是预装DM的,如果只是使用GNOME桌面环境则可以安装gdm(gdm3),如果也需要使用其他桌面环境的则需要安装lightdm。这里为了配合多桌面环境,推荐使用lightdm。下面安装lightdm命令也可以安装gdm3,在安装过程中配置时将默认管理器设置为lightdm。Xmanager官方建议使用lightdm作为display manager,使用xfce作为desktop environment。

sudo apt update
sudo apt install lightdm

然后,需要安装桌面环境。安装Xfce桌面(推荐使用的轻量级桌面,Linus本人也很喜欢这款桌面环境)可以使用如下命令,安装GNOME桌面使用后一条命令(安装过程需要选择显示管理器,请选择一律选择lightdm。需要安装更多的桌面主题、图标之类的可以查看GNOME安装教程)。这里补充为什么使用xfce,GNAMOE作为Ubuntu的默认环境,使用硬件加速,远程连接会非常卡顿,xfce则不会。

sudo apt install xubuntu-desktop
sudo apt install xfce4
sudo apt-get install ubuntu-gnome-desktop
sudo apt-get install gnome-shell

接下来,需要对lightdm进行相关的配置。

首先,新建配置文件lightdm.conf,通过执行命令sudo vim /etc/lightdm/lightdm.conf,内容如下,该配置表示允许XDMCP服务启动并开放177端口。

[SeatDefaults]
greeter-show-manual-login=true
xserver-allow-tcp=true

[XDMCPServer]
Enabled=true
Port=177

接着,通过执行命令sudo vim /etc/lightdm/gdm.schemas新建gdm.schemas文件,作为数据库文件,内容如下。

<schema>
<key>xdmcp/Enable</key>
<signature>b</signature>
<default>true</default>
</schema>

此时,为了确保XDMCP服务的正常开启,需要允许服务开启的端口177通过防火墙,防火墙新建规则即可,命令如下。

ufw allow 177
ufw reload

编辑登录配置文件,使用命令sudo vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf,并输入如下内容。**该文件实质上是一个会话窗口的配置,登录时如有多个可以切换。其中的user-session配置必须是/usr/share/xsessions/*下某个桌面环境。

[Seat:*]
user-session=ubuntu
[XDMCPServer]
enabled=true
[SeatDefaults]
xserver-allow-tcp=true

事实上,对于lightdm而言,系统使用的配置参数保存在/usr/share/lightdm/lightdm.conf.d/*.conf,用户不能编辑。管理员可以在/etc/lightdm/lightdm.conf.d/*.conf/etc/lightdm/lightdm.conf重载系统配置参数。系统会依次读取前述的三个文件最后得到 LightDM 的有效配置信息。由于上述修改了很多lightdm的配置文件,为了重新加载配置,必须重启服务。执行命令sudo service lightdm restart即可。

客户端配置

理论上只要能访问XDMCP的客户端均可,Xmanager作为一款商业软件,在这方面做得比较好,所以使用其作为客户端连接工具。下面使用虚拟机模拟远程服务器,不同的只是虚拟机使用的是内网IP,服务器一般是公网IP,

在Xmanager的主页,XDMCP选项下新建文件夹,进入该文件夹,新建XDMCP会话如下图,创建完成后双击连接登录。
在这里插入图片描述

此时普通用户登录会立即崩溃,root用户登录会出现如下错误。

Error found when loading /root/.profile:
mesg: ttyname failed: Inappropriate ioctl for device
As a result the session will not be configured correctly.
You should fix the problem as soon as feasible.

我们先解决后者的问题,只需要在/root/.profile文件中将mesg n || true替换为tty -s && mesg n || true即可,替换后需要重新载入文件,通过命令sudo source /root/.profile。之后便可以root用户登录了,成功登录如下图。
在这里插入图片描述
在这里插入图片描述

下面看第一个问题,为什么普通用户登录会崩溃(只能root用户远程桌面登录),网上很多解决方法如用户家目录新建.xsession文件或者改变.Xauthority权限,甚至还有要求切换右上角登录session的,这些都不是问题的本质,查看日志可以发现上述操作都不是必须的,前者文件可以没有,后者默认就是当前用户权限。主要是因为lightdm只允许某个用户一次登录,多端登录是不可以的,而服务器使用的虚拟机此时已经通过普通用户登录了桌面环境。所以,服务器一般是root用户无桌面环境运行的,可以允许用户远程登录,这里不建议远程root登录,比较危险。

解决上述问题后远程普通用户登录如下。

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

问题解答

上述过程如果出现输入字符重复等问题,则是因为Xmanager的键盘输入所致,通过Xconfig修改配置XKEYBOARD即可,具体见这篇博客

此外,关于Lightdm这款逐渐作为较为主流的轻量级显式管理器,它的配置文件是按照/usr/share/lightdm/lightdm.conf.d/*/etc/lightdm/lightdm.conf的先后顺序重载配置的(并且/usr/share/lightdm/lightdm.conf.d/中的配置文件如50-ubuntu.conf开始的数字越大采用哪种配置),用户一般在/etc/lightdm/lightdm.conf中定义软件的配置,因此会覆盖预设的配置。其中greeter-session是登录欢迎界面,默认是lightdm-deepin-greeteruser-session是用户可以选择的桌面环境,一般是/usr/share/xsessions/*下某个桌面环境。

补充说明

目前NetSarang只提供家庭免费版的Xshell和Xftp,Xmanager属于购买收费软件。当然,尊重开发者的成果购买正版是应该的,如果实在财力所限可以访问我分享的文件,该版本仅供学习交流使用。

发布了225 篇原创文章 · 获赞 109 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/zhouchen1998/article/details/103424698