Xmanager 远程连接CentOS linux和SUSE linux

背景知识介绍:

1、什么是Xmanager?

Xmanager,可以将PC变成XWindow工作站,它是一个简单的易用的高性能的运行在windows平台上的Xserver,而linux平台下的gnomekde就是Xclientlinux下的XserverxongXDMCP协议是由DM程序所提供的。X11提供的displaymanagerXDM,而著名的KDEGNOME也都有自己的displaymanager管理程序,分别是KDMGDM,可以通过三者中的任何一个displaymanager配置文件来启动XDMCP这个协议程序。在操作XDMCP之前必须要先安装图形接口才可以。

2、linux下的XWindowSystem

linux使用的图形接口就是所谓的XWindowSystem,它是能够跨平台的,目前在linux上面开发的图形接口软件几乎都是使用这个架构来处理的。XWindowSystem在运行的过程中,又因控制的数据不同而分为XserverXclient两种程序,虽然说是Xserver/client,但是它的作用却与网络主机的server/client架构截然不同。

Xserver:这组程序主要负责的是屏幕画面的绘制与显示。Xserver可以接收来自Xclient的数据,将这些数据绘制呈现为屏幕上的图像。此外,我们移动鼠标、单机数据、由键盘输入数据等,也会通过Xserver来传达到Xclient端,而由Xclient来加以运算出应绘制的数据。

Xclient:这组程序主要负责的是数据的运算。Xclient在接收到Xserver传来的数据后(如鼠标的移动、单击等操作)会经由本身的运算而得到鼠标应该要如何移动、单击的结果应该要出现什么样的数据、键盘输出的结果应该要如何呈现等。然后将这些结果告知给Xserver。让它自行绘制到屏幕上。

3、什么是WM?

WindowManagerWM)是一组控制所有Xclient的管理程序,并同时提供例如任务栏、背景桌面、虚拟桌面、窗口大小、窗口移动与重迭显示等任务。WindowManager主要由一些大型的桌面工具开发而来,常见的有gnomekde

4、什么是DM?

DisplayManagerDM)是用于提供用户登录画面,以让用户可以通过图形接口登录。在用户登录后,可通过displaymanager的功能去呼叫其他的windowmanager,让用户在图形接口的登录过程变得简单。由于DM也是启动一个等待输入帐号密码的图形数据,因此DM会主动去唤醒一个Xserver,然后在上面加载等待输入的画面。

5、关于XDMCP协议

XDMCPxdisplaymanagercontrolprotocol)启动后会在服务器的UDP177开始监听,然后当客户端的Xserver连接到服务器的port177之后,我们的XDMCP就会在客户端的Xserver中放上用户输入帐号、密码的图形接口程序。那么你就能通过这个XDMCP去加载服务器所提供的类似windowmanager相关的Xclient,即能够取得图形接口的远程连接服务器了。

架构图如下:

173607948.jpg

操作流程:

6、CentOS配置XDMCP实现windows远程桌面linux

6.1查看是否安装桌面环境

[root@localhost ~]# yum grouplist
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Group Process
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.btte.net
* updates: mirrors.btte.net
Installed Groups:
Base   //必须的
Desktop  //必须的
Desktop Debugging and Performance Tools
Desktop Platform  //必须的
X Window System    //必须的
……省略……

6.2通过进程查看判断当前是否开启DM

[root@localhost ~]# pstree|grep dm
|-gdm-binary---gdm-simple-slav-+-Xorg
|                              |-gdm-session-wor
|                                              |-gdm-simple-gree
[root@localhost ~]#

6.3配置文件的设置

[root@localhost ~]# cat /etc/gdm/custom.conf
# GDM configuration storage
[daemon]
[security]
AllowRemoteRoot=yes  //允许root登录
DisallowTCP=false  //允许客户端使用TCP的方式连接到XDMCP
[xdmcp]
Enable=true  //启动XDMCP
[greeter]
[chooser]
[debug]
[root@localhost ~]#

6.4重启服务

[root@localhost ~]# init 3
[root@localhost ~]# init 5
[root@localhost ~]# runlevel
3 5
[root@localhost ~]# netstat -antulp|grep dm
udp        0      0 0.0.0.0:177                 0.0.0.0:*                               4487/gdm-binary
[root@localhost ~]#

6.5防火墙设置

[root@localhost ~]# netstat -antulp|grep dm
udp        0      0 0.0.0.0:177                 0.0.0.0:*                               4487/gdm-binary
[root@localhost ~]# grep 177 /etc/sysconfig/iptables
-A INPUT -p udp --dport 177 -j ACCEPT
[root@localhost ~]# /etc/init.d/iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]
[root@localhost ~]#

6.6关闭windows端的防火墙

6.7测试登录界面

174934214.jpg

7、SUSElinux配置XDMCP实现windows远程桌面linux

7.1SUSElinux的版本查看

linux-08wz:~ # lsb_release -a
LSB Version:    core-2.0-noarch:core-3.2-noarch:core-4.0-noarch:core-2.0-x86_64:core-3.2-x86_64:core-4.0-x86_64:desktop-4.0-amd64:desktop-4.0-noarch:graphics-2.0-amd64:graphics-2.0-noarch:graphics-3.2-amd64:graphics-3.2-noarch:graphics-4.0-amd64:graphics-4.0-noarch
Distributor ID: SUSE LINUX
Description:    SUSE Linux Enterprise Server 11 (x86_64)
Release:        11
Codename:       n/a
linux-08wz:~ #

7.2查看当前使用的是哪种DM

linux-08wz:~ # pstree|grep dm
|-gdm---gdm-simple-slav-+-X
|                       |-gdm-session-wor
|                                       |-gdm-simple-gree
linux-08wz:~ #

说明是gdm

7.3修改配置文件

一共需要修改四个地方:

a、

linux-08wz:~ # egrep -v '^$|^#' /etc/sysconfig/displaymanager
DISPLAYMANAGER="gdm"
DISPLAYMANAGER_REMOTE_ACCESS="yes"  //默认是no,改为yes
DISPLAYMANAGER_ROOT_LOGIN_REMOTE="yes" //默认是no,改为yes
DISPLAYMANAGER_STARTS_XSERVER="yes"
DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN="no"
DISPLAYMANAGER_AUTOLOGIN=""
DISPLAYMANAGER_PASSWORD_LESS_LOGIN="no"
DISPLAYMANAGER_AD_INTEGRATION="no"
DISPLAYMANAGER_SHUTDOWN="root"
DISPLAYMANAGER_RANDR_MODE_VGA=""
DISPLAYMANAGER_RANDR_MODE_auto="1024x768_60 64.11 1024 1080 1184 1344 768 769 772 795 -HSync +Vsync"
DISPLAYMANAGER_XSERVER="Xorg"
linux-08wz:~ #

b、

linux-08wz:~ # egrep -v '^$|^#'  /etc/X11/xdm/Xaccess
*                                       #any host can get a login window   //查看这一行,默认不需要修改,如果是被注释的,去掉注释,启用这一行
*               CHOOSER BROADCAST       #any indirect host can get a chooser
linux-08wz:~ #

c、

linux-08wz:~ # grep 'requestPort' /etc/X11/xdm/xdm-config
!DisplayManager.requestPort:    0  //默认是启用的,注释掉,注意用“!”注释
linux-08wz:~ #

d、

linux-08wz:~ # cat /etc/gdm/custom.conf
# GDM configuration storage
[xdmcp]
# SuSEconfig: displaymanager:DISPLAYMANAGER_REMOTE_ACCESS
Enable=true
[chooser]
[security]
# SuSEconfig: displaymanager:~DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN
DisallowTCP=false
# SuSEconfig: displaymanager:DISPLAYMANAGER_ROOT_LOGIN_REMOTE
AllowRemoteRoot=yes
[debug]
linux-08wz:~ #

这个文件和CentOS的一样

7.4重启服务

linux-08wz:~ # init 3
linux-08wz:~ # init 5
linux-08wz:~ # netstat -antulp|grep 177
udp        0      0 0.0.0.0:177             0.0.0.0:*                           10263/gdm
linux-08wz:~ #

7.5防火墙的设置

方法一:

linux-08wz:~ # init 3
linux-08wz:~ # init 5
linux-08wz:~ # netstat -antulp|grep 177
udp        0      0 0.0.0.0:177             0.0.0.0:*                           10263/gdm
linux-08wz:~ #

注意:这种方法是在默认情况下

linux-08wz:~ # /etc/init.d/SuSEfirewall2_init start
Starting Firewall Initialization (phase 1 of 2)                                                                                                             done
linux-08wz:~ # /etc/init.d/SuSEfirewall2_setup  start
Starting Firewall Initialization (phase 2 of 2)                                                                                                             done
linux-08wz:~ # chkconfig --list|grep fire
SuSEfirewall2_init        0:off  1:off  2:off  3:on   4:off  5:on   6:off
SuSEfirewall2_setup       0:off  1:off  2:off  3:on  4:off  5:off  6:off
linux-08wz:~ #

方法二:

linux-08wz:~ # chkconfig SuSEfirewall2_setup off  //让开机不启动
linux-08wz:~ # iptables -A INPUT -p tcp --dport 22 -j ACCEPT
linux-08wz:~ # iptables -A INPUT -p udp --dport 177 -j ACCEPT
linux-08wz:~ # iptables -A INPUT -p icmp  -j ACCEPT
linux-08wz:~ # iptables-save > /etc/iptables.sh  //将规则保存
linux-08wz:~ # cat /etc/iptables.sh
# Generated by iptables-save v1.4.6 on Sun Oct  6 16:23:06 2013
*raw
:PREROUTING ACCEPT [492:37226]
:OUTPUT ACCEPT [370:41138]
-A PREROUTING -i lo -j NOTRACK
-A OUTPUT -o lo -j NOTRACK
COMMIT
# Completed on Sun Oct  6 16:23:06 2013
# Generated by iptables-save v1.4.6 on Sun Oct  6 16:23:06 2013
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [67:7123]
:reject_func - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m state --state RELATED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p udp -m udp --dport 177 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT
# Completed on Sun Oct  6 16:23:06 2013
linux-08wz:~ # cat /etc/init.d/after.local //默认不存在,需要自己创建,开机会加载
#!/bin/bash
/usr/sbin/iptables-restore /etc/iptables.sh
linux-08wz:~ #

7.6关闭windows端的防火墙

7.7测试登录

180432120.jpg

你可能感兴趣的:(centos,SuSE,Xmanager,桌面连接,Window远程连接linux)