烂泥:学习ubuntu远程桌面(二):远程桌面会话管理
在上一篇文章中,我们讲解了如何给ubuntu安装远程桌面及其配置,这篇文章我们再来讲解下有关ubuntu远程桌面会话的问题。
一、问题描述
在我们使用ubuntu远程桌面时,会经常遇到这样的问题。在连接远程桌面时,我打开的是会话A,我在会话A下处理一些工作的事情。由于自己不小心把这个远程桌面给关闭了,或者今天工作完毕关闭该远程桌面会话。等再进行连接远程桌面时,发现ubuntu会给出一个新的远程桌面会话B,而不是我们刚刚连接过的那个会话A,或者是昨天连接的那个会话A。
以上这个问题,我们在实际的工作中是经常遇到的。
那么我们该如何解决这个问题呢?或者换一种说法,我们该如何再次连接到上一次的远程桌面会话A呢?
注意:本篇文章中的ubuntu远程桌面全部是基于XRDP协议。
二、ubuntu远程桌面的原理
要解决以上的问题,我们就要了解基于xrdp协议的ubuntu远程桌面与vncserver之间的关系。
其实有关ubuntu远程桌面的原理,我们在上一篇文章《烂泥:学习ubuntu远程桌面(一):配置远程桌面》中已经提到过一些,基于XRDP方式的远程桌面连接是需要vncserver的支持。
为什么需要vncserver的支持呢?是因为我们在通过3389端口连接ubuntu远程桌面时,xrdp会把所有通过3389端口数据都转发到vncserver的端口上,同时vncserver只监听127.0.0.1这个地址,所以vncserver的端口是不对外开放的。
除此之外,vncserver还为每一次远程桌面会话分配一个系统端口,注意这个端口很重要。
如果我们要连接上一次的远程桌面会话A的,我们只需要连接会话A所在vncserver端口即可。
那么我们如何才能连接和查看这个vncserver端口呢?这就需要我们修改xrdp的相关配置。
为什么要讲解这个原理?是因为只有我们理解了这个原理,那么我们才能很容易的解决ubuntu远程桌面会话的问题,而且也能很容易的理解,我们对xrdp配置文件的相关修改。
三、XRDP配置文件详解
XRDP配置文件有两个,分别是/etc/xrdp目录下的xrdp.ini和sesman.ini文件。
xrdp.ini配置文件,关键部分在globals,具体内容如下:
[globals]
bitmap_cache=yes 位图缓存
bitmap_compression=yes 位图压缩
port=3389 xrdp监听的端口(重要)
crypt_level=low 加密程度(low为40位,high为128位,medium为双40位)
channel_code=1
max_bpp=24 XRDP最大连接数
[xrdp1]
name=sesman-Xvnc XRDP的连接模式
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
注意:在xrdp.ini配置文件中,需要注意max_bpp参数,这参数定义XRDP最大的连接数。
要解决本文所提出的问题,我们只需要修改sesman-Xvnc模式中的port参数。修改后的prot参数,如下:
cat /etc/xrdp/xrdp.ini

sesman.ini配置文件,内容如下:
[Globals]
ListenAddress=127.0.0.1 监听ip地址(默认即可)
ListenPort=3350 监听端口(默认即可)
EnableUserWindowManager=1 1为开启,可让用户自定义自己的启动脚本
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh
[Security]
AllowRootLogin=1 允许root登陆
MaxLoginRetry=4 最大重试次数
TerminalServerUsers=tSUSErs 允许连接的用户组(如果不存在则默认全部用户允许连接)
TerminalServerAdmins=tsadmins 允许连接的超级用户(如果不存在则默认全部用户允许连接)
[Sessions]
MaxSessions=10 每个用户最大会话数
KillDisconnected=0 是否立即关闭断开的连接(如果为1,则断开连接后会自动注销)
IdleTimeLimit=0 空闲会话时间限制(0为没有限制)
DisconnectedTimeLimit=0 断开连接的存活时间(0为没有限制)
[Logging]
LogFile=./sesman.log 登陆日志文件
LogLevel=DEBUG 登陆日志记录等级(级别分别为,core,error,warn,info,debug)
EnableSyslog=0 是否开启日志
SyslogLevel=DEBUG 系统日志记录等级
四、连接远程桌面
现在我们来通过远程桌面来连接ubuntu,如下:

注意:图中标记出来的端口号
远程桌面连接进入后,打开终端创建一个文件test,如下:

test创建完毕后,然后关闭这个远程桌面连接。
注意:为了下面的演示效果,创建该文件的界面,我没有关闭。
此时我们再通过ssh登录进入ubuntu,查看此时vncserver所使用的端口,如下:
netstat –tunlp
ps -ef |grep 1673

通过上图,我们可以知道目前这个会话,vncserver使用的是5912这个端口。
现在我们修改下xrdp的配置文件xrdp.ini,如下:
sudo vi /etc/xrdp/xrdp.ini

以上修改完毕后,我们要重新启动xrdp,如下:
sudo /etc/init.d/xrdp restart

重启完毕后,我们再次连接远程桌面,如下:

注意:上图中的port端口,我们填写的是5912这个端口,也就是上边那个远程桌面会话vncserver所使用的端口。
远程桌面进去后,如下:

通过上图,我们可以很明显的看出,我们确实连接到了上次本关闭的那个远程桌面界面。
PS:如果不知道每一次的连接的端口的话,我们也可以通过上查看用户的xrdp日志进行查看。具体步骤,如下:
sudo cat /var/log/xrdp-sesman.log

通过xrdp日志查看用户启动xrdp的pid。
然后再根据pid,查看启动的xrdp进程,如下:
ps -ef |grep 1693

通过上图,基本可以看出此xrdp进程所使用的是5912端口。
为了更清晰的确认端口号,使用netstat命令,如下:
netstat -tunlp

通过上图,可以很明显的看出pid为1693的xrdp,使用的是5912 端口。
到此有关ubuntu远程桌面会话的问题全部结束。
烂泥:学习ubuntu远程桌面(二):远程桌面会话管理的更多相关文章
- Linux学习总结(十二)—— CentOS用户管理:创建用户、修改用户、修改密码、密码有效期、禁用账户、解锁账户、删除用户、查看所有用户信息
文章首发于Linux学习总结(十二)-- CentOS用户管理,请尊重原创保留原文链接. 创建用户 useradd -g webadmin -d /home/zhangsan zhangsan pas ...
- 烂泥:学习ubuntu远程桌面(一):配置远程桌面
本文由秀依林枫提供友情赞助,首发于烂泥行天下 公司服务器目前安装的都是ubuntu 14.04系统,而且由于业务需要,需要使用到ubuntu的远程桌面功能.所以本篇文章都是围绕ubuntu的远程桌面来 ...
- ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(二)
ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(二) 本教程适用于想要在远程服务器上配置docker图形界面用于深度学习的用户. (二)nvidia docker配 ...
- ubuntu 13.04 xrdp 远程桌面连接问题[转载]
本人ubuntu12.04,遇到了同样的问题,用一下方法解决了,mark一下. ubuntu 13.04 xrdp 远程桌面连接问题. win 7 远程桌面连接 ubuntu desktop 有几种办 ...
- ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(一)
ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(一) 本教程适用于想要在远程服务器上配置docker图形界面用于深度学习的用户. (一)ubuntu18.04配置n ...
- 设置Windows 远程协助与远程桌面
家庭局域网组建完成后,即可通过远程协助解决各种问题,或联机玩游戏等. 使用Windows 7\8\10 远程协助与远程桌面 Windows 8系统中自带了远程协助功能,家庭用户只需要做简单的设置,就可 ...
- ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(三)
ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(三) 本教程适用于想要在远程服务器上配置docker图形界面用于深度学习的用户. (三)配置远程桌面连接访问dock ...
- mac远程连接linux 服务器桌面by VNC
为了远程使用Linux服务器,折腾了一个下午.最终看来还是用vnc最简单了. 实验室有两台强劲的Linux服务器用来做研究.之前我一直都是用ssh登到服务器上去码代码,反应速度很快,感觉很不错.但是因 ...
- mac使用vnc远程登录ubuntu16.04桌面
mac使用vnc远程登录ubuntu16.04桌面 1.安装在Ubuntu上安装x11vnc,如下: sudo apt-get install x11vnc 2.配置vnc密码 x11vnc -sto ...
随机推荐
- linux_shell_5_shell特性_正则_1
前面我们了解了部分linux shell的相关特性,下面的链接是第4篇文章:linux_shell_4_shell特性 这里我们来继续讨论linux shell中至关重要的一个特性: 正则表达式 (r ...
- 蘑菇街2015校招 Java研发笔试题 详解
1. 对进程和线程描述正确的是( ) A. 父进程里的所有线程共享相同的地址空间,父进程的所有子进程共享相同的地址空间. B. 改变进程里面主线程的状态会影响其他线程的行为,改变父进程的状态不会影 ...
- HDU 1237 简单计算器 栈
额,题目是中文的,题意就不用说了= =都看懂喽.写个字符串先把这行计算式存进去,不过不能存一个算一个,因为考虑到乘除法比加减法优先的原则,如果是加号减号就先存着等待计算,如果是乘号除号就直接算出来值就 ...
- Java集合源码分析(五)HashSet<E>
HashSet简介 HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持.它不保证set 的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用null元素. HashSet源 ...
- Android活动启动模式
在android中,android活动是以栈的方式进行存储,在栈中的活动不断被重新激活至前台和不断被终止也不断被排序.因此对于栈中的活动管理也是一个比较麻烦的事情. android给我们提供了两类活动 ...
- vim自动补全插件YouCompleteMe
前言 Valloric/YouCompleteMe可以说是vim安装最复杂的插件之一,但是一旦装好,却又是非常好用的.YouCompleteMe简称ycm 在安装折腾的过程中,我再一次的体会到,除了官 ...
- Play!中使用HTTP异步编程
本章译者:@Sam Liu (译者未留下自己的主页,请Sam Liu见此文,加入群168013302联系‘大黄蜂@翻译play’) 这一章主要讲解如何运用异步模式实现典型的长连接(long-polli ...
- 安装配置php5.4 win2003
php php-5.4.38 1.下载 http://windows.php.net/downloads/releases/php-5.4.38-Win32-VC9-x86.zip 解压到 D:\we ...
- 【Bootstrap】1.初识Bootstrap
作为Web前端开发框架,Bootstrap为大多数标准的UI设计常见提供了用户友好.扩浏览器的解决方案. 1.下载Bootstrap 打开官方网址 http://getbootstrap.com/ 进 ...
- Jquery属性获取——attr()与prop()
今天在项目中使用<select></select>下拉菜单时,使用juery操作,使页面加载完菜单默认选中的值为2,我一开始的操作如下: <!--html部分--> ...