有两种方法可以实现远程管理Linux桌面窗口,其中一个就是是我们所选择的X显示管理器(X display manager)或者说xdm,另一 个流行的解决方案是vnc。我选择xdm而不是vnc出于两点原因。第一,vnc要有个服务端的守护进程,为每个共享的桌面运行。第二,我已经有X服务器 的软件安装在所有的工作站上,不想再添加额外的客户端软件了。
我们先来了解一些X系统方面的知识,X是用在大多数UNIX系统中的图形支持系统。如果你的Linux机器使用的是GNOME或者KDE的话,你就正在使用X系统。它由X联盟(www.X.org)定义并维护。大多数的Linux用户使用的都是由XFree86 项 目 (www.xfree86.org)提供的X Window系统的实现。xdm 是一个显示管理器,提供了灵活的任务管理功能。通常被认为 是“GUI的登陆屏幕,可以自动启动我的X任务”,我们会看到实际上它要更为强大。
xdm 使用X联盟的X显示管理控制协议,即XDMCP,来和X服务器通信。它允许X服务器从运行xdm服务的服务器上获得会话服务。
当使用xdm管理这些X任务的时候在设置上有些复杂。但设置xdm 可以得到本地的和其他服务器上的桌面了。我们下面将介绍服务器上配置xdm的方法和步骤,这里描述的配置允许任何的 XDMCP 客户访问 Linux 服务器桌面环境(当然了影响了X的安全)。
配置步骤:
1. 改变linux的运行级别为5
Open /etc/inittab and set the initial runlevel to 5 asfollowing:
id:5:initdefault:
2. 配置xdmcp
2.1对于GDM:
Open /etc/gdm/custom.conf and set the Enable entry to 1 in the [xdmcp] section as following.
[xdmcp]
Enable=1 或 true
Port=177
[security]
AllowRemoteRoot=true
# 如果需要允许root用户登录,设置此项为true
2.2对于KDM:
Open /usr/share/config/kdm/Xaccess and remove the initial "#" characterfor the following line:
#* #any host can get a login window ==>
* #any host can get a login window
Open /usr/share/config/kdm/kdmrc and set the Enable entryto true in the [xdmcp] section as following.
[xdmcp]
Enable=true
3. 配置防火墙
如果我们的Linux机器配置有防火墙,为防止防火墙将通过177端口(即xdmcp服务)的数据过虑,我们必须加上如下的规则:
iptables -A INPUT -p udp -s 0/0 -d 0/0 --dport 177 -j ACCEPT
4.重启linux服务器
# init 3; init 5
至此为止,我们在Linux下的配置xdm已经基本完成。但上面这些配置还只是x服务器端的配置,我们要想实现在Windows远程桌面控制 Linux,还必须要有Windows下的客户端工具,xmanager正是这样的一个工具,它是一个简单易用的高性能的运行在Windows平台上的 X Server 软件。我们现在来介绍xmanager的在Windows下的安装和配置技巧,这里我使用的机器是windows xp。
我们先下载xmanager的安装文件,我下载的是xmanager3.0,安装后,运行xbrowser ,输入linux服务器ip地址,然后点击“连接”即可以连接到我们的redhat登陆桌面了。
输入用户名,确定后系统会提示让你输入密码,验证成功后就可以使用我们的redhat桌面了。
通过xmanager远程连接redhat linux as 5
rhel5与rhel4不同的地方是,rhel5里没有/etc/X11/gdm/这个目录,rhel5的gdm的配置文件放在这里/usr/share/gdm/defaults.conf。
需要修改的地方如下:
修改/usr/share/gdm/defaults.conf文件,确保里面有以下几行:
Enable=true
DisplaysPerHost=10
Port=177
再修改/etc/inittab文件,把默认级别改为5,再加入以下行:
x:5:respawn:/usr/sbin/gdm
这样修改后,root用户还不能登录,还要继续修改/usr/share/gdm/defaults.conf文件,具体如下(红色部分):
[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
如果防火墙打开了,使用以下命令打开177端口:
iptables -A INPUT -p udp --dport 177 -j ACCEPT
用gdm-binary -daemon 启动, 177端口
1.关闭SELinux
# 修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。
# 如果不想重启系统,使用命令setenforce 0
2.在防火墙中添加177端口
# 修改/etc/sysconfig/iptables 文件,添加以下内容:
# -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 177 -j ACCEPT
# 然后重启防火墙
# /sbin/service iptables restart //重新启动防火墙下载本文