zoukankan      html  css  js  c++  java
  • 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发现的

  • 相关阅读:
    JAVA编程规则【转自java编程思想】
    诊断 Java 代码: 轻松掌握 Java 泛型
    Linux开启telnet远程登录服务全攻略
    TCP详解
    UNIX环境高级编程文件描述符浅析
    DHCP与BOOTP有什么区别
    Linux 多播(组播)例程
    你所不知道的传输层
    虚电路方式,数据报方式
    java foreach 使用
  • 原文地址:https://www.cnblogs.com/tutuye/p/3746289.html
Copyright © 2011-2022 走看看