Centos6.5 XDMCP搭建与使用(大部分参考私房菜)

一 XDMCP(X Display Manager Control Protocol,X显示管理器)简介(wiki)

X显示管理器控制协议使用UDP 177 端口,需要显示管理器开始一个会话时,X服务器需要向其发送Query包。如果显示管理器允许X服务器的访问,它会向X服务器返回Willing包作为回应。(X服务器也可以发送BroadcastQuery或IndirectQuery包来开始一个会话,这种机制类似于使用DHCP来获得IP地址。)

显示管理器必须向X服务器进行认证。为做到这一点,X服务器发送Request包给显示管理器,显示管理器返回一个Accept包。如果Accept包包含了X服务器期望的响应,则显示管理器通过认证。举例来说,为生成正确的响应可能需要显示管理器访问一个密钥。如果认证成功,X服务器会发送Manage包来告诉显示管理器。然后,显示管理器会作为一个常规的X客户端向连接的X服务器显示登录界面

在会话期间,X服务器会间隔的向显示管理器发送KeepAlive包。如果显示管理器在一段时间内没有回应Alive包,X服务器会假定显示管理器停止运行,并终止该连接。

XDMCP有一个问题,类似telnet,认证时是不加密的并且如果能够嗅探,这会让系统易受到***。比较安全的方法是对X通信使用ssh通道。在ssh部分我会整理哈。

二 XDMCP服务打开前的配置

服务器端

思路:

①服务器端xdmcp伴随着gdm(gnome display manager)的打开而打开,所以应该在gdm的配置文件中设置xdmcp相关属性

②主要用xclient负责图形的运算,为用户提供xdmcp服务时需提供一个监听端口,默认为177,所以防火墙应该允许该端口被用户机连接

具体做法

1./etc/gdm/custom.conf添加如下几行,

使得xdmcp可以运行,且允许远程root登录,允许tcp连接到xdmcp

2.服务器端,即提供服务端,开放监听177端口,在原有防火墙基础下,添加

重新运行一次防火墙脚本

如果想开机启动,可以把防火墙脚本放在/etc/rc.d/rc.local文件末行,前提是开机没有启动gdm,也即没有开机进入图形界面,默认为文字界面的情况,个人用户可以忽略

客户端

思路:

  1. 首先服务端xserver(负责屏幕的绘制和显示)应该放行来自服务器端的数据xhost负责这个管理

The xhost program is used to add and delete host names or user names to the list allowed to make connections to the X server. In the case of hosts, this provides a rudimentary(基本的,初步的) form of privacy control and security. It is only sufficient for a workstation (single user) environment, although it does limit the worst abuses. Environments which require more sophisticated measures should implement the user-based mechanism or use the hooks in the protocol for passing other authentication data to the server.

man文档的意思是xhost程序是用来管理与X server连接的,提供基本的访问控制,尽管它确实可以限制一定程度上的滥用,但它只对单用户工作站的环境有效。对于需要更复杂措施的情况,通常需要采取用户自定义的机制或者通过协议勾达到传送用户认真信息给server。

用法如下

xhost [[+-]name ...]name可以是用户名或主机名

  1. 客户端需要xdmcp服务就需要端口,默认情况下为6001,本机占用6000,所以客户端要对于服务器对于局域网络放行6001端口
  2. 从客户端进入需要使用X query serverip:1进入

具体做法

1 xhost + 192.168.177.130相当于添加一层acl

2防火墙设定

开放6001端口就好啦,端口没开我的centosclient惨烈的黑屏了,原因当然是服务器没有用xclient发回来计算的结果,防火墙设置有问题

在iptables.rule文件中修改,重启脚本,或直接使用命令

最后iptables-save可以检验刚刚的设置,或者防火墙脚本的是否有错误提示

3 登录

登录结果如下,如果显示已经有登录了,则建议重新进入图形界面试试

4退出

看到右下角的那个电源按钮没,disconnect即可

Linux下另一个软件Xnest的使用

1 介绍(源自百度百科)

Xnest在窗口之内可以用于跑另一台计算机一个虚拟桌面。 Xnest也使用为服务器调试和为正确测试那应用工作在不同的屏幕尺寸。 的确,用户能选择Xnest窗口的大小,也是虚屏的大小它包含。 这样,你可能例如开始一个Xnest窗口以a屏幕的大小 PDA 测试应用是否在那个设备屏幕正确地运作。

2 安装

3 使用

和X差不多

Xnest query IP geometry 800x600 :1

Xnest的好处很明显,就是可以窗口化桌面,有点像virtualbox

Windows如何登录

Xming软件的使用

1介绍

2安装

去网站上下载就好啦

http://xming.en.softonic.com/download?ab=10我的是在这下的

3使用

打开Xming-Xlaunch

下一步

输入服务器端的ip和端口

连接

继续下一步

要尤其注意防火墙的设置,可通过关闭防火墙检测是否是防火墙的问题,如果你折腾了不少了,那么图形化远程连接肯定没有问题啦。