工作台安装了linux桌面发行版,同时想要做远程控制
通过vnc远程连接到工作台,发现vnc过去以后,本地屏幕也会显示,所有操作暴露无遗~
找一找比vnc更安全的远程桌面服务(也许是我vnc设置不对~请指教~)
发现鸟哥推荐:xrdp
http://linux.vbird.org/linux_server/0310telnetssh.php#xrdp
顾名思义,它模仿了windows下的rdp连接
首先配置epel
epel真的是太方便了,免除了编译安装的繁琐,我们的目的在于快速使用,而非具体的调优
配置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”
然后出错了(鸟哥~不是说直接跑起来就可以连上吗~我的版本号也对呀,centos6.2)
然后看一下日志:/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://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发现的