WINDOWS下用XWin32 连接Linux图形界面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WINDOWS下用XWin32 连接Linux图形界面相关的知识,希望对你有一定的参考价值。

如果有WINDOWS想用图形界面管理远程的LINUX服务器,或调试Linux图形软件.用Xwin32这个商业软件可能是一个选项,它很小,但是功能齐全.

      Windows下可以通过SSH客户端或Telnet程序远程登录到Linux/Unix 上进行管理,编程开发和调试字符界面程序.比如用Magic Unix C++这样的Windows 下的集成开发环境.界面完全模仿VC++ 6.0.可以象VC++单步调试Windows程序一样,去调试LinuxUnix远程主机应用程序.非常高效和方便.

Linux图形界面程序呢?是否能通过这种方法,Windows下单步调试.Magic Unix C++的文档提到是可以通过StartNetX-Win32 来完成调试.但是文档写得非常简单.后来经过查找资料和试验,发现是确实是可以用这个方法在Windows 下单步调试图形界面程序.

 

Windows下调试Linux 时图形界面原理就是利用了X Windows 体系是一个C/S结构的原理,Linux 上运行一个X Windows 服务器.Windows 下运行一个X-Windows客户端.Magigc Unix C++ 通过X Windows客户端与服务器通讯完成图形界面软件的调试.

 

因此要在Windows调试Linux GUI程序,必须配置如下软件

 

1.       配置X-Windows 网络服务

2.       Windows下安装和配置X-Win32

3.       Magic Unix C++配置和调试软件

 

以下将以Redhat 9.0 为例,演示如何安装远程的X-Client客户端

 

配置X-Windows 网络服务

 

X-Window是用在大多数UNIX系统中的图形支持系统。如果你在你的Linux机器上使用GNOME或者KDE的话,你就正在使用X系统。它由X联盟(www.X.org)定义并维护。大多数的Linux用户使用的都是由XFree86 项目 (www.xfree86.org)提供的X Window系统的实现。

xdm 使用X联盟的X显示管理控制协议,即XDMCP,来和X服务器通信。它允许X服务器从运行xdm服务的服务器上获得会话服务。

 

基本概念:

1、什么是XFree86

XFree86X Window系统的一种开放源代码的实现。它提供了一种对鼠标、键盘、显卡和窗口图形环境的Client-Server接口。所以客户端程序可以运行在不同的主机上,由一台服务器提供X WindowServer服务。

2、什么是XDMCP

XDMCP即“X Display Manager Control Protocol”,是一种网络协议。由它来建立图形客户端程序与X Window服务器的连接与通信。

3、什么是XDM

XDM即“X Display Manager”,由它来启动X Window服务器,并管理图形客户端程序的登录、会话、启动窗口管理器(KDEGnome)等。KDEGnome也提供了自己的xdm的实现,分别叫kdmgdm

4、什么是XFS

XFS即“X Font Server”,可以由由一台服务器来统一提供字体,远程图形客户端程序就不需要单独安装所有的字体了。

 

第一步:修改配置文件

   为了安全,缺省的网络服务是没有打开.所以需要手工打开如下配置

 

/etc/X11/xdm/Xaccess

n        这是XDM接入权限设置

n        (大约40)# * #any host can get a login window行首注释#去掉

u      表示可以让所有主机接入


技术分享


/etc/X11/gdm/gdm.conf

n        GNOME的显示配置

n        找到[xmdcp]其中的Enablefalse 改为Enabletrue  Enable1

u      表示打开xmdcp服务


技术分享


/etc/kde/kdm/kdmrc

n        KDE的显示配置,这个测试不需要改也能成功,为了保险也一并修改

n        找到[xmdcp]其中的Enablefalse 改为Enabletrue  Enable1

u      表示打开xmdcp服务


技术分享


/etc/X11/xdm/xdm-config

l         (Line 28)displayManager.requestPort:0前面加上一个!号,结果如下


技术分享





 

Redhat 9.0 关于XDM缺省配置.以下各项是相关缺省配置,采用缺省值即可,不要修改

l         /etc/X11/gdm/gdm.conf

n         Port=177 #xdm侦听端口必须是177

l         /etc/X11/xdm/Xservers件属性为444

l         /etc/X11/xdm/Xsetup_0的属性为755

 

以上配置也可以用图形界面进行配置,作用与上面等效

 

技术分享


技术分享



技术分享





    
第二步:启动图形界面

有两种方式,一种是直接修改/etc/inittab 设为图形界面启动模式.即修改第一句中数字为5,(3是字符界面启动)

id:5:initdefault

自动启动图形界面,X-Win32的登录框

还有一种是在主机的控制台输入startx手工启动图形界面技术分享

第三步:打开服务

为简化处理一般情况下选择直接关闭Linux防火墙.如果不想关闭防火墙, 需要把UDP 177端口开放出来,用如下命令:

iptables -A INPUT -p udp -s 0/0 -d 0/0 --dport 177 -j ACCEPT

 

l         启动XFS服务

XFS“X Font Server”,可以由由一台服务器来统一提供字体,远程图形客户端程序就不需要单独安装所有的字体了。在命令行下输入如下命令

service xfs stop

service xfs start

 

可以用netstat 来检查7100端口来判断XFS是否正常工作

netstat –ln | grep 7100

如果结果中包含如下提示,表示XFS正常工作.

unix  2      [ ACC ]     STREAM     LISTENING     2436   /tmp/.font-unix/fs7100

 

 

l         启动XDM服务

xdm命令启动即可

可以用netstat 来检查177端口来判断XFS是否正常工作

netstat –ln | grep 177

如果结果中包含如下提示,表示XDM正常工作.

udp        0      0 0.0.0.0:177             0.0.0.0:*

 

配置X-Win32 与服务器相连.

 

 配置好服务端后就开始配置客户端了,安装好XWin32后,运行Xwin32.进行配置


技术分享



技术分享




l         广播表示客户端向局域网所有X-Windows服务器发送广播包查询其IP地址

n         如果是局域网中并且X-Windows服务器不多采用这一模式

l         查询模式表示向指定主机发送X-Windows 主机,

l         间接表示填写HOST地址直接链接X-Windows服务器上


技术分享




 

 

X-Win32连接的效果


技术分享



技术分享


 技术分享


技术分享


 putty中运行图形界面程序

 你试过在WINDOWS的SSH客户端Putty下以命令行调用图形界面程序吗?用下面步骤就行!

有时不需要调试的应用程序的情况下,一般是在putty下进行编译和运行,但图形界面程序一般不能用这种模式运行.X-Win32配置成功后,   我们可以用putty结合X-Win32来运行Linux 图形界面程序!

1.       修改redhat 9.0的服务器ssh相关配置,使其支持X11

a)         修改 /etc/ssh/sshd_config

l         (Line 78): X11Forwarding yes #打开X11转发

l         (Line 79):X11DisplayOffset 10 #打开DisplayOffset


 技术分享

2.       重启sshd,以便刚才的修改生效

     /etc/init.d/sshd restart

3.       X-Win32配置一个指向服务器的会话,参见上一节

4.       配置Putty一个会话,并支持X11 转发(版本为0.60)

    技术分享

    技术分享

5.       启动X-Win32并连接上线

6.       Putty登录服务器

a)         Putty下输入echo $DISPLAY查看DISPLAY变量 ,应该显示为 : 10.0

7.       运行任意图形界面程序(kwrite), X-Win32将提示允许连接,选择始终执行这一操作,点击确定.

  技术分享

这时在已经联接的X-Win32出现执行程序


技术分享


此时Linux的图形程序就象WINDOWS一下独立的应用程序一样,以一个独立的窗口运行


以上是关于WINDOWS下用XWin32 连接Linux图形界面的主要内容,如果未能解决你的问题,请参考以下文章

gcc dll - 在 Linux 下编译

arch在图形界面下用啥来控制wifi连接

Xmanager连接linux服务器图形界面

windows下用navicat远程链接虚拟机Linux下MySQL数据库

微信开发LINUX-windows下用navicat远程链接虚拟机Linux下MySQL数据库

关于Linux的loop设备