XRDP让CentOS变成rdp server

工作台安装了linux桌面发行版,同时想要做远程控制

通过vnc远程连接到工作台,发现vnc过去以后,本地屏幕也会显示,所有操作暴露无遗~

找一找比vnc更安全的远程桌面服务(也许是我vnc设置不对~请指教~)

发现鸟哥推荐:xrdp

http://linux.vbird.org/linux_server/0310telnetssh.php#xrdp

顾名思义,它模仿了windows下的rdp连接

首先配置epel

epel真的是太方便了,免除了编译安装的繁琐,我们的目的在于快速使用,而非具体的调优

https://fedoraproject.org/wiki/EPEL/zh-cn

配置epel

   1:  wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
   2:  rpm -ivh epel-release-6-8.noarch.rpm
   3:  yum clean all
   4:  yum makecache

然后安装xrdp

xrdp直接yum安装,安装完后无需修改任何配置,直接启动即可

   1:  yum install xrdp
   2:  ...
   3:  Installed:
   4:    xrdp.x86_64 0:0.5.0-0.13.el6
   5:  Dependency Installed:
   6:    tigervnc-server.x86_64 0:1.1.0-8.el6_5
   7:  ...

可以看到xrdp同时也会安装tigervnc-server,vnc的作用下面就知道了

启动就不用说了

/etc/init.d/xrdp start; chkconfig xrdp on

xrdp会启动2个进程,2个端口

   1:  [root@master log]# netstat -nlp|grep xrdp
   2:  tcp        0      0 127.0.0.1:3350              0.0.0.0:*                   LISTEN      16922/xrdp-sesman
   3:  tcp        0      0 0.0.0.0:3389                0.0.0.0:*                   LISTEN      16918/xrdp

连接,试用

通过windows的远程桌面连过去,有一个输入框,输入系统账号和密码,点“OK”

QQ图片20140522150448

然后出错了(鸟哥~不是说直接跑起来就可以连上吗~我的版本号也对呀,centos6.2)

QQ图片20140522143219

然后看一下日志:/var/log/xrdp-sesman.log

[20140522-14:36:55] [INFO ] scp thread on sck 7 started successfully
[20140522-14:36:55] [INFO ] ++ created session (access granted): username root, ip 192.168.1.100:53227 - socket: 7
[20140522-14:36:55] [INFO ] starting Xvnc session...
[20140522-14:37:05] [ERROR] X server for display 10 startup timeout
[20140522-14:37:05] [INFO ] starting xrdp-sessvc - xpid=16837 - wmpid=16836
[20140522-14:37:05] [ERROR] X server for display 10 startup timeout
[20140522-14:37:05] [ERROR] another Xserver is already active on display 10
[20140522-14:37:05] [DEBUG] aborting connection...
[20140522-14:37:05] [INFO ] ++ terminated session:  username root, display :10.0, session_pid 16834, ip 192.168.1.100:53227 - socket: 7

一箩筐东西,xserver is already active?什么情况?

搜索了一下,发现好多人碰到,比如说这位

http://thornelabs.net/2013/06/28/rhel-6-fix-xrdp-error-another-xserver-is-already-active-on-display-10.html

或者这位

http://fendertech.blogspot.ro/2013/04/xrdp-not-working-on-centos-62.html

都提到了字符问题,后面这位直接给出了解决方案:

yum install pixman libXfont

在我这边运行,直接update了这两个包

   1:  yum install pixman libXfont
   2:  ...
   3:    Updating   : libXfont-1.4.5-3.el6_5.x86_64
   4:    Updating   : pixman-0.26.2-5.1.el6_5.x86_64
   5:    Cleanup    : libXfont-1.4.1-2.el6_1.x86_64
   6:    Cleanup    : pixman-0.18.4-1.el6_0.1.x86_64
   7:  ...

然后重启服务

再次连接,OK,搞定~!

为什么要依赖tigervnc-server

之前安装xrdp会一起把vnc server安装上,这个vnc sererver到底是干啥的

rdp连接上服务器以后,查看连接状态

   1:  [root@master log]# netstat -tanp
   2:  Active Internet connections (servers and established)
   3:  Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
   4:  ......
   5:  tcp        0      0 127.0.0.1:5910              0.0.0.0:*                   LISTEN      16930/Xvnc
   6:  tcp        0      0 127.0.0.1:3350              0.0.0.0:*                   LISTEN      16922/xrdp-sesman
   7:  tcp        0      0 0.0.0.0:3389                0.0.0.0:*                   LISTEN      16918/xrdp
   8:  tcp        0      0 192.168.1.10:3389           192.168.1.100:53250         ESTABLISHED 16918/xrdp
   9:  tcp        0      0 127.0.0.1:5910              127.0.0.1:47050             ESTABLISHED 16930/Xvnc
  10:  tcp        0      0 192.168.1.10:53296          125.56.200.168:80           ESTABLISHED 8734/clock-applet
  11:  tcp        1      0 192.168.1.10:44985          96.17.151.11:80             CLOSE_WAIT  17072/clock-applet
  12:  tcp        0      0 127.0.0.1:47050             127.0.0.1:5910              ESTABLISHED 16918/xrdp
  13:  ......

有没有看到pid为16930的那个Xvnc进程~

注意看第9行和第12行~

[xrdp的127.0.0.1:47050] 与 [Xvnc的127.0.0.1:5910] 是互连状态

也就是说,rdp连接不过是个“假象”;外部设备连接到xrdp的3389端口,然后xrdp会从内部连接到一个内部的vnc服务

客户端 –> [服务端:xrdp-3389] –> [服务端:xvnc-59xx]

为什么要“多此一举”?

鸟哥说了vnc的加密设置很繁琐,而rdp自带了加密,这样做起来,设备到设备之间的链路已经加密了,至于内部通信的加密在这里不算那么严重

小结

东东还是可以用,屏幕终端登录和rdp远程互不冲突,但跑进程的时候会有干扰了

2014-05-22发现的问题:

太卡了,家里100M无线网络测试,即便把rdp设置为56K的网络条件,操作也不是非常流畅

还有一个问题,丢PATH:/usr/lib64/qt-3.3/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin;是在运行ifconfig发现的

原文地址:https://www.cnblogs.com/tutuye/p/3746289.html