linux平台下远程桌面服务器的安装和设置

系统

ubuntu 9.04

redhat centos

 

说明:    使用 xdm(gdm、kdm)时,使用的是UDP 177端口进行广播,只适合布署在单一子网内,如要在多个子网间布署,xdm明显不合适,请使用xrdp。

想要在远程终端使用用图形界面来操作和控制Linux服务器,就在windows下像使用MSTSC一样。linux通过XDMCP来提供这种支持,我们只要用一个终端仿真软件如:xdm  或者xrdp来实现,下面将就这两种分别进行讲解:

1、xdm配合xmanager或X-win32 使用的是UDP 177端口进行广播 只适合在单一子网内进行,不能跨网段。xdm(kdm、gdm)是linux服务器端,xmanager或X-win32是windows客户端。Xnest是linux客户端

2、xrdp能在多个子网间进行布署,xrdp是linux服务器端,windows通过“远程桌面”访问,linux通过“ rdesktop ”或“终端服务器客户端”来访问。

 

一、xdm 方式
前提:
安装linux时一定要选上xwindow,这是最基本的前提,不安装它,是绝对没有图形界面的。
**********************************************************
基本概念和相关命令说明:
XDMCP(X Display Manager Control Protocol),X显示监控协议;
xdm(manages a collection of X displays),显示管理集。 ubuntu 9.04上没有xdm 只有gdm
路径在:/etc/X11/xdm下几个文件:
  Xaccess     访问控制文件;
  Xservices  本地显示或远程显示配置文件;
  xdm-config  xdm的主要配置文件。
**********************************************************
配置Linux:
使用root用户登录系统,做如下配置
Step1:
root@net :~# gedit  /etc/gdm/gdm.conf
[xdmcp]
Enable=true
DisplaysPerHost=10
Port=177
[security]
# Allow root to login. It makes sense to turn this off for kiosk use, when
# you want to minimize the possibility of break in.
AllowRoot=true
# Allow login as root via XDMCP. This value will be overridden and set to
# false if the /etc/default/login file exists and contains
# "CONSOLE=/dev/login", and set to true if the /etc/default/login file exists
# and contains any other value or no value for CONSOLE.
AllowRemoteRoot=true
Step2:
# gdm
运行gdm脚本,这样使用xmanager等工具就可以连接Linux了。
Step3:
如果想要每次启动自动启动xdm,那么请在/etc/rc.d/rc.local文件尾部加入/usr/sbin/gdm
注:你们的gdm脚本路径可能会和我的不一样,用which gdm查找即可!
 
测试 :
 sudo service gdm start
 
windows 下测试:
 
安装xmanager for windows 会在桌面上产生 一个  Xmanager 文件夹,打开里面的 Xbrowser 软件会自动在子网内扫描,如果发现可用的xdm服务器,会自动显示,如果没有找到请自行检查。
 
注意: 最好不要将xdm服务器直接连接到路由器、防火墙上,那样会抛弃UDP广播包,造成不能访问。
 
linux下测试:
 
“应用程序”-->“  internet ”-->“  终端服务器客户端”
“计算机” 输入IP地址 “协议” 选择 XDMCP
 
注意: XDMCP在安装过Xnest后才可选 Xnest安装如下:
sudo apt-get install xnest
 
登陆后会提示输入用户名和密码,如果长时间未出现,则说明无法连接到xdm服务器。
如果网络之间能ping通,那最大的可能就是因为接在了路由器或是防火墙上,造成UDP广播包被抛弃。
 
二、XDRP 方式
 
 

1、一般来说,连接linux都是用ssh 但是ssh没有图形显示功能,只能在字符下工作,今天为让linux 提供图形界面的远程功能,在linux中实现类似windows的远程桌面功能,因为不想让登陆的时候能使用ssh的22端口上传文件,所以否定了使用ssh 22端口的软件。找了几款软件,比如vnc、xmanager 、X-win32等

2、vnc要使用端口号加屏幕号的形式,在有很多用户要使用时,配置vnc和防火墙都是很麻烦的事。

3、xmanager 因为要使用到UDP广播,无法在多个子网间布署,X-win32是收费软件,最新版本 x-win100-1155sf 用起来相当的慢。相比较之下,xrdp最好用了。

软件安装和设置


4、 请注意,在安装之前请确保系统安装了如下软件:如果没有安装 请自行安装,centos 可以用yum方式

 gcc 

 make 

 libtool

 pam

 pam-devel

 openssl

 openssl-devel

 vnc服务端程序    

 tigervnc tigervnc-server (这是centos6自带的vnc程序)

5、下载  xrdp程序  

  如果是debian系发行版,可以设置好源后直接apt-get install xrdp

  如果是redhat系发行版,可以到http://www.xrdp.org/下载源码安装包

6、安装

  我下载的是最新的 xrdp-v0.6.0.tar.gz 安装方法如下
   tar zxvf xrdp-v0.6.0.tar.gz -C /usr/local/src

   cd xrdp-v0.6.0

   ./bootstrap 注意 这里要libtool, 如果系统没安装会报错的

   ./configure

   make

   make install

7、启动程序

   /usr/local/src/xrdp-v0.6.0/instfiles/xrdp.sh start  启动

   /usr/local/src/xrdp-v0.6.0/instfiles/xrdp.sh stop   关闭


8、开机自启动

   echo " /usr/local/sbin/xrdp" >>/etc/rc.local

9、修改配置文件

xrdp的配置文档在/etc/xrdp目录下的xrdp.ini和sesman.ini 

 vi /etc/xrdp/xrdp.ini    xrdp.ini 关键部分在globals

[globals]
bitmap_cache=yes 位图缓存
bitmap_compression=yes 位图压缩
port=3389 监听端口
crypt_level=low 加密程度(low为40位,high为128位,medium为双40位)
channel_code=1 不知道是什么

sudo vi /etc/xrdp/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 系统日志记录等级

装好后,我们就可以直接从win系统下利用mstsc直接进行登陆,相当方便,如果是linux,可以用rdesktop。

 

9、netstat -tlnup    查看3389端口和3350端口有没有启动

10、解决键盘混乱问题
gconftool-2 –type list –list-type=string –set /desktop/gnome/peripherals/keyboard/kbd/layouts [damnlayouts]             

11、解决登陆后不支持中文问题
sudo vim /etc/xrdp/startwm.sh
打开这个文件后添加下面的语句
#!/bin/sh
export LC_ALL=zh_CN.UTF-8
. /etc/X11/Xsession "这句是默认就有的
 三、测试

1、新建一个用户组 将需要登陆的用户加入到这个组里。
sudo groupadd tsusers 

2、 windows 下的测试
使用远程桌面连接应用程序”-->“ internet ”-->“终端服务客户端”
或是 sudo rdesktop  
login to  xrdp 界面中的“ module ”填写 “ sesman-Xvnc ”、“username  ”填写用户名、“ password ”填写密码

3、linux 下的测试
使用“应用程序”-->“ internet ”-->“终端服务客户端”
或是 sudo rdesktop IP地址或是 sudo rdesktop  
login to  xrdp 界面中的“ module ”填写 “ sesman-Xvnc ”、“username  ”填写用户名、“ password ”填写密码。
现在让我们体验linux的远程桌面吧。

 四、注意
        需要注意的是,重启Ubuntu系统后,需要手动启动XRDP服务。如果启动时出现“It looks like XRDP is already running...”这样的提示,那是因为XRDP服务的进程标识文件“xrdp.pid”没有被删除,这时可以输入命令:“sudo rm /var/run/xrdp/xrdp.pid”删除该文件后再启动XRDP服务即可。
       

 

本文出自 “jedy 网络技术&linux学习” 博客,转载请与作者联系!

你可能感兴趣的:(linux,ubuntu,职场,图形界面,Xmanager,休闲,XDRP)