一、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:
:~# 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服务即可。